Chapter 2. Creating a System Architecture
Even small embedded systems have so many details that it can be difficult to recognize where patterns can be applied. You’ll need a good view of the whole system to understand which pieces have straightforward solutions and which have hidden dependencies. A good design is created by starting with an OK design and then improving on it, ideally before you start implementing it. And a system architecture diagram is a good way to view the system and start designing the software (or understanding the pile of code handed to you).
A product definition is seldom fixed at the start, so you may go round and round to hammer out ideas. Once the product functions have been sketched out on a whiteboard, you can start to think about the software architecture. The hardware folks are doing the same thing (hopefully in conjunction with you as the software designer, though their focus may be a little different). In short order, you’ll have a software architecture and a draft schematic. Depending on your experience level, the first few projects you design will likely be based on other projects, so the hardware will be based on an existing platform with some changes.
In this chapter, we’ll look at different ways of viewing the system in an effort to design better embedded software. We’ll create a few diagrams to describe what our system looks like and to identify how we should architect our software. In addition to better understanding the system, the goal ...