Desenvolvimento de software orientado a características e dirigido por modelos
|
|
- Júlio César Palha Azevedo
- 6 Há anos
- Visualizações:
Transcrição
1 Desenvolvimento de software orientado a características e dirigido por modelos Rodrigo Reis Pereira 1, Marcelo Almeida Maia 1 1 Faculdade de Computação Universidade Federal de Uberlândia (UFU) Uberlândia MG Brasil rreisp@gmail.com,marcmaia@facom.ufu.br Nível: Mestrado Ano de Ingresso no programa: 2007/1 Previsão de conclusão: 2009/2 Resumo. O desenvolvimento de software orientado a características e dirigido por modelos (FOMDD - Feature Oriented Model Driven Development)[1] é uma abordagem que une FOP (Feature Oriented Programming - programação orientada a características)[4] e MDD (Model Driven Development - desenvolvimento dirigido por modelos)[3]. MDD utiliza modelos para especificação de programas e transformações sobre modelos para síntese de executáveis. FOP é um paradigma para linhas de produtos de software no qual programas são construídos através da composição de características. FOMDD propõe que produtos de uma linha de produtos de software sejam construídos pela criação de modelos compostos por características e que estes sejam transformados em executáveis. Esse trabalho é uma proposta de generalização para o método de FMODD apresentado em [1]. Palavras Chave Desenvolvimento de software orientado a características, modelagem de características, arquiteturas dirigidas por modelos, metaprogramação, linhas de produto de software
2 1. Caracterização do Problema As instâncias de uma linha de produtos de software podem ser diferenciadas pelas capacidades (características) que cada um deles apresenta. Diferentes composições de características levam a diferentes produtos. A modelagem de características 1 é a atividade de especificar a variabilidade de propriedades dos conceitos e suas interdependências através de um modelo [5]. FOP é um paradigma para linhas de produtos de software no qual programas são construídos através da composição de características. Uma linha de produtos é especificada em função de um domínio de aplicação e considera-se sempre a existência de uma característica base, que representa a estrutura inicial para a aplicação de refinamentos. Por exemplo, considerando uma linha de produtos simplificada para a construção de carros. Considerando que carros fossem obrigatoriamente constituídos por Motor, Transmissão e opcionalmente Som. Poderíamos gerar dois tipos de modelos de carro: Base (Base = Transmissão Motor), e o outro refinado, composto por Base e Som (Base&Som = Som Base). FOMDD envolve modelagem e composição de características bem como a transformação destes modelos com o objetivo final de obtenção do código executável. O estudo de caso apresentado em [1], mostra uma forma de se obter portlets (componentes de portais web) [23] através da utilização de diagramas de estados a serem transformados em modelos intermediários refináveis que antecedem o processo de geração de código. Naquele estudo, o processo de desenvolvimento inicia com a especificação de um diagrama de estados que representa o fluxo de computação do componente (sendo cada estado a representação abstrata de uma característica), e que é posteriormente transformado em modelos intermediários, em conformidade com uma linguagem de domínio específico para portlets, definindo a estrutura básica de implementação de cada um dos estados, segundo arquitetura de código previamente definida. Estes modelos intermediários são então refinados pela combinação com modelos de configuração específicos de plataforma escritos manualmente, completando a especificação e possibilitando a geração de código funcionalmente completo. No que diz respeito à inclusão de novas características, i.e., refinamento do modelo de características, [1] mostra como a adição de novos estados (PIMs 2 ) no diagrama inicial, é propagada ao longo das fases para os PSMs 3 intermediários e como os modelos base e de refinamento podem ser combinados com o objetivo de gerar uma representação final coerente com as mudanças aplicadas. As cinco transformações em destaque na Figura 1(Modelo de Feature1 Modelo de Feature2, T1 (2), T1 (3), Tn (3) e Tn+1 (3) ) não foram executadas em [1]. Ao invés, a síntese de código foi obtida pela combinação, via FOP, do código gerado para cada uma das partes, i.e., base e refinamento (Figura 1, caminho A). Idealmente, a síntese de código deve ser feita pela transformação do modelo que representa a combinação das características base e refinamento (Figura 2, caminho B) conforme mostrado em [1]. Ainda, dentre os dados de entrada apenas o diagrama de estados é independente de plataforma, os demais (refinamentos manuais) são PSMs e deveriam ser derivados de um ou mais PIMs. A Figura 1 mostra diferentes caminhos possíveis de comutação de elementos para obtenção de código a partir de modelos de entrada. 1 Do inglês feature modeling 2 Do inglês platform independent model modelo independente de plataforma 3 Do inglês platform specific model modelo específico de plataforma
3 Figura 1: Exemplo de processo FOMDD Para a construção de tal mecanismo (Figura 1, caminho B) é necessária a implementação de uma linguagem de especificação de modelos orientada a características com suporte a mecanismos de refinamento, definição de linguagens de domínio específico que permitam a criação de modelos auxiliares de alto nível para configuração do modelo principal, bem como as transformações capazes de traduzir as especificações de alto nível em código fonte. 2. Fundamentação Teórica A principal diferença entre o processo tradicional de desenvolvimento e MDD é que os artefatos gerados ao longo das fases de desenvolvimento de MDD são modelos passíveis de transformação especificados através de DSLs [6], o que sugere altos índices de automação entre as fases. Modelos definem detalhes particulares do projeto de um sistema e podem ser derivados a partir de outros modelos. Neste contexto, o conceito de transformações de modelos é fundamental para a realização dos benefícios decorrentes da abordagem tais como aumento de produtividade, portabilidade e interoperabilidade. Os modelos gerados são utilizados como parâmetros para geração de modelos nas fases posteriores e finalmente geração de código executável (que também pode ser considerado um modelo), preservando, conseqüentemente, a conformidade entre os artefatos das diferentes fases. A Modelagem de Características provê uma representação para expressar a variabilidade e a dependência entre as características. Características são entidades de primeira classe do projeto, que encapsulam representações de programas estruturadas hierarquicamente (como código, arquivos de configuração, etc) e que descrevem em alto nível de abstração os requisitos de um sistema [17]. São criadas/adaptadas em função de um contexto. É considerada a presença de uma característica base (um ponto de partida para os produtos de uma linha) e seu comportamento é refinado por sua combinação com outras características. Esta mudança de comportamento altera a semântica do produto final. Os diagramas de características da Modelagem de Características definem as diferentes possibilidades de produtos a serem gerados a partir de um conjunto de características organizadas hierarquicamente. Em essência, eles definem uma linha de produtos. Na prática, muitas características são independentes de outras, e não modificam os seus estados quando agrupadas. Estas podem ser combinadas sem mudar as demais características. Entretanto, uma característica pode refinar o comportamento de outras existentes ou necessitar a exclusão/substituição de uma outra por questões de incompatibilidade. O resultado de análises como esta é um conjunto de critérios (restrições específicas do domínio) para composição de
4 características, que permite um raciocínio modular e o refinamento sobre as composições. FOP é um paradigma para linhas de produtos de software onde programas são sintetizados pela composição de características. Uma linha de produtos de software define uma família de produtos similares onde as características (ou features) correspondem às funcionalidades que os programas provêem. Logo, se descrevemos, diferenciamos, modelamos programas através de características, então um requisito importante neste contexto é construir programas (ou famílias de programas) através da especificação de características. Batory em [7] apresenta o ambiente AHEAD, baseado em refinamentos sucessivos [10], através do qual programas complexos podem ser construídos pela adição incremental de detalhes (características). A OMG (Object Management Group)[11] é uma organização que define padrões como UML, XMI [11] e MOF [12]. MOF define uma linguagem e um framework para a especificação, construção e gerência de metamodelos independentes de tecnologia. Na busca de um padrão para linguagens de transformação no contexto de MDD, a OMG, define a especificação MOF 2.0 Query, View, and Transformation (QVT) [13], que trata do problema de como traduzir um modelo em diversos artefatos textuais como modelos conceituais, código, especificações de implantação 4, relatórios, documentos, etc. Ela define três linguagens de domínio específico Relações, Núcleo e Mapeamentos Relacionais além de um mecanismo denominado BlackBox (caixa-preta). Relações e Núcleo são duas linguagens declarativas em diferentes níveis de abstração, que contém um mapeamento normativo de correspondência. Os mapeamentos relacionais são definidos por uma linguagem imperativa que estende Relações e Núcleo, e cuja sintaxe provê construções comuns encontradas em linguagens imperativas (estruturas de repetição e seleção, etc). BlackBox permite a integração de bibliotecas e implementações externas de transformações (i.e., não QVT). O esquema geral da arquitetura QVT é mostrado na figura a seguir. Figura 2: Arquitetura QVT Considerando o desenvolvimento de sistemas através de modelos de alto nível e a necessidade de efetuarmos refinamentos sobre estes modelos durante no processo orientado a características, é necessária a existência de mecanismos de composição específicos para cada tipo de modelo a ser manipulado. AHEAD provê mecanismos de refinamento para alguns tipos particulares de artefatos como arquivos Jak (Jakarta uma versão estendida de Java) [17] e XML. Entretanto, para que composições sejam feitas a nível de modelagem, é preciso estender este recurso aos modelos abstratos de representação através da definição de um operador de combinação para os modelos descritos em uma linguagem de especificação de modelos orientada a característica. 3. Caracterização da Contribuição Nosso trabalho visa generalizar o método apresentado em [1] através da especificação de linhas de produto de software pelo uso de modelos independentes de plataforma descritos em UML [11], 4 Do inglês deployment
5 DSLs 5 (como OCL [11]) para definição de restrições arquiteturais sobre o modelo e de configurações em alto nível de abstração, de elementos de arquitetura de código, lógicas de domínio e visão, além de transformações de modelo para combinação (i.e., transformações endógenas) e tradução entre modelos de diferentes tipos (i.e., transformações exógenas), como síntese de código. A principal contribuição pretendida por este trabalho é a definição de um conjunto de operadores de combinação e transformação, que permitam traduzir o modelo de entrada, especificado em uma linguagem de modelagem genérica de alto nível orientada a característica, em código executável. Para a realização do nosso trabalho é necessária a elaboração de uma ferramenta que tome como parâmetros de entrada um modelo base e um modelo de refinamento e retorne o modelo que representa a combinação destes modelos. Dada a disponibilidade de um mecanismo de combinação de arquivos XML no ambiente AHEAD e a existência de diversas implementações disponíveis de linguagens de transformação MDD, baseadas no padrão QVT (como ATL [15] e SmartQVT [16]), aplicáveis a modelos XML, acredita-se poder alcançar nosso objetivo através da definição de um profile UML para modelagem de características (configurável via OCL e representável por XML). Pretende-se obter ao término deste trabalho uma ferramenta de composição capaz de tomar como parâmetros uma especificação concreta de alto nível (segundo o metamodelo de entrada abstrato orientado a características descrito pelo profile UML) representada por um conjunto de arquivos XML e que permita com o auxílio de módulos específicos de plataforma (ex.: arquitetura MVC para portlets) gerar os diferentes produtos descritos pela linha de produtos através de um processo automatizado. 4. Estado Atual do Trabalho Entre os resultados parciais de nosso trabalho consta a elaboração de um profile UML [11], definido por um metamodelo para linguagem orientada a características. A definição deste foi possível por meio do IDE Eclipse [18] e plugins relacionados aos projetos Eclipse Modeling Framework (EMF) [19] e Model Development Tools (MDT) [20], que provêem suporte ferramental para a especificação de modelos UML em formato XML, inclusive graficamente. A figura a seguir mostra o resultado obtido. Figura 3: Profile UML do meta modelo para Modelagem de Características 5 Do inglês domain specific language linguagem de domínio específico
6 Ainda, foram realizados estudos e testes sobre algumas ferramentas, como AHEAD e ATL, úteis à implementação dos operadores de transformação, bem como em ambientes de desenvolvimento MDD (como AndroMDA [21]), com finalidade de observação e experimentação dos métodos e ferramentas atualmente utilizados. Com fundamentação nesses estudos, a arquitetura prevista para a nossa ferramenta é descrita na Figura Trabalhos Relacionados Figura 4: Arquitetura da solução proposta Refatoração de programas, síntese de software baseada em características e/ou aspectos, e MDD são áreas disjuntas. Entretanto, todas elas são tecnologias de metaprogramação arquitetural por tratarem programas como valores e usarem funções (transformações) para mapear programas para outros programas [8]. FOMDD é a união de FOP e MDD. Nesta abordagem modelos podem ser refinados pela composição de características ou podem ser derivados de outros modelos através de transformações. Em [1] é mostrado um estudo de caso onde modelos especificados por diagramas de estados são combinados pela transformação dos modelos iniciais em modelos intermediários que são combinados a refinamentos manuais e posteriormente transformados em código individualmente para finalmente serem combinados e representarem a nível de código o modelo que representa a união entre os modelos descritos por diagramas de estados. Nossa abordagem difere da abordagem apresentada em [1] pelo uso de uma linguagem geral de modelagem (UML), uso de linguagens específicas de domínio (como OCL) para configuração do modelo de características além de transformações exógenas de modelos (i.e., entre modelos de diferentes DSLs) para síntese de executáveis. Outra abordagem similar, baseada em templates, é proposta em [9]. Uma família de produtos é representada pelo modelo de características e um template do modelo. O modelo de características
7 define a hierarquia de características bem como as restrições em suas possíveis configurações. O template contém a união dos elementos do modelo em todas as instâncias válidas do template (i.e., esqueletos expressos na notação destino para cada uma das possíveis combinações de características válidas). Uma instância do modelo de características pode ser especificada pela criação de uma configuração baseada no modelo de características. De acordo com a configuração de características, o template do modelo é instanciado automaticamente. O processo de instanciação é uma transformação entre modelos de mesma DSL, expressos na notação destino específica de plataforma. Em contraste com abordagens baseadas em variabilidade (como a nossa) em que modelos distintos correspondentes a diferentes características são compostos, a abordagem [9] utiliza um modelo que representa a superimposição de todos os variantes cujos elementos estão relacionados a características através de anotações (i.e., um grande modelo anotado que contém conjuntamente as diferentes possibilidades). 6. Avaliação de Resultados Para a validação do nosso trabalho será realizado um estudo de caso envolvendo a implementação de um a sistema a ser escolhido usando a abordagem proposta em [1] e usando a abordagem proposta neste trabalho para posterior comparação das duas abordagens em relação aos pontos positivos e negativos, tomando-se como parâmetros de análise a complexidade dos artefatos desenvolvidos, a rastreabilidade entre os artefatos, grau de automação e qualidade do produto final. 7. Referências [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] Trujillo, S., Batory, D., and Diaz, O.: Feature Oriented Model Driven Development: A Case Study for Portlets, 29th International Conference on Software Engineering (ICSE 2007), Minneapolis, Minnesota, USA, May 20-26, 2007 Batory, Don, Sarvela, Jacob Neal, and Rauschmayer, Axel: Scaling Step-Wise Refinement, IEEE Transactions on Software Engineering 30(6), IEEE Computer Society, , 2004 Kleppe, Anneke, Warmer, Jos, and Bast, Win: MDA Explained: The Model Driven Architecture: Pratice and Promise, Addison Wesley, April 2003 D. Batory, J.N. Sarvela, and A. Rauschmayer. Scaling Step-Wise Refinement. IEEE TSE, June Czarnecki, Krzysztof, Eisenecker, Ulrich, and Czarnecki, Krzysztof: Generative Programming: Methods, Tools, and Applications, Addison-Wesley Professional, June 2000 Deursen, Arie, Klint, Paul and Visser, Joost. Domain-Specific Languages:An Annotated Bibliography, Batory, D.: Feature-Oriented Programming and the AHEAD Tool Suite, Batory, Don: Program refactoring, program synthesis, and model-driven development, Proceedings of the 16th International Conference on Compiler Constuction (CC 07), volume 4420 of LNCS, Springer, , 2007 Czarnecki, Krzysztof, and Antkiewicz, Michal: Mapping Features to Models: A Template Approach Based on Superimposed Variants, GPCE, , 2005 E.W. Dijkstra, A Discipline of Programming. Prentice-Hall,1976. The Unified Modeling Language. OMG/MOF Meta Object Facility (MOF) 1.4. Final Adopted Specification Document. Formal/ , OMG/RFP/QVT MOF 2.0 Query/Views/Transformations RFP Czarnecki, Krzysztof, Hwan, Chang, and Kim, Peter: Feature Models are Views on
8 [15] [16] [17] [18] [19] [20] [21] [22] [23] Ontologies, In: Software Product Line Conference, 21 24, 2006 ATLAS Transformation Language. SmartQVT. Batory, D. and Lofaso, B. and Smaragdakis, Y. JTS: Tools for Implementing Domain- Specific Languages, In: ICSR '98: Proceedings of the 5th International Conference on Software Reuse, Eclipse IDE. Eclipse Modeling Framework Project. Model Develpment Tools. AndroMDA. O. Diaz, S. Trujillo and S. Perez. Turning Portlets into Services: Introducing the Organization Profile. WWW 2007.
Desenvolvimento de software orientado a características e dirigido por modelos
Desenvolvimento de software orientado a características e dirigido por modelos Universidade Federal de Uberlândia Rodrigo Reis Pereira Prof. Dr. Marcelo Almeida Maia Agenda Motivação Introdução Modelagem
Leia maisApresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP:
Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP: 8429016 Definição de MDA OMG (Object Management Group) propôs uma aplicação abrangente das práticas
Leia maisMetamodelos para Banco de Dados. Carlos Julian Menezes Araújo Prof. Dr. Robson do Nascimento Fidalgo
Metamodelos para Banco de Dados Carlos Julian Menezes Araújo cjma@cin.ufpe.br Prof. Dr. Robson do Nascimento Fidalgo 1 Agenda Metadados MDA MOF Metamodelos CWM Pacote Relacional Referências 2 Metadados
Leia mais3 Tecnologias Relacionadas
Tecnologias Relacionadas 31 3 Tecnologias Relacionadas O objetivo deste capítulo é apresentar um resumo de cada tecnologia relacionada ao processo proposto nesta dissertação, mostrando suas principais
Leia maisDesenvolvimento Dirigido por Modelos: Ferramentas
DCC / ICEx / UFMG Desenvolvimento Dirigido por Modelos: Ferramentas Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Existe MDD na prática? Poucos sistemas ainda são desenvolvidos usando a filosofia
Leia maisDesenvolvimento de Software Orientado a Características e Dirigido por Modelos Revisitado
Desenvolvimento de Software Orientado a Características e Dirigido por Modelos Revisitado Autor: Rodrigo Reis Pereira 1 Orientador: Marcelo Almeida Maia 1 1 Programa de Pós-Graduação em Ciência da Computação
Leia maisDesenvolvimento Dirigido por Modelos: Conceitos, Aplicações, e Perspectivas. Prof. Valdemar Neto INF-UFG
Desenvolvimento Dirigido por Modelos: Conceitos, Aplicações, e Perspectivas Prof. Valdemar Neto INF-UFG Agenda Introdução Conceitos Ferramentas Aplicações Perspectivas Engenharia de Software Convencional
Leia maisModel-Driven Architecture
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Model-Driven Architecture Guilherme Potenciano Ricardo Cacheta Waldemarin SSC5944 - Arquitetura de Software (...) it might be
Leia maisModel Driven Development (MDD)
Model Driven Development (MDD) Mestrado em Engenharia de Produção e Sistemas Computacionais Profa. Adriana Pereira de Medeiros adrianamedeiros@puro.uff.br Sumário Introdução Desenvolvimento de Software
Leia maisModel Driven Architecture. Centro de Informática/UFPE Fernando Trinta
Model Driven Architecture Centro de Informática/UFPE Fernando Trinta Roteiro Contexto Introdução Conceitos MDA Platform Independent Model Platform Specific Model Transformations Consequências Promessas
Leia maisModel Driven Development (MDD)
DCC / ICEx / UFMG Model Driven Development (MDD) Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Motivação para MDD Software é caro Os EUA sozinho investem mais de $250 bilhões em software Nos EUA,
Leia maisAplicação da Técnica de Tecelagem de Modelos na Transformação de Modelos na MDA
Alexandre dos Santos Mignon Aplicação da Técnica de Tecelagem de Modelos na Transformação de Modelos na MDA Dissertação apresentada à Escola Politécnica da Universidade de São Paulo para obtenção do Título
Leia maisVisão Geral da UML. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012
Visão Geral da UML SSC 121 - Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012 Conteúdo Introdução Ferramentas de Apoio Diagramas da UML Elementos Genéricos Material sobre UML
Leia maisINF1013 MODELAGEM DE SOFTWARE
INF1013 MODELAGEM DE SOFTWARE Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 1 O Paradigma Orientado a Objetos A Linguagem UML Descrição da Arquitetura 1 Programa
Leia mais3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks
48 3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks Este capítulo apresenta uma visão geral da contribuição principal deste trabalho: uma abordagem orientada a aspectos para o
Leia maisWorkCASE Toolkit: Uma Ferramenta de Suporte para Agile Model Driven Architecture
WorkCASE Toolkit: Uma Ferramenta de Suporte para Agile Model Driven Architecture Fabio Paulo Basso 1, Toacy Cavalcante Oliveira 1 1 Instituto de Informática Pontifícia Universidade Católica do Rio Grande
Leia maisTransformações e mapeamentos da MDA e sua implementação em três ferramentas.
Giuliano Luz Pigatti Caliari Transformações e mapeamentos da MDA e sua implementação em três ferramentas. Dissertação apresentada à Escola Politécnica da Universidade de São Paulo para obtenção do Título
Leia maisIntrodução à Análise e Projeto de Sistemas
Introdução à I. O Que vamos fazer na Disciplina? Saber uma linguagem de programação orientada a objeto (OO) não é suficiente para criar sistemas OO Tem que saber Análise e Projeto OO (APOO) Isto é, Análise
Leia maisContexto. Motivação. variabilidade. variabilidade
Representação de Variabilidades em Componentes de Negócio no Contexto da Engenharia de Domínio Regiane Oliveira Ana Paula Blois Aline Vasconcelos Claudia Werner Roteiro Contexto Motivação Variabilidade
Leia mais6.1. Teste Baseado em Gramática e Outras Abordagens de Teste
6 Discussão Além das técnicas de teste usando modelos gramaticais, existem outras abordagens de teste funcional de sistemas que estão sendo estudadas pela comunidade científica. Algumas delas se dedicam
Leia maisAUTOMAÇÃO DO PROCESSO DE
UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA AUTOMAÇÃO DO PROCESSO DE TRANSFORMAÇÃO DE MODELOS UML-RT PROPOSTA DE TRABALHO DE GRADUAÇÃO O objetivo deste trabalho
Leia maisFerramenta MVCase Uma Ferramenta Integradora de Tecnologias para o Desenvolvimento de Componentes Distribuídos
Ferramenta MVCase Uma Ferramenta Integradora de Tecnologias para o Desenvolvimento de Componentes Distribuídos Eduardo Santana de Almeida Daniel Lucrédio Calebe de Paula Bianchini Antonio Francisco do
Leia maisUma Revisão Sistemática: Utilização de UML para desenvolvimento da Modelagem Independente de Plataforma
Uma Revisão Sistemática: Utilização de UML para desenvolvimento da Modelagem Independente de Plataforma para geração de código Alexandre H. Borba, Jandira Guenka Palma 1 Departamento de Computação Universidade
Leia maisAgenda Atual do Curso. Desenvolvimento Dirigido por Modelos (MDD) Abordagem MDD. Agenda da Aula. Abordagem MDD. Manutenção e Geração
Reuso de Software Aula 21 Agenda Atual do Curso Desenvolvimento Dirigido por Modelos (MDD) Aula 23 Data 28/05 Assunto Avaliação Experimental de Reuso 24 30/05 Semana da PPGCC (ñ há aula) 25 04/06 Apresentações
Leia maisAgenda da Aula. Programação Orientada a Características com AHEAD. Característica Modular. Programação Orientada a Características (FOP)
DCC / ICEx / UFMG Agenda da Aula Programação Orientada a Características com AHEAD Programação Orientada a Características (FOP) Segundo Don Batory Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo
Leia maisTécnicas para Reutilização de Software Prof. Eduardo Figueiredo Estagiário: Johnatan Oliveira
Técnicas para Reutilização de Software Prof. Eduardo Figueiredo Estagiário: Johnatan Oliveira Panorama de Reutilização Frameworks Padrões de projeto Aplicações configuráveis Padrões de arquitetura Linha
Leia maisDesenvolvimento de SIG para Web utilizando MDA
Desenvolvimento de SIG para Web utilizando MDA Carlos Eduardo R. de Mello, Geraldo Zimbrão da Silva, Jano M. de Souza Programa de Engenharia de Sistemas e Computação Universidade Federal do Rio de Janeiro
Leia maisEngenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios
Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Cronograma das Aulas. Hoje você está na aula Semana
Leia maisComposição e Geração de Aplicações usando Aspectos
Composição e Geração de Aplicações usando Aspectos Carlos Alberto de Freitas Pereira Júnior 1 Rosana Teresinha Vaccare Braga 1 1 Programa de Mestrado em Ciências de Computação e Matemática Computacional
Leia mais1.1. Declaração do Problema e Limitações dos Trabalhos Relacionados Um Framework Conceitual para SMAs
1 Introdução Os sistemas multiagentes (SMAs) estão tendo cada vez mais aceitação no setor da engenharia de software e no meio acadêmico como um paradigma para o desenvolvimento e a criação de sistemas
Leia mais3 GenArch: Uma Ferramenta Baseada em Modelos para Derivação de Produtos de Software
35 3 GenArch: Uma Ferramenta Baseada em Modelos para Derivação de Produtos de Software Este capítulo apresenta a abordagem de derivação de LPS implementada pela ferramenta GenArch. A abordagem tem como
Leia maisUma Ferramenta baseada em Modelos para Modelagem Conceitual ontologicamente bem fundada
Universidade Federal do Espírito Santo UFES Centro Tecnológico CT Departamento de Informática DI Engenharia de Computação Disciplina: Projeto de Graduação INF02850 Orientador: Prof. Dr. Giancarlo Guizzardi
Leia maisIntrodução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão
Sumário Introdução à UML BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos Humberto Mossri de Almeida hmossri_cursos@yahoo.com.br Marcelo Nassau Malta nassau_cursos@yahoo.com.br
Leia maisTécnicas para Reutilização de Software
DCC / ICEx / UFMG Técnicas para Reutilização de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Panorama de Reutilização Frameworks Padrões de projeto Aplicações configuráveis Padrões de
Leia maisBarbara Cristina Alves Silveira 1, Thiago Silva-de-Souza 2 INTRODUÇÃO REFERENCIAL TEÓRICO
ACASE SPEM: FERRAMENTA PARA INSTANCIAÇÃO DE PROCESSOS SPEM BASEADA NO ECLIPSE MODELING FRAMEWORK ACASE SPEM: AN ECLIPSE MODELING FRAMEWORK BASED TOOL FOR SPEM PROCESSES INSTANTIATION Barbara Cristina Alves
Leia maisTópicos da Aula. Desenvolvimento Dirigido por Modelos (MDD) Reusar cada vez mais... Reusar cada vez mais... O que é modelagem? Reuso: Código x Modelos
Reuso de Software Aula 20 Tópicos da Aula Desenvolvimento Dirigido por Modelos (MDD) Introdução a UML Visão geral de alguns diagramas Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com
Leia mais2. Trabalhos Relacionados
19 acase: Ambiente para Modelagem, Geração de Código e Engenharia Reversa de Software Orientado a Aspectos Thiago Silva-de-Souza¹, ², Wallace Santos Vialle Rettich², Danilo Ferreira Leite², Diego Cardozo
Leia maisOdyssey-PSW: Uma Ferramenta de Apoio à Verificação e Validação de Especificações de Restrições OCL
Odyssey-PSW: Uma Ferramenta de Apoio à Verificação e Validação de Especificações de Restrições OCL Alexandre L. Correa, Cláudia M. L. Werner COPPE/UFRJ Programa de Engenharia de Sistemas e Computação Caixa
Leia maisDesenvolvimento Orientado a Modelos
Desenvolvimento Orientado a Modelos João Paulo A. Almeida (jpalmeida@ieee.org) http://nemo.inf.ufes.br Departamento de Informática / Programa de Pós-Graduação em Informática Universidade Federal do Espírito
Leia maisPrograma Analítico de Disciplina INF323 Engenharia de Software II
0 Programa Analítico de Disciplina Departamento de Informática - Centro de Ciências Exatas e Tecnológicas Número de créditos: Teóricas Práticas Total Duração em semanas: 15 Carga horária semanal 0 Períodos
Leia maisUML Unified Modeling Language Linguagem de Modelagem Unificada
UML Unified Modeling Language Linguagem de Modelagem Unificada Prof. Gilberto Porto e-mail: porto@gilbertoporto.com.br A linguagem UML n UML (Unified Modeling Language) Linguagem de Modelagem Unificada
Leia maisAULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.
AULA 02 OBJETIVO: Características da Linguagem Orientada a Objetos. HABILIDADES TRABALHADAS: Comparação das características das linguagens orientadas a objetos frente às linguagens estruturadas. Conhecimentos
Leia maisFOMDA ML: uma Linguagem de Modelagem para Especificação de Transformadores de Modelos na MDA
FOMDA ML: uma Linguagem de Modelagem para Especificação de Transformadores de Modelos na MDA Fabio Paulo Basso 1, Raquel Mainardi Pillat 1, Toacy Cavalcante Oliveira 2, Samy Lima Assy 1 1 ADAPIT Av. Ipiranga,
Leia maisBibIme - Um Software Gerenciador de Bibliotecas Produzido de Forma Cooperativa
BibIme - Um Software Gerenciador de Bibliotecas Produzido de Forma Cooperativa Dairton Bassi, Kelly Braghetto, Eduardo Colli, Fabio Kon, João Eduardo Ferreira Instituto de Matemática e Estatística Universidade
Leia maisDesenvolvimento de Software Dirigido a Modelos
1 Capítulo 4 Desenvolvimento de Software Dirigido a Modelos Almir Buarque 1 O objetivo deste capítulo é apresentar o processo de desenvolvimento de software dirigido a modelos (MDD 2 ), padronizado pela
Leia mais2 Metodologias para Projetos de Aplicações Hipermidia
2 Metodologias para Projetos de Aplicações Hipermidia O processo de desenvolvimento de aplicações é o objeto de diversas pesquisas, principalmente no caso das aplicações voltadas para a Internet, que diferem
Leia mais1/26/2009. Metamodelo MMA. Metamodelo MMB. Modelo A2. Modelo A. Modelo B. Transformação M2M
Abstrações do mundo real Sistema e seu ambiente Com um propósito específico Simulação, geração de código No MDD Quem lê e entende o modelo é o computador Uma vez que o computador entenda o modelo... O
Leia maisMarcelo Henrique dos Santos
Marcelo Henrique dos Santos Mestrado em Educação (em andamento) MBA em Negócios em Mídias Digitais (em andamento) MBA em Marketing e Vendas Especialista em games Bacharel em Sistema de Informação Email:
Leia maisProcesso. Processo unificado. Principais Características do UP. Principais Características do UP RUP. Unified Process (Processo Unificado)
Processo UP Unified Process (Processo Unificado) Conjunto de passos que tem como objetivo atingir uma meta Processo de software na ES, processo que visa a produzir o software - de modo eficiente e previsível
Leia mais! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado
Agenda Rodrigo Reis Cleidson de Souza! Introdução " Motivação para Processos de Software! (USDP) " Definições " RUP x USDP " Características do! Descrição detalhada do! Processos Derivados! Templates simplificados!
Leia maisDocumento de Especificação de Projeto
Documento de Especificação de Projeto Projeto: Biblioteca Central da UFES Versão:.0 Responsável: Ricardo de Almeida Falbo. Introdução Este documento apresenta a especificação de projeto para a informatização
Leia maisALM Aplicações em Linguagem de Montagem. Introdução. A produção de Software é uma atividade build and fix. build. fix
Introdução A produção de Software é uma atividade build and fix. 1 Introdução build 2 Introdução fix 3 1 Introdução 4 P s Só pessoas motivadas e comprometidas com o projeto garantem o respectivo sucesso;
Leia maisespecificação por meio de exemplos não é garantia de corretude, mas a experiência mostra que tende a ser melhor do que o estado da prática hoje
1 Introdução Testar é o conjunto de tarefas ou passos executados para verificar se um produto ou serviço atende à sua proposta. Dessa forma, a execução de testes em um programa contribui para a melhoria
Leia maisUML 2.0 Método, Linguagem e Ferramenta. Prof. Cesar Augusto Tacla
UML 2.0 Método, Linguagem e Ferramenta Prof. Cesar Augusto Tacla Conteúdo do Curso MÉTODO RUP FERRAMENTA Visual Paradigm Enterprise Architect LINGUAGEM UML UML: Unified Modeling Language Linguagem padrão
Leia mais7 Conclusão e Trabalhos Futuros
7 Conclusão e Trabalhos Futuros Como um novo e poderoso paradigma para o design e a implementação de sistemas de software (Lind, 2001;Wooldridge et al., 2001), o SMA requer metodologias, linguagens de
Leia maisINF1404 MODELAGEM DE SISTEMAS
INF1404 MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 1 Princípios de Modelagem O Paradigma Funcional O Paradigma Orientado a Objetos
Leia maisUTILIZAÇÃO DE MDA INTEGRADO AO PROCESSO UNIFICADO NA MODELAGEM DE UM SISTEMA DE GERENCIAMENTO DE COMUNICAÇÃO PARA VANTS
UTILIZAÇÃO DE MDA INTEGRADO AO PROCESSO UNIFICADO NA MODELAGEM DE UM SISTEMA DE GERENCIAMENTO DE COMUNICAÇÃO PARA VANTS Christiane Barbieri De Pelegrin * Resumo Este artigo expõe a modelagem de um sistema
Leia maisParadigmas de Software
Paradigmas de Software Objetivos Introdução aos paradigmas de software. Descrição de modelos genéricos e sua aplicabilidade. Descrição dos processos de requisitos, desenvolvimento, teste e evolução. Modelo
Leia maisDesenvolvimento de Software Baseado em Componentes. Paulo C. Masiero
Desenvolvimento de Software Baseado em Componentes Paulo C. Masiero 1 Introdução Frustração com as promessas da Orientação a objetos em relação ao reuso de classes. Frameworks são uma solução para um domínio
Leia maisModelos formais em MDA
Modelos formais em MDA Modelo independente de computação (IM) Modelo independente de plataforma (PIM) Modelo específico de plataforma (PSM) Modelo de definição de plataforma (PDM) 39 IM (omputation Independent
Leia maisEMMANUEL DA COSTA GALO MODEL DRIVEN ARCHITECTURE-MDA E UM ESTUDO DE CASO
EMMANUEL DA COSTA GALO MODEL DRIVEN ARCHITECTURE-MDA E UM ESTUDO DE CASO LONDRINA PR 2015 EMMANUEL DA COSTA GALO MODEL DRIVEN ARCHITECTURE-MDA E UM ESTUDO DE CASO Trabalho de Conclusão de Curso apresentado
Leia maisAumento da complexidade dos sistemas. aumento do nível de abstração
ODYSSEY-MDA: UMA ABORDAGEM PARA A TRANSFORMAÇÃO DE MODELOS Natanael Elias Nascimento Maia Orientadora: Cláudia Maria Lima Werner Março - 2006 1 Roteiro Introdução Arquitetura Orientada por Modelos Transformação
Leia mais4 ALBATROZ : Um ambiente para desenvolvimento de SMA
41 4 ALBATROZ : Um ambiente para desenvolvimento de SMA Resumo Neste capítulo será apresentado o processo de desenvolvimento do ambiente Albatroz. Cada ferramenta é detalhada indicando suas funcionalidades.
Leia maisCurso de Sistemas de Informação. Karla Donato Fook DESU / DComp. Modelagem de Dados UML
Curso de Sistemas de Informação Karla Donato Fook karladf@ifma.edu.br DESU / DComp 2017 Modelagem de Dados UML 2 1 Eduardo Bezerra Editora Campus/Elsevier Porcentagem de projetos que terminam dentro do
Leia mais6 Conclusão. 6.1 Trabalhos relacionados
Conclusão 112 6 Conclusão 6.1 Trabalhos relacionados A primeira versão do método SHDM apresentada por Lima (2003) empregava um modelo orientado a objetos como a base estrutural do modelo conceitual de
Leia maisGeração automática de código fonte para restrições de integridade topológicas utilizando o perfil UML GeoProfile
Geração automática de código fonte para restrições de integridade topológicas utilizando o perfil UML GeoProfile Vinícius Garcia Sperandio 1,3, Sérgio Murilo Stempliuc 1, Thiago Bicalho Ferreira², Jugurta
Leia maisUma Abordagem para o Controle da Evolução de Software no Desenvolvimento Orientado a Modelos
Uma Abordagem para o Controle da Evolução de Software no Desenvolvimento Orientado a Modelos Chessman Kennedy Faria Corrêa 1 Leonardo G. P. Murta 1 Claudia M. L. Werner 1 1 Programa de Engenharia de Sistemas
Leia maisIntrodução à Engenharia de Software
Introdução à Engenharia de Software Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Imagem Clássica Objetivo da aula Depois desta aula você terá uma visão sobre o que é a engenharia
Leia maisNesta seção você encontra artigos voltados para testes, processo, modelos, documentação, entre outros
Engenharia Nesta seção você encontra artigos voltados para testes, processo, modelos, documentação, entre outros Modelagem de processos de software com SPEM Conheça a notação padrão para modelagem de processos
Leia maisOntologias: Definições e Tipos
Ontologias: Definições e Tipos Ricardo de Almeida Falbo Ontologias para Engenharia de Software Departamento de Informática Universidade Federal do Espírito Santo Agenda O que é uma ontologia Tipos de Ontologias
Leia maisNotas de Aula 03: Introdução a Orientação a Objetos e a UML
Notas de Aula 03: Introdução a Orientação a Objetos e a UML Objetivos da aula: Introduzir os conceitos da Orientação à Objetos (O.O) Introduzir os conceitos da UML Relacionar os processos às ferramentas
Leia maisCaptor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos
Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior 1 Paulo Cesar Masiero 1 Rosana Teresinha Vaccare Braga 1 1 Instituto de Ciências
Leia maisMODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro
MODELAGEM DE SISTEMAS Introdução a Computação e Engenharia de Software Profa. Cynthia Pinheiro Introdução Modelagem de Sistemas: A modelagem de um sistema auxilia o analista a entender a funcionalidade
Leia mais132 6 Conclusão 6.1. Contribuições da Tese
132 6 Conclusão Esta tese teve como objetivo principal o estudo da aplicação de transformações para manter a rastreabilidade de um sistema de software. Esta abordagem permite a captura automática das informações
Leia maisMinistério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Campus Curitiba PLANO DE ENSINO
Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Curitiba PLANO DE ENSINO CURSO Bacharelado em Sistemas de Informação Engenharia de Computação? MATRIZ Vigente FUNDAMENTAÇÃO LEGAL
Leia maisAnálise de Sistemas. Aula 5
Análise de Sistemas Aula 5 Prof. Emerson Klisiewicz CONTEXTUALIZAÇÃO Aula 5 Análise Orientada a Objetos Introdução a UML Histórico e Visão Geral Ferramentas CASE O Sucesso... Clientes satisfeitos Eles
Leia maisIntrodução à UML. Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX. Prof. Fernando Maia da Mota
Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX Introdução à UML Prof. Fernando Maia da Mota Slides gentilmente cedidos por Profa. Dra. Maria Istela Cagnin Machado UFMS/FACOM Introdução
Leia maisCiência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo
Ciência da Computação Análise e Projeto Orientado a Objetos UML Anderson Belgamo 1 Evolução do Software O rápido crescimento da capacidade computacional das máquinas resultou na demanda por sistemas de
Leia maisUML - Unified Modeling Language
UML - Unified Modeling Language Marcelle Mussalli Cordeiro {mmussalli@gmail.com} Cordeiro Objetivo do Curso Fornecer ao profissional que pretende utilizar as técnicas da linguagem UML Uma visão clara de
Leia maisAnálise e projeto de sistemas
Análise e projeto de sistemas Conteúdo: UML O processo de desenvolvimento de software Prof. Patrícia Lucas A linguagem de modelagem unificada (UML) A UML teve origem em uma tentativa de se unificar os
Leia maisEstudo do processo de automatização de testes dirigidos por modelos
Estudo do processo de automatização de testes dirigidos por modelos Daniel Frossard Costa 1, Jandira Guenka Palma 1 1 Departamento de Computação Universidade Estadual de Londrina (UEL) Caixa Postal 10.011
Leia maisUML Visão Geral UML Visão geral v.1.1, Novembro de 2001
UML Visão Geral 1 Índice Introdução Diagramas O que é a UML? Diagrama de casos de utilização Valor da UML Diagrama de classes Origens da UML Diagrama de objectos Parceiros da UML Diagrama de componentes
Leia maisAgenda da Aula. Arquitetura de Software e Padrões Arquiteturais. Elementos de um Padrão. Arquitetura de Software. Arquitetura de Software
Reuso de Software Aula 04 Agenda da Aula Arquitetura de Software e Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com 14 Março 2012 Arquitetura de Software Padrões arquiteturais
Leia maisEvolução do Método FrameWeb para o Projeto de Sistemas de Informação Web Utilizando uma Abordagem Dirigida a Modelos
Beatriz Franco Martins Souza Evolução do Método FrameWeb para o Projeto de Sistemas de Informação Web Utilizando uma Abordagem Dirigida a Modelos Vitória, ES 2016 Beatriz Franco Martins Souza Evolução
Leia maisArquitetura de Software: Introdução
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Arquitetura de Software: Introdução SSC-121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2012 Conteúdo
Leia maisUML: Introdução. História Visão geral Modelo conceitual da UML. Bibliografia. UML: introdução
UML: introdução Prof.: Clarindo Isaías Pereira da Silva e Pádua Synergia / Gestus Departamento de Ciência da Computação - UFMG UML: introdução 2 Bibliografia Rumbaugh, J.; Jacobson, I.; Booch, G., The
Leia maisComposição de UML Profiles
Composição de UML Profiles Kleinner Silva Farias de Oliveira 1 Orientador: Toacy Cavalcante de Oliveira 1 1 Faculdade de Informática Pontifícia Universidade Católica do Rio Grande do Sul (PUC-RS) Av. Ipiranga
Leia maisa determinadas condições de uso. Este mecanismo permite, ainda, a integração de domínios externos. A descrição da interface é feita de forma
120 5 Conclusão Este trabalho propõe uma arquitetura para adaptação e meta-adaptação de Sistemas Hipermídia. Com a adaptação, a utilização de sistemas hipermídia se torna mais eficaz evitando que a quantidade
Leia maisENGENHARIA DE SOFTWARE
EMENTA ENGENHARIA DE SOFTWARE DISCIPLINA: Estrutura e Fluxo de Informação EMENTA: A disciplina Estrutura e Fluxo de Informação se propõe a capacitar o aluno sobre os fundamentos da Gestão da Informação
Leia maisArquitetura de Software: Documentação
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Arquitetura de Software: Documentação SCE 526 Análise e Projeto Orientados a Objeto Profa. Elisa Yumi Nakagawa 2. Semestre de
Leia maisCampus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /
Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: ENGENHARIA DE SOFTWARE Aula N : 05 Tema:
Leia maisRevisão de conceitos Tópicos Avançados em TI Prof. Rossano Pablo Pinto Fevereiro/ v0.1
Revisão de conceitos Tópicos Avançados em TI Prof. Rossano Pablo Pinto Fevereiro/2013 - v0.1 Orientação a objetos Classe Métodos Visibilidade Tipo de retorno Tipo dos parâmetros Atributos Tipo Visibilidade
Leia maisModelagem Conceitos e arquitetura do SBD; Modelo de dados entidade-relacionamento modelo ER; Modelo de dados relacional; Mapeamento ER para o
Universidade Estadual de Mato Grosso do Sul Ciência da Computação Banco de Dados Prof. Nilton nilton@comp.uems.br Modelagem Conceitos e arquitetura do SBD; Modelo de dados entidade-relacionamento modelo
Leia maisRosana T.Vaccare Braga
Rosana T.Vaccare Braga Processo de remover detalhes físicos,espaciais ou temporais no estudo de objetos ou sistemas com o objetivo de focar em outros aspectos de interesse (Colburn) Similar ao processo
Leia maisUML (Unified Modelling Language)
UML (Unified Modelling Language) Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Booch, G. et al. The Unified Modeling Language User Guide
Leia maisUma Abordagem de Reengenharia de Software Orientado a Objetos para Componentes apoiada por Métricas
Uma Abordagem de Reengenharia de Software Orientado a Objetos para Componentes apoiada por Métricas Ana Maria da Mota Moura Orientadoras: Cláudia Werner e Aline Vasconcelos Programa de Engenharia de Sistemas
Leia maisVisões Arquiteturais. Visões Arquiteturais
Visões Arquiteturais Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da Engenharia. Visões permitem reduzir a quantidade
Leia maisCapítulo 5 Modelação do Sistema 1
Capítulo 5 Modelação do Sistema Capítulo 5 Modelação do Sistema 1 Assuntos abordados Modelos de contexto Modelos de interação Modelos estruturais Modelos comportamentais Engenharia orientada a modelos
Leia mais