Realization of distributed system models using code generation extensions

Development of distributed software systems is complex due to the distribution of resources, which complicates validation of system‐wide functionality. Such systems include various facets like functionality and distribution, each of which must be validated and integrated in the final software solution. Model‐based techniques advocate various abstraction approaches to cope with such challenges. To enhance model‐based development, this paper proposes (1) guidelines for development of distributed systems, where the different facets are introduced gradually through systematic modeling extensions, (2) code generation capabilities supporting technology specific realizations, and (3) demonstration of the applicability of our approach using an industrial case study involving the development of a harvest planning system, where the communication infrastructure paradigm changed late in the project. When developing this system, we spent most time validating system‐wide functionality. The model extensions allowed an easier change of the underlying communication paradigm and code generation supported realization of the different system representations.

[1]  Mahadev Satyanarayanan,et al.  Pervasive computing: vision and challenges , 2001, IEEE Wirel. Commun..

[2]  Karl M. Göschka,et al.  Component Based Middleware-Synthesis for AUTOSAR Basic Software , 2009, 2009 IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing.

[3]  Nick Battle,et al.  A Deterministic Interpreter Simulating a Distributed Real Time System Using VDM , 2011, ICFEM.

[4]  B. Duncan Recent Trends in Fertility in Industrialized Countries. United Nations Department of Economic and Social Affairs , 1959 .

[5]  Dines Bjørner,et al.  Pinnacles of software engineering: 25 years of formal methods , 2000, Ann. Softw. Eng..

[6]  D. Pham,et al.  THE BEES ALGORITHM, A NOVEL TOOL FOR COMPLEX OPTIMISATION PROBLEMS , 2006 .

[7]  Ali Almohammad,et al.  Rigorous code generation for distributed real-time embedded systems , 2013 .

[8]  Matthias Riedl,et al.  Distributed automation system supports process monitoring and control , 2011, 2011 IEEE International Symposium on Industrial Electronics.

[9]  Anne-Marie Kermarrec,et al.  The many faces of publish/subscribe , 2003, CSUR.

[10]  Julien Delange,et al.  TASTE: A Real-Time Software Engineering Tool-Chain Overview, Status, and Future , 2011, SDL Forum.

[11]  Edward A. Lee,et al.  Distributed Real-Time Software for Cyber–Physical Systems , 2012, Proceedings of the IEEE.

[12]  Nick Battle,et al.  The overture initiative integrating tools for VDM , 2010, ACM SIGSOFT Softw. Eng. Notes.

[13]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[14]  Sébastien Gérard,et al.  eC3M: Optimized model-based code generation for embedded distributed software systems , 2010, 2010 10th Annual International Conference on New Technologies of Distributed Systems (NOTERE).

[15]  Peter Gorm Larsen,et al.  Automated Generation of C # and . NET Code Contracts from VDM-SL Models , 2016 .

[16]  David S. Rogers Modelling systems: practical tools and techniques in software development, second edition written by John Fitzgerald and Peter Gorm Larsen and published by Cambridge University Press, 2009, ISBN 978-0-521-89911-6 hardback, 288 pp. , 2010, SOEN.

[17]  Peter Gorm Larsen,et al.  Methods for the Development of Distributed Real-Time Embedded Systems Using VDM , 2009, Int. J. Softw. Informatics.

[18]  C. Diedrich,et al.  An object based approach for distributed automation , 2004, 2004 IEEE Africon. 7th Africon Conference in Africa (IEEE Cat. No.04CH37590).

[19]  Jozef Hooman,et al.  Modeling and Validating Distributed Embedded Real-Time Systems with VDM++ , 2006, FM.

[20]  Andrew S. Tanenbaum,et al.  Distributed systems: Principles and Paradigms , 2001 .

[21]  Peter W. V. Tran-Jørgensen Enhancing System Realisation in Formal Model Development , 2016 .

[22]  Peter Gorm Larsen,et al.  Combining VDM with Executable Code , 2012, ABZ.

[23]  B. J. Ferro Castro,et al.  Pattern-Oriented Software Architecture: A System of Patterns , 2009 .

[24]  Kenneth Lausdahl,et al.  Code-generating VDM for Embedded Devices , 2017 .

[25]  Peter Gorm Larsen,et al.  Modelling Systems: Practical Tools and Techniques in Software Development , 1998 .

[26]  Richard Gerber,et al.  A software synthesis tool for distributed embedded system design , 1999, LCTES '99.

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

[28]  Peter Gorm Larsen,et al.  Automated translation of VDM to JML-annotated Java , 2017, International Journal on Software Tools for Technology Transfer.

[29]  Peter Gorm Larsen,et al.  Validated Designs for Object-oriented Systems , 2004 .

[30]  Peter Würtz Vinther Tran-Jørgensen,et al.  Combining harvesting operation optimisations using strategy-based simulation , 2016, 2016 6th International Conference on Simulation and Modeling Methodologies, Technologies and Applications (SIMULTECH).

[31]  Luigi Andolfato,et al.  A UML PROFILE FOR CODE GENERATION OF COMPONENT BASED DISTRIBUTED SYSTEMS , 2011 .

[32]  Faith Ellen,et al.  Hundreds of impossibility results for distributed computing , 2003, Distributed Computing.

[33]  David Garlan,et al.  Model Checking Publish-Subscribe Systems , 2003, SPIN.

[34]  Marco Di Natale,et al.  A code generation framework for distributed real-time embedded systems , 2012, Proceedings of 2012 IEEE 17th International Conference on Emerging Technologies & Factory Automation (ETFA 2012).

[35]  Marcel Verhoef,et al.  Modeling and validating distributed embedded real-time control systems , 2009 .