scholarly journals Bootstrapping MDE Development from ROS Manual Code

2020 ◽  
Vol 2 (1) ◽  
pp. 1-23
Author(s):  
Nadia Hammoudeh Garcia

Ten years after its rst release, the Robot Operating System (ROS) is arguably the most popular software framework used to pro- gram robots. It achieved such status despite its shortcomings compared to alternatives similarly centered on manual programming and, perhaps surprisingly, to model-driven engineering (MDE) approaches. Based on our experience, we identied possible ways to leverage the accessibility of ROS and its large software ecosystem, while providing quality assurance measures through selected MDE techniques. After describing our vision on how to combine MDE and manually written code, we present the rst technical contribution in this pursuit: a family of three metamodels to respectively model ROS nodes, communication interfaces, and sys- tems. Such metamodels can be used, through the accompanying Eclipse- based tooling made publicly available, to model ROS systems of arbitrary complexity and generate with correctness guarantees the software arti- facts for their composition and deployment. Furthermore, they account for specications on these aspects by the Object Management Group (OMG), in order to be amenable to hybrid systems coupling ROS and other frameworks. We also report on our experience with a large and complex corpus of ROS software including the shortcomings of standard ROS tools and of previous eorts on ROS modeling.

Author(s):  
A. Solis ◽  
J. Hurtado

<p>Existe una tendencia a utilizar los enfoques de reutilización de software en el dominio de los sistemas robóticos industriales, con el fin de acelerar su desarrollo. Aunque algunos estudios muestran los beneficios de desarrollar usando diferentes enfoques de reutilización, estas prácticas no se han incorporado masivamente en la industria, principalmente, debido al desarrollo de software propietario por parte de los fabricantes y a la diversidad del hardware subyacente. Sin embargo, estos estudios han sido de gran valor para avanzar en su adopción. A través de un mapeo sistemático de la literatura, se muestra la adopción de los diferentes enfoques de reutilización, dentro de los cuales se analizan los más utilizados como la ingeniería dirigida por modelos MDE (Model-Driven Engineering), el desarrollo basado en componentes CBSE (Component-based Software Engineering) y la arquitectura basada en servicios (SOA). Por otro lado, se analizan los marcos de trabajo por ser las soluciones más utilizados y en términos de herramientas, se enfatiza en ROS (Robot Operating System) como una plataforma de referencia para el desarrollo rápido de aplicaciones. El principal reto identificado en esta área de estudio es definir estrategias combinadas y prácticas de los enfoques de reutilización MDE, CBSE y SOA, con el fin de aprovechar las diferentes ventajas de reutilización que cada uno ofrece.</p>


2021 ◽  
Vol 31 (1) ◽  
pp. 111-144
Author(s):  
Mickael Trezzy ◽  
◽  
Ileana Ober ◽  
Iulian Ober ◽  
Raquel Oliveira ◽  
...  

The Robot Operating System (ROS) is one of the most used software framework to develop robot applications. Although it is possible to reuse packages and code from other ROS projects, ROS applications remain low level and reasoning at a higher level of abstraction is not possible. Using Model-Driven Engineering (MDE) in the context of ROS applications would allow to increase the accessibility of ROS, leverage the reusability of packages and supply validation of the software earlier in the design, using formal methods. For instance, formal verification methods would improve the overall dependability of robotic systems. Our view is that we should increase the abstraction of the systems through models using MDE methodology in order to enable the use of formal methods on ROS applications. In this paper we do a first step toward this and propose a comparative study of existing modeling alternatives aiming to help roboticists to smoothly adopt MDE. This study compares the use of modeling in ROS systems in three different ways: by means of direct UML modeling, a ROS UML profile and a ROS Domain-Specific Language. That allows us to pick the solution that better fits our needs.


Author(s):  
Martin Monperrus ◽  
Jean-Marc Jézéquel ◽  
Joël Champeau ◽  
Brigitte Hoeltzener

Model-Driven Engineering (MDE) is an approach to software development that uses models as primary artifacts, from which code, documentation and tests are derived. One way of assessing quality assurance in a given domain is to define domain metrics. We show that some of these metrics are supported by models. As text documents, models can be considered from a syntactic point of view i.e., thought of as graphs. We can readily apply graph-based metrics to them, such as the number of nodes, the number of edges or the fan-in/fan-out distributions. However, these metrics cannot leverage the semantic structuring enforced by each specific metamodel to give domain specific information. Contrary to graph-based metrics, more specific metrics do exist for given domains (such as LOC for programs), but they lack genericity. Our contribution is to propose one metric, called s, that is generic over metamodels and allows the easy specification of an open-ended wide range of model metrics.


Author(s):  
Liliana María Favre ◽  
Claudia Teresa Pereira ◽  
Liliana Inés Martinez

The model driven architecture (MDA) is an initiative proposed by the object management group (OMG), which is emerging as a technical framework to improve productivity, portability, interoperability, and maintenance (MDA, 2003). MDA promotes the use of models and modelto- model transformations for developing software systems. All artifacts, such as requirement specifications, architecture descriptions, design descriptions, and code are regarded as models. MDA distinguishes four main kinds of models: computation independent model (CIM), platform independent model (PIM), platform specific models (PSM), and implementation specific model (ISM).


Author(s):  
Adam Alami ◽  
Peter Axel Nielsen ◽  
Andrzej Wasowski

Participatory Action Research (PAR) is an established method to implement change in organizations. However, it cannot be applied in the open source (FOSS) communities, without adaptation to their particularities, especially to the specific control mechanisms developed in FOSS. FOSS communities are self-managed, and rely on consensus to reach decisions. This study proposes a PAR framework specifically tailored to FOSS communities. We successfully applied the framework to implement a set of quality assurance interventions in the Robot Operating System community. The framework we proposed is composed of three components, interventions design, democratization, and execution. We believe that this process will work for other FOSS communities too. We have learned that changing a particular aspect of a FOSS community is arduous. To achieve success the change must rally the community around it for support and attract motivated volunteers to implement the interventions.


Author(s):  
Gilmar Melo dos Santos

Existem diversas tecnologias que são usadas para o desenvolvimento de software. No entanto, é preciso tornar o processo mais rápido possibilitando ganho de produtividade. O artigo busca responder a seguinte questão: Que ferramenta pode ser utilizada para melhorar o processo de desenvolvimento de forma a deixar a arquitetura do projeto mais flexível ao ponto de ser adaptável para qualquer linguagem de programação? Existe uma abordagem estabelecida pelo Object Management Group (OMG) que torna o processo de desenvolvimento mais rápido possibilitando o ganho de produtividade chamado Model Driven Architecture (MDA), cujo objetivo é a criação de um conjunto de diretrizes que são aplicados em modelos, ou seja, a partir de um modelo abstrato são gerados modelos mais específicos. Contudo, essa arquitetura é pouco utilizada, e o propósito desse estudo é mostrar a funcionamento dessa ferramenta e os benefícios que ela proporciona. Dessa forma, com a disseminação desse conhecimento o processo de desenvolvimento poderá ser realizado de forma mais flexível resultando em uma arquitetura com baixo acoplamento.


2008 ◽  
Author(s):  
◽  
Liliana Inés Martínez

La arquitectura Model-Driven (Model-Driven Architecture o MDA) es un framework para el desarrollo de software definido por el Object Management Group (OMG) (MDA, 2007). Su propuesta es elevar el nivel de abstracción en el que se desarrollan sistemas complejos separando la especificación de la funcionalidad de un sistema de su implementación en una plataforma tecnológica específica. MDA promueve el uso de modelos y transformaciones de modelos para el desarrollo de sistemas de software. El proceso de desarrollo MDA distingue cuatro clases de modelos: - Modelo independiente de la computación (Computation Independent Model o CIM): describe los requerimientos del sistema y los procesos de negocio que debe resolver sin tener en cuenta aspectos computacionales. - Modelo independiente de la plataforma (Platform Independent Model o PIM): es un modelo computacional independiente de las características específicas a una plataforma de desarrollo, como por ejemplo .NET, J2EE o relacional. - Modelo específico a la plataforma (Platform Specific Model o PSM): describe un sistema en términos de una plataforma de implementación particular. - Modelo específico a la implementación (Implementation Specific Model o ISM): se refiere a componentes y aplicaciones que usan lenguajes de programación específicos. Los elementos esenciales de MDA son los modelos, los metamodelos y las transformaciones. Un modelo es una descripción o especificación de un sistema y su ambiente para algún cierto propósito. Dentro de MDA un modelo debe estar escrito en un lenguaje de forma tal de ser interpretado por una computadora. Dentro del contexto de MDA, los metamodelos son expresados usando MOF (Meta Object Facility) que define una forma común de capturar todos los estándares y construcciones de intercambio (MOF, 2006). Los metamodelos MOF se basan en los conceptos de entidades, interrelaciones y sistemas y se expresan como una combinación de diagramas de clases UML y restricciones OCL (UML-Infrastructure, 2007; UML-Superstructure, 2007; OCL, 2006). La transformación de modelo a modelo es el proceso de convertir un modelo en otro modelo del mismo sistema. Para expresar las transformaciones, OMG está trabajando en la definición del QVT (Query\View\Transformation) para expresar transformaciones como una extensión de MOF (QVT, 2007). El proceso de desarrollo Model-Driven (MDD) en el contexto de MDA es llevado a cabo como una secuencia de transformaciones de modelos que incluye al menos los siguientes pasos: construir un PIM, transformar el PIM en uno o más PSMs, y construir componentes ejecutables y aplicaciones directamente a partir de un PSM. Un alto grado de automatización de PIMs a PSMs, y de PSMs a ISMs es esencial en el proceso de desarrollo de MDA. Las herramientas que llevan a cabo la automatización se basan en la definición de las transformaciones, las cuales describen como generar un modelo a partir de otro. El éxito de esta propuesta depende de la definición de las transformaciones entre modelos y de librerías de componentes que tengan un impacto significativo sobre las herramientas que proveen soporte a MDA. Entre los posibles componentes MDA se pensó en definir componentes para patrones de diseño (Gamma y otros, 1995) dada su amplia difusión, aceptación y uso, debido a que describen soluciones a problemas de diseño recurrentes. Arnaut (2004) analiza los patrones de diseño de Gamma y otros (1995) para identificar cuales de ellos pueden ser transformados en componentes reusables en una librería Eiffel. Su hipótesis de trabajo es que “los patrones de diseño son buenos, pero los componentes son mejores”. En este caso en particular la reusabilidad está dada en términos de código, pero nos inspiró a pensar en los patrones de diseño en términos de componentes MDA.


Author(s):  
Claudia Pereira ◽  
Liliana Favre ◽  
Liliana Martinez

Model-Driven Development (MDD) is an initiative proposed by the Object Management Group (OMG) to model centric software development. It is based on the concepts of models, metamodels, and automatic transformations. Models and metamodels are in constant evolution. Metamodel evolution may cause conforming models to become invalid. Therefore, models must be migrated to maintain conformance to their metamodels. Metamodel evolution and model migration are typically performed manually, which is an error-prone task. In light of this, the authors propose a framework for metamodel evolution and model migration that combine an operator-based approach with refactoring and specification matching techniques. They combine classical metamodeling techniques with formal specifications to reason about transformations, metamodels, and their evolution. The authors describe foundations for MDA-based metamodel evolution that allow extending the functionality of the existing CASE tools in order to improve the MDA-based process quality.


Author(s):  
Teade Punter ◽  
Jeroen Voeten

This chapter argues that embedded systems design faces several challenges of which late integration and the difference in development productivity between disciplines are major ones. Model driven engineering (MDE) looks a promising approach to address these challenges. However, MDE is a new approach which has to be defined and implemented in close interaction by academia and industry the near future. We therefore provide a conceptual framework to understand the possibilities and the flaws in quality assurance in the MDE design flow.


10.29007/rbp7 ◽  
2020 ◽  
Author(s):  
Hamza Abdelmalek ◽  
Gino Chénard ◽  
Ismaïl Khriss ◽  
Abdeslam Jakimi

Organizations are highly dependent on their software in carrying out their daily activities. Unfortunately, the repeated changes that are applied to these systems make their evolution difficult. This evolution may be necessary to maintain the software, replace or upgrade it. In the case of complex and poorly documented legacy systems, modernization is the only feasible solution to achieving the evolution goals. The OMG (Object Management Group) consortium created the Architecture-Driven Modernization (ADM) initiative to cope with the challenges of modernization. This initiative proposes, among other things, modernization through model-driven engineering (MDE). In this context, the modernization of a legacy system, not developed in an MDE environment, begins with its migration towards this type of environment. This migration raises the problem of finding the models necessary for the use of MDE representing this system.In this paper, we present a new bimodal approach to ADM modernization by enabling automatic and interactive modes to discover a view of the implementation platform of a legacy object-oriented system. Also, we present the key ideas of the algorithms behind this discovery process. Finally, we describe our prototype tool that implements our approach. This tool has been validated on several systems written in C# and Java languages.


Sign in / Sign up

Export Citation Format

Share Document