Preface |
Overview / Part 1: |
Introduction / Chapter 1: |
FAQs about software engineering / 1.1: |
Professional and ethical responsibility / 1.2: |
Key points |
Further reading |
Exercises |
Computer-based system engineering / Chapter 2: |
Emergent system properties / 2.1: |
Systems and their environment / 2.2: |
System modelling / 2.3: |
The system engineering process / 2.4: |
System procurement / 2.5: |
Software processes / Chapter 3: |
Software process models / 3.1: |
Process iteration / 3.2: |
Software specification / 3.3: |
Software design and implementation / 3.4: |
Software validation / 3.5: |
Software evolution / 3.6: |
Automated process support / 3.7: |
Project management / Chapter 4: |
Management activities / 4.1: |
Project planning / 4.2: |
Project scheduling / 4.3: |
Risk management / 4.4: |
Requirements / Part 2: |
Software requirements / Chapter 5: |
Functional and non-functional requirements / 5.1: |
User requirements / 5.2: |
System requirements / 5.3: |
The software requirements document / 5.4: |
Requirements engineering processes / Chapter 6: |
Feasibility studies / 6.1: |
Requirements elicitation and analysis / 6.2: |
Requirements validation / 6.3: |
Requirements management / 6.4: |
System models / Chapter 7: |
Context models / 7.1: |
Behavioural models / 7.2: |
Data models / 7.3: |
Object models / 7.4: |
CASE workbenches / 7.5: |
Software prototyping / Chapter 8: |
Prototyping in the software process / 8.1: |
Rapid prototyping techniques / 8.2: |
User interface prototyping / 8.3: |
Formal specification / Chapter 9: |
Formal specification in the software process / 9.1: |
Interface specification / 9.2: |
Behavioural specification / 9.3: |
Design / Part 3: |
Architectural design / Chapter 10: |
System structuring / 10.1: |
Control models / 10.2: |
Modular decomposition / 10.3: |
Domain-specific architectures / 10.4: |
Distributed systems architectures / Chapter 11: |
Multiprocessor architectures / 11.1: |
Client-server architectures / 11.2: |
Distributed object architectures / 11.3: |
CORBA / 11.4: |
Object-oriented design / Chapter 12: |
Objects and object classes / 12.1: |
An object-oriented design process / 12.2: |
Design evolution / 12.3: |
Real-time software design / Chapter 13: |
System design / 13.1: |
Real-time executives / 13.2: |
Monitoring and control systems / 13.3: |
Data acquisition systems / 13.4: |
Design with reuse / Chapter 14: |
Component-based development / 14.1: |
Application families / 14.2: |
Design patterns / 14.3: |
User interface design / Chapter 15: |
User interface design principles / 15.1: |
User interaction / 15.2: |
Information presentation / 15.3: |
User support / 15.4: |
Interface evaluation / 15.5: |
Critical Systems / Part 4: |
Dependability / Chapter 16: |
Critical systems / 16.1: |
Availability and reliability / 16.2: |
Safety / 16.3: |
Security / 16.4: |
Critical systems specification / Chapter 17: |
Software reliability specification / 17.1: |
Safety specification / 17.2: |
Security specification / 17.3: |
Critical systems development / Chapter 18: |
Fault minimisation / 18.1: |
Fault tolerance / 18.2: |
Fault-tolerant architectures / 18.3: |
Safe system design / 18.4: |
Verification and Validation / Part 5: |
Verification and validation / Chapter 19: |
Verification and validation planning / 19.1: |
Software inspections / 19.2: |
Automated static analysis / 19.3: |
Cleanroom software development / 19.4: |
Software testing / Chapter 20: |
Defect testing / 20.1: |
Integration testing / 20.2: |
Object-oriented testing / 20.3: |
Testing workbenches / 20.4: |
Critical systems validation / Chapter 21: |
Formal methods and critical systems / 21.1: |
Reliability validation / 21.2: |
Safety assurance / 21.3: |
Security assessment / 21.4: |
Management / Part 6: |
Managing people / Chapter 22: |
Limits to thinking / 22.1: |
Group working / 22.2: |
Choosing and keeping people / 22.3: |
The People Capability Maturity Model / 22.4: |
Software cost estimation / Chapter 23: |
Productivity / 23.1: |
Estimation techniques / 23.2: |
Algorithmic cost modelling / 23.3: |
Project duration and staffing / 23.4: |
Quality management / Chapter 24: |
Quality assurance and standards / 24.1: |
Quality planning / 24.2: |
Quality control / 24.3: |
Software measurement and metrics / 24.4: |
Process improvement / Chapter 25: |
Process and product quality / 25.1: |
Process analysis and modelling / 25.2: |
Process measurement / 25.3: |
The SEI Process Capability Maturity Model / 25.4: |
Process classification / 25.5: |
Evolution / Part 7: |
Legacy systems / Chapter 26: |
Legacy system structures / 26.1: |
Legacy system design / 26.2: |
Legacy system assessment / 26.3: |
Software change / Chapter 27: |
Program evolution dynamics / 27.1: |
Software maintenance / 27.2: |
Architectural evolution / 27.3: |
Software re-engineering / Chapter 28: |
Source code translation / 28.1: |
Reverse engineering / 28.2: |
Program structure improvement / 28.3: |
Program modularisation / 28.4: |
Data re-engineering / 28.5: |
Configuration management / Chapter 29: |
Configuration management planning / 29.1: |
Change management / 29.2: |
Version and release management / 29.3: |
System building / 29.4: |
CASE tools for configuration management / 29.5: |
References |
Index |
Preface |
Overview / Part 1: |
Introduction / Chapter 1: |