Book description
For courses in computer science and software engineering
The Fundamental Practice of Software Engineering
Software Engineering introduces readers 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 readers 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.
Table of contents
- Software Engineering
- Preface
- Changes from the 9th edition
- Readership
- Using the book in software engineering courses
- Book website
- Contact details
- Contents at a glance
- Contents
-
PART
1 Introduction to Software Engineering
- 1 Introduction
- 2 Software processes
- 3 Agile software development
- 4 Requirements engineering
- 5 System modeling
- 6 Architectural design
- 7 Design and implementation
- 8 Software testing
- 9 Software evolution
-
PART 2 Dependability and Security
- 10 Dependable systems
-
11
Reliability engineering
- Objectives
- Contents
- 11.1 Availability and reliability
- 11.2 Reliability requirements
- 11.3 Fault-tolerant architectures
-
11.4 Programming for reliability
- Guideline 1: Control the visibility of information in a program
- Guideline 2: Check all inputs for validity
- Guideline 3: Provide a handler for all exceptions
- Guideline 4: Minimize the use of error-prone constructs
- Guideline 5: Provide restart capabilities
- Guideline 6: Check array bounds
- Guideline 7: Include timeouts when calling external components
- Guideline 8: Name all constants that represent real-world values
- 11.5 Reliability measurement
- Key Points
- Further Reading
- Website
- Exercises
- References
- 12 Safety engineering
-
13
Security engineering
- Objectives
- Contents
- 13.1 Security and dependability
- 13.2 Security and organizations
- 13.3 Security requirements
-
13.4 Secure systems design
- 13.4.1 Design risk assessment
- 13.4.2 Architectural design
-
13.4.3 Design guidelines
- Guideline 1: Base security decisions on an explicit security policy
- Guideline 2: Use defense in depth
- Guideline 3: Fail securely
- Guideline 4: Balance security and usability
- Guideline 5: Log user actions
- Guideline 6: Use redundancy and diversity to reduce risk
- Guideline 7: Specify the format of system inputs
- Guideline 8: Compartmentalize your assets
- Guideline 9: Design for deployment
- Guideline 10: Design for recovery
- 13.4.4 Secure systems programming
- 13.5 Security testing and assurance
- Key Points
- Further Reading
- Website
- Exercises
- References
- 14 Resilience engineering
-
PART 3 Advanced Software Engineering
- 15 Software reuse
- 16 Component-based software engineering
- 17 Distributed software engineering
- 18 Service-oriented software engineering
- 19 Systems engineering
- 20 Systems of systems
- 21 Real-time software engineering
-
PART 4 Software Management
- 22 Project management
- 23 Project planning
- 24 Quality management
- 25 Configuration management
- Glossary
- Subject Index
- Author Index
Product information
- Title: Software Engineering, 10th Edition
- Author(s):
- Release date: March 2015
- Publisher(s): Pearson
- ISBN: 9780137586691
You might also like
book
Essentials of Software Engineering, 5th Edition
Written for the undergraduate, 1-term course, Essentials of Software Engineering provides students with a systematic engineering …
book
Software Requirements, 3rd Edition
Now in its third edition, this classic guide to software requirements engineering has been fully updated …
book
Righting Software
Right Your Software and Transform Your Career Righting Software presents the proven, structured, and highly engineered …
book
Software Testing, 4th Edition
This practical guide provides insight into software testing, explaining the basics of the testing process and …