Author_Institution :
Comput. Eng. & Networks Lab., Swiss Fed. Inst. of Technol., Zurich, Switzerland
Abstract :
Real-time requirements, space constraints, and the tight interlock of functional and interface parts in embedded systems often degrade software reuse to scavenging components from previous work. The presented strategy separates concerns, supports development on a high level of abstraction, and relies on the assistance of code generators. This paper points out the benefits of this approach to software reuse. An architectural view separates functional aspects of a system from their connection to the environment. The functionality is modeled as a collection of cooperating extended state machines; it is attached to a physical environment using access routines in a static schedule. Appropriate tools favor the creation of detachable, self-contained components. Functional models that reflect the behavior of a component in the environment are especially fit candidates for finding generic solutions to recurrent problems. For example, a mechanical switch simply corresponds to its counterpart in the model, which will be used with the same confidence as its match. Elements needed to attach a functional solution to specific environments are difficult to reuse. Together with a code generator that creates efficient, deterministic and balanced schedules, such components can be included unaltered in various environments. These measures open up new possibilities for reuse, and because they help to raise the abstraction level for the development work, both software quality and developer productivity improve
Keywords :
embedded systems; program compilers; software quality; software reusability; abstraction level; architectural view; balanced schedules; code generation; code generators; component reuse; cooperating extended state machines; detachable self-contained components; deterministic schedules; developer productivity improvement; embedded systems; functional aspects; mechanical switch; software quality improvement; software reuse; static schedule; Computer interfaces; Computer networks; Embedded computing; Embedded system; Intelligent networks; Laboratories; Productivity; Software quality; Space technology; Switches;