| |
| |
Preface | |
| |
| |
| |
Overview | |
| |
| |
| |
Introduction | |
| |
| |
| |
FAQs about software engineering | |
| |
| |
| |
Professional and ethical responsibility | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Computer-based system engineering | |
| |
| |
| |
Emergent system properties | |
| |
| |
| |
Systems and their environment | |
| |
| |
| |
System modelling | |
| |
| |
| |
The system engineering process | |
| |
| |
| |
System procurement | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Software processes | |
| |
| |
| |
Software process models | |
| |
| |
| |
Process iteration | |
| |
| |
| |
Software specification | |
| |
| |
| |
Software design and implementation | |
| |
| |
| |
Software validation | |
| |
| |
| |
Software evolution | |
| |
| |
| |
Automated process support | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Project management | |
| |
| |
| |
Management activities | |
| |
| |
| |
Project planning | |
| |
| |
| |
Project scheduling | |
| |
| |
| |
Risk management | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Requirements | |
| |
| |
| |
Software requirements | |
| |
| |
| |
Functional and non-functional requirements | |
| |
| |
| |
User requirements | |
| |
| |
| |
System requirements | |
| |
| |
| |
The software requirements document | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Requirements engineering processes | |
| |
| |
| |
Feasibility studies | |
| |
| |
| |
Requirements elicitation and analysis | |
| |
| |
| |
Requirements validation | |
| |
| |
| |
Requirements management | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
System models | |
| |
| |
| |
Context models | |
| |
| |
| |
Behavioural models | |
| |
| |
| |
Data models | |
| |
| |
| |
Object models | |
| |
| |
| |
CASE workbenches | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Software prototyping | |
| |
| |
| |
Prototyping in the software process | |
| |
| |
| |
Rapid prototyping techniques | |
| |
| |
| |
User interface prototyping | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Formal specification | |
| |
| |
| |
Formal specification in the software process | |
| |
| |
| |
Interface specification | |
| |
| |
| |
Behavioural specification | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Design | |
| |
| |
| |
Architectural design | |
| |
| |
| |
System structuring | |
| |
| |
| |
Control models | |
| |
| |
| |
Modular decomposition | |
| |
| |
| |
Domain-specific architectures | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Distributed systems architectures | |
| |
| |
| |
Multiprocessor architectures | |
| |
| |
| |
Client-server architectures | |
| |
| |
| |
Distributed object architectures | |
| |
| |
| |
CORBA | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Object-oriented design | |
| |
| |
| |
Objects and object classes | |
| |
| |
| |
An object-oriented design process | |
| |
| |
| |
Design evolution | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Real-time software design | |
| |
| |
| |
System design | |
| |
| |
| |
Real-time executives | |
| |
| |
| |
Monitoring and control systems | |
| |
| |
| |
Data acquisition systems | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Design with reuse | |
| |
| |
| |
Component-based development | |
| |
| |
| |
Application families | |
| |
| |
| |
Design patterns | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
User interface design | |
| |
| |
| |
User interface design principles | |
| |
| |
| |
User interaction | |
| |
| |
| |
Information presentation | |
| |
| |
| |
User support | |
| |
| |
| |
Interface evaluation | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Critical Systems | |
| |
| |
| |
Dependability | |
| |
| |
| |
Critical systems | |
| |
| |
| |
Availability and reliability | |
| |
| |
| |
Safety | |
| |
| |
| |
Security | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Critical systems specification | |
| |
| |
| |
Software reliability specification | |
| |
| |
| |
Safety specification | |
| |
| |
| |
Security specification | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Critical systems development | |
| |
| |
| |
Fault minimisation | |
| |
| |
| |
Fault tolerance | |
| |
| |
| |
Fault-tolerant architectures | |
| |
| |
| |
Safe system design | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Verification and Validation | |
| |
| |
| |
Verification and validation | |
| |
| |
| |
Verification and validation planning | |
| |
| |
| |
Software inspections | |
| |
| |
| |
Automated static analysis | |
| |
| |
| |
Cleanroom software development | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Software testing | |
| |
| |
| |
Defect testing | |
| |
| |
| |
Integration testing | |
| |
| |
| |
Object-oriented testing | |
| |
| |
| |
Testing workbenches | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Critical systems validation | |
| |
| |
| |
Formal methods and critical systems | |
| |
| |
| |
Reliability validation | |
| |
| |
| |
Safety assurance | |
| |
| |
| |
Security assessment | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Management | |
| |
| |
| |
Managing people | |
| |
| |
| |
Limits to thinking | |
| |
| |
| |
Group working | |
| |
| |
| |
Choosing and keeping people | |
| |
| |
| |
The People Capability Maturity Model | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Software cost estimation | |
| |
| |
| |
Productivity | |
| |
| |
| |
Estimation techniques | |
| |
| |
| |
Algorithmic cost modelling | |
| |
| |
| |
Project duration and staffing | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Quality management | |
| |
| |
| |
Quality assurance and standards | |
| |
| |
| |
Quality planning | |
| |
| |
| |
Quality control | |
| |
| |
| |
Software measurement and metrics | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Process improvement | |
| |
| |
| |
Process and product quality | |
| |
| |
| |
Process analysis and modelling | |
| |
| |
| |
Process measurement | |
| |
| |
| |
The SEI Process Capability Maturity Model | |
| |
| |
| |
Process classification | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Evolution | |
| |
| |
| |
Legacy systems | |
| |
| |
| |
Legacy system structures | |
| |
| |
| |
Legacy system design | |
| |
| |
| |
Legacy system assessment | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Software change | |
| |
| |
| |
Program evolution dynamics | |
| |
| |
| |
Software maintenance | |
| |
| |
| |
Architectural evolution | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Software re-engineering | |
| |
| |
| |
Source code translation | |
| |
| |
| |
Reverse engineering | |
| |
| |
| |
Program structure improvement | |
| |
| |
| |
Program modularisation | |
| |
| |
| |
Data re-engineering | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
| |
Configuration management | |
| |
| |
| |
Configuration management planning | |
| |
| |
| |
Change management | |
| |
| |
| |
Version and release management | |
| |
| |
| |
System building | |
| |
| |
| |
CASE tools for configuration management | |
| |
| |
Key points | |
| |
| |
Further reading | |
| |
| |
Exercises | |
| |
| |
References | |
| |
| |
Index | |