• The iterative-and-incremental life-cycle model has been introduced as early as possible, namely,
in Chapter 2. Furthermore, as with all previous editions, numerous other life-cycle models are
presented, compared, and contrasted. Particular attention is paid to agile processes.
• In Chapter 3 (“The Software Process”), the workfl
ows (activities) and processes of the
Unifi ed Process are introduced, and the need for two-dimensional life-cycle models is
explained.
• A wide variety of ways of organizing software teams are presented in Chapter 4 (“Teams”),
including teams for agile processes and for open-source software development.
• Chapter 5 (“The Tools of the Trade”) includes information on important classes of
CASE tools.
• The importance of continual testing is stressed in Chapter 6 (“Testing”).
• Objects continue to be the focus of attention in Chapter 7 (“From Modules to Objects”).
• Design patterns remain a central focus of Chapter 8 (“Reusability and Portability”).
• The IEEE standard for software project management plans is again presented in
Chapter 9 (“Planning and Estimating”).
• Chapter 11 (“Requirements”), Chapter 13 (“Object-Oriented Analysis”), and Chapter 14
(“Design”) are largely devoted to the workfl ows (activities) of the Unifi ed Process. For
obvious reasons, Chapter 12 (“Classical Analysis”) is largely unchanged.
• The material in Chapter 15 (“Implementation”) clearly distinguishes between imple-
mentation and integration.
• The importance of postdelivery maintenance is stressed in Chapter 16.
• Chapter 17 provides additional material on UML to prepare the student 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.
• As before, there are two running case studies. The MSG Foundation case study and the
Elevator Problem case study have been developed using the Unifi ed Process. As usual,
Java and C++ implementations are available online at www.mhhe.com/schach.
• In addition to the two running case studies that are used to illustrate the complete life
c
ycle, eight mini case studies highlight specifi c topics, such as the moving target prob-
lem, stepwise refi nement, design patterns, and postdelivery maintenance.
• In all the previous editions, I have stressed the importance of documentation, mainte-
nance, reuse, por
tability, testing, and CASE tools. In this edition, all these concepts are
stressed equally fi rmly. It is no use teaching students the latest ideas unless they appreci-
ate the importance of the basics of software engineering.
• As in the seventh edition, particular attention is paid to object-oriented life-cycle mod-
els, object-oriented analysis, object-oriented design, management implications of the
object-oriented paradigm, and the testing and maintenance of object-oriented software.
Metrics for the object-oriented paradigm also are included. In addition, many briefer
references are made to objects, a paragraph or even only a sentence in length. The reason
is that the object-oriented paradigm is not just concerned with how the various phases
are performed but rather permeates the way we think about software engineering. Object
technology again pervades this book.
Preface xv
sch76183_FM-i-xx.indd xvsch76183_FM-i-xx.indd xv 10/06/10 2:36 PM10/06/10 2:36 PM