193 research outputs found
On UML statechart with variabilities
El uso de métodos formales para el diseño de software contribuye a la confiabilidad y robustez del sistema a construir. A medida que los sistemas se vuelven complejos, el enfoque formal es esencial, debido a que permite la demostrabilidad y verificabilidad del diseño. El diseño formal es un proceso que comienza con la etapa de especificación, en la cual el sistema es de nido utilizando un lenguaje de modelado; luego la etapa de verificación, en la cual el sistema es analizado mediante un enfoque de corrección basado en pruebas formales utilizando herramientas matemá ticas y, por último, la etapa de implementación, en la cual la especificación se convierte en código ejecutable. El Lenguaje de Modelado Unificado (UML por sus siglas en inglés) es un lenguaje específico ampliamente utilizado en la industria y la academia. Desafortunadamente, carece de una semántica formal que permita el desarrollo de modelos utilizando un enfoque de corrección basado en pruebas formales. Este trabajo se centra en la especificación formal de familias de sistemas, y, en particular, en la semán- tica de máquinas de estados de UML (UML Statecharts) con variabilidades y sus aplicaciones a líneas de productos de software. La principal contribución es la definición de un formalismo que permite modelar el comportamiento de una familia de sistemas. Tal comportamiento se describe utilizando UML Statecharts en combinación con Diagramas de funcionalidades (Feature Diagrams), con el fin de representar las funcionalidades comunes y variantes de una familia. Para ello se define una relación de orden entre los UML Statecharts, que representa el hecho de que un statechart posee una estructura mas rica que otro. Luego se defi ne con precisión la forma de combinar diferentes extensiones de un mismo statechart. Utilizando estos conceptos, es posible definir el efecto que cada funcionalidad tiene en los productos en los cuales se encuentra presente.Estas definiciones proporcionan una forma muy simple de obtener la especificación del comportamiento de un producto de la línea como la combinación de los UML Statecharts que implementan todas las funcionalidades presentes en un producto en particular. Mas aún, se prueba que la relación de extensión propuesta constituye un refinamiento de comportamiento. El presente enfoque se compara con el estado del arte y se estudia su aplicación práctica con el n de visualizar sus bene cios y posibles debilidades. Adicionalmente, con el fin de comprobar la adecuación de la propuesta, una gran parte de las ideas fueron implementadas en un prototipo utilizando Prolog
A systematic comparison of roundtrip software engineering approaches
Model-based software engineering contemplates several software development approaches in which models play an important role. One such approach is round-trip engineering. Very briefly, round-trip engineering is code generation from models, and models are updated whenever a code change occurs.
The objective of this dissertation is to benchmark the comparative analysis of the round-trip engineering capability of the UML, Papyrus, Modelio and Visual Paradigm modeling tools. In more detailed terms, the work will focus on evaluating tools to automatically or semi-automatically support round-trip engineering processes for each selected diagram. Collaterally, this dissertation will allow us to gain insight into the current round-trip engineering landscape, establishing the state-of-the-art UML modeling tool support for this approach.
Qualitative and quantitative analysis of the round-trip engineering capabilities of the tools show that the Papyrus, Modeling and Visual Paradigm tools yielded satisfactory results by applying the Reverse and Forward Engineering scenarios without changing the models and codes but applying the Round-trip engineering scenario with changes in model and code presented results with some gaps in model and code coherence. It was concluded that they arose because the semantic definition of the models was done informally. The conclusions drawn throughout the dissertation will answer the questions: How effective are current code generation tools for documenting application evolution? Where will it support the decision made? objectives and will support the recommendations of the best tools that address the round-trip engineering method.A engenharia de software baseada em modelo contempla várias abordagens de desenvolvimento de software nas quais os modelos desempenham um papel importante. Uma dessas abordagens é a Round-trip engineering. Muito brevemente, a Round-trip engineering é a geração de código a partir de modelos, e os modelos são atualizado sempre que ocorre uma alteração no código.
O objetivo desta dissertação é a realização de um benchmarking da análise comparativa da capacidade de Round-trip engineering das ferramentas de modelação UML, Papyrus, Modelio e Visual Paradigm. Em termos mais detalhados, o trabalho se concentrará na avaliação de ferramentas para dar suporte automático ou semiautomático a processos de Round-trip engineering (engenharia direta e engenharia reversa) para cada diagrama selecionado. Colateralmente, esta dissertação permitirá alcançar uma visão do panorama atual da Round-trip engineering, estabelecendo o estado da arte do suporte de ferramentas de modelação em UML à dita abordagem.
A analise qualitativa e quantitativamente da capacidade de Round-trip engineering das ferramentas mostro que, as ferramentas Papiro, Modelagem e Paradigma Visual apresentaram resultados satisfatórios aplicando os cenários de Reverse e Forward Engineering sem alterar os modelos e códigos e com alterações, mas aplicando o cenário Round-trip engineering com alterações nos modelo e código apresentaram resultados com algumas lacunas nomeadamente na coerência dos modelos e código. Concluiu-se que as mesmas surgiram por causa da definição semântica dos modelos ser feita de forma informal. As conclusões tiradas ao longo do trabalho respondera as perguntas: Qual a eficácia das ferramentas atuais de geração de código para documentar a evolução dos aplicativos? Onde apoiará a decisão tomada? que foram definidas nos objetivos e apoiarão as recomendações das melhores ferramentas que aborda o método Round-trip engineering
On the orchestration of operations in flexible manufacturing
Tese de doutoramento em Engenharia Mecânica (Controlo e Gestão) apresentada à Faculdade de Ciências e Tecnologia da Universidade de CoimbraDomínio
A capacidade de produzir bem é a chave da riqueza. Uma boa produção concretiza-se pela
transformação competitiva de matérias-primas em produtos de qualidade para o mercado
global. Tal transformação inclui uma série de operações coordenadas de modo a obter a
produtividade que permite o aumento da competitividade.
Embora algumas operações possam requerer pessoal especializado, a tendência é para uma
crescente automatização. A coordenação das operações automatizadas é também
automatizada (através de uma variedade de transportadores, comunicação digital, etc.).
Contudo, e embora a produção seja automatizada, a configuração do equipamento é feita
manualmente.
Situação
A necessidade de automatização foi inicialmente sentida e aplicada na produção de longas
séries, como no caso da indústria automóvel. Com a necessidade de redução de custos e
aumento de flexibilidade, a inclusão de máquinas/equipamentos controlados por computador,
assim como de interligações por computadores/redes tem sido extensiva. O aumento de
software nestes sistemas, as restrições físicas e as (indesejáveis) interconecções lógicas
conduzem a um aumento da complexidade, que em empresas de produção em grande escala é
obviado por especialistas.
O aumento na procura de produtos personalizados e a rapidez para a sua comercialização
determinam a necessidade de uma produção flexível. Contudo, a referida indesejável complexidade constitui um grande obstáculo para o recurso a soluções (semi)-automatizadas, e
postos de trabalho (de alta qualidade) são deslocados para países de mão-de-obra mais barata.
O caso mais difícil prende-se com a utilização de robôs (que é o tipo de máquina mais flexível)
nas empresas mais flexíveis, como sejam as Pequenas e Médias Empresas (PMEs). Deste modo,
as condições para a utilização de robôs (juntamente com outro tipo de equipamento) em PMEs
(incluindo operações manuais e configuração) representam o maior desafio, uma vez que os
sistemas técnicos têm de ser estruturados de forma a suportarem a desejada flexibilidade.
À semelhança da incapacidade de uma boa gestão em compensar a falta de competência em
actividades como a do comércio ou da investigação cientifica, as etapas de produção têm de ser
apropriadamente construídas e mantidas. Estas últimas representam aquilo em que o produtor
se deve concentrar e especializar. Assim, sejam quais forem os avanços que facilitem a
produção, as práticas de produção competitiva deverão ser mantidas. Especificamente,
processos de trabalho com conhecimentos valiosos não devem ser prejudicados por detalhes
técnicos irrelevantes. Novas tecnologias que possam aumentar a competitividade e/ou
melhorar as condições de trabalho são obviamente desejáveis. Contudo, estas deverão ser
combinadas com princípios de utilização simples para os quais os sistemas de produção são
construídos. Tópico
A complexidade surge tanto na operação como na coordenação, mas também na sua
configuração manual. Esta é parcialmente compreensível e gerenciável, uma vez que uma
determinada máquina ou processo de fabrico pode ser bastante avançado e complexo. Assim, a complexidade será local. Contudo, e em particular com software envolvido, dependências adhoc acidentais entre operações e coordenação tornam a situação actual mais difícil.
Adicionalmente, a configuração de cada máquina e subsistema envolve uma variedade de
interfaces de utilizador e ferramentas de configuração/programação. Uma vez mais, as grandes empresas podem contar com engenheiros altamente qualificados para lidar com estes problemas, enquanto que nas PMEs a situação fica facilmente ingovernável. Consideramos que podemos referir o problema como uma questão de orquestração. Orquestração é então definida como o arranjo, coordenação e gestão (semi-) automatizada de
complexos sistemas de produção, incluindo as suas interacções em termos de comunicação e
os seus serviços em termos de controlo por computador.
O tópico pode então ser formulado como a procura de princípios óptimos, ou pelo menos
exequíveis, para a orquestração de processos produtivos de pequena escala. Na realidade,
existem aspectos fundamentais envolvidos que não representam apenas uma questão de
engenharia a ser solucionada. Ao contrário, a situação requer uma abordagem científica com
especial atenção para a recente tecnologia de suporte proveniente de outras áreas.
Abordagem cientifica - A procura de princípios apropriados a PMEs para a orquestração de processos de produção não
se presta a uma análise teórica, que por sua vez requer a utilização de modelos formais e
derivação das soluções (sub-)óptimas e suas propriedades. Embora tivesse sido preferível obter provas formais de uma solução óptima, a complexidade do equipamento, o envolvimento de humanos, a considerável desorganização das PMEs, a necessidade de aderir às práticas
industriais, assim como a variedade de PMEs existentes, dificultam uma abordagem teórica.
Deste modo, foi seguida uma abordagem empírica. A dificultar o teste e a avaliação de uma
abordagem empírica estão as possíveis variações no software envolvido, juntamente com a
constante mudança que ocorre na produção em sistemas de produção flexíveis.
Adicionalmente, a experimentação não pode ser conduzida em ambientes industriais (onde
esta iria perturbar a produção). Assim sendo, as experiências deverão ser cuidadosamente
seleccionadas e conduzidas em laboratório com recurso a equipamento industrial. Ainda assim,
dadas as condições e singularidade de algum equipamento, não é fácil reproduzir os resultados
noutros locais, o que constitui um problema para a validação e aceitação dos mesmos.
Contudo, caso a solução sugerida em termos de princípios técnicos possa ser encontrada ou
confirmada por resultados publicados de investigação independente, ou se técnicas
relacionadas derem origem a novos produtos, tal pode desejavelmente contribuir para a
validação de resultados. Isto é, embora resultados semelhantes para outros laboratórios sejam válidos, as diferenças actuais vão revelar a existência de variações que merecem estudo
detalhado.
Abordagem técnica - Os sistemas de produção flexíveis consistem em equipamento distribuído do ponto de vista computacional. Tipicamente, os diferentes aparelhos não foram concebidos para operarem em
conjunto, mas devem, no entanto, ser de fácil configuração no local de trabalho. Uma
abordagem básica passaria pela utilização de plataformas de software que suportassem
componentes distribuídos de uma forma flexível. Contudo, as plataformas computacionais
existentes podem não satisfazer com eficiência a necessidade do equipamento integrado,
podendo revelar falta de robustez, nomeadamente nas interconecções. Deste modo, é
necessário combinar com algum cuidado a tecnologia existente e confrontar as soluções
sugeridas com as necessidades actuais das empresas.
A abordagem seguida encontra-se dividida em quatro partes:
1. Suportar o acoplamento fraco entre componentes de forma a obter simples composição
quando o equipamento é instalado ou substituído. As interacções necessitam ser
assíncronas e baseadas em eventos através de interfaces bem definidas e auto-explicativas,
contendo serviços definidos em termos de operações de produção (e não em termos de
software interno).
2. Produzir princípios unificados para interacção com utilizador e interfaces, permitindo que
utilizadores não especializados possam (re)configurar e (re)programar o sistema de
produção. Uma interacção com o utilizador que permita combinar operações básicas que
resultem num novo serviço, o qual deverá idealmente estar facilmente acessível através de
interfaces programadas e manuais.
3. As abordagens baseadas em modelos têm-se revelado eficazes para desempenho e
reutilização. No entanto, os modelos consistem em elevado nível de conhecimento e são
dispendiosos de obter no âmbito da flexibilidade e desorganização das PMEs. Uma melhor
abordagem é permitir a visibilidade do conhecimento envolvido numa determinada etapa em termos do processo de produção, de modo a que o operador transmita inteligência
através de uma interface simples.
4. O software é por defeito não descritivo, assim como a execução sequencial de código
imperativo não se compõe. Conhecimento no metanível e descrições declarativas deverão
ser utilizadas, se possível, sem comprometimento dos itens anteriores. O objectivo é gerar
software ao nível de aplicação, partindo de descrições de alto nível.
A avaliação experimental deverá verificar técnicas individuais como tal, e os resultados deverão
ser comparados com investigação relacionada. A abordagem global consiste em combinar os
resultados das diferentes partes em princípios aplicáveis a futuros processos de produção das
PMEs.
Resultados
O uso de arquitecturas orientadas a serviços (SOA) nas redes empresariais resolveu as
limitações das arquitecturas orientadas a componentes no que diz respeito ao acoplamento
através da standarização das interfaces, protocolos de comunicação, gestão de transacções, e
segurança, entre outros. SOA ao nível do dispositivo é o resultado da importação de princípios
SOA para os sistemas embebidos com algumas importantes diferenças, nomeadamente:
inclusão de padrões de mensagens publish/subscribe, descoberta e descrição directa entre
dispositivos, e modelos descritivos genéricos. Numa primeira fase, este trabalho validou os
inúmeros trabalhos realizados sobre a aplicação de SOA ao nível do dispositivo em ambiente
industrial com o teste num protótipo de célula de trabalho. De seguida foi levado a cabo um
trabalho de avaliação comparativa entre duas SOA ao nível do dispositivo com estilos de
arquitectura diferentes, servindo como base aos restantes desenvolvimentos da tese. Ainda
que os resultados desta avaliação tenham mostrado o grande avanço proporcionado pelo uso
de SOA, nomeadamente no que diz respeito ao desacoplamento entre componentes atingido,
alguns aspectos críticos para o seu uso efectivo ainda estavam por resolver, designadamente:
1. A geração e a especificação dos serviços ao nível da tarefa
2 A definição de uma linguagem de orquestração adequada às SOA ao nível do dispositivo. Uma abordagem baseada em tarefas, quando relacionadas com processos de manufactura,
consubstancia-se na capacidade de disponibilizar um mecanismo flexível (e amigável para o
utilizador de uma PME) para a especificação das interfaces de rede. Os programas de robô são
um elemento chave na flexibilidade do robô e este trabalho mostrou que o seu uso para a
definição de interfaces vai elevar a fasquia da flexibilidade para o nível das interligações. A
natureza procedimental de muitas linguagens de robô encaixa-se perfeitamente com o padrão
de mensagens definido nas plataformas SOA, com uma mistura de variáveis de estado definidas
a partir de variáveis do robô, e com acções definidas a partir de métodos da linguagem robô.
A definição de uma linguagem de orquestração preencheu uma lacuna nos padrões de
orquestração: sistemas conduzidos a eventos. Estes sistemas definem estados e transições de
uma forma clara, potenciando a capacidade do utilizador de acompanhar o estado do sistema.
Statecharts constituem um par adequado para a arquitectura SOA, uma vez que as transições
de estado são baseadas em eventos, que no nosso caso são eventos na rede, mas os estados (e
também as transições) incluem igualmente acções, que podem ser mapeadas para operações.
A avaliação empírica efectuada mostrou uma previsível boa curva de aprendizagem para estes
sistemas, em parte devido às vantagens associadas à sua semelhança a técnicas de automação
tradicionais, como os Sequential Function Charts. Os resultados desta avaliação são positivos e
justificam esforços suplementares para efectuar testes em aplicações reais, o que neste caso
implica utilizadores de PME reais.
Conclusões
Três conclusões devem ser retiradas desta tese:
A estratégia proposta para a especificação de serviços é um elemento chave no futuro do uso
de SOA ao nível dos dispositivos, devido à importância da definição das interfaces no sucesso
destas arquitecturas. A programação ao nível da tarefa é desta forma transferida da
programação dos robôs para o nível da rede.
Uma linguagem conduzida a eventos foi definida para a orquestração. Testes revelaram o seu
uso e compatibilidade com as necessidades das células de fabrico das pequenas e médias empresas, nomeadamente estados explícitos e transições baseadas em eventos. Esta
abordagem preenche uma lacuna nos padrões de orquestração existentes na indústria e
constitui uma excelente base de trabalho para o futuro.
Finalmente, foram abordadas técnicas baseadas em conhecimento, e avaliada a sua integração
com a arquitectura definida anteriormente. Estes estudos mostraram a importância das
estratégias descritivas e as inúmeras possibilidades abertas quando a semântica é adicionada
aos sistemas industriais baseados em software, especialmente quando suportados em bem
estabelecidas tecnologias de rede, como as descritas anteriormente.Our ability to manufacture well is the key to our wealth. Obtaining a wider range of different
(and better) products in a sustainable way in terms of labour and environment is the big
challenge faced by modern manufacturing. In the last few decades, automation has played a
key role in the enhanced productivity of mass-production industries, but there has been a
paradigm shift: global consumers ask for customization, leading manufacturers to target mass
customization and consequently requiring new levels of flexibility for automation. An industrial
robot is usually considered to be a flexible machine, which is only true within the large plant
scenario. Small enterprises, which are by nature the most flexible ones, do not make use of
robot systems as they could, because robot flexibility, which relies on reprogramming and
reconfiguring, cannot be taken on by the SME (Small Medium Enterprises) worker at the
workshop, and hiring specialists is unacceptable in terms of costs. The easy reconfiguration of a
robotic work-cell, which is a distributed environment with computation in different platforms
that are coordinated by software, is hindered greatly by the dependencies between cell
components. This thesis addresses the problem of dependencies by proposing principles and
mechanisms for the orchestration of complex manufacturing systems, i.e., the (semi-)
automated coordination of their interactions in terms of communications and computer
control. The industrial environment, especially regarding robotics, does not lend itself to theoretical
analysis due to the amount of work needed to reach formal models. This is exacerbated in the
unstructured SME environment and when working with user-in-the-loop systems. Therefore, the approach used in this thesis was mainly empirical, with validation through laboratory
prototypes used by some representative users.
The approach consisted of the following parts:
1. supporting loose coupling between components to promote simple composition of services
to enable an easier reconfiguration;
2. defining unifying principles in terms of user interaction, by taking into account current robot
technologies and improvements from other scientific areas, namely enterprise level
networking;
3. enabling a task-based view of knowledge in terms of the manufacturing processes to
promote the reconfiguration of the system by process rather than robotics specialists;
4. proposing declarative techniques that support easy configuration of the work-cell in terms
understandable by the SME user.
The use of service-oriented architectures (SOAs) in the business world has tackled the
limitations of component-oriented architectures in terms of coupling through the
standardization of interfaces, communication protocols, transaction management, and security,
among others. Device-level SOA are the result of the porting of SOA principles to the embedded
level with the addition of several important features, namely: publish/subscribe messaging
patterns, peer-to-peer discovery description and generic templates. At an initial stage, this
work has validated the current trend of using device-level SOA in industrial environments by
testing their use against a prototype work-cell. Following this, a comparison was made between
device-level SOA platforms that embodied two different architectural styles. This served as a
basis for the rest of the thesis. Although the results from this evaluation have shown the great
advances brought about by the use of device-level SOA, for instance in terms of decoupling,
some critical issues for their effective use remained unchallenged, namely:
1. The generation and the specification of task-level services (contracts), with transparent and easy-to-use techniques for the SME user. 2. The definition of orchestration techniques adapted to the device-level SOA, with adequate
expressiveness and simplicity for the SME user.
A task-based view of knowledge in terms of manufacturing processes relies on the ability to
provide a flexible (SME user-friendly) mechanism for the specification of network interfaces.
Robot programs are the key element for robot flexibility. This work has shown that their use in
interface definition will feature flexibility also at the interconnection level. The procedural
nature of many robot programming languages copes perfectly with the device-level SOA
messaging style, with a mixture of evented state variables defined by robot variables, and with
actions defined by robot methods.
The definition of an orchestration language has addressed a missing pattern in service
orchestration: event-driven systems. These systems define states and transitions in a clear way,
thus enhancing the user’s ability to predict the state of the system. Statecharts provide a
perfect match for the device-level SOA since the state-transitions are event-based, but the
states (and the transitions) embody actions, which can be mapped to operations. The empiric
evaluation made with several types of users has shown the predictable steep learning curve of
these systems, partly due to their resemblance to traditional automation techniques like SFCs.
The results are therefore positive and justify the effort of testing the system against real
applications, which in this case means with real SME users.
Descriptive techniques for software are one of the keys to establish the bridge between
humans and computer programs. Despite recent evolutions, these techniques are not yet ready
for use, and supportive technologies and methodologies need to be tested. In this work, a cell
specification language has been defined and software developed that configures a
programming-by-demonstration robotic work-cell.
In conclusion, there are three main outcomes from this thesis. The proposed strategy for the specification of services is a key enabler in the future use of
device-level SOA in industrial robotics, due to the importance of interface definition in the success of these architectures. Task-level programming is in this way extended from the robot
programming level to networked devices.
An event-driven language has been defined for the orchestration. Tests revealed its ease of use
and compatibility with the orchestration needs of SME work-cells, namely: explicit states and
event-based transitions. This approach fulfils a missing orchestration pattern in the industry,
and provides an excellent basis for future work.
A descriptive robotic cell specification has been introduced that supports the automatic workcell
(re)configuration. This work has shown the importance of descriptive knowledge in
automation, especially when supported by the networking integration techniques described
previously.Project SMERobot, Integrated project funded under the European Union’s Sixth Framework Programme (FP6
Concrete syntax definition for modeling languages
Model Driven Engineering (MDE) promotes the use of models as primary artefacts of a software development process, as an attempt to handle complexity through abstraction, e.g. to cope with the evolution of execution platforms. MDE follows a stepwise approach, by prescribing to develop abstract models further improved to integrate little by little details relative to the final deployment platforms. Thus, the application of an MDE process results in various models residing at various levels of abstraction. Each one of these models is expressed in a modeling language, in which one may find appropriate concepts for the abstraction level considered. Many advocate to use the right (modeling) language for the right purpose. This means that it is sometimes better approach to use small languages specific to the considered domain and abstraction level, than to use general purpose languages (e.g. UML) when they do not perfectly fit the (modeling) needs. As a matter of fact, an MDE development process, which involves many different domains and abstraction levels, should also involve a large variety of modeling languages. Project managers who want to apply an MDE process need to deal with this language proliferation to such an extent that, in the long run, one may infer that language engineers can become major actors of software development teams. We believe that comprehensive modeling language management facilities may considerably alleviate that MDE drawback. Such facilities may include modeling language definition, extension, adaptation, or composition. To define a (modeling) language, one needs to define its abstract syntax, its semantics, and one or more concrete syntaxes. This thesis focuses on concrete syntax definition for modeling languages, when the abstract syntax is given in the form of a metamodel. We will provide solutions both for textual and graphical concrete syntaxes. Some of our experiences in building textual languages (as MTL, a model transformation language), and graphical languages (as Netsilon, a web-application modeler) has shown that a lot of work was spent in implementing interface using traditional techniques, be it a text processor generated from a compiler compiler specification, or a modeler making use of modern 2D graphical libraries. Indeed, abstract and concrete syntax were implemented in a disconnected way, and it was then necessary to assemble them, which became rapidly clumsy while abstract syntax evolved. We built our solution to concrete syntax definition as companions of the abstract syntax. The definition of concrete syntax we propose here made it possible to build automatic tools able to analyze or synthesize models from/to text, and to create graphical modelers. We will present a metamodel for textual concrete syntax definition to construct constructive reversible grammars. We will also propose a technique for graphical concrete syntax definition following a two-step process: specification and realization. Specification is a restrictive approach in which a metamodel defines a graphical concrete syntax. Both relations with abstract syntax and spatial relationships are expressed by means of constraints. The realization step proposes a way to provide the concrete syntax tree a meaning, by attributing it a graphical appearance, and by expressing possible user interactions. The structure of the document is the following. After introducing in deeper details the problem and the general structure of the solution we propose, we will take a tour of MDE, text and graph grammars. Then, we will present Netsilon as an example of an MDE tool to MDE development, which required both the definition of a graphical and a textual modeling language. The two following sections will present the solutions we propose for textual and graphical concrete syntax definition, respectively. Final remarks and possible improvements, especially regarding reusability in general of MDE meta-artifacts (like metamodels or model transformations), and of concrete syntax in particular, will conclude the document
- …