Software Engineering, 7/e
More than 400 000 readers have learned the foundations of software systems engineering from Ian Sommerville's best-selling book. This new edition concentrates on widely used techniques for developing large-scale software systems. Restructured into six parts, the book covers a wide spectrum of techniques from initial requirements solicitation through to design and development. All chapters have been updated, with the latest techniques (such as agile methods or component-based SE) integrated throughout into the relevant sections, making this the de facto standard for all readers wanting information on the state-of-the-art of engineering large-scale computer-based systems.
Table of Contents:
FAQs About software engineering.
Professional and ethical responsibility.
2. Socio-Technical Systems.
Emergent system properties.
Organizations, people and computer systems.
3. Critical Systems.
A simple safety-critical system.
Availability and reliability.
4. Software Processes.
Software process models.
The Rational Unified Process.
Computer-Aided Software Engineering.
5. Project Management.
6. Software Requirements.
Functional and non-functional requirements.
The software requirements document.
7. Requirements Engineering Processes.
Requirements elicitation and analysis.
8. System Models.
9. Critical Systems Specification.
Software reliability specification.
10. Formal Specification.
Formal specification in the software process.
Sub-system interface specification.
11. Architectural Design.
Architectural design decisions.
Modular decomposition styles.
12. Distributed Systems Architectures.
Distributed object architectures.
Inter-organizational distributed computing.
13. Applicaiton Architectures.
Data processing systems.
Transaction processing systems.
Event processing systems.
Language processing systems.
14. Object-Oriented Design.
Objects and object classes.
An object-oriented design process.
15. Real-Time Software Design.
Real-time operating systems.
Monitoring and control systems.
Data acquisition systems.
16. User Interface Design.
The UI design process.
User interface prototyping.
IV. CRITICAL SYSTEMS.
17. Rapid Software Development.
Rapid application development.
18. Software Reuse.
The reuse landscape.
Application system reuse.
19. Component-Based Software Engineering.
Components and component models.
The CBSE process.
20. Critical Systems Development.
21. Software Evolution.
Program evolution dynaics.
Legacy system evolution.
V. VERIFICATION AND VALIDATION.
22. Verification and Validation.
Planning verification and validation.
Automated static analysis.
Verification and formal methods.
23. Software Testing.
Test case design.
24. Critical Systems Validation.
Safety and Dependability Cases.
VI. MANAGING PEOPLE.
25. Managing People.
The People Capability Maturity Model.
26. Software Cost Estimation.
Algorithmic cost modelling.
Project duration and staffing.
27. Quality Management.
Process and product quality.
Quality assurance and standards.
Software measurement and metrics.
28. Process Improvement.
Process and product quality.
Process analysis and modelling.
The CMMI process improvement framework.
29. Configuration Management.
Configuration management planning.
Version and release management.
CASE tools for configuration management.