Sams Teach Yourself C++ in 21 Days

(singke) #1
That is because the debate about modeling languages is pretty much settled; as an indus-
try, it has been decided that UML is the primary standard to be used. The debate about
process, however, rages on.
Amethodis a modeling language and a process. Method is often incorrectly referred to
as “methodology,” but “methodology” is the study of methods.
A methodologistis someone who develops or studies one or more methods. Typically,
methodologists develop and publish their own methods. Three of the leading methodolo-
gists and their methods are Grady Booch, who developed the Booch method, Ivar
Jacobson, who developed object-oriented software engineering, and James Rumbaugh,
who developed Object Modeling Technology (OMT). Together, these three men have cre-
ated what is now called theRational Unified Process(formerly known as Objectory), a
method and a commercial product from Rational Software, Inc. All three men have been
employed at IBM’s Rational Software division, where they are affectionately known as
the Three Amigos.
Today’s lesson loosely follows their process rather than slavishly adhering to academic
theory—it is much more important to ship a product than to adhere to a method. Other
methods have something to offer, and so you will learn the bits and pieces that are valu-
able to use when stitching together a workable framework. Not every practitioner agrees
with this approach, and you are encouraged to read the extensive literature on software
engineering practice to determine what you think is the best practice. If you work for a
company that follows a specific method as their official practice, you need to be prepared
to follow that method to the level of compliance they require.
The process of software design can be iterative. In that case, as software is developed,
you can go through the entire process repeatedly as you strive to enhance your under-
standing of the requirements. The design directs the implementation, but the details
uncovered during implementation feed back into the design. In this approach, you should
not try to develop any sizable project in a single, orderly, straight line; rather, you should
iterate over pieces of the project, constantly improving your design and refining your
implementation.

Waterfall Versus Iterative Development ........................................................


Iterative development can be distinguished from waterfall development. In waterfall
development, the output from one stage becomes the input to the next. Just like you can’t
easily go up a waterfall, with this method of development, there is no going back to pre-
vious stages (see Figure 11.3).

332 Day 11

Free download pdf