Since the publication of the fifth edition three years ago, the Unified Process has become
widely regarded as the methodology of choice for object-oriented software development.
The Unified Process is based on Booch’s method, Objectory, and OMT. These three older
object-oriented methodologies are now no longer supported by their respective authors.
Accordingly, the major new feature of the sixth edition is the inclusion of the Unified
Process. In particular, the two running case studies are developed using the Unified
Process, so the student is exposed to both the theory and the practice of the Unified Process.
Other Key Features of the Sixth Edition Chapter 1 has been totally revised. In particular, the strengths of the object-oriented paradigm
are analyzed in greater depth. Also, I have introduced the new definition of maintenance
adopted by ISO, IEC, IEEE, and EIA. The order of Chapters 2 and 3 has been reversed to introduce the evolution-tree lifecycle
model and the iterative-and-incremental life-cycle model as early as possible.
However, as with all previous editions, numerous other life-cycle models are presented,
compared, and contrasted. In Chapter 3, “The Software Process,” the workflows (activities) and phases of the Uni-
fied Process are introduced, and the need for two-dimensional life-cycle models is
explained. Chapters 4 through 9 have been updated. For example, component-based software engineering is introduced in Chapter 8, and the new IEEE standard for software project management
plans is presented in Chapter 9. An example of a plan that conforms to the new
standard appears in Appendix F. The material on interoperability has been removed from Chapter 8. In both the fourth
and the fifth editions, these sections became hopelessly out of date during the 6 months
it took to publish the books. In my opinion, the field is moving too fast to be included in
a textbook; an instructor wishing to include interoperability in a software engineering
course should obtain up-to-the-minute material from the Internet. Chapter 10 (“Requirements”), Chapter 12 (“Object-Oriented Analysis”), and Chapter 13
(“Design”) have undergone major changes to incorporate the workflows (activities) of the
Unified Process. For obvious reasons, Chapter 11 (“Classical Analysis”) has not been
changed. The material on implementation and integration (Chapters 14 and 15 of the fifth edition)
has been merged into the new Chapter 14, but there is still a clear separation between
implementation and integration. Chapter 15 is now on post-delivery maintenance. Chapter 16 is new. The fourth edition was the first software engineering textbook to
utilize the Unified Modeling Language (UML), which was introduced shortly before
that edition was published. Three years later, UML had been formally standardized and
become so widely used that, in the fifth edition, I continued to employ UML to represent
object-oriented analysis and object-oriented design, as well as in diagrams that depicted
objects and their interrelationships. In both the fourth and fifth editions, I included suf-
ficient material on UML to enable students to do all the exercises, as well as the teambased
term project. However, UML is now such an integral part of software engineering
in general (and the Unified Process in particular) that I have added a final chapter, “More
on UML.” The purpose of Chapter 16 is to provide additional material on UML to prepare
the student even more thoroughly for employment in the software industry. This
chapter is of particular use to instructors who utilize this book for the two-semester
software engineering course sequence. In the second semester, in addition to developing
the team-based term project or a capstone project, the student can acquire additional
knowledge of UML, beyond what is needed for this book. In addition to the two running case studies that are used to illustrate the complete life
cycle, seven mini case studies highlight specific topics, such as the moving target problem,
stepwise refinement, and post-delivery maintenance. The material on extreme programming (XP) has been expanded. In addition, XP is now
described within the context of agile programming. XP still is controversial, but I feel
that students need to understand the topic so they can decide for themselves whether XP
is merely a current fad or a genuine major breakthrough in software engineering. |