Software & Systems Modeling

, Volume 13, Issue 1, pp 55–81 | Cite as

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

Theme Section Paper

Abstract

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.

Keywords

Domain specific languages Embedded systems Software composition Composition filters Aspect-oriented programming 

Notes

Acknowledgments

This work has been carried out as part of the OCTOPUS project under the responsibility of the Embedded Systems Institute. This project is partially supported by the Netherlands Ministry of Economic Affairs under the Embedded Systems Institute program. We thank Jacques Verriet from ESI for reviewing this paper and providing useful feedback.

References

  1. 1.
    The 20-sim tooling. http://www.20sim.com. Accessed April 2012
  2. 2.
    Web services business process execution language version 2.0. OASIS Standard (2007)Google Scholar
  3. 3.
    Abreu, R., Zoeteweij, P., van Gemund, A.: Spectrum-based multiple fault localization. In: 24th IEEE/ACM International Conference on Automated Software Engineering, 2009. ASE ’09, pp. 88–99. (2009). doi: 10.1109/ASE.2009.25
  4. 4.
    Akşit, M., Bergmans, L., Vural, S.: An object-oriented language-database integration model: the composition-filters approach. In: Madsen, O.L. (ed.) Proceedings of the 7th European Conference on Object-Oriented Programming, pp. 372–395 (1992). http://trese.cs.utwente.nl/publications/paperinfo/LanguageDbase.pi.top.htm
  5. 5.
    Akşit, M., Tripathi, A.: Data abstraction mechanisms in sina/st. In: Proceedings of the Conference on Object-Oriented Systems, Languages and Applications. ACM Sigplan Notices, vol. 23, pp. 267–275 (1988)Google Scholar
  6. 6.
    Aksit, M., Wakita, K., Bosch, J., Bergmans, L., Yonezawa, A.: Abstracting object interactions using composition filters. In: Proceedings of the Workshop on Object-Based Distributed Programming. pp. 152–184. Springer, London (1994)Google Scholar
  7. 7.
    Allan, C., Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: Adding trace matching with free variables to aspectj. In: OOPSLA ’05: Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications. pp. 345–364. ACM, New York, NY, USA (2005). doi: 10.1145/1094811.1094839
  8. 8.
    Bapty, T., Neema, S., Scott, J., Sztipanovits, J., Asaad, S.: Model-integrated tools for the design of dynamically reconfigurable systems. Tech. Rep. ISIS-99-01, Institute for Software Integrated Systems, Vanderbilt University (1999)Google Scholar
  9. 9.
    Barringer, H., Goldberg, A., Havelund, K., Sen, K.: Rule-based runtime verification. In: Steffen, B., Levi, G. (eds.) VMCAI. Lecture Notes in Computer Science, pp. 44–57. Springer, Berlin (2004)Google Scholar
  10. 10.
    Berbers, Y., Rigole, P., Vandewoude, Y., Baelen, S.V.: CoConES: CoConES: an approach for components and contracts in embedded systems. Lecture Notes in Computer Science, vol. 3778, pp. 209–231 (2005)Google Scholar
  11. 11.
    van den Berg, K., Conejero, J.: A conceptual formalization of crosscutting in aosd. In: Proceedings of the Desarrollo de Software Orientado a Aspectos (DSOA2005). Granada, Spain (2005)Google Scholar
  12. 12.
    Bergmans, L., Akşit, M.: Principles and design rationale of composition filters. In: Aspect-Oriented Software Development, pp. 63–95. Addison-Wesley, Boston (2005)Google Scholar
  13. 13.
    Bishop, R.H.: Modern Control Systems Analysis and Design Using MATLAB and SIMULINK. Addison Wesley, Boston (1996)Google Scholar
  14. 14.
    Bockisch, C.M.: An efficient and flexible implementation of aspect-oriented languages. Ph.D. thesis, Technische Universität Darmstadt, Germany (2008)Google Scholar
  15. 15.
    Bouraqadi, N., Ledoux, T.: Supporting AOP using reflection. In: Aspect-Oriented Software Development, pp. 261–282. Addison-Wesley, Boston (2005)Google Scholar
  16. 16.
    Broenink, J.: Modelling, simulation and analysis with 20-sim. Journal A 38(3), 22–25 (1997)Google Scholar
  17. 17.
    Brooks, F.: No silver bullet essence and accidents of software engineering. Computer 20(4), 10–19 (1987). doi: 10.1109/MC.1987.1663532 CrossRefMathSciNetGoogle Scholar
  18. 18.
    Chen, F., Roşu, G.: Mop: an efficient and generic runtime verification framework. In: OOPSLA ’07: Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems and Applications. pp. 569–588. ACM, New York, NY, USA (2007). doi: 10.1145/1297027.1297069
  19. 19.
    Delgado, N., Gates, A., Roach, S.: A taxonomy and catalog of runtime software-fault monitoring tools. IEEE Trans. Softw. Eng. 30(12), 859–872 (2004). doi: 10.1109/TSE.2004.91 CrossRefGoogle Scholar
  20. 20.
    van Deursen, A., Klint, P.: Little languages: little maintenance. J. Softw. Maint. 10, 75–92 (1998)CrossRefGoogle Scholar
  21. 21.
    van Dijk, W., Mordhorst, J.: CFIST. Composition Filters in Smalltalk. Graduation Report, HIO Enschede, The Netherlands (1995)Google Scholar
  22. 22.
    Eker, J., Janneck, J., Lee, E., Liu, J., Liu, X., Ludvig, J., Neuendorffer, S., Sachs, S., Xiong, Y.: Taming heterogeneity—the ptolemy approach. Proc. IEEE 91(1), 127–144 (2003). doi: 10.1109/JPROC.2002.805829 CrossRefGoogle Scholar
  23. 23.
    Feldman, A., Provan, G., van Gemund, A.: The Lydia approach to combinational model-based diagnosis. In: Proceedings of the Twentieth International Workshop on Principles of Diagnosis (DX’09), Stockholm Sweden. pp. 403–408. Erik Frisk and Mattias Nyberg and Mattias Krysander and Jan slund (2009)Google Scholar
  24. 24.
    Filman, R.E., Elrad, T., Clarke, S., Akşit, M. (eds.): Aspect-Oriented Software Development. Addison-Wesley, Boston (2005)Google Scholar
  25. 25.
    Forbus, K.D.: Qualitative process theory. Artif. Intell. 24(1–3), 85–168 (1984). doi: 10.1016/0004-3702(84)90038-9 CrossRefGoogle Scholar
  26. 26.
    Francez, N., Hailpern, B., Taubenfeld, G.: Script: a communication abstraction mechanism and its verification. Sci. Comput. Program. 6, 35–88 (1986)CrossRefMATHGoogle Scholar
  27. 27.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, Boston (1995)Google Scholar
  28. 28.
    Glandrup, M.: Extending C++ using the concepts of composition filters. Master’s thesis, University of Twente (1995). http://trese.cs.utwente.nl/publications/paperinfo/glandrup.thesis.pi.top.htm
  29. 29.
    Gray, J., Bapty, T., Neema, S., Schmidt, D.C., Gokhale, A., Natarajan, B.: An approach for supporting aspect-oriented domain modeling. In: Proceedings of the 2nd international Conference on Generative Programming and Component Engineering, GPCE ’03, pp. 151–168. Springer, New York (2003)Google Scholar
  30. 30.
    Helm, R., Holland, I.M., Gangopadhyay, D.: Contracts: specifying behavioral compositions in object-oriented systems. ACM SIGPLAN Notices 25(10), 169–180 (1990)CrossRefGoogle Scholar
  31. 31.
    Henzinger, T., Kirsch, C., Sanvido, M., Pree, W.: From control models to real-time code using giotto. Control Systems, IEEE 23(1), 50–64 (2003). doi: 10.1109/MCS.2003.1172829
  32. 32.
    Holland, I.M.: Specifying reusable components using contracts. In: Proceedings of the European Conference on Object-Oriented Programming. pp. 287–308. Springer-Verlag, London, UK (1992)Google Scholar
  33. 33.
    Kiczales, G., Rivieres, J.D.: The Art of the Metaobject Protocol. MIT Press, Cambridge (1991)Google Scholar
  34. 34.
    Kieburtz, R.B., McKinney, L., Bell, J.M., Hook, J., Kotov, A., Lewis, J., Oliva, D.P., Sheard, T., Smith, I., Walton, L.: A software engineering experiment in software component generation. In: Proceedings of the 18th International Conference on Software Engineering, ICSE ’96, pp. 542–552. IEEE Computer Society, Washington, DC, USA (1996)Google Scholar
  35. 35.
    Kitchin, D., Quark, A., Cook, W.R., Misra, J.: The Orc programming language. In: Lee, D., Lopes, A., Poetzsch-Heffter, A. (eds.) Proceedings of FMOODS/FORTE 2009. Lecture Notes in Computer Science, vol. 5522, pp. 1–25. Springer, Berlin (2009). doi: 10.1007/978-3-642-02138-1-1
  36. 36.
    de Kleer, J., Williams, B.C.: Diagnosing multiple faults. Artif. Intell. 32(1), 97–130 (1987).doi: 10.1016/0004-3702(87)90063-4 Google Scholar
  37. 37.
    Kleijn, C.: 20-sim 4.1 Reference Manual (2009)Google Scholar
  38. 38.
    Koopman, P.: Embedded system design issues (the rest of the story). In: Proceedings of the 1996 IEEE International Conference on Computer Design: VLSI in Computers and Processors, 1996. ICCD ’96, pp. 310–317 (1996). doi: 10.1109/ICCD.1996.563572
  39. 39.
    Maes, P.: Concepts and experiments in computational reflection. ACM SIGPLAN Notices 22(12), 147–155 (1987)CrossRefGoogle Scholar
  40. 40.
    Malakuti Khah Olun Abadi, S., Bockisch, C.M., Akşit, M.: Applying the composition filter model for runtime verification of multiple-language software. In: The 20th annual International Symposium on Software Reliability Engineering, ISSRE 2009, Mysore, India, pp. 31–40. IEEE Computer Society Press (2009)Google Scholar
  41. 41.
    Markovski, J., van Beek, D., Theunissen, R., Jacobs, K., Rooda, J.: A state-based framework for supervisory control synthesis and verification. In: 49th IEEE Conference on Decision and Control (CDC), 2010. pp. 3481–3486 (2010). doi: 10.1109/CDC.2010.5717095
  42. 42.
    Octopus project, ESI (2010). http://www.esi.nl/projects/octopus
  43. 43.
    Papadopoulos, G.A., Arbab, F.: Coordination models and languages. In: Advances in Computers. pp. 329–400. Academic Press, London (1998).Google Scholar
  44. 44.
    Passerone, R., Damm, W., Ben Hafaiedh, I., Graf, S., Ferrari, A., Mangeruca, L., Benveniste, A., Josko, B., Peikenkamp, T., Cancila, D., Cuccuru, A., Gerard, S., Terrier, F., Sangiovanni-Vincentelli, A.: Metamodels in Europe: languages, tools, and applications. IEEE Des. Test Comput. 26(3), 38–53 (2009)Google Scholar
  45. 45.
    Reiter, R.: A theory of diagnosis from first principles. Artif. Intell. 32(1), 57–95 (1987). doi: 10.1016/0004-3702(87)90062-2
  46. 46.
    de Roo, A.: Towards more robust advice: Message flow analysis for composition filters and its application. Master’s thesis (2007). http://doc.utwente.nl/67050/
  47. 47.
    de Roo, A.: Managing software complexity of adaptive systems. Ph.D. thesis, Enschede (2012). http://doc.utwente.nl/79570/
  48. 48.
    de Roo, A., Hendriks, M., Havinga, W., Durr, P., Bergmans, L.: Compose*: a language- and platform-independent aspect compiler for composition filters. In: First International Workshop on Advanced Software Development Tools and Techniques, WASDeTT 2008, Paphos, Cyprus (2008)Google Scholar
  49. 49.
    de Roo, A., Sözer, H., Akşit, M.: An architectural style for optimizing system qualities in adaptive embedded systems using multi-objective optimization. In: Joint Working IEEE/IFIP Conference on Software Architecture, 2009 and European Conference on Software Architecture, WICSA/ECSA 2009, pp. 349–352. Cambridge, UK (2009)Google Scholar
  50. 50.
    de Roo, A., Sözer, H., Akşit, M.: Runtime verification of domain-specific models of physical characteristics in control software. In: Proceedings of the 5th IEEE International Conference on Secure Software Integration and Reliability Improvement, Korea (2011)Google Scholar
  51. 51.
    Theunissen, R., Schiffelers, R., van Beek, D., Rooda, J.: Supervisory control synthesis for a patient support system. In: Proceedings of the European Control Conference (2009)Google Scholar
  52. 52.
    University of Twente: Compose* Annotated Reference Manual. http://composestar.sourceforge.net/content/annotated-reference-manual (2012)
  53. 53.
    University of Twente: Compose*. http://composestar.sourceforge.net. Accessed April 2012
  54. 54.
    VDC Research: The embedded software and tools market intelligence service (2010)Google Scholar
  55. 55.
    Wichman, J.C.: The development of a preprocessor to facilitate composition filters in the Java language. Master’s thesis, University of Twente (1999). http://trese.cs.utwente.nl/publications/paperinfo/wichman.thesis.pi.top.htm
  56. 56.
    Yoshioka, M., Umeda, Y., Takeda, H., Shimomura, Y., Nomaguchi, Y., Tomiyama, T.: Physical concept ontology for the knowledge intensive engineering framework. Advanced Engineering Informatics 18(2), 95–113 (2004). doi: 10.1016/j.aei.2004.09.004
  57. 57.
    Zoeteweij, P., Pietersma, J., Abreu, R., Feldman, A., van Gemund, A.: Automated fault diagnosis in embedded systems. In: Second International Conference on Secure System Integration and Reliability Improvement, 2008. SSIRI ’08, pp. 103–110 (2008). doi: 10.1109/SSIRI.2008.48

Copyright information

© Springer-Verlag 2012

Authors and Affiliations

  1. 1.Software Engineering group, CS DepartmentUniversity of TwenteEnschedeThe Netherlands
  2. 2.Computer Science DepartmentÖzyeğin UniversityİstanbulTurkey

Personalised recommendations