| Changes from the 5th edition |
Software Engineering
6th Edition |
There are new chapters covering software processes, distributed systems architectures, dependability and legacy systems. All chapters have been updated and several have been extensively rewritten. Program examples are in Java and, where appropriate, graphical system models are defined in the UML.
A comparison with the 5th edition contents is available through the 5th edition contents annoted with changes.
The overview section is intended as a very general introduction to the subject . It starts with general information on software engineering presented as FAQs, goes on to discuss software engineering in the context of broader systems engineering issues, covers software processes and project planning.
Software processes integrates material from several different chapters in the 5th edition and, as well as presenting different life-cycle process models, it also discusses specification, design, development and validation processes. CASE support for process activities is covered.
Distributed systems architectures is composed of completely new material and discusses different types of client-server arhcitectures, distributed object architectures and the CORBA framework for distributed system integration.
Dependability is a general discussion of dependability as an attribute of critical systems. It covers reliability, availability, safety and security and introduces an example of a portable insulin delivery system that is used in other chapters on critical systems.
Legacy systems introduces the notion of a legacy system and explains why these are often business critical systems. It describes legacy system structures and explains function-oriented design which was the design approach used for most legacy systems. The final section discusses techniques of assessing the state of legacy systems in terms of their value to a business.
The introduction has been rewritten as a set of FAQs and material on software processes moved to a new chapter The chapters on requirements have been separated into chapters on the requirements themselves and chapters on the requirements engineering process. Reuse now focuses on development with reuse with material on patterns and component-based development. Object-oriented design has more of a process focus. Cost estimation has been updated to use the COCOMO 2 algorithmic cost estimation model. The material on critical systems has been restructured and integrated so that reliability, safety and availability are not covered as separate topics. I have introduced some material on security as an attribute of a critical system.