IBM SG24-7368-00 Fitness Equipment User Manual


 
Chapter 1. Introduction 15
Distributing responsibilities
Perhaps the greatest challenge in developing any system, but most especially in
developing large, complex, systems of systems, is to ensure that all constraints
on the system are met while still delivering the desired functionality. How we
distribute functional responsibilities across both the logical and distribution
entities is the third major theme of MDSD.
Two concepts are used in MDSD to facilitate this. The first is the use of what is
called a
joint realization table. The second is the use of localities.
Joint realization tables help us reason about functionality across a set of
system viewpoints—logical, distribution, data, process, and worker, for
example.
Localities help us reason about quality of service measures at a level of
abstraction that promotes flexibility in eventual implementation. One of the
temptations of Systems Engineering is to jump ahead to an implementation
based on experience rather than explicit reasoning and design. Localities are
intended to encourage explicit documentation of design decisions and
trade-offs. They can form the basis for trade studies in the trade space.
Essential list of artifacts:
Locality diagrams
Joint Realization tables
Deployment diagrams (design level and lower)
Prerequisites/required foundational concepts/languages
Basic familiarity with the Rational Unified Process is assumed, but is not strictly
necessary to understand this book.
Iterative development is at the core of the Rational Unified Process. We assume
that in any innovative, high-risk project (and what new systems development
project is not, in one way or another?) some form of iterative development will be
used because it is a major risk reducer.
20
The Rational Unified Process, and MDSD as an extension of it, are both use
case driven. We discuss use cases in Chapter 3, “Black-box thinking:
Defining the system context” on page 35, as a core part of MDSD, but we do not
cover in detail how they can serve as the basis for effective iterative development;
nor how to manage an iterative development project based on use cases.
20
We do not discuss program or project management as such in this document. For the important
role of iterative development, see Walker Royce, Software Project Management: A Unified
Framework, and Kurt Bittner and Ian Spence, Managing Iterative Software Development Projects,
(both cited in footnote 14).