Skip to main content
  • Book
  • © 2021

Patterns in the Machine

A Software Engineering Guide to Embedded Development

Apress
  • Covers patterns for firmware and embedded software
  • Covers embedded software development without the hardware
  • Shows how to effectively use continuous integration and automated unit testing

Buy it now

Buying options

eBook USD 34.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book USD 44.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Other ways to access

This is a preview of subscription content, log in via an institution to check for access.

Table of contents (17 chapters)

  1. Front Matter

    Pages i-xix
  2. Introduction

    • John T. Taylor, Wayne T. Taylor
    Pages 1-8
  3. Core Concepts

    • John T. Taylor, Wayne T. Taylor
    Pages 9-24
  4. Design Theory for Embedded Programming

    • John T. Taylor, Wayne T. Taylor
    Pages 25-42
  5. Persistent Storage Detailed Design Example

    • John T. Taylor, Wayne T. Taylor
    Pages 43-62
  6. Software Architecture

    • John T. Taylor, Wayne T. Taylor
    Pages 63-82
  7. Unit Testing

    • John T. Taylor, Wayne T. Taylor
    Pages 83-96
  8. Functional Simulator

    • John T. Taylor, Wayne T. Taylor
    Pages 97-106
  9. Continuous Integration

    • John T. Taylor, Wayne T. Taylor
    Pages 107-118
  10. The Data Model Architecture

    • John T. Taylor, Wayne T. Taylor
    Pages 119-135
  11. Finite State Machines

    • John T. Taylor, Wayne T. Taylor
    Pages 137-152
  12. Documentation

    • John T. Taylor, Wayne T. Taylor
    Pages 153-162
  13. File Organization and Naming

    • John T. Taylor, Wayne T. Taylor
    Pages 163-173
  14. More About Late Binding

    • John T. Taylor, Wayne T. Taylor
    Pages 175-182
  15. Initialization and the Main Pattern

    • John T. Taylor, Wayne T. Taylor
    Pages 183-200
  16. More Best Practices

    • John T. Taylor, Wayne T. Taylor
    Pages 201-217
  17. PIM Thermostat Example

    • John T. Taylor, Wayne T. Taylor
    Pages 219-254
  18. The Tao of Development

    • John T. Taylor, Wayne T. Taylor
    Pages 255-264
  19. Back Matter

    Pages 265-293

About this book

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 project
  • Design and build functional simulators for an embedded project
  • Write production-quality software when hardware is not available
  • Use the Data Model architectural pattern to create a highly decoupled design and implementation
  • Understand the importance of defining the software architecture before implementation starts and how to do it
  • Discover why documentation is essential for an embedded project
  • Use 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.

Authors and Affiliations

  • Covington, USA

    John T. Taylor

  • Golden, USA

    Wayne T. Taylor

About the authors

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).

Bibliographic Information

Buy it now

Buying options

eBook USD 34.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book USD 44.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Other ways to access