Embedded Software is too often almost completely custom software. No accepted standards for how Embedded Software should be designed exist; consequently, there are nearly as many designs as there are applications. Each is the brainchild of the best designer on hand using his experience and artistic skills to create his masterpiece. But, when the master is gone and his conventions lost or not properly understood the system degrades under enhancement and maintenance. Development of the next system will require a new master and a new design.
A need for a standard understandable architecture that can be reused from project to project has long been recognized. This architecture would be simple to grasp, have a common notation, utilize repeating design patterns, and be easy to use in various embedded applications within a domain. The architecture would lend itself to multiple-build development projects. Hardware and interface dependencies would be isolated from mission algorithms to make for less costly reconfigurations and upgrades.
The architecture to be presented has satisfied these needs and more on the Standard Missile-3 Aegis LEAP Intercept Project.
Characteristics of the architecture will be described in terms of the following: requirements allocation and mapping conventions for each layer, design patterns for each layer, naming conventions, layer-interface conventions, sequence of control, task assignments, task priorities, external interface conventions, and internal interface conventions. This architecture characterizes a Seniority-Hierarchical-Layered approach. In this approach each layer is, in essence, a virtual machine for the layer(s) above in the hierarchy.
Benefits to using this architecture will be described in terms of build planning, understandability of the design for requirements and customer personnel, less time in detailed design, less time in software integration, ease of maintenance and enhancement, and reuse of the architecture from project to project.
Experience in the use of this architecture on the APL-assisted Standard Missile-3 Aegis LEAP Intercept Program will be described with examples. These include architecture charts, Buhr diagrams of subsystems, charts showing architecture build-up sequences, some data on performance, and issues with the runtime kernel.
The presentation will conclude with a discussion on the topic of reuse, in particular, architecture reuse. This discussion will address what is needed, in terms of a Domain Analysis, to define an architecture generic to an application domain, and data then needed to instantiate the architecture for use.