Discover how to apply software engineering patterns to develop more robust firmware faster than traditional embedded development approaches. In the authors' experience, traditional embedded software projects tend towards monolithic applications that are optimized for their target hardware platforms. This leads to software that is fragile in terms of extensibility and difficult to test without fully integrated software and hardware. Patterns in the Machine focuses on creating loosely coupled implementations that embrace both change and testability. This book illustrates how implementing…mehr
Discover how to apply software engineering patterns to develop more robust firmware faster than traditional embedded development approaches. In the authors' experience, traditional embedded software projects tend towards monolithic applications that are optimized for their target hardware platforms. This leads to software that is fragile in terms of extensibility and difficult to test without fully integrated software and hardware. Patterns in the Machine focuses on creating loosely coupled implementations that embrace both change and testability.
This book illustrates how implementing continuous integration, automated unit testing, platform-independent code, and other best practices that are not typically implemented in the embedded systems world is not just feasible but also practical for today's embedded projects.
After reading this book, you will have a better idea of how to structure your embedded software projects. You will recognize that while writing unit tests, creating simulators, and implementing continuous integration requires time and effort up front, you will be amply rewarded at the end of the project in terms of quality, adaptability, and maintainability of your code.
What You Will Learn Incorporate automated unit testing into an embedded projectDesign and build functional simulators for an embedded projectWrite production-quality software when hardware is not availableUse the Data Model architectural pattern to create a highly decoupled design and implementationUnderstand the importance of defining the software architecture before implementation starts and how to do itDiscover why documentation is essential for an embedded projectUse finite state machines in embedded projects Who This Book Is For Mid-level or higher embedded systems (firmware) developers, technical leads, software architects, and development managers.
John Taylor has been an embedded developer for over 29 years. He has worked as a firmware engineer, technical lead, system engineer, software architect, and software development manager for companies such as Ingersoll Rand, Carrier, Allen-Bradley, Hitachi Telecom, Emerson, and several start-up companies. He has developed firmware for products that include HVAC control systems, telecom SONET nodes, IoT devices, micro code for communication chips, and medical devices. He is the co-author of five US patents and holds a bachelor's degree in mathematics and computer science. Wayne Taylor has been a technical writer for 25 years. He has worked with companies such as IBM, Novell, Compaq, HP, EMC, SanDisk, and Western Digital. He has documented compilers, LAN driver development, storage system deployment and maintenance, and dozens of low-level and system-management APIs. He also has ten years of experience as a software development manager. He is the co-author of two US patents and holds master's degrees in English and human factors. He is a co-author of OS/2 and NetWare Programming (Van Nostrand Reinhold, 1995).
Inhaltsangabe
1: Introduction.- 2: Core Concepts.- 3: Design Theory For Embedded Programming.- 4: Persistent Storage Example.- 5: Software Architecture.- 6: Automated Unit Testing.- 7: Functional Simulator.- 8: Continuous Integration.- 9: Data Model.- 10: Finite State Machines.- 11: Documentation.- 12: File Organization and Naming.- 13: More About Late Bindings.- 14: Initialization and Main.- 15: More Best Practices.- 16: PIM Thermostat Example.- 17: The Tao of Development.- Appendix A: Terminology.- Appendix B: UML Notation for State Machines.- Appendix C: UML Cheat Sheet.- Appendix D: Why C++.- Appendix E: Package Management and Outcast.- Appendix F: Requirements vs. Design Statements.
1: Introduction.- 2: Core Concepts.- 3: Design Theory For Embedded Programming.- 4: Persistent Storage Example.- 5: Software Architecture.- 6: Automated Unit Testing.- 7: Functional Simulator.- 8: Continuous Integration.- 9: Data Model.- 10: Finite State Machines.- 11: Documentation.- 12: File Organization and Naming.- 13: More About Late Bindings.- 14: Initialization and Main.- 15: More Best Practices.- 16: PIM Thermostat Example.- 17: The Tao of Development.- Appendix A: Terminology.- Appendix B: UML Notation for State Machines.- Appendix C: UML Cheat Sheet.- Appendix D: Why C++.- Appendix E: Package Management and Outcast.- Appendix F: Requirements vs. Design Statements.
1: Introduction.- 2: Core Concepts.- 3: Design Theory For Embedded Programming.- 4: Persistent Storage Example.- 5: Software Architecture.- 6: Automated Unit Testing.- 7: Functional Simulator.- 8: Continuous Integration.- 9: Data Model.- 10: Finite State Machines.- 11: Documentation.- 12: File Organization and Naming.- 13: More About Late Bindings.- 14: Initialization and Main.- 15: More Best Practices.- 16: PIM Thermostat Example.- 17: The Tao of Development.- Appendix A: Terminology.- Appendix B: UML Notation for State Machines.- Appendix C: UML Cheat Sheet.- Appendix D: Why C++.- Appendix E: Package Management and Outcast.- Appendix F: Requirements vs. Design Statements.
1: Introduction.- 2: Core Concepts.- 3: Design Theory For Embedded Programming.- 4: Persistent Storage Example.- 5: Software Architecture.- 6: Automated Unit Testing.- 7: Functional Simulator.- 8: Continuous Integration.- 9: Data Model.- 10: Finite State Machines.- 11: Documentation.- 12: File Organization and Naming.- 13: More About Late Bindings.- 14: Initialization and Main.- 15: More Best Practices.- 16: PIM Thermostat Example.- 17: The Tao of Development.- Appendix A: Terminology.- Appendix B: UML Notation for State Machines.- Appendix C: UML Cheat Sheet.- Appendix D: Why C++.- Appendix E: Package Management and Outcast.- Appendix F: Requirements vs. Design Statements.
Es gelten unsere Allgemeinen Geschäftsbedingungen: www.buecher.de/agb
Impressum
www.buecher.de ist ein Internetauftritt der buecher.de internetstores GmbH
Geschäftsführung: Monica Sawhney | Roland Kölbl | Günter Hilger
Sitz der Gesellschaft: Batheyer Straße 115 - 117, 58099 Hagen
Postanschrift: Bürgermeister-Wegele-Str. 12, 86167 Augsburg
Amtsgericht Hagen HRB 13257
Steuernummer: 321/5800/1497