Generative programming for embedded systems

  • Authors:
  • Janos Sztipanovits;Gabor Karsai

  • Affiliations:
  • Vanderbilt University, Nashville, TN;Vanderbilt University, Nashville, TN

  • Venue:
  • Proceedings of the 4th ACM SIGPLAN international conference on Principles and practice of declarative programming
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

Composition and component-based design are key tools of modern software engineering for managing complexity. The concept of component-based design is straightforward: systems are built by composing software components with precisely defined interfaces using standardized interconnection mechanisms. "Plug-and-play" construction is supported by some underlying composition framework, such as CORBA, which facilitates the component interactions by providing standard services such as request broker, interface repository and others. Unfortunately, this solution tends to work only for building systems with a giant component using small "plug-ins" or for very small systems with a few components.The success of building applications based on a giant component is the result of strong restrictions on plug-in-s and their interaction: the dominant component (such as databases or web browsers) preserves the overall design integrity. In case of small systems, the system designers can preserve design integrity without extensive tool support. The problems of software composition for embedded systems are even harder. Embedded computers are surrounded by physical processes: they receive their inputs from sensors and send their outputs to actuators. Embedded computing devices, viewed from their sensor and actuator interfaces, act like physical processes with dynamics, noise, fault, size, power and other physical characteristics.It is not surprising that using current software technology, logical/functional composability does not imply physical composability. In fact, physical properties are not composable, rather, they appear as cross-cutting constraints in the development process. .Our vision with Model-Integrated Computing (MIC) is to answer the composition challenges of embedded systems the following way:.Modeling: The software development paradigm is changing from the use of dominantly imperative programming languages to dominantly declarative, Domain-Specific Modeling Languages (DSML). Complexity is managed by the use of multiple-view modeling and model analysis techniques.Model-Based Generators: The tight relationship between the model-based design and the modeled system is ensured by the extensive use of model-based generators, which translate the synthesized and verified models into code and other artifacts that form the application.The MIC toolset of ISIS has significant progress in implementing this vision.