Code Generator Composition for Model-Driven Engineering of Robotics Component & Connector Systems

Engineering software for robotics applications requires multidomain and application-specific solutions. Model-driven engineering and modeling language integration provide means for developing specialized, yet reusable models of robotics software architectures. Code generators transform these platform independent models into executable code specific to robotic platforms. Generative software engineering for multidomain applications requires not only the integration of modeling languages but also the integration of validation mechanisms and code generators. In this paper we sketch a conceptual model for code generator composition and show an instantiation of this model in the MontiArc- Automaton framework. MontiArcAutomaton allows modeling software architectures as component and connector models with different component behavior modeling languages. Effective means for code generator integration are a necessity for the post hoc integration of applicationspecific languages in model-based robotics software engineering.

[1]  Eelco Visser,et al.  The State of the Art in Language Workbenches - Conclusions from the Language Workbench Challenge , 2013, SLE.

[2]  Kasper Stoy,et al.  A Domain-Specific Language for Programming Self-Reconfigurable Robots , 2007 .

[3]  Thierry Coupaye,et al.  The FRACTAL component model and its support in Java , 2006, Softw. Pract. Exp..

[4]  Bernhard Rumpe,et al.  A Case Study on Model-Based Development of Robotic Systems using MontiArc with Embedded Automata , 2014, MBEES.

[5]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[6]  Bernhard Rumpe,et al.  A Little Synopsis on Streams, Stream Processing Functions, and State-Based Stream Processing , 2011, Int. J. Softw. Informatics.

[7]  Mourad Oussalah,et al.  C3: A Metamodel for Architecture Description Language based on First-order Connector Types , 2009, ICEIS.

[8]  Sebastian Wrede,et al.  A Survey on Domain-Specific Languages in Robotics , 2014, SIMPAR.

[9]  Don S. Batory,et al.  The GenVoca model of software-system generators , 1994, IEEE Software.

[10]  Holger Voos,et al.  Towards a Robot Perception Specification Language , 2014, ArXiv.

[11]  Eelco Visser,et al.  The spoofax language workbench: rules for declarative specification of languages and IDEs , 2010, OOPSLA.

[12]  Tara Estlin,et al.  The CLARAty architecture for robotic autonomy , 2001, 2001 IEEE Aerospace Conference Proceedings (Cat. No.01TH8542).

[13]  Damien Cassou,et al.  Using the DiaSpec design language and compiler to develop robotics systems , 2011, ArXiv.

[14]  William R. Cook,et al.  The design and implementation of Object Grammars , 2014, Sci. Comput. Program..

[15]  Herman Bruyninckx,et al.  Open robot control software: the OROCOS project , 2001, Proceedings 2001 ICRA. IEEE International Conference on Robotics and Automation (Cat. No.01CH37164).

[16]  Takashi Suehiro,et al.  A Software Platform for Component Based RT-System Development: OpenRTM-Aist , 2008, SIMPAR.

[17]  Anne-Marie Déplanche,et al.  An ADL Centric Approach for the Formal Design of Real-Time Systems , 2004, IFIP-WADL.

[18]  Steffen Zschaler,et al.  Towards modular code generators using symmetric language-aware aspects , 2011 .

[19]  Eelco Visser,et al.  DSL Engineering - Designing, Implementing and Using Domain-Specific Languages , 2013 .

[20]  Darwin G. Caldwell,et al.  A Domain Specific Language for kinematic models and fast implementations of robot dynamics algorithms , 2013, ArXiv.

[21]  Bernhard Rumpe,et al.  MontiArc - Architectural Modeling of Interactive Distributed and Cyber-Physical Systems , 2014, ArXiv.

[22]  Agam Kumar Tyagi,et al.  MATLAB and SIMULINK for Engineers , 2012 .

[23]  Markus Voelter,et al.  Language and IDE Modularization , Extension and Composition with MPS , 2011 .

[24]  Tewfik Ziadi,et al.  RobotML, a Domain-Specific Language to Design, Simulate and Deploy Robotic Applications , 2012, SIMPAR.

[25]  Christian Schlegel,et al.  Robotic software systems: From code-driven to model-driven designs , 2009, 2009 International Conference on Advanced Robotics.

[26]  Edward A. Lee,et al.  A Code Generation Framework for Actor-Oriented Models with Partial Evaluation , 2007, ICESS.

[27]  Steven Völkel,et al.  Kompositionale Entwicklung domänenspezifischer Sprachen , 2011, Aachener Informatik-Berichte, Software Engineering.

[28]  Adriana Tapus,et al.  Model-driven software development approaches in robotics research , 2014, MiSE 2014.

[29]  Takashi Suehiro,et al.  RT-middleware: distributed component middleware for RT (robot technology) , 2005, 2005 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[30]  Bernhard Rumpe,et al.  Formale Methodik des Entwurfs verteilter objektorientierter Systeme , 1996, Datenbank Rundbr..

[31]  Dominik Henrich,et al.  Towards Easy Robot Programming - Using DSLs, Code Generators and Software Product Lines , 2017, ICSOFT.

[32]  Bernhard Rumpe,et al.  A new skill based robot programming language using UML/P Statecharts , 2013, 2013 IEEE International Conference on Robotics and Automation.

[33]  Bernhard Rumpe,et al.  From Software Architecture Structure and Behavior Modeling to Implementations of Cyber-Physical Systems , 2014, Software Engineering.

[34]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.

[35]  Erwin Prassler,et al.  Software Engineering for Robotics , 2009 .

[36]  Dominic Létourneau,et al.  Trends in Component-Based Robotics , 2005, PPSDR@ICRA.

[37]  Herman Bruyninckx,et al.  The 5C-based architectural Composition Pattern: lessons learned from re-developing the iTaSC framework for constraint-based robot programming , 2014 .

[38]  Elizabeth Latronico,et al.  System Design, Modeling, and Simulation Using Ptolemy Ii Ontologies , 2013 .

[39]  Bernhard Rumpe,et al.  Composing code generators for C&C ADLs with Application-specific behavior languages (tool demonstration) , 2015, GPCE.

[40]  Don S. Batory,et al.  The design and implementation of hierarchical software systems with reusable components , 1992, TSEM.

[41]  Herman Bruyninckx,et al.  The BRICS component model: a model-based development paradigm for complex robotics software systems , 2013, SAC '13.

[42]  Andreas Angerer,et al.  On reverse-engineering the KUKA Robot Language , 2010, ArXiv.

[43]  Kalle Lyytinen,et al.  MetaEdit+: A Fully Configurable Multi-User and Multi-Tool CASE and CAME Environment , 1996, CAiSE.

[44]  Martin Feilkas,et al.  AutoFocus 3 - A Scientific Tool Prototype for Model-Based Development of Component-Based, Reactive, Distributed Systems , 2007, Model-Based Engineering of Embedded Real-Time Systems.

[45]  Edward A. Lee Disciplined Heterogeneous Modeling - Invited Paper. , 2010, MODELS 2010.

[46]  Joris De Schutter,et al.  Rapid application development of constrained-based task modelling and execution using domain specific languages , 2013, 2013 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[47]  Alexander Ferrein,et al.  Design Principles of the Component-Based Robot Software Framework Fawkes , 2010, SIMPAR.

[48]  Matthieu Herrb,et al.  GenoM3: Building middleware-independent robotic components , 2010, 2010 IEEE International Conference on Robotics and Automation.

[49]  Alexei Makarenko,et al.  Towards component-based robotics , 2005, 2005 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[50]  S. Dmitriev Language Oriented Programming: The Next Programming Paradigm , 2004 .

[51]  Sébastien Gérard,et al.  Managing Complexity of Automotive Electronics Using the EAST-ADL , 2007, 12th IEEE International Conference on Engineering Complex Computer Systems (ICECCS 2007).

[52]  Martin Schindler,et al.  Eine Werkzeuginfrastruktur zur agilen Entwicklung mit der UML-P , 2012, Aachener Informatik-Berichte, Software Engineering.

[53]  Manfred Broy,et al.  Specification and Development of Interactive Systems , 2001, Monographs in Computer Science.

[54]  Holger Giese,et al.  A survey of approaches for the visual model-driven development of next generation software-intensive systems , 2006, J. Vis. Lang. Comput..

[55]  Dave Thomas,et al.  The AADL behaviour annex -- experiments and roadmap , 2007, 12th IEEE International Conference on Engineering Complex Computer Systems (ICECCS 2007).

[56]  Heiko Behrens,et al.  Xtext: implement your language faster than the quick and dirty way , 2010, SPLASH/OOPSLA Companion.

[57]  Tijs van der Storm,et al.  RASCAL: A Domain Specific Language for Source Code Analysis and Manipulation , 2009, 2009 Ninth IEEE International Working Conference on Source Code Analysis and Manipulation.

[58]  Davide Brugali,et al.  Software Engineering for Experimental Robotics , 2007 .

[59]  Morgan Quigley,et al.  ROS: an open-source Robot Operating System , 2009, ICRA 2009.

[60]  Jonathan Bohren,et al.  The SMACH High-Level Executive [ROS News] , 2010 .

[61]  Bernhard Rumpe,et al.  Model-driven Development of Complex Software : A Research Roadmap , 2007 .

[62]  Sebastian Wrede,et al.  A Domain-Specific Language for Rich Motor Skill Architectures , 2013, ArXiv.

[63]  Manfred Broy,et al.  Specification and development of interactive systems: focus on streams, interfaces, and refinement , 2001 .

[64]  Richard N. Taylor,et al.  Moving Architectural Description from Under the Technology Lamppost , 2006, 32nd EUROMICRO Conference on Software Engineering and Advanced Applications (EUROMICRO'06).

[65]  Bernhard Rumpe,et al.  Transforming Platform-Independent to Platform-Specific Component and Connector Software Architecture Models , 2015, ModComp@MoDELS.

[66]  Oscar Díaz,et al.  Feature Oriented Model Driven Development: A Case Study for Portlets , 2007, 29th International Conference on Software Engineering (ICSE'07).

[67]  Ingo Lütkebohle,et al.  Requirements and a case-study for SLE from robotics: event-oriented incremental component construction , 2011, GI-Jahrestagung.

[68]  Peter H. Feiler,et al.  Model-Based Engineering with AADL: An Introduction to the SAE Architecture Analysis & Design Language , 2012 .

[69]  Paolo Salvaneschi,et al.  Stable Aspects in Robot Software Development , 2006 .

[70]  Holger Krahn MontiCore: agile Entwicklung von domänenspezifischen Sprachen im Software-Engineering , 2010, Aachener Informatik-Berichte, Software Engineering.

[71]  C. Schlegel,et al.  Model-Driven Software Development in Robotics : Communication Patterns as Key for a Robotics Component Model , 2011 .

[72]  Bernhard Rumpe,et al.  Modeling robot and world interfaces for reusable tasks , 2015, 2015 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).

[73]  Andreas Angerer,et al.  A Graphical Language for Real-Time Critical Robot Commands , 2013, ArXiv.

[74]  Bernhard Rumpe,et al.  MontiCore: a framework for compositional development of domain specific languages , 2010, International Journal on Software Tools for Technology Transfer.

[75]  Steffen Becker,et al.  The Palladio component model for model-driven performance prediction , 2009, J. Syst. Softw..

[76]  Richard N. Taylor,et al.  A language and environment for architecture-based software development and evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[77]  C.J.H. Mann,et al.  A Practical Guide to SysML: The Systems Modeling Language , 2009 .

[78]  Tiziana Margaria,et al.  Model-Driven Development with the jABC , 2006, Haifa Verification Conference.

[79]  Jeff Magee,et al.  The Koala Component Model for Consumer Electronics Software , 2000, Computer.

[80]  Bernhard Rumpe,et al.  Multi-Platform Generative Development ofComponent & Connector Systems using Model and Code Libraries , 2014, ModComp@MoDELS.

[81]  Herman Bruyninckx,et al.  OROCOS RTT-Lua: an Execution Environment for building Real-time Robotic Domain Specific Languages , 2010 .

[82]  Richard N. Taylor,et al.  Software architecture: foundations, theory, and practice , 2009, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[83]  Sebastian Erdweg,et al.  SugarJ: library-based syntactic language extensibility , 2011, OOPSLA '11.

[84]  Adriana Tapus,et al.  SafeRobots: A model-driven Framework for developing Robotic Systems , 2014, 2014 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[85]  L. Naslavsky,et al.  Extending xADL with statechart behavioral specification , 2004, ICSE 2004.

[86]  Richard N. Taylor,et al.  An infrastructure for the rapid development of XML-based architecture description languages , 2002, ICSE '02.

[87]  Paolo Ciancarini,et al.  Stochastic Process Algebra: From an Algebraic Formalism to an Architectural Description Language , 2002, Performance.

[88]  Naoyasu Ubayashi,et al.  Archface: a contract place where architectural design and code meet together , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[89]  Mourad Oussalah,et al.  MADL: Meta Architecture Description Language , 2005, Third ACIS Int'l Conference on Software Engineering Research, Management and Applications (SERA'05).

[90]  Bernhard Rumpe,et al.  Black-box Integration of Heterogeneous Modeling Languages for Cyber-Physical Systems , 2014, ArXiv.

[91]  Paul Hudak,et al.  Building domain-specific embedded languages , 1996, CSUR.

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

[93]  Bernhard Rumpe,et al.  Tailoring the MontiArcAutomaton Component & Connector ADL for Generative Development , 2015, ArXiv.

[94]  Bernhard Rumpe,et al.  Modellierung mit UML - Sprache, Konzepte und Methodik , 2004, Xpert.press.

[95]  Piotr Trojanek Model-driven engineering approach to design and implementation of robot control system , 2013, ArXiv.

[96]  Herman Bruyninckx,et al.  Domain Specific Language for Geometric Relations between Rigid Bodies targeted to robotic applications , 2013, ArXiv.

[97]  Bernhard Rumpe,et al.  MontiArcAutomaton: Modeling Architecture and Behavior of Robotic Systems , 2014, ICRA 2014.

[98]  Paul King,et al.  Groovy in Action , 2007 .

[99]  Richard N. Taylor,et al.  A highly-extensible, XML-based architecture description language , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[100]  Thaís Vasconcelos Batista,et al.  Mapping ADL Specifications to an Efficient and Reconfigurable Runtime Component Platform , 2005, 5th Working IEEE/IFIP Conference on Software Architecture (WICSA'05).

[101]  Bernhard Schätz,et al.  mbeddr: instantiating a language workbench in the embedded software domain , 2013, Automated Software Engineering.

[102]  David S. Wile,et al.  Supporting the DSL Spectrum , 2001 .

[103]  Akim Demaille,et al.  Events! (Reactivity in urbiscript) , 2010, ArXiv.

[104]  Andreas Pott,et al.  BRICS - Best practice in robotics , 2010, ISR/ROBOTIK.

[105]  Herman Bruyninckx,et al.  Towards a Domain Specific Language for a Scene Graph based Robotic World Model , 2014, ArXiv.

[106]  Sanford Friedenthal,et al.  A Practical Guide to SysML: The Systems Modeling Language , 2008 .

[107]  Sven Jörges Construction and Evolution of Code Generators - A Model-Driven and Service-Oriented Approach , 2013, Lecture Notes in Computer Science.

[108]  Bernhard Rumpe,et al.  Integration of heterogeneous modeling languages via extensible and composable language components , 2015, 2015 3rd International Conference on Model-Driven Engineering and Software Development (MODELSWARD).