Spelling suggestions: "subject:"modeldriven development"" "subject:"modelldriven development""
61 |
Patterns for Injection of Mock Objects in a Modeling EnvironmentWiberg, Fabian January 2016 (has links)
Capsules are modeling language elements which are sometimes used to develop real-time software. One way to test such capsule elements without relying on dependencies to other units is to use mock objects. The aim of the study was to look at existing object-oriented design patterns and investigate how they could be used for capsules, in order to perform mock testing. The focus was to find solutions that were usable from the programmers’ point of view, meaning that they should promote high user effectiveness, efficiency and satisfaction when implementing them. It was also important that program efficiency wasn’t affected negatively. 5 design- or refactoring patterns were adapted for capsules: Constructor Injection, Setter Injection, Parameterize Method, Factory Method and Abstract Factory. Those patterns were evaluated by 5 programmers in a usability test, where Incarnate Injection (an adaptation of Constructor Injection) and Abstract Factory were considered most usable. Incarnate Injection seemed to be easier to implement and promoted high user efficiency, while Abstract Factory was considered more flexible. The performance tests indicated that Abstract Factory compromises program efficiency when the factory product is resource-heavy and is required frequently by dependent capsules. The study showed that it is possible to adapt design patterns to capsules by looking at conceptual similarities between capsules and classes. However, there are cases when this adaptation is impossible. Furthermore, even when adaptation is possible, it was apparent that different patterns adapt differently well to capsules.
|
62 |
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 modernizationRafael Serapilha Durelli 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.
|
63 |
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 familiesPaulo Gabriel Gadelha Queiroz 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.
|
64 |
WE4UIV Web engineering for user interaction viewSOUZA, Ricardo André Cavalcante de 31 January 2008 (has links)
Made available in DSpace on 2014-06-12T15:50:30Z (GMT). No. of bitstreams: 2
arquivo1972_1.pdf: 2696080 bytes, checksum: 69e35c3af53ec4eeb4876270ddb417ad (MD5)
license.txt: 1748 bytes, checksum: 8a4605be74aa9ea9d79846c1fba20a33 (MD5)
Previous issue date: 2008 / Coordenação de Aperfeiçoamento de Pessoal de Nível Superior / No mundo globalizado e competitivo, a sobrevivência de uma organização está relacionada a
atrair e, principalmente, manter clientes (consumidores) através da prestação de serviços de
qualidade. Atualmente, a forma mais usual de comunicação direta entre as organizações e
seus (possíveis) clientes é através de aplicações baseadas na Web. Entre as vantagens deste
tipo de aplicação estão a disponibilidade em tempo integral (24/7/365) e a facilidade de
acesso, tendo em vista que o requisito inicial é apenas um computador com acesso à Internet.
No contexto da disciplina de Engenharia de Software, as aplicações Web possuem
características específicas que as diferem de aplicações tradicionais, especialmente no que se
refere à interação com os usuários, e que devem ser consideradas adequadamente no processo
de desenvolvimento. Entretanto, os processos de software tradicionais são dirigidos à
funcionalidade e a parte do sistema responsável pela interação com os usuários é tratada com
menor ênfase usualmente apenas na etapa de Implementação, ocasionando deficiências no
produto e insatisfação dos usuários quanto ao uso do sistema.
Neste cenário, este trabalho apresenta o método WE4UIV (Web Engineering User
Interaction View), dirigido a modelos e baseado em componentes, cujo propósito é tratar os
aspectos relacionados à visão de interação com os usuários de aplicações Web, nos níveis de
análise e projeto, de modo a fornecer subsídios para orientar a etapa de Implementação.
Além disso, visando acelerar e tornar menos manual a etapa de Implementação, este
trabalho também apresenta uma ferramenta integrada a um ambiente de desenvolvimento para
geração de código fonte a partir de artefatos de projeto descritos em UML.
A abordagem apresentada neste trabalho pressupõe melhorias quantitativas no processo
de desenvolvimento da visão de interação com os usuários, especificamente redução do tempo
da etapa de Implementação e do índice de trabalho adicional causado por solicitações de
mudança. A abordagem proposta é validada através de um processo de experimentação no
contexto de um projeto real de desenvolvimento de software
|
65 |
Controle de microgrids dirigido por modelos / Microgrids model driven controlSampaio Junior, Adalberto Ribeiro 31 March 2014 (has links)
Submitted by Luciana Ferreira (lucgeral@gmail.com) on 2015-01-13T10:58:35Z
No. of bitstreams: 2
license_rdf: 23148 bytes, checksum: 9da0b6dfac957114c6a7714714b86306 (MD5)
Dissertação - Adalberto Ribeiro Sampaio Junior - 2014.pdf: 1618396 bytes, checksum: bd9ccea5178781ea6e1d2e0b346d9787 (MD5) / Approved for entry into archive by Luciana Ferreira (lucgeral@gmail.com) on 2015-01-13T10:58:56Z (GMT) No. of bitstreams: 2
license_rdf: 23148 bytes, checksum: 9da0b6dfac957114c6a7714714b86306 (MD5)
Dissertação - Adalberto Ribeiro Sampaio Junior - 2014.pdf: 1618396 bytes, checksum: bd9ccea5178781ea6e1d2e0b346d9787 (MD5) / Made available in DSpace on 2015-01-13T10:58:56Z (GMT). No. of bitstreams: 2
license_rdf: 23148 bytes, checksum: 9da0b6dfac957114c6a7714714b86306 (MD5)
Dissertação - Adalberto Ribeiro Sampaio Junior - 2014.pdf: 1618396 bytes, checksum: bd9ccea5178781ea6e1d2e0b346d9787 (MD5)
Previous issue date: 2014-03-31 / Fundação de Amparo à Pesquisa do Estado de Goiás - FAPEG / The use of model driven engineering (MDE) and models at runtime represent an important
tools for the development and management of complex systems. We show how a model
driven approach can be used to create a manager able to control the various components
of a microgrid, besides adding autonomic behavior in this kind of system. Applying an
architecture that respects the hierarchy of controllers present in microgrids, we show how
devices can be controlled through calls and events that are targeted to a manager and
defined in its model. This model-driven approach facilitates the control of devices and
allows customization of the bahavior of a microgrid by the end user in charge of managing
it. / O uso de engenharia de software dirigida por modelos (MDE) e de modelos em tempo de
execução constitui uma ferramenta importante para desenvolver e controlar sistemas complexos.
Neste trabalho utilizamos uma abordagem dirigida por modelos para controlar sistemas
de distribuição de energia elétrica conhecidos como microgrids. Mostramos como
uma abordagem dirigida por modelos pode ser utilizada para criar um gerente capaz de
controlar os diversos componentes de uma microgrid, além de adicionar comportamento
autonômico neste tipo de sistema. Aplicando uma arquitetura que respeita a hierarquia
dos controladores presentes em microgrids, mostramos como os dispositivos podem ser
controlados por meio de chamadas e eventos direcionados ao gerente de recursos e definidos
em seu modelo. Essa forma de controle dirigido por modelos facilita a definição do
controle dos dispositivos de uma microgrid por parte do usuário, além de permitir uma
personalização do comportamento global de uma microgrid.
|
66 |
Model-Driven Development of Distributed Systems in UmpleZakariapour, Amid January 2018 (has links)
Model-driven software development can help tackle complexity when developing large software systems. Model-driven development tools facilitate this. Such tools support multiple features and languages; some are multi-platform and support multi-language code generation from models. Umple is a full-featured open source language and modelling tool that we used as a basis for this thesis.
Distribution concerns have become a critical part of modern software systems. In this thesis, we present how we extended Umple to support the development of model-driven synchronous or asynchronous distributed systems. Our contributions provide simple syntax, model analysis capabilities, and programming APIs, which allow users to change the configuration of systems both at development and deployment stages. We also demonstrate how a system can be modeled without distribution concerns and easily be transformed to a distributed system through our approach.
The contributions of this thesis are: a) Creating a mechanism to distribute objects in Umple; b) Developing new semantics for modelling of distributed objects and providing supporting syntax for this in Umple; c) Investigating different patterns and technologies to implement code generation for distributed systems; d) Implementation, testing, and comparison of the distributed feature in Umple for executable Java code; and e) implementing a mechanism to dynamically modify the distribution plan at runtime.
|
67 |
Model Driven Architecture : Test Metoder och Verktyg / Model Driven Architecture : Test Methods and ToolsReda, Renas, Tözmal, Yusuf January 2006 (has links)
This thesis describes methods and tools available to test products developed with Model Driven Architecture (MDA) frameworks. The purpose of the research presented in this thesis is to find appropriate methods and tools available to test products developed in an MDA compatible way in an industrial setting. To find appropriate methods and tools a literature study as well as a case study were conducted at Ericsson. The results of the case study show that there exist important criteria both from an MDA perspective and Ericsson’s own perspective. Based on the criteria a set of tools were evaluated and the results were that Pathfinder PathMATE in conjunction with Rational Software Architect were the most appropriate tools for Ericsson to use when testing their MDA application.
|
68 |
Satisfying Non-Functional Requirements in Model-Driven Development of Real-Time Embedded SystemsSaadatmand, Mehrdad January 2012 (has links)
Design of real-time embedded systems is a complex and challenging task. Part of this complexity originates from their limited resources which incurs handling a big range of Non-Functional Requirements (NFRs). Therefore, satisfaction of NFRs plays an important role in the correctness of the design of these systems. Model-driven development has the potential to reduce the design complexity of real-time embedded systems by increasing the abstraction level, enabling analysis at earlier phases of development and code generation. In this thesis, we identify some of the challenges that exist in model-driven development of real-time embedded systems with respect to NFRs, and provide techniques and solutions that aim to help with the satisfaction of NFRs. Our end goal is to ensure that the set of NFRs defined for a system is not violated at runtime. First, we identify and highlight the challenges of modeling NFRs in telecommunication systems and discuss the application of a UML-based approach for modeling them. Since NFRs have dependencies, and the design decisions to satisfy them cannot be considered in isolation, we propose a model-based approach for trade-off analysis of NFRs to help with the comparison of different design models with respect to the satisfaction level of their NFRs. Following the issue of evaluating the interdependencies of NFRs, we also propose solutions for establishing and maintaining balance between different NFRs. In this regard, we categorize our suggested solutions into static and dynamic. The former refers to a static design and set of features which ensures and guarantees the balance of NFRs, while the latter means establishing balance at runtime by reconfiguring the system and runtime adaptation. Finally, we discuss the role of the execution platform in preservation and monitoring of timing properties in real-time embedded systems and propose an approach to enrich the platform with necessary mechanisms for monitoring them. / CHESS
|
69 |
A Middleware to Support Services Delivery in a Domain-Specific Virtual MachineMorris, Karl A 20 June 2014 (has links)
The increasing use of model-driven software development has renewed emphasis on using domain-specific models during application development. More specifically, there has been emphasis on using domain-specific modeling languages (DSMLs) to capture user-specified requirements when creating applications. The current approach to realizing these applications is to translate DSML models into source code using several model-to-model and model-to-code transformations. This approach is still dependent on the underlying source code representation and only raises the level of abstraction during development. Experience has shown that developers will many times be required to manually modify the generated source code, which can be error-prone and time consuming.
An alternative to the aforementioned approach involves using an interpreted domain-specific modeling language (i-DSML) whose models can be directly executed using a Domain Specific Virtual Machine (DSVM). Direct execution of i-DSML models require a semantically rich platform that reduces the gap between the application models and the underlying services required to realize the application. One layer in this platform is the domain-specific middleware that is responsible for the management and delivery of services in the specific domain.
In this dissertation, we investigated the problem of designing the domain-specific middleware of the DSVM to facilitate the bifurcation of the semantics of the domain and the model of execution (MoE) while supporting runtime adaptation and validation. We approached our investigation by seeking solutions to the following sub-problems: (1) How can the domain-specific knowledge (DSK) semantics be separated from the MoE for a given domain? (2) How do we define a generic model of execution (GMoE) of the middleware so that it is adaptable and realizes DSK operations to support delivery of services? (3) How do we validate the realization of DSK operations at runtime?
Our research into the domain-specific middleware was done using an i-DSML for the user-centric communication domain, Communication Modeling Language (CML), and for microgrid energy management domain, Microgrid Modeling Language (MGridML). We have successfully developed a methodology to separate the DSK and GMoE of the middleware of a DSVM that supports specialization for a given domain, and is able to perform adaptation and validation at runtime.
|
70 |
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.1418 seconds