Description
For courses in computer science and software engineering
The Fundamental Practice of Software Engineering
Software Engineering introduces students to the overwhelmingly important subject of software programming and development. In the past few years, computer systems have come to dominate not just our technological growth, but the foundations of our world’s major industries. This text seeks to lay out the fundamental concepts of this huge and continually growing subject area in a clear and comprehensive manner.
The Tenth Edition contains new information that highlights various technological updates of recent years, providing students with highly relevant and current information. Sommerville’s experience in system dependability and systems engineering guides the text through a traditional plan-based approach that incorporates some novel agile methods. The text strives to teach the innovators of tomorrow how to create software that will make our world a better, safer, and more advanced place to live.
Features
Software Engineering contains the following features to facilitate learning:
The text covers the latest key developments in software engineering
- UPDATED! Chapter on agile software engineering contains new information about Scrum.
- NEW! Chapters on resilience engineering, systems engineering, and systems of systems have been added to the text.
- REVISED! Chapter 4 on representation has been completely rewritten as a clearer and newer source of information.
- UPDATED! Chapter on service-oriented software engineering has been revised with new information on RESTful added.
- UPDATED! Chapter on configuration management has has been revised with new information on distributed version control systems.
UPDATED! The core structure of the text has been significantly altered to include relevant information on agile methods
- UPDATED! Part 1: Introduction to Software Engineering contains minor updates and changes in regards to agile methods in all chapters.
- NEW! Chapter 1 includes a new case study on a digital learning environment that is applied throughout the book in future chapters.
- REVISED! Chapter 3 on agile methods has been completely rewritten to focus on the increasing use of Scrum.
- REVISED! Part 2: Dependable Systems has been completely revised and restructured so that each major topic discussed belongs to its own chapter.
- NEW! A chapter on resilience engineering has been added that covers major topics such as cybersecurity, organizational resilience, and resilience systems design.
- NEW! Part 3: Advanced Software Engineering contains brand new chapters on systems engineering and systems of systems.
- REVISED! Information on service-oriented systems engineering reflects the increasing use of RESTful services.
- REVISED! The chapter on aspect-oriented software engineering has been removed from the text but still remains available as a web chapter.
- UPDATED! Part 4: Software Management contains updated material in the chapter on configuration management that reflects the increased use of distributed version control tools such as Git.
- REVISED! The chapter on process improvement has been removed from the text but still remains available as a web chapter.
Supplementary information supports key concepts
- NEW! Recommended videos are mentioned in each chapter that reinforce key concepts.
- NEW! An example of a requirements specification document has been added as an appendix.
The text applies the topic of software engineering to real world scenarios
- Two integrated, contrasting case studies flow through the text, continuously giving practical context and examples for topics discussed.
- Management issues such as project planning introduce students to real challenges they may face as software engineers.
- Significant coverage of requirements and architectural design emphasizes their importance in the overall software engineering process.
New to this Edition
Software Engineering contains the following features to facilitate learning:
The text covers the latest key developments in software engineering
- UPDATED! Chapter on agile software engineering contains new information about Scrum.
- Chapters on resilience engineering, systems engineering, and systems of systems have been added to the text.
- REVISED! Chapter 4 on representation has been completely rewritten as a clearer and newer source of information.
- UPDATED! Chapter on service-oriented software engineering has been revised with new information on RESTful added.
- UPDATED! Chapter on configuration management has has been revised with new information on distributed version control systems.
UPDATED! The core structure of the text has been significantly altered to include relevant information on agile methods
- UPDATED! Part 1: Introduction to Software Engineering contains minor updates and changes in regards to agile methods in all chapters.
- Chapter 1 includes a new case study on a digital learning environment that is applied throughout the book in future chapters.
- REVISED! Chapter 3 on agile methods has been completely rewritten to focus on the increasing use of Scrum.
- REVISED! Part 2: Dependable Systems has been completely revised and restructured so that each major topic discussed belongs to its own chapter.
- A chapter on resilience engineering has been added that covers major topics such as cybersecurity, organizational resilience, and resilience systems design.
- Part 3: Advanced Software Engineering contains brand new chapters on systems engineering and systems of systems.
- REVISED! Information on service-oriented systems engineering reflects the increasing use of RESTful services.
- REVISED! The chapter on aspect-oriented software engineering has been removed from the text but still remains available as a web chapter.
- UPDATED! Part 4: Software Management contains updated material in the chapter on configuration management that reflects the increased use of distributed version control tools such as Git.
- REVISED! The chapter on process improvement has been removed from the text but still remains available as a web chapter.
Supplementary information supports key concepts
- Recommended videos are mentioned in each chapter that reinforce key concepts.
- An example of a requirements specification document has been added as an appendix.
Table of Contents
Part 1 Introduction to Software Engineering
Chapter 1: Introduction
Chapter 2: Software processes
Chapter 3: Agile software development
Chapter 4: Requirements engineering
Chapter 5: System modeling
Chapter 6: Architectural design
Chapter 7: Design and Implementation
Chapter 8: Software testing
Chapter 9: Software Evolution
Part 2 System Dependability and Security
Chapter 10: Dependable Systems
Chapter 11: Reliability engineering
Chapter 12: Safety Engineering
Chapter 13: Security Engineering
Part 3 Advanced Software Engineering
Chapter 15: Software Reuse
Chapter 16: Component-based Software Engineering
Chapter 17: Distributed Software Engineering
Chapter 18: Service-oriented Software Engineering
Chapter 19: Systems engineering
Chapter 20: Systems of systems
Chapter 21: Real-time software engineering
Part 4 Software management
Chapter 22: Project management
Chapter 23: Project planning
Chapter 24: Quality management
Chapter 25: Configuration management
Glossary
Appendix: System requirements for the MentCare system