| Preface | p. xiii |
| Foundations | p. 1 |
| Real-Time Systems--Setting the Scene | p. 3 |
| Categorizing computer systems | p. 4 |
| Real-time computer systems | p. 6 |
| The computing elements of real-time systems | p. 17 |
| Software for real-time applications--some general comments | p. 30 |
| Review | p. 32 |
| References and further reading | p. 33 |
| The Search for Dependable Software | p. 34 |
| What do we want in our software? | p. 35 |
| Software errors | p. 37 |
| The basics of good software | p. 49 |
| A final comment | p. 57 |
| Review | p. 58 |
| References and further reading | p. 58 |
| First Steps--Requirements Analysis and Specification | p. 60 |
| The software life-cycle | p. 61 |
| The importance of the requirements stage | p. 70 |
| Making mistakes--sources and causes | p. 72 |
| Practical approaches to analysis and specification | p. 77 |
| Communication aspects--the role of prototyping | p. 101 |
| Review | p. 112 |
| Exercises | p. 113 |
| References and further reading | p. 113 |
| Software and Program Design Concepts | p. 115 |
| Design fundamentals | p. 116 |
| The elements of modular design | p. 127 |
| Program control structures--the influence of structured programming | p. 143 |
| Functional structuring of software designs | p. 150 |
| Object-oriented design | p. 156 |
| Data flow design | p. 181 |
| Review | p. 190 |
| Exercises | p. 191 |
| References and further reading | p. 191 |
| Operating Systems for Real-Time Applications | p. 193 |
| Why use an operating system? | p. 194 |
| Basic features of real-time operating systems | p. 196 |
| Scheduling--concepts | p. 200 |
| Scheduling--implementation | p. 207 |
| Control of shared resources--mutual exclusion | p. 212 |
| Inter-task communication | p. 249 |
| Memory management | p. 257 |
| Distributed systems | p. 265 |
| Analysis and review of scheduling policies | p. 271 |
| Review | p. 294 |
| Exercises | p. 295 |
| References and further reading | p. 297 |
| Designing and Developing Real-Time Software | p. 299 |
| Practical Aspects of Real-Time Operating Systems | p. 301 |
| Operating systems--basic structures and features | p. 302 |
| Inter-processor communication | p. 313 |
| File handling | p. 320 |
| Graphical user interfaces in embedded systems | p. 322 |
| Performance and benchmarking of RTOSs | p. 329 |
| Development support | p. 350 |
| POSIX--Portable Operating System Interface | p. 356 |
| Review | p. 359 |
| References and further reading | p. 360 |
| Diagramming--An Introduction | p. 361 |
| Diagrams--why? | p. 362 |
| The essentials of software diagrams | p. 372 |
| Review | p. 379 |
| Exercises | p. 379 |
| References and further reading | p. 379 |
| Practical Diagramming Methods | p. 380 |
| Introduction | p. 381 |
| Diagrams for structured and data flow designs | p. 382 |
| UML diagrams for object-oriented designs | p. 397 |
| Extensions, variations and project-specific diagrams | p. 420 |
| Diagrams and the design process | p. 426 |
| Review | p. 428 |
| Exercises | p. 428 |
| References and further reading | p. 429 |
| Designing and Constructing Software--Code-Related Issues | p. 430 |
| Fundamental design and construction methods | p. 431 |
| Code development and packaging | p. 435 |
| Important features of programming languages | p. 446 |
| Choosing a high-level language for embedded systems | p. 486 |
| Review | p. 494 |
| References and further reading | p. 495 |
| Software Analysis and Design--Methods and Methodologies | p. 496 |
| The development process | p. 497 |
| Requirements analysis using viewpoint techniques--CORE | p. 499 |
| Yourdon Structured Method | p. 510 |
| Object-oriented analysis and design | p. 518 |
| Review | p. 536 |
| References and further reading | p. 537 |
| Implementation and Performance Issues | p. 539 |
| Analysing and Testing Source Code | p. 541 |
| Introduction | p. 542 |
| Static analysis | p. 546 |
| Source code metrics--code size, content and complexity | p. 551 |
| Dynamic analysis--testing and coverage analysis | p. 559 |
| Integration testing | p. 579 |
| Metrics for OO designs | p. 588 |
| Review | p. 595 |
| References and further reading | p. 596 |
| Development Tools | p. 597 |
| The development process | p. 598 |
| Software debugging--an overview | p. 604 |
| Software debugging on the host | p. 609 |
| Software debugging in the target--software-based techniques | p. 627 |
| Software debugging in the target--hardware-based methods | p. 633 |
| Software debugging in the target--combined hardware/software techniques | p. 640 |
| Debugging in host-as-target combinations | p. 645 |
| In-target analysis tools | p. 648 |
| Installing code into the target--non-volatile software (firmware) | p. 658 |
| Integrated development environments | p. 662 |
| Review | p. 665 |
| References and further reading | p. 667 |
| Mission-Critical and Safety-Critical Systems | p. 668 |
| Introduction | p. 669 |
| System specification aspects | p. 675 |
| Numerical issues | p. 683 |
| Application software aspects | p. 700 |
| Real-world interfacing | p. 704 |
| Operating systems aspects | p. 711 |
| Processor problems | p. 718 |
| Hardware-based fault tolerance | p. 722 |
| Review | p. 733 |
| References and further reading | p. 734 |
| Performance Engineering | p. 736 |
| Why performance engineering is important | p. 737 |
| Performance engineering--requirements, targets and achievables | p. 744 |
| Top-down (requirements-driven) performance modelling | p. 746 |
| Bottom-up (results-driven) performance modelling | p. 753 |
| Middle-out (risk-driven) performance modelling | p. 754 |
| Some practical issues in performance engineering | p. 758 |
| Review | p. 761 |
| References and further reading | p. 761 |
| Documentation | p. 762 |
| Documentation--what and why? | p. 763 |
| Software life-cycle documentation--overview | p. 769 |
| System functional specifications | p. 771 |
| Software system specifications | p. 775 |
| Source code aspects | p. 778 |
| Configuration management and version control | p. 784 |
| Review | p. 786 |
| Applicable standards | p. 786 |
| References and further reading | p. 787 |
| Glossary | p. 788 |
| Index | p. 791 |
| Table of Contents provided by Syndetics. All Rights Reserved. |