Preface | p. v |
Overview | p. 1 |
Introduction | p. 3 |
FAQs about software engineering | p. 5 |
Professional and ethical responsibility | p. 14 |
Key points | p. 17 |
Further reading | p. 18 |
Exercises | p. 18 |
Computer-based system engineering | p. 20 |
Emergent system properties | p. 22 |
Systems and their environment | p. 24 |
System modelling | p. 26 |
The system engineering process | p. 29 |
System procurement | p. 37 |
Key points | p. 39 |
Further reading | p. 40 |
Exercises | p. 40 |
Software processes | p. 42 |
Software process models | p. 44 |
Process iteration | p. 51 |
Software specification | p. 55 |
Software design and implementation | p. 56 |
Software validation | p. 60 |
Software evolution | p. 63 |
Automated process support | p. 63 |
Key points | p. 68 |
Further reading | p. 68 |
Exercises | p. 69 |
Project management | p. 71 |
Management activities | p. 73 |
Project planning | p. 75 |
Project scheduling | p. 78 |
Risk management | p. 84 |
Key points | p. 90 |
Further reading | p. 91 |
Exercises | p. 92 |
Requirements | p. 95 |
Software requirements | p. 97 |
Functional and non-functional requirements | p. 100 |
User requirements | p. 106 |
System requirements | p. 109 |
The software requirements document | p. 115 |
Key points | p. 119 |
Further reading | p. 119 |
Exercises | p. 120 |
Requirements engineering processes | p. 121 |
Feasibility studies | p. 123 |
Requirements elicitation and analysis | p. 124 |
Requirements validation | p. 137 |
Requirements management | p. 139 |
Key points | p. 145 |
Further reading | p. 145 |
Exercises | p. 146 |
System models | p. 148 |
Context models | p. 150 |
Behavioural models | p. 153 |
Data models | p. 158 |
Object models | p. 160 |
CASE workbenches | p. 166 |
Key points | p. 168 |
Further reading | p. 169 |
Exercises | p. 169 |
Software prototyping | p. 171 |
Prototyping in the software process | p. 174 |
Rapid prototyping techniques | p. 180 |
User interface prototyping | p. 188 |
Key points | p. 189 |
Further reading | p. 190 |
Exercises | p. 190 |
Formal specification | p. 192 |
Formal specification in the software process | p. 194 |
Interface specification | p. 197 |
Behavioural specification | p. 204 |
Key points | p. 209 |
Further reading | p. 210 |
Exercises | p. 210 |
Design | p. 213 |
Architectural design | p. 215 |
System structuring | p. 219 |
Control models | p. 224 |
Modular decomposition | p. 229 |
Domain-specific architectures | p. 233 |
Key points | p. 236 |
Further reading | p. 237 |
Exercises | p. 237 |
Distributed systems architectures | p. 239 |
Multiprocessor architectures | p. 243 |
Client-server architectures | p. 244 |
Distributed object architectures | p. 249 |
CORBA | p. 252 |
Key points | p. 257 |
Further reading | p. 258 |
Exercises | p. 258 |
Object-oriented design | p. 260 |
Objects and object classes | p. 262 |
An object-oriented design process | p. 267 |
Design evolution | p. 280 |
Key points | p. 282 |
Further reading | p. 282 |
Exercises | p. 283 |
Real-time software design | p. 285 |
System design | p. 287 |
Real-time executives | p. 291 |
Monitoring and control systems | p. 295 |
Data acquisition systems | p. 300 |
Key points | p. 303 |
Further reading | p. 303 |
Exercises | p. 304 |
Design with reuse | p. 306 |
Component-based development | p. 310 |
Application families | p. 318 |
Design patterns | p. 322 |
Key points | p. 325 |
Further reading | p. 325 |
Exercises | p. 326 |
User interface design | p. 327 |
User interface design principles | p. 330 |
User interaction | p. 332 |
Information presentation | p. 334 |
User support | p. 340 |
Interface evaluation | p. 345 |
Key points | p. 347 |
Further reading | p. 348 |
Exercises | p. 348 |
Critical Systems | p. 351 |
Dependability | p. 353 |
Critical systems | p. 356 |
Availability and reliability | p. 359 |
Safety | p. 364 |
Security | p. 367 |
Key points | p. 369 |
Further reading | p. 369 |
Exercises | p. 370 |
Critical systems specification | p. 371 |
Software reliability specification | p. 373 |
Safety specification | p. 379 |
Security specification | p. 387 |
Key points | p. 389 |
Further reading | p. 389 |
Exercises | p. 390 |
Critical systems development | p. 392 |
Fault minimisation | p. 393 |
Fault tolerance | p. 400 |
Fault-tolerant architectures | p. 410 |
Safe system design | p. 413 |
Key points | p. 414 |
Further reading | p. 415 |
Exercises | p. 415 |
Verification and Validation | p. 417 |
Verification and validation | p. 419 |
Verification and validation planning | p. 423 |
Software inspections | p. 425 |
Automated static analysis | p. 431 |
Cleanroom software development | p. 434 |
Key points | p. 437 |
Further reading | p. 438 |
Exercises | p. 438 |
Software testing | p. 440 |
Defect testing | p. 442 |
Integration testing | p. 452 |
Object-oriented testing | p. 458 |
Testing workbenches | p. 462 |
Key points | p. 464 |
Further reading | p. 465 |
Exercises | p. 466 |
Critical systems validation | p. 467 |
Formal methods and critical systems | p. 469 |
Reliability validation | p. 470 |
Safety assurance | p. 476 |
Security assessment | p. 483 |
Key points | p. 484 |
Further reading | p. 484 |
Exercises | p. 485 |
Management | p. 487 |
Managing people | p. 489 |
Limits to thinking | p. 490 |
Group working | p. 497 |
Choosing and keeping people | p. 503 |
The People Capability Maturity Model | p. 506 |
Key points | p. 508 |
Further reading | p. 509 |
Exercises | p. 509 |
Software cost estimation | p. 511 |
Productivity | p. 513 |
Estimation techniques | p. 518 |
Algorithmic cost modelling | p. 520 |
Project duration and staffing | p. 531 |
Key points | p. 533 |
Further reading | p. 533 |
Exercises | p. 534 |
Quality management | p. 535 |
Quality assurance and standards | p. 539 |
Quality planning | p. 544 |
Quality control | p. 546 |
Software measurement and metrics | p. 547 |
Key points | p. 555 |
Further reading | p. 555 |
Exercises | p. 556 |
Process improvement | p. 557 |
Process and product quality | p. 560 |
Process analysis and modelling | p. 562 |
Process measurement | p. 566 |
The SEI Process Capability Maturity Model | p. 568 |
Process classification | p. 573 |
Key points | p. 576 |
Further reading | p. 576 |
Exercises | p. 577 |
Evolution | p. 579 |
Legacy systems | p. 581 |
Legacy system structures | p. 583 |
Legacy system design | p. 587 |
Legacy system assessment | p. 592 |
Key points | p. 598 |
Further reading | p. 599 |
Exercises | p. 599 |
Software change | p. 601 |
Program evolution dynamics | p. 603 |
Software maintenance | p. 605 |
Architectural evolution | p. 614 |
Key points | p. 620 |
Further reading | p. 620 |
Exercises | p. 621 |
Software re-engineering | p. 622 |
Source code translation | p. 626 |
Reverse engineering | p. 628 |
Program structure improvement | p. 629 |
Program modularisation | p. 632 |
Data re-engineering | p. 634 |
Key points | p. 638 |
Further reading | p. 639 |
Exercises | p. 639 |
Configuration management | p. 641 |
Configuration management planning | p. 644 |
Change management | p. 647 |
Version and release management | p. 650 |
System building | p. 655 |
CASE tools for configuration management | p. 656 |
Key points | p. 660 |
Further reading | p. 661 |
Exercises | p. 661 |
References | p. 663 |
Index | p. 679 |
Table of Contents provided by Syndetics. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.