Book Description
Software Engineering
The new edition of this best-selling book provides a comprehensive discussion of software engineering techniques and shows how they can be applied in practical software projects. This book features new coverage of the software process and software process technology, system integration, requirements management, and risk analysis, as well as new chapters on pattern-based reuse, distributed system engineering, and legacy systems. Sommerville has incorporated a more object-oriented approach in this edition—using UML and Java—and has removed much of the material on CASE, formal methods, and Ada, making the book more in tune with current technology and practice. A new discussion of professional ethics in the introduction helps to make readers aware of the responsibilities that come with engineering software. The sixth edition uses Java for all programming examples, and bases all design examples on UML notation. It includes new chapters on pattern-based reuse, distributed system engineering, and legacy systems, as well as new coverage of the software process and software process technology, system integration, requirements management, and risk analysis. This book is designed for readers needing a general introduction to software engineering (development, management, and evolution), especially with regard to system requirements engineering and critical systems.
Table of Contents
Preface
Ch. 1 Introduction 3
Ch. 2 Computer-based System Engineering 23
Ch. 3 Project Management 45
Ch. 4 Requirements Engineering 63
Ch. 5 Requirements Analysis 79
Ch. 6 System Models 99
Ch. 7 Requirements Definition and Specification 117
Ch. 8 Software Prototyping 137
Ch. 9 Formal Specification 157
Ch. 10 Algebraic Specification 171
Ch. 11 Model-based Specification 189
Ch. 12 Software Design 209
Ch. 13 Architectural Design 225
Ch. 14 Object-oriented Design 247
Ch. 15 Function-oriented Design 275
Ch. 16 Real-time Systems Design 297
Ch. 17 User Interface Design 319
Ch. 18 Software Reliability 349
Ch. 19 Programming for Reliability 369
Ch. 20 Software Reuse 395
Ch. 21 Safety-critical Software 419
Ch. 22 Verification and Validation 445
Ch. 23 Defect Testing 463
Ch. 24 Static Verification 483
Ch. 25 Computer-aided Software Engineering 505
Ch. 26 CASE Workbenches 529
Ch. 27 Software Engineering Environments 545
Ch. 28 Managing People 567
Ch. 29 Software Cost Estimation 589
Ch. 30 Quality Management 611
Ch. 31 Process Improvement 637
Ch. 32 Software Maintenance 659
Ch. 33 Configuration Management 675
Ch. 34 Software Re-engineering 699
References 715
Index