Software Engineering, 6/e

Ian Sommerville

  • 出版商: Addison Wesley
  • 出版日期: 2000-08-21
  • 售價: $1,068
  • 語言: 英文
  • 頁數: 720
  • 裝訂: Hardcover
  • ISBN: 020139815X
  • ISBN-13: 9780201398151
  • 相關分類: 軟體工程
  • 無法訂購
    無現貨庫存(No stock available)




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 students aware of the responsibilities that come with engineering software. This book is appropriate for any introductory course on Software Engineering.

Back to Top

Appropriate Courses

Introduction to Software Engineering.

Back to Top


  • Uses Java for all programming examples, and bases all design examples on UML notation.
  • Includes new chapters on patter-based reuse, distributed system engineering, and legacy systems.
  • Contains new coverage of the software process and software process technology, system integration, requirements management, and risk analysis.
Back to Top

Table Of Contents

(NOTE: Each chapter concludes with Key points, Further reading, and Exercises.)


1. Introduction.
FAQs About software engineering.
Professional and ethical responsibility.

2. Computer-based system engineering.
Emergent system properties.
Systems and their environment.
System modelling.
The system engineering process.
System procurement.

3. Software Processes.
Software process models.
Process iteration.
Software Specification.
Software design and implementation.
Software validation.
Software evolution.
Automated process support.

4. Project management.
Management activities.
Project planning.
Project scheduling.
Risk management.


5. Software requirements.
Functional and non-functional requirements.
User requirements.
System requirements.
The software requirements document.

6. Requirements engineering processes.
Feasibility studies.
Requirements elicitation and analysis.
Requirements validation.
Requirements management.

7. System Models.
Context models.
Behavioural models.
Data models.
Object models.
CASE workbenches.

8. Software prototyping.
Prototyping in the software process.
Rapid prototyping techniques.
User interface prototyping.

9. Formal Specification.
Formal specification in the software process.
Interface specification.
Behavioural specification.


10. Architectural design.
System structuring.
Control models.
Modular decomposition.
Domain-specific architectures.

11. Distributed systems design.
Multiprocessor architectures.
Client-server architectures.
Distributed object architectures.

12. Object-oriented design.
Objects and object classes.
An object-oriented design process.
Design evolution.

13. Real-time software design.
System design.
Real-time executives.
Monitoring and control systems.
Data acquisition systems.

14. Design with Reuse.
Component-based development.

Application families.
Design patterns.

15. User interface design.
User interface design principles.
User interaction.
Information presentation.
User support.
Interface evaluation.


16. Dependability.
Critical systems.
Availability and reliability.

17. Critical systems specification.
Software reliability specification.
Safety specification.
Security specification.

18. Critical systems development.
Fault minimisation.
Fault tolerance.
Fault-tolerant architectures.
Safe system design.


19. Verification and validation.
Verification and validation planning.
Software inspections.
Automated static analysis.
Cleanroom software development.

20. Software testing.
Defect testing.
Integration testing.
Object-oriented testing.

21. Critical systems validation.
Formal methods and critical systems.
Reliability validation.
Safety assurance.
Security assessment.


22. Managing people.
Limits to thinking.
Group working.
Choosing and keeping people.
The People Capability Maturity Model.

23. Software cost estimation.
Estimation techniques.
Algorithmic cost modelling.
Project duration and staffing.

24. Quality management.
Quality assurance and standards.
Quality planning.
Quality control.
Software measurement and metrics.

25. Process Improvement.
Process and product quality.
Process analysis and modelling.
Process measurement.
The SEI Process Capability Maturity Model.
Process classification.


26. Legacy Systems.
Legacy system structures.
Legacy system design.
Legacy system assessment.

27. Software change.
Program evolution dynamics.
Software maintenance.
Architectural evolution.

28. Software re-engineering.
Source code translation.
Reverse engineering.
Program structure improvement.
Program modularisation.
Data re-engineering.

29. Configuration management.
Configuration management planning.
Change management.
Version and release management.
System building.
CASE tools for configuration management.


Back to Top