Book description
This Expert Guide gives you the techniques and technologies in software engineering to optimally design and implement your embedded system. Written by experts with a solutions focus, this encyclopedic reference gives you an indispensable aid to tackling the day-to-day problems when using software engineering methods to develop your embedded systems.
With this book you will learn:
- The principles of good architecture for an embedded system
- Design practices to help make your embedded project successful
- Details on principles that are often a part of embedded systems, including digital signal processing, safety-critical principles, and development processes
- Techniques for setting up a performance engineering strategy for your embedded system software
- How to develop user interfaces for embedded systems
- Strategies for testing and deploying your embedded system, and ensuring quality development processes
- Practical techniques for optimizing embedded software for performance, memory, and power
- Advanced guidelines for developing multicore software for embedded systems
- How to develop embedded software for networking, storage, and automotive segments
- How to manage the embedded development process
Includes contributions from:
Frank Schirrmeister, Shelly Gretlein, Bruce Douglass, Erich Styger, Gary Stringham, Jean Labrosse, Jim Trudeau, Mike Brogioli, Mark Pitchford, Catalin Dan Udma, Markus Levy, Pete Wilson, Whit Waldo, Inga Harris, Xinxin Yang, Srinivasa Addepalli, Andrew McKay, Mark Kraeling and Robert Oshana.
- Road map of key problems/issues and references to their solution in the text
- Review of core methods in the context of how to apply them
- Examples demonstrating timeless implementation details
- Short and to- the- point case studies show how key ideas can be implemented, the rationale for choices made, and design guidelines and trade-offs
Table of contents
- Cover image
- Title page
- Table of Contents
- Copyright
- Software Engineering for Embedded Systems: A Roadmap
- Foreword to Software Engineering for Embedded Systems
- Acknowledgments
- About the Editors
- About the Authors
- Chapter 1. Software Engineering of Embedded and Real-Time Systems
-
Chapter 2. Embedded Systems Hardware/Software Co-Development
- Today’s embedded systems – an example
- HW/SW prototyping users
- HW/SW prototyping options
- Prototyping decision criteria
- Choosing the right prototype
- Industry design chain
- The need to change the design flow
- Different types of virtual prototypes
- A brief history of virtual prototypes
- The limits of proprietary offerings
- What makes virtual prototypes fast
- Standardization: the era of SystemC TLM-2.0
- Architecture virtual prototypes
- Software virtual prototypes
- Summary – the growing importance of virtualization
-
Chapter 3. Software Modeling for Embedded Systems
- When and why should you model your embedded system?
- Modeling
- What is a modeling language?
- Examples of modeling languages
- The V diagram promise
- So, why would you want to model your embedded system?
- When should you model your embedded system?
- Operational complexity
- Cost of defect versus when detected
- Large development teams require modeling
- Modeling is often the only choice
- So – modeling is great, but aren’t all models wrong?
- You have your prototype – now what?
- Conclusion
- Next steps – try it!
- References
- Chapter 4. Software Design Architecture and Patterns for Embedded Systems
-
Chapter 5. Real-Time Building Blocks: Events and Triggers
- Events and triggers
- Room temperature unit
- Event system
- Event handle
- Event methods
- Event data structure
- Reentrancy
- Event processing
- Integration
- Triggers
- Blinking LED
- Design idea
- Tick timer
- Trigger interface
- Trigger descriptor
- Data allocation
- SetTrigger
- IncTicks
- Making it reentrant
- Initialization
- Blink!
- Beep!
- Real-time aspects
- Summary and source code
- Chapter 6. Hardware’s Interface to Embedded Software
- Chapter 7. Embedded Software Programming and Implementation Guidelines
- Chapter 8. Embedded Operating Systems
-
Chapter 9. Software Reuse By Design in Embedded Systems
- Why does software reuse matter?
- What limits software reuse?
- Kinds of software reuse
- Implementing reuse by layers
- Going to the next level
- Introducing the component factory
- Factory hardware configuration
- Factory software configuration
- How the factory aids reusability
- RTOS agnosticism
- Arbitrary extensibility
- Conclusion
- References
- Chapter 10. Software Performance Engineering for Embedded Systems
- Chapter 11. Optimizing Embedded Software for Performance
- Chapter 12. Optimizing Embedded Software for Memory
- Chapter 13. Optimizing Embedded Software for Power
-
Chapter 14. Human Factors and User Interface Design for Embedded Systems
- Analysis phase of user interface design
- Virtual windows
- Data models using entity relationship diagrams (ERD)
- Analysis of virtual windows using a CREDO matrix
- Hueristic evaluation
- Gestalts
- Designing user interfaces with Model View Controller (MVC) architecture
- Safety-critical user interfaces
- References
- Bibliography
- Chapter 15. Embedded Software Quality, Integration and Testing Techniques
- Chapter 16. Software Development Tools for Embedded Systems
- Chapter 17. Multicore Software Development for Embedded Systems: This Chapter draws on Material from the Multicore Programming Practices Guide (MPP) from the Multicore Association
- Chapter 18. Safety-Critical Software Development
- Chapter 19. Intellectual Property
-
Chapter 20. Managing Embedded Software Development
- Capability maturity model integration
- The OSI model
- Software development
- Organization
- Program charter
- Stakeholders and the core team
- Product life-cycle management
- Portfolio management
- Project management life-cycle
- Project life-cycle
- Problem-solving
- Communications
- Abbreviations, symbols, acronyms
- Copyright acknowledgments
- References
- Chapter 21. Agile Development for Embedded Systems
- Chapter 22. Embedded Software for Automotive Applications
- Chapter 23. Programming for I/O and Storage
-
Chapter 24. Embedded Software for Networking Applications
- Introduction
- System architecture of network devices
- Multicore SoCs for networking
- Network programming models
- Structure of packet-processing software
- Network application programming techniques
- General performance techniques for network application programmers
- Linux operating system for embedded network devices
- Summary
- Chapter 25. Linux for Embedded Systems
-
Appendix 1. ‘C’ Syntax Coding Standard: Source Code Development
- Abstract
- Scope
- Definitions
- Rules and Conventions
- Complexity
- Problematic constructs
- Source and include file layouts
- Characteristics
- Appendix A – Approved standard abbreviations
- Appendix B – Suggested module names
- Appendix C – Source code template
- Appendix D – Standard include file template
- Appendix E – portable.h include file template
- Appendix F – Function template
- Appendix 2. On the C++ Programming Language for Embedded Software, Systems, and Platforms
- Case Study 1. Software Performance Engineering
-
Case Study 2. A User Interface: Police Command and Control System
- Introduction
- Police command and control system
- Essential use case
- Scenarios
- Hierarchical task analysis
- Primary interaction styles for the PC&C system
- Design approaches to overcome user limitations of cognition, perception and learning
- External cognition approaches to overcome user limitations
- Error messages and warnings for PC&CS
- Data model (entity relationship diagram) and virtual windows for PC&CS
- Identifying gestalts in PC&CS user interface design
- Data presentation techniques
- Usability testing on the first prototype
- Second iteration – low-fidelity prototype
- High-fidelity prototype
- Quick-start guide
- Case Study 3. Transitioning to Multicore
- Case Study 4. Software Engineering for Embedded Systems Quality and Metrics Program
- Index
Product information
- Title: Software Engineering for Embedded Systems
- Author(s):
- Release date: April 2013
- Publisher(s): Newnes
- ISBN: 9780124159419
You might also like
book
Software Engineering for Embedded Systems, 2nd Edition
Software Engineering for Embedded Systems: Methods, Practical Techniques, and Applications, Second Edition provides the techniques and …
book
Programming Embedded Systems, 2nd Edition
If you have programming experience and a familiarity with C--the dominant language in embedded systems--Programming Embedded …
book
Building Embedded Systems: Programmable Hardware
Develop the software and hardware you never think about. We're talking about the nitty-gritty behind the …
book
Real-Time Embedded Systems
This book integrates new ideas and topics from real time systems, embedded systems, and software engineering …