This text provides a firm foundation in the knowledge, skills and techniques needed to develop and produce real-time, and in particular, embedded systems. It provides the arguments, examples, techniques and methodologies to demonstrate that the discipline of software engineering has much to offer the developer of real-time software. Written in an accessible style and complemented by numerous diagrams, it guides the reader through the steps of a total design approach: from initial definition of the task, through fundamentals of analysis, specification and design, to design methods and development tools, and finally documentation procedures. The comprehensive coverage and real-world perspective make the book accessible and appealing to both beginners and experienced designers. Features: covers both the fundamentals of software design and modern design methodologies, provides comparisons of different development methods, tools and languages, blends theory and practical experience together, emphasizes the use of diagrams and is highly illustrated.