Select Page

Embedded Software Manager Pattern – Part 1: Establishing core tasks in a scalable way within the software

Embedded software must coordinate various central tasks across the entire software. The classic example is initialization, which must occur at all levels of the software. Upon closer examination, many more of these software-wide actions can be identified, depending on the product. In Part 1 of this article, we introduce the Manager Pattern for coordinating these tasks within the software.

The Manager Pattern is highly scalable and therefore applicable to very simple software as well as the most complex architectures. The pattern is independent of the programming language and supports both procedural and object-oriented software development. To fully understand this series of articles, knowledge of... UML as well as procedural and object-oriented programming in C and C++ advantageous.

Central task in the software

For the instantiation and initialization of objects in software, design patterns such as "Abstract Factory" and "Builder" have already been published as "creational patterns" by Erich Gama et al. Furthermore, in Internet the „Manager Design Pattern“, also known as „Manager-Managed Design Pattern“ or „Managed Object Design Pattern“.

The Embedded Software Manager pattern presented here is responsible for all tasks distributed within the software that require central coordination. The number and variety of tasks depend on the system/software requirements that the product must meet. The following tasks are considered:

Table 1: Tasks and function calls

Principle of the Embedded Software Manager Pattern

In very simple software, the Manager pattern consists of just a SoftwareManager class or module that performs the aforementioned tasks. As the software architecture grows, the architectural elements (AEs) at each architecture level (architectureLevel = x) receive their own AEnManagers, which handle the tasks decentrally for their respective architectural element.

Figure 1: Principle of the Manager Pattern

The various architectural elements are named < > Typifiable (e.g., software layer, software subsystem). At deeper architectural hierarchies, individual type names are often no longer identifiable. For this reason, the architectural hierarchies are not labeled with type names here; instead, the architecture level is specified.

Therefore, the Manager Pattern is applicable to architectures with any hierarchical or flat growth pattern. The managers are capable of communicating with each other.

Scalability of the Embedded Software Manager Pattern

An architectural element AE1.1 can theoretically contain an unlimited number of 0…z further architectural elements at the same level, which in turn are equipped with managers.

Figure 2: Manager Pattern with multiple architectural elements on the same level

The number of hierarchy levels for architectural elements is theoretically unlimited, from 1…x or 1…y. Different numbers of hierarchy levels are possible depending on the architectural branch.

Figure 3: Manager Pattern with different architectural element hierarchy levels

Regardless of the UML notation, the architectural levels and the number of architectural elements in each level can be very well represented in a tree diagram. The branch nodes represent the manager classes/modules.

Figure 4: Tree diagram of the architectural levels

The lowest architecture level, 0, is assigned to main(), while level 1 is reserved for the higher-level SoftwareManager. The actual architecture levels 2…x, with their respective AEnManagers, begin after this.

In the Part 2 of this article We will introduce the managers and their functionalities in detail.

Gain the right knowledge about how to apply the Embedded Software Manager Pattern in your software architectures and software design. MicroConsult offers you professional services in this area. Training and coaching all about the topics Analysis, design and architecture and much more.

Further information

Part 2 of the article

MicroConsult expertise in embedded software development

MicroConsult training on the topic:

All training courses & dates at a glance

MicroConsult Newsletter

With the MicroConsult newsletter, you'll stay on the pulse of the embedded world. Look forward to proven practical knowledge, real professional tips, and current events – directly from our experts for your project success.

Subscribe now!

Published by

Thomas Batt

Thomas Batt