Composing domain-specific physical models with general-purpose software modules in embedded control software

A considerable portion of software systems today are adopted in the embedded control domain. Embedded control software deals with controlling a physical system, and as such models of physical characteristics become part of the embedded control software. In current practices, usually general-purpose languages (GPL), such as C/C++ are used for embedded systems development. Although a GPL is suitable for expressing general-purpose computation, it falls short in expressing the models of physical characteristics as desired. This reduces not only the readability of the code but also hampers reuse due to the lack of dedicated abstractions and composition operators. Moreover, domain-specific static and dynamic checks may not be applied effectively. There exist domain-specific modeling languages (DSML) and tools to specify models of physical characteristics. Although they are commonly used for simulation and documentation of physical systems, they are often not used to implement embedded control software. This is due to the fact that these DSMLs are not suitable to express the general-purpose computation and they cannot be easily composed with other software modules that are implemented in GPL. This paper presents a novel approach to combine a DSML to model physical characteristics and a GPL to implement general-purpose computation. The composition filters model is used to compose models specified in the DSML with modules specified in the GPL at the abstraction level of both languages. As such, this approach combines the benefits of using a DSML to model physical characteristics with the freedom of a GPL to implement general-purpose computation. The approach is illustrated using two industrial case studies from the printing systems domain.

[1]  Peter Zoeteweij,et al.  Automated Fault Diagnosis in Embedded Systems , 2008, 2008 Second International Conference on Secure System Integration and Reliability Improvement.

[2]  M. h. j. Glandrup Extending C++ using the concepts of composition filters , 1995 .

[3]  Ann Q. Gates,et al.  A taxonomy and catalog of runtime software-fault monitoring tools , 2004, IEEE Transactions on Software Engineering.

[4]  Arjan J. de Roo,et al.  Managing Software Complexity of Adaptive Systems , 2012 .

[5]  Christoph Bockisch,et al.  Applying the Composition Filter Model for Runtime Verification of Multiple-Language Software , 2009, 2009 20th International Symposium on Software Reliability Engineering.

[6]  Nissim Francez,et al.  Script: A Communication Abstraction Mechanism and Its Verification , 1989, Sci. Comput. Program..

[7]  Kenneth D. Forbus Qualitative Process Theory , 1984, Artificial Intelligence.

[8]  Akinori Yonezawa,et al.  Abstracting Object Interactions Using Composition Filters , 1993, ECOOP Workshop.

[9]  Philip Koopman,et al.  Embedded system design issues (the rest of the story) , 1996, Proceedings International Conference on Computer Design. VLSI in Computers and Processors.

[10]  Hasan Sözer,et al.  Runtime Verification of Domain-Specific Models of Physical Characteristics in Control Software , 2011, 2011 Fifth International Conference on Secure Software Integration and Reliability Improvement.

[11]  Farhad Arbab,et al.  Coordination Models and Languages , 1998, Adv. Comput..

[12]  Anand R. Tripathi,et al.  Data abstraction mechanisms in SINA/ST , 1988, OOPSLA '88.

[13]  Edward A. Lee,et al.  Taming heterogeneity - the Ptolemy approach , 2003, Proc. IEEE.

[14]  Thomas Ledoux,et al.  Supporting AOP Using Reflection , 2003 .

[15]  Christoph Bockisch,et al.  An efficient and flexible implementation of aspect-oriented languages , 2008, Ausgezeichnete Informatikdissertationen.

[16]  Lodewijk Bergmans,et al.  Compose*: a Language- and Platform-Independent Aspect Compiler for Composition Filters , 2008 .

[17]  Lodewijk Bergmans,et al.  An Object-Oriented Language-Database Integration Model: The Composition-Filters Approach , 1992, ECOOP.

[18]  A. J. de Roo Towards More Robust Advice: Message Flow Analysis for Composition Filters and its Application , 2007 .

[19]  Alberto L. Sangiovanni-Vincentelli,et al.  Metamodels in Europe: Languages, Tools, and Applications , 2009, IEEE Design & Test of Computers.

[20]  Ian M. Holland,et al.  Specifying Reusable Components Using Contracts , 1992, ECOOP.

[21]  Jayadev Misra,et al.  The Orc Programming Language , 2009, FMOODS/FORTE.

[22]  Thomas A. Henzinger,et al.  From control models to real-time code using Giotto , 2003 .

[23]  Sandeep Neema,et al.  Model-integrated Tools for the Design of Dynamically Reconfigurable Systems , 2000, VLSI Design.

[24]  Hideaki Takeda,et al.  Physical concept ontology for the knowledge intensive engineering framework , 2004, Adv. Eng. Informatics.

[25]  Arie van Deursen,et al.  Little languages: little maintenance , 1998 .

[26]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[27]  K. G. van den Berg,et al.  A Conceptual Formalization of Crosscutting in AOSD , 2005 .

[28]  J. C. Wichman Composej: the development of a preprocessor to facilitate composition filters in the java language , 1999 .

[29]  Stefan Van Baelen,et al.  CoConES: An Approach for Components and Contracts in Embedded Systems , 2005, Component-Based Software Development for Embedded Systems.

[30]  Robert Biddle,et al.  Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems, languages and applications , 2007, OOPSLA.

[31]  Johannes F. Broenink,et al.  Modelling, Simulation and Analysis with 20-Sim , 1997 .

[32]  Grigore Rosu,et al.  Mop: an efficient and generic runtime verification framework , 2007, OOPSLA.

[33]  Peter Zoeteweij,et al.  Spectrum-Based Multiple Fault Localization , 2009, 2009 IEEE/ACM International Conference on Automated Software Engineering.

[34]  Jasen Markovski,et al.  A state-based framework for supervisory control synthesis and verification , 2010, 49th IEEE Conference on Decision and Control (CDC).

[35]  G. Provan,et al.  The Lydia Approach to Combinational Model-Based Diagnosis , 2009 .

[36]  Robert H. Bishop Modern Control Systems Analysis and Design Using Matlab , 1993 .

[37]  Ramon R. H. Schiffelers,et al.  Supervisory control synthesis for a patient support system , 2009, 2009 European Control Conference (ECC).

[38]  Thomas Ledoux,et al.  Aspect-Oriented Software Development , 2003 .

[39]  Raymond Reiter,et al.  A Theory of Diagnosis from First Principles , 1986, Artif. Intell..

[40]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[41]  Francisco Curbera,et al.  Web Services Business Process Execution Language Version 2.0 , 2007 .

[42]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[43]  Brian C. Williams,et al.  Diagnosing Multiple Faults , 1987, Artif. Intell..

[44]  Aniruddha S. Gokhale,et al.  An Approach for Supporting Aspect-Oriented Domain Modeling , 2003, GPCE.

[45]  Tim Sheard,et al.  A software engineering experiment in software component generation , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[46]  Koushik Sen,et al.  Rule-Based Runtime Verification , 2004, VMCAI.

[47]  Mehmet Aksit,et al.  Principles and Design Rationale of Composition Filters , 2004 .

[48]  Ian M. Holland,et al.  Contracts: specifying behavioral compositions in object-oriented systems , 1990, OOPSLA/ECOOP '90.

[49]  Pattie Maes,et al.  Concepts and experiments in computational reflection , 1987, OOPSLA '87.

[50]  Hasan Sözer,et al.  An architectural style for optimizing system qualities in adaptive embedded systems using Multi-Objective Optimization , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[51]  Ondrej Lhoták,et al.  Adding trace matching with free variables to AspectJ , 2005, OOPSLA '05.