Synopses & Reviews
Â
SOMMERVILLE
Software Engineering 8
Â
The eighth edition of the best-selling introduction to software engineering is now updated with three new chapters on state-of-the-art topics.
Â
New chapters in the 8th edition
Â
Ø     Security engineering, showing youhow you can design software to resist attacks and recover from damage;
Ø     Service-oriented software engineering, explaininghow reusable web services can be used to develop new applications;
Ø     Aspect-oriented software development, introducing new techniques based on the separation of concerns.
Â
Key features
Â
Ø     Includes the latest developments in software engineering theory and practice, integrated with relevant aspects of systems engineering.
Ø     Extensive coverage ofagile methods andreuse.
Ø     Integrated coverage of system safety, security and reliability – illustrating best practice in developing critical systems.
Ø     Two running case studies (an information system and a control system) illuminate different stages of thesoftware lifecycle.
Â
Online resources
Â
Visit www.pearsoned.co.uk/sommerville to access a full range of resources for students and instructors.
Â
In addition, a rich collection of resources including links to other web sites, teaching material on related courses and additional chapters is available at http://www.software-engin.com.
Â
Â
IAN SOMMERVILLE is Professor of Software Engineering at the University of St. Andrews in Scotland.
Â
Â
Synopsis
THE most current Software Engineering text in the market– quality trusted coverage, practical case studies, strong lecturer support.
About the Author
Ian Sommerville is a full Professor of Software Engineering at the University of St. Andrews in Scotland, where he teaches courses in advanced software engineering and critical systems engineering. His research interest lies in complex, dependable systems.
Table of Contents
Contents
Part 1 Introduction to Software Engineering Chapter 1: Introduction 1.1 Professional software development
1.2 Software engineering ethics
1.3 Case studies
Chapter 2: Software processes 2.1 Software process models
2.2 Process activities
2.3 Coping with change
2.4 The Rational Unified Process
Chapter 3: Agile software development 3.1 Agile methods
3.2 Plan-driven and agile development
3.3 Extreme programming
3.4 Agile project management
3.5 Scaling agile methods
Chapter 4: Requirements engineering 4.1 Functional and non-functional requirements
4.2 The software requirements document
4.3 Requirements specification
4.4 Requirements engineering processes
4.5 Requirements elicitation and analysis
4.6 Requirements validation
4.7 Requirements management
Chapter 5: System modeling 5.1 Context models
5.2 Interaction models
5.3 Structural models
5.4 Behavioral models
5.5 Model-driven engineering
Chapter 6: Architectural design 6.1 Architectural design decisions
6.2 Architectural views
6.3 Architectural patterns
6.4 Application architectures
Chapter 7: Design and Implementation 7.1 Object-oriented design using the UML
7.2 Design patterns
7.3 Implementation issues
7.4 Open source development
Chapter 8: Software testing 8.1 Development testing
8.2 Test-driven development
8.3 Release testing
8.4 User testing
Chapter 9: Software Evolution 9.1 Evolution processes
9.2 Program evolution dynamics
9.3 Software maintenance
9.4 Legacy system management
Part 2 Dependability and Security Chapter 10: Socio-technical Systems 10.1 Complex systems
10.2 Systems engineering
10.3 System procurement
10.4 System development
10.5 System operation
Chapter 11: Dependability and Security 11.1 Dependability properties
11.2 Availability and reliability
11.3 Safety
11.4 Security
Chapter 12: Dependability and Security Specification 12.1 Risk-driven requirements specification
12.2 Safety specification
12.3 Reliability specification
12.4 Security specification
12.5 Formal specification
Chapter 13: Dependability Engineering 13.1 Redundancy and diversity
13.2 Dependable processes
13.3 Dependable systems architectures
13.4 Dependable programming
Chapter 14: Security Engineering 14.1 Security risk management
14.2 Design for security
14.3 System survivability
Chapter 15: Dependability and Security Assurance 15.1 Static analysis
15.2 Reliability testing
15.3 Security testing
15.4 Process assurance
15.5 Safety and dependability cases
Part 3 Advanced Software Engineering Chapter 16: Software Reuse 16.1 The reuse landscape
16.2 Application frameworks
16.3 Software product lines
16.4 COTS product reuse
Chapter 17: Component-based Software Engineering 17.1 Components and component models
17.2 CBSE processes
17.3 Component composition
Chapter 18: Distributed Software Engineering 18.1 Distributed systems issues
18.2 Client—server computing
18.3 Architectural patterns for distributed systems
18.4 Software as a service
Chapter 19: Service-oriented Architecture 19.1 Services as reusable components
19.2 Service engineering
19.3 Software development with services
Chapter 20: Embedded Systems 20.1 Embedded systems design
20.2 Architectural patterns
20.3 Timing analysis
20.4 Real-time operating systems
Chapter 21: Aspect-oriented software engineering 21.1 The separation of concerns
21.2 Aspects, join points and pointcuts
21.3 Software engineering with aspects
Part 4 Software management Chapter 22: Project management 22.1 Risk management
22.2 Managing people
22.3 Teamwork
Chapter 23: Project planning 23.1 Software pricing
23.2 Plan-driven development
23.3 Project scheduling
23.4 Agile planning
23.5 Estimation techniques
Chapter 24: Quality management 24.1 Software quality
24.2 Software standards
24.3 Reviews and inspections
24.4 Software measurement and metrics
Chapter 25: Configuration management 25.1 Change management
25.2 Version management
25.3 System building
25.4 Release management
Chapter 26: Process improvement 26.1 The process improvement process
26.2 Process measurement
26.3 Process analysis
26.4 Process change
26.5 The CMMI process improvement framework