McGraw-Hill OnlineMcGraw-Hill Higher EducationLearning Center
Student Center | Instructor Center | Information Center | Home
Book Preface
Table of Contents
Sample Chapter 7
EngineeringCS.com
Feature Summary
Feedback
Help Center


Object-Oriented and Classical Software Engineering, 6/e
Steve Schach


Book Preface

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.