51 |
Model-driven Pretty Printer for Xtext Framework / Model-driven Pretty Printer for Xtext FrameworkNovotný, Marek January 2013 (has links)
The domain-specific language allows for describing problems of a concrete domain, for which the language is created. This fact implies that a number of languages of this kind grows with a number of problem domains. The use of domain-specific languages brings a necessity to pretty-print these languages, where the concept of pretty-printing consists of code formatting and syntax highlighting. One of tools that allow for creating domain-specific languages is the Xtext framework, which offers only a limited range of tools that are able to define a configuration for pretty-printing. Moreover, these tools are hardly understandable because they are confusing and requires knowledge of Xtext's internals. Thus this thesis introduces a new way of pretty-printing domain-specific languages. The way is based on declarative definition of formatting rules. Furthermore, this thesis helps a user to create formatting rules by utilizing nontrivial heuristics.
|
52 |
Uma abordagem para criação, reúso e aplicação de refatorações no contexto da modernização dirigida a arquitetura / An approach to create, reuse and apply refactoring in the context of architecture driven modernizationDurelli, Rafael Serapilha 12 April 2016 (has links)
A Modernização Dirigida a Arquitetura (do inglês - Architecture-Driven Modernization (ADM)) é uma iniciativa do Object Management Group (OMG) no sentido de padronizar os tradicionais processos de reengenharia de software utilizando metamodelos. O metamodelo mais importante da ADM é o Knowledge Discovery Metamodel (KDM), cujo objetivo é representar todos artefatos de um determinado sistema, de forma independente de linguagem e plataforma. Um passo primordial durante processos de modernização de software é a aplicação de refatorações. No entanto, até o presente momento, há carência de abordagens que tratam das questões referentes a refatorações no contexto da ADM, desde a criação até a aplicação das mesmas. Além disso, atualmente, não existe uma forma sistemática e controlada de facilitar o reúso de refatorações que são específicas do KDM. Diante disso, são apresentados uma abordagem para criação e disponibilização de refatorações para o metamodelo KDM e um apoio ferramental que permite aplicá-las em diagramas de classe da UML. A abordagem possui dois passos: (i) o primeiro envolve passos que apoiam o engenheiro de modernização durante a criação de refatorações para o KDM; (ii) o segundo resume-se na especificação das refatorações por meio da criação de instâncias do metamodelo Structured Refactoring Metamodel (SRM) e posterior disponibilização delas em um repositório. O apoio ferramental, denominado KDM-RE, é composto por três plug-ins do Eclipse: (i) o primeiro consiste em um conjunto de Wizards que apoia o engenheiro de software na aplicação das refatorações em diagramas de classe UML; (ii) o segundo consiste em um módulo de propagação de mudanças, permitindo manter modelos internos do KDM sincronizados; (iii) o terceiro fornece apoio à importação e reúso de refatorações disponíveis no repositório. Além disso, o terceiro módulo também contém uma linguagem específica de domínio, a qual é utilizada para auxiliar o engenheiro de software a instanciar o metamodelo SRM. Foi realizado um experimento, buscando reproduzir os cenários em que engenheiros de software realizam refatorações em instâncias do metamodelo KDM. Os resultados mostraram que a abordagem, bem como o apoio ferramental podem trazer benefícios para o engenheiro de software durante a atividade de aplicação de refatorações em sistemas, representados pelo metamodelo KDM. / Architecture Driven Modernization (ADM) is an initiative of the Object Management Group (OMG) whose main purpose is to provide standard metamodels that enable the conduction of modernization activities as reverse engineering and software transformation. In this context, the most important metamodel is the Knowledge Discovery Metamodel (KDM), whose objective is to represent software artifacts in a language- and platform-agnostic fashion. A fundamental step during software modernization is refactoring. However, there is a lack of approaches that address how refactoring can be applied in conjunction with ADM. In addition, few efforts have investigated how refactorings can be reused and systematically applied within the context of KDM representations. We propose an approach for creating and cataloging refactorings tailored to KDM. Our approach is twofold: (i) the first part comprises steps that help the software modernization engineer create KDM-compliant refactorings; (ii) the second part has to do with turning these refactoring descriptions into Structured Refactoring Metamodel (SRM) and making them available to be reused. To automate these activities, we developed a tool that makes it possible to apply refactorings to Unified Modeling Language (UML) class diagrams. Our tool, named KDM-RE, comprises three Eclipse plug-ins, which can be briefly described as follows: (i) a set of Wizards aimed at supporting the software modernization engineer during refactoring activities; (ii) a change propagation module that keeps the internal metamodels synchronized; and (iii) a plug-in that supports the selection and reuse of the refactorings available in the repository. Moreover, we developed a domain specific language to minimize the effort required to instantiate SRMs. We carried out an evaluation that simulates how software modernization engineers would go about refactoring KDM instances. Our results would seem to suggest that our approach, when automated by our tool, provides several advantages to software modernization engineers refactoring systems represented by KDMs.
|
53 |
Uma abordagem de desenvolvimento de linha de produtos orientada a modelos para a construção de famílias de sistemas embarcados críticos / A model-driven product line development approach to build safety-critical embedded familiesQueiroz, Paulo Gabriel Gadelha 20 January 2015 (has links)
Sistemas embarcados críticos (SEC) correspondem aos sistemas embarcados para aplicações críticas, que são aplicações nas quais falhas podem por vidas em perigo. A crescente imersão deste tipo de sistema em nossas atividades cotidianas aumentou sua demanda, e consequentemente, a necessidade por novas técnicas de desenvolvimento que possam aumentar a produtividade dos desenvolvedores. Linha de produtos (LP) é uma técnica de reúso, na qual famílias de produtos similares são desenvolvidos em conjunto, e portanto, objetiva-se o desenvolvimento em larga escala. Com a utilização de LP, pode-se reusar requisitos e arquitetura de forma sistemática. Entretanto, o reúso no domínio de sistemas embarcados críticos ainda é visto de forma cética. Por outro lado, o domínio de SEC tem obtido avanços de desenvolvimento por meio de técnicas orientadas a modelo. A Engenharia orientada a modelos (MDE) concentra-se na importância de modelos no ciclo de vida do sistema, tornando-os parte do produto final. Assim, mantêm-se os modelos simples, e a maioria da complexidade do software passa a pertencer às transformações, que podem ser obtidas automaticamente por motores de transformação. Isso ajuda a aumentar a qualidade do produto final, bem como facilitar a futura evolução do software, que poderá ser feita mudando-se os modelos de alto nível e obtendo-se, de forma automática, o novo produto. MDE é particularmente útil no domínio de SEC, pois a partir de modelos corretos do problema, a chance de introdução de erros durante a codificação é menor se geradores de aplicações forem utilizados em vez de codificação manual. Além disso, o aumento no nível de abstração proporcionado pelo MDE permite que técnicas de validação e verificação sejam usadas desde os estágios iniciais de desenvolvimento, tais como co-design e co-simulação. Portanto, este trabalho visa defender a tese de que é possível oferecer os benefícios do desenvolvimento em larga escala para o domínio de SEC e ainda continuar se beneficiando de técnicas de MDE. Para corroborar esta tese, define-se uma abordagem de desenvolvimento de linha de produtos de sistema com uso de técnicas de engenharia orientada a modelos para o desenvolvimento de famílias de sistemas embarcados críticos. Além disso, apresenta-se um estudo de caso de marca-passo elaborado segundo as indicações da abordagem proposta que indicam a viabilidade de sua utilização. / Safety-critical embedded systems (SCES) correspond to embedded systems for critical applications, i.e., applications where lives can be lost if they fail. The increasing immersion of this type of system in our daily activities increased their demand and, consequently, the need for new development techniques that can increase developers productivity. Product Line (LP) is a promising technique for reuse, in which families of similar products are developed together and, therefore, it aims at large-scale development. With the use of LP we can reuse requirements and architecture systematically. However, developers remain sceptical about reuse in the SCES domain, mainly due to problems in the past, such as the failure of the spacecraft Ariane 5. In addition, advances in development of techniques for the SEC domain have been obtained, for example through model-driven engineering (MDE) approaches. MDE focuses on the importance of models in the software life cycle, making them part of the final product. So, it keeps models simple, and most of the software complexity belongs to the transformations that can be obtained automatically by transformation engines. This helps increasing the quality of the final product, and facilitate the future development of software that can be done by changing the high level models and obtaining, automatically, the new product. MDE is particularly useful in the SCES domain because, from correct models of the problem, the chance of introducing errors during coding is smaller if generators are used in the development instead of manual coding. In addition, the increased level of abstraction provided by MDE allows the use of validation and verification techniques since the early stages of development, such as co-design and co-simulation. Therefore, this work aims to defend the thesis that it is possible to offer the benefits of large-scale development for the SCES domain and still continue to benefit from MDE techniques. In support of this thesis, we define a system product line approach using model-driven techniques for the development of safety-critical embedded families. In addition, we present a case study prepared according to the directions of approach.
|
54 |
CoMDD: uma abordagem colaborativa para auxiliar o desenvolvimento orientado a modelos / CoMDD: a collaborative model driven development approachFernandes Neto, David 01 June 2012 (has links)
O desenvolvimento orientado a modelos (Model Driven Development - MDD) é uma abordagem que tem ganhado cada vez mais espaço na indústria e na academia, trazendo grandes benefícios, como o aumento de produtividade. Uma forma de se trabalhar usando MDD em equipe é usando uma IDE (Integrated Development Environment) associada a um sistema de versionamento. Entretanto, trabalhar colaborativamente usando uma IDE associada a um sistema de versionamento pode trazer algumas complicações para o desenvolvimento como: conflitos de modelos, documentação descontinuada, dificuldades por parte dos interessados em usar sistemas de versionamento, etc. Nesse contexto, este trabalho propõe uma abordagem de uso de wiki para desenvolvimento de MDD, de modo que o desenvolvedor seja capaz de criar modelos, gerar código fonte, compartilhar e versionar os modelos e ainda documentar colaborativamente, de maneira mais simples e fácil do que abordagens tradicionais. Isso possibilita que mais usuários não desenvolvedores possam participar mais no processo de desenvolvimento e ainda permite o aumento de produtividade. Para tentar evidenciar de que é possível uma wiki ser usada para desenvolver software, foi criada uma Domain Specific Language - DSL em uma wiki e foram realizados três estudos de caso: um com estudantes do ensino médio e que representam os não desenvolvedores, um com quatro alunos de pós-graduação com experiência de desenvolvimento na indústria e o último estudo de caso foi realizado com 48 participantes entre desenvolvedores e alunos de pósgraduação em Ciências da Computação. Os estudos de caso mostraram que é viável usar uma wiki para desenvolvimento, que não desenvolvedores se adaptam bem à abordagem e que 86% dos desenvolvedores usariam a abordagem proposta se tivessem que trabalhar com MDD. Os estudos de caso também levantaram as principais barreiras para aumentar a aceitação da abordagem. Com isso, este trabalho apresenta além de uma abordagem relativamente inédita na literatura, resultados sobre uso de sistemas de versionamento, de IDEs e de desenvolvimento colaborativo / The Model Driven Development (MDD) is an approach that has gained more space in industry and academia, bringing great benefits such as increased productivity. One way of working in teams with MDD is using an IDE (Integrated Development Environment) with a versioning system. However, to collaboratively work with an IDE and a versioning system may have implications and problems for the development as: conflicts of models, documentation discontinued, difficulties for stakeholders to use versioning systems, etc. In this context, this work proposes an approach to use a wiki to develop MDD, so that the developer is able to create models, generate source code, sharing and versioning models and also to collaboratively document, in a more simple and easy way than the traditional approaches. This enables non developers can participate more in the development process and also allows increasing productivity. To try to show that a wiki can be used to develop software, we created a Domain Specific Language (DSL) in a wiki and were performed three case studies: one with high school students and represent the non developers, another one with four graduate students with experience in software development in the industry, and the last case study was conducted with 48 participants among developers and graduate students in Computer Science. The case studies showed the feasibility of using a wiki for development, that non developers adapted well to the approach and 86 % of the developers would use a wiki to develop MDD. The study also raised the main barriers to increase the acceptance of the approach. Therefore, this work presents also a relatively new approach in the literature and results on the use of versioning systems, IDEs and collaboratively development
|
55 |
Essential notation for object-relational mappingTorres, Alexandre January 2014 (has links)
Esta tese apresenta a Notação Essencial para Mapeamento Objeto-Relacional (em inglês, ENORM), uma notação de propósito geral que representa os conceitos estruturais do Mapeamento Objeto-Relacional (MOR). O objetivo de ENORM é facilitar o projeto através da aplicação clara dos padrões MOR, documentação dos mapeamentos com uma notação independente de plataforma, e tornar-se um repositório para transformações dirigidas por modelos, geração parcial de código e ferramentas de engenharia round-trip. ENORM é uma notação baseada em perfil UML, projetada para representar padrões pertencentes a lógica de modelo do domínio, com objetos do domínio incorporando tanto comportamento como dados. A notação representa padrões adotados por frameworks MOR difundidos no mercado (Active Record, do Ruby; SQLAlchemy, do Python; Entity Framework, da Microsoft .net; JPA, Cayenne, and MyBatis, do Java), seguindo os princípios Não se repita e Convenção sobre Configuração. ENORM foi avaliado por experimentos controlados, comparando a modelagem de estudantes com modelos UML e relacionais separados, atingindo um número significativamente maior de objetivos na maioria dos cenários, sem ser significativamente diferente nos piores cenários experimentais. / This thesis presents the Essential Notation for Object-Relational Mapping (ENORM), a general purpose notation that represents structural concepts of Object- Relational Mapping (ORM). The goal of ENORM is to facilitate the design by the clear application of ORM patterns, document mappings with a platform independent notation, and became a repository for model-driven transformations, partial code generation, and round-trip engineering tools. ENORM is a UML profile based notation, designed to represent patterns within a domain modeling logic, with objects of the domain incorporating both behavior and data. The notation represents patterns adopted by widespread ORM frameworks in the market (Active Record, of Ruby; SQLAlchemy, of Python; Entity Framework, of Microsoft .net; JPA, Cayenne, and MyBatis, of Java), following the Don´t Repeat Yourself and Convention over Configuration principles. ENORM was evaluated by controlled experiments, comparing the modeling by students with the use of separated UML and relational models, achieving significantly more goals in the majority of the scenarios, without being significantly different in the worst experimental scenarios.
|
56 |
Model-driven development of Rich Internet Applications on the Semantic WebHermida Carbonell, Jesús María 09 April 2013 (has links)
In the last decade, the Web 2.0 brought technological changes in the manner of interaction and communication between users and applications, and among applications as well. Rich Internet Applications (RIA) offer user interfaces with a higher level of interactivity, similar to desktop interfaces, embed multimedia contents and minimise the communication between client and server components. Nonetheless, RIAs behave as black boxes that show the information in a user-friendly manner but this information can be only visualised gradually, according to the events triggered by the users on the Web browser, which limits the access of software agents, e.g., Web searchers. In the context of the present Internet, where the value has been moved from the Web applications to the data they manage, the use of open technological solutions is a need. In this way, the Semantic Web was aimed at solving issues of semantic incompatibility among systems by means of standard techniques and technologies (from knowledge representation and sharing to trust and security), which can be the key to solving the issues detected in RIA. Although some solutions exist, they do not cover all the possible types of RIA or they are dependent on the technology chosen for the implementation of the Web application. As a first contribution, this thesis introduces the concept of Semantic Rich Internet Application (SRIA), which can be defined as a RIA that extensively uses Semantic Web technologies to provide a representation of its contents and to reuse existing knowledge sources on the Web. The solution proposed is adapted to the existing RIA types and technologies. The thesis presents the architecture proposed for this type of application, describing its software modules and components. The evaluation of the solution was performed based on a collection of case studies. The development of Web applications, especially in the context of the Semantic Web, is a process traditionally performed manually and, given the complexity of the SRIA applications in this case, it is a process which might be prone to errors. The application of model-driven engineering techniques can reduce the cost of development and maintenance (in terms of time and resources) of the proposed applications, as demonstrated their use in other types of Web applications. Moreover, they can facilitate the adoption of the solution by the community. In the light of these issues, as a second contribution, this thesis presents the Sm4RIA methodology (Semantic Models for RIA) for the development of SRIA, as an extension of the OOH4RIA methodology. The thesis describes the development process, the models (with the corresponding metamodels) and the transformations included in the methodology. The evaluation of the methodology consisted in the development of the case studies proposed. The application of this model-driven methodology can speed up the development of these Web applications and simplify the reuse of external sources of knowledge. Finally, the thesis describes the Sm4RIA extension for OIDE, i.e., an extension of the OIDE CASE tool that implements all the elements of the Sm4RIA methodology.
|
57 |
Open Code Translation from Executable and Translatable UML Models - Implicit BridgingLöfqvist, Mikael January 2007 (has links)
<p>Executable and Translatable UML (xtUML) is the next abstraction level in software development, where both programming language and software architecture have been abstracted away. xtUML is a well defined UML profile, extended with precise action semantics. This allows the developers to define a problem area, domain, in such a detail that it can be executed. By defining the system with xtUML-models, domains, the system functionality can be verified early in the development process. Translation to code can be done in different ways and this work will be performed in an environment where code is automatically generated with a model compiler.</p><p>The goal with a domain is that it should be independent of other domains, reused without modification and exchanged with another domain solving the same problem. However a domain can make assumptions that certain functionality is available and these assumptions are requirements for another domain.</p><p>To fulfil these goals there must be a minimal coupling between the domains. This can be solved with the technique Implicit Bridging, where the bridge dependency between domains is defined in a bridge. The dependency is in the form of mappings/coupling between elements in both domains. By defining a bridge interface for a server domain a client domain can use the resources offered by the server domain.</p><p>The work performed shows how an implementation of Implicit Bridging could be realized by applying the technique in a microwave oven system. From the system design five different mapping types have been implemented. The applicability and the quality of the implementation have been verified by testing the generated system functionality and also verifying the goals, exchangeability and reuse of domains, of the system.</p>
|
58 |
Entwicklung eines Editors zum Entwurf von Benutzerschnittstellen für Web Services auf Basis der abstrakten UI-Beschreibungssprache WSGUISpillner, Josef 17 August 2007 (has links) (PDF)
Diese Diplomarbeit behandelt das Themengebiet der automatischen Erzeugung von grafischen Benutzeroberflächen (GUIs) im Kontext von Webservices. Es geht dabei konkret um einen Editor, mit dem Hinweise zur Generierung von Dialogen erstellt werden können. Diese Hinweise sollen dann von den dialogerzeugenden Anwendungen einbezogen werden, um eine dynamische Interaktion mit Webservices durch beliebige Nutzer ohne dienstspezifische Software zu ermöglichen. Die Arbeit führt in die aktuellen Techniken zur GUI-Generierung ein und stellt Transformationsprinzipien vor, die eine Generierung ausgehend von einem formalen Datenmodell ermöglichen. Dabei müssen mangelnde Modellparameter in Beschreibungen von Webservices manuell ausgeglichen werden (WSGUI-Konzepte). Diese Zielstellung führt zum Entwurf des WSGUI-Editors. Die anschließende Implementierung berücksichtigt darüber hinaus Integrationsaspekte wie die Publizierung von WSGUI-Hinweisen, Einbindung von GUI-Übersetzungen und eine Vorschau auf die zu generierenden Dialoge. Abgeschlossen wird die Arbeit mit einer Bewertung des Editors, aber auch einer Reihe von Vorschlägen zur Vereinfachung ähnlich gelagerter zukünftiger Projekte im Umfeld von Webservices.
|
59 |
Soporte de trazabilidad en el proceso de transformación de modelosMartínez Grassi, Omar Armando 18 December 2014 (has links)
El desarrollo conducido por modelos o Model-Driven Development (MDD) es una aproximación a la Ingeniería de Software cuyo concepto central son los modelos y sus respectivas transformaciones. MDD brinda los principios básicos que permiten visualizar un sistema de software como un conjunto de modelos que son sucesivamente refinados hasta alcanzar uno con el suficiente nivel de detalle como para ser implementado. La Arquitectura Conducida por Modelos o Model-Driven Architecture (MDA) es la propuesta del Object Management Group (OMG) para MDD. Su objetivo fundamental es separar la especificación de la funcionalidad del sistema de la especificación de la implementación de dicha funcionalidad sobre una plataforma específica. La trazabilidad, como propiedad deseable de toda transformación de modelos, tiene un rol fundamental dentro del paradigma dado que la misma permite, entre otras cosas, la posibilidad de evaluar el impacto en fases avanzadas del ciclo de vida ante cambios en los requerimientos elicitados en etapas tempranas, y el mantenimiento de la consistencia entre los distintos modelos que guían el desarrollo. Este trabajo propone un esquema que permite la obtención de información de trazabilidad a partir de la definición de una transformación de modelos escrita en lenguaje QVT Relations mediante la utilización de una estrategia de inferencia de trazas definida ad hoc. Dicho proceso es totalmente automático y no depende de la ejecución de la transformación. Las principales contribuciones del estudio incluyen la minimización de los esfuerzos manuales en la gestión de trazabilidad, actividad tediosa y muy propensa a errores, y la independencia respecto de la implementación del motor QVT. / Model-driven development (MDD) is a Software Engineering approach consisting of models and their transformations. MDD gives the basic principles to visualize a software system as a set of models that are repeatedly refined until a model with enough details to implement. Model-driven architecture (MDA) is the MDD view of Object Management Group. MDA main goal is to separate the system functional specification from the implementation specification on an given platform. Traceability, as a desired feature of transformations, has a major role within the paradigm since it allows the possibility to evaluate the impact at advanced stages of changes in requirement specification elicited early, and keeping consistency between models that guide the development, among other benefits. This work proposes a framework to get traceability information from a transformation definition written in QVT Relations language using a trace inference strategy defined ad hoc. This process is fully automated and does not depend on the execution of transformation. The contributions of the work include the minimization of manual efforts to achieve traceability, as error-prone and time-consuming activity, and the attainment of independence regarding the QVT engine implementation.
|
60 |
Essential notation for object-relational mappingTorres, Alexandre January 2014 (has links)
Esta tese apresenta a Notação Essencial para Mapeamento Objeto-Relacional (em inglês, ENORM), uma notação de propósito geral que representa os conceitos estruturais do Mapeamento Objeto-Relacional (MOR). O objetivo de ENORM é facilitar o projeto através da aplicação clara dos padrões MOR, documentação dos mapeamentos com uma notação independente de plataforma, e tornar-se um repositório para transformações dirigidas por modelos, geração parcial de código e ferramentas de engenharia round-trip. ENORM é uma notação baseada em perfil UML, projetada para representar padrões pertencentes a lógica de modelo do domínio, com objetos do domínio incorporando tanto comportamento como dados. A notação representa padrões adotados por frameworks MOR difundidos no mercado (Active Record, do Ruby; SQLAlchemy, do Python; Entity Framework, da Microsoft .net; JPA, Cayenne, and MyBatis, do Java), seguindo os princípios Não se repita e Convenção sobre Configuração. ENORM foi avaliado por experimentos controlados, comparando a modelagem de estudantes com modelos UML e relacionais separados, atingindo um número significativamente maior de objetivos na maioria dos cenários, sem ser significativamente diferente nos piores cenários experimentais. / This thesis presents the Essential Notation for Object-Relational Mapping (ENORM), a general purpose notation that represents structural concepts of Object- Relational Mapping (ORM). The goal of ENORM is to facilitate the design by the clear application of ORM patterns, document mappings with a platform independent notation, and became a repository for model-driven transformations, partial code generation, and round-trip engineering tools. ENORM is a UML profile based notation, designed to represent patterns within a domain modeling logic, with objects of the domain incorporating both behavior and data. The notation represents patterns adopted by widespread ORM frameworks in the market (Active Record, of Ruby; SQLAlchemy, of Python; Entity Framework, of Microsoft .net; JPA, Cayenne, and MyBatis, of Java), following the Don´t Repeat Yourself and Convention over Configuration principles. ENORM was evaluated by controlled experiments, comparing the modeling by students with the use of separated UML and relational models, achieving significantly more goals in the majority of the scenarios, without being significantly different in the worst experimental scenarios.
|
Page generated in 0.117 seconds