Desenvolvimento de software orientado a características e dirigido por modelos



Documentos relacionados
Desenvolvimento de Software Orientado a Características e Dirigido por Modelos Revisitado

Desenvolvimento de software orientado a características e dirigido por modelos

Engenharia de Software I: Análise e Projeto de Software Usando UML

Model-Driven Engineering Geração de modelos de software e especificações usando a plataforma IBM

UMA ABORDAGEM PARA DESENVOLVIMENTO DE LINHAS DE PRODUTOS DE SOFTWARE ORIENTADA A CARACTERÍSTICAS E DIRIGIDA POR MODELOS

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

Transformação de modelos em processos de desenvolvimento de software

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

Desenvolvimento Dirigido por Modelos: Ferramentas

Processos de Desenvolvimento de Software. Prof. Hélio Engholm Jr

PROFILE EM UML PARA MODELAGEM SIMPLIFICADA DE INTERFACES GRÁFICAS EM APLICATIVOS

CASE Orientada a Objetos com Múltiplas Visões e Implementação Automática de Sistemas - MVCASE

Odyssey-MDA: Uma Ferramenta para Transformações de Modelos UML

Arquitetura Orientado por Modelos aplicada a Linha de Produto de Software. Eduardo Barbosa da Costa

Table 1. Dados do trabalho

Transformando Modelos da MDA com o apoio de Componentes de Software

Engenharia de Domínio baseada na Reengenharia de Sistemas Legados

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO. Contribuições do MDA para o desenvolvimento de software

Franklin Ramalho Universidade Federal de Campina Grande - UFCG

Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem

Agenda da Aula. Programação Orientada a Características com AHEAD. Característica Modular. Programação Orientada a Características (FOP)

Linha de Produtos de Software (SPL) em Java: Teoria e Prática

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Modelagem de Sistemas

Um Processo de Engenharia de Domínio com foco no Projeto Arquitetural Baseado em Componentes

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Persistência e Banco de Dados em Jogos Digitais

Introdução ao Design

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

Um Framework para definição de processos de testes de software que atenda ao nível 3 do TMM-e

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Uma Abordagem para a Transformação Automática do Modelo de Negócio em Modelo de Requisitos

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Usando RDL para Derivação de Produtos em uma Linha de Produtos de Software

Arquitetura de Software


Padrões Arquiteturais e de Integração - Parte 1

Engenharia de software para desenvolvimento com LabVIEW: Validação

Um processo para construção de software mais transparente

Model Driven Architecture-MDA e um estudo de caso.

Viabilidade de Construção de Software com MDD e MDA

4 O Workflow e a Máquina de Regras

Especial Online RESUMO DOS TRABALHOS DE CONCLUSÃO DE CURSO. Sistemas de Informação ISSN

O uso do gestor de conteúdos plone no suporte a processos de software

Exame de Qualificação para o Doutorado

Fase 1: Engenharia de Produto

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS

Itens estruturais/caso de uso. Itens estruturais/classe ativa. Itens estruturais/componente. Itens estruturais/artefatos. Itens comportamentais

Modelando Banco de Dados Relacionais e Geográficos Utilizando a Ferramenta GenDBM Tool

Palavras-chave: Desenvolvimento Baseado em Componentes (DBC), Transformação de Software, framework e ObjectPascal.

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

:: aula 11. :: Diagrama de Seqüência e Protótipos. :: Olá! Nesta aula, continuaremos a 4ª fase do Projeto Desenho.

Orientação à Objetos. Aécio Costa

Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Programa de Pós-Graduação em Desenvolvimento de Sistemas para Web

Geração do Portal CPCX - UFMS pelo UNION: Um Estudo de Caso

Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Unified Process. Sueleni Mendez Batista. Orientadora: Dra. Elisa Hatsue Moriya Huzita

Processos de Software

Princípios de Linhas de Produtos de Software. Prof. Alberto Costa Neto

ProgramaTchê Programação OO com PHP

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2

Projeto GingaForAll Especialização do GingaCC para Diversas Plataformas

TESTE DE SOFTWARE COM XP. Isac Aguiar isacaguiar.com.br

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Etapas da Elaboração de um Projeto de Banco de Dados

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

GEE051 - Banco de Dados (BD) Plano de Curso. Ilmério Reis da Silva ilmerio@facom.ufu.br UFU/FACOM /2

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

MODELAGEM DE PROCESSOS

Ciência da Computação ENGENHARIA DE SOFTWARE. Análise dos Requisitos de Software

TERMO DE REFERÊNCIA Nº xxxxxxx Contrato por Produto Nacional

ESPECIFICAÇÃO DO AMBIENTE EXPSEE SEGUNDO O MÉTODO CATALYSIS

6 Ferramenta de Apoio ao Processo de Desenvolvimento de Sistemas Multi-Agentes

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Transformação de um Modelo de Empresa em Requisitos de Software

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Requisitos e Modelação

Proposta de abordagem de desenvolvimento de software orientado a modelos para empresas

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

DESENVOLVIMENTO DE SOFTWARE DIRIGIDO POR MODELOS: UM FOCO EM ENGENHARIA DE REQUISITOS

UML - Unified Modeling Language

Ensino Técnico Integrado ao Médio FORMAÇÃO PROFISSIONAL. Plano de Trabalho Docente 2014

SABiO: Systematic Approach for Building Ontologies

SISTEMA DE GESTÃO DE PESSOAS SEBRAE/TO UNIDADE: GESTÃO ESTRATÉGICA PROCESSO: TECNOLOGIA DA INFORMAÇÃO

MODELOS DE PROCESSO. Isac Aguiar isacaguiar.com.br

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

Grupo de Ferramentas & Implementação. Uirá Kulesza DIMAp/UFRN

ArgoCASEGEO + TerraLib = bancos de dados geográficos para aplicações Small GIS

Linhas de Produtos de Software. Professor: Uirá DIMAp / UFRN,

Frameworks. Pasteur Ottoni de Miranda Junior

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Uma abordagem para Engenharia de Requisitos no Domínio de Software Embarcado

Questionário. A ferramenta auxilia na alocação de Não (0) x x x. Satisfatório (5) complexidade de um caso de uso? de uso (72) Sim (10)

Engenharia de Ontologias Seminário UPON

Agenda. Introdução Etapas genéricas Atividades de apoio Ferramentas de apoio Modelos genéricos Modelos de mercado Modelos de melhoria

ENGENHARIA DE SOFTWARE I

Transcrição:

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 de Características Programação orientada a características Desenvolvimento dirigido por modelos Objetivos Desenvolvimento orientado a características e dirigido por modelos

Motivação Complexidade, custo e dificuldade de compreensão crescentes no desenvolvimento de sistemas Busca por métodos cada vez mais eficientes para especificação de programas Método apresentado por Trujillo, et al. em Feature Oriented Model Driven Development: A Case Study for Portlets (ICSE 2007)

Motivação Feature Oriented Model Driven Development: A Case Study for Portlets (ICSE 2007) Especificação de programas em alto nível de abstração através de modelos Desenvolvimento automatizado orientado a características Conformidade entre artefatos de projeto e código Linguagem não geral para especificações de alto nível Configurações intermediárias manuais e escritas em linguagem de domínio específico Código do sistema obtido por combinação entre códigos parciais

Introdução O desenvolvimento de software orientado a características e dirigido por modelos (FOMDD1) é uma abordagem que une FOP2 (programação orientada a características) e MDD 3 (desenvolvimento dirigido por modelos) FOP é um paradigma para linhas de produtos de software no qual programas são construídos através da composição de características MDD utiliza modelos para especificação de programas e transformações sobre modelos para síntese de executáveis 1. Feature Oriented Model Driven Development 2. Feature Oriented Programming 3. Model Driven Development

Características Características (ponto de vista de programação Don Batory) entidades de primeira classe do projeto encapsulam representações de programas estruturadas hierarquicamente descrevem em alto nível de abstração os requisitos de um sistema Ex.: e-commerce (gerência de produtos, gerência de clientes, gerência de pedidos, pagamento,etc) Abstrair programas em termos de características facilita o entendimento Possibilita pensarmos em construção de programas através da combinação de diferentes características

Modelagem de Características Especificação da variabilidade de propriedades dos conceitos e suas interdependências através de modelo Essencialmente, define uma linha de produtos

Programação Orientada a Características 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

Programação Orientada a Características Necessário suporte ferramental para composição de artefatos (ex.: código, arquivos de configuração, etc) AHEAD (Don Batory, 2004) JAK, XML, etc Mixin Layers classes especialmente desenvolvidas para esquema de herança múltipla

Programação Orientada a Características - Exemplo Possibilidades: i1 = Iadd BigI Base i2 = Idiv BigI Base i3 = Idiv Iadd BigI Base d1 = Dadd BigD Base d2 = IDivd BigD Base d3 = Ddivd Dadd BigD Base

Programação Orientada a Características - Exemplo Exemplo: i3 = Idiv Iadd BigI Base jampack --target=i3 Base BigI Idiv Iadd

Desenvolvimento dirigido por modelos É uma metodologia que foca na especificação de sistemas de software através de modelos Visa a obtenção de código fonte através de transformações sucessivas dos modelos abstratos de entrada PIM Modelo independente de plataforma PSM Modelo específico de plataforma

Transformações de Modelos De acordo com o padrão QVT da OMG, a tradução de modelos em artefatos textuais como modelos conceituais e código deve seguir o esquema a seguir:

Objetivos Generalizar o método de FOMDD proposto por Trujillo et al Criar profile UML para metamodelo orientado a características Criar ferramenta de combinação baseada no profile UML definido Definir modelos adicionais de configuração Criar ferramenta de combinação de modelos adicionais Definir interface de transformação Criar módulos de transformação (cartuchos) Criar ferramenta de combinação baseada na linguagem de especificação de transformações

FOMDD Visão geral O desenvolvimento orientado a características e dirigido por modelos propõe que os produtos de uma linha de produtos de software sejam construídos pela criação de modelos que possam ser compostos (refinados) por características e que estes sejam transformados em executáveis

Abordagem FOMDD de Trujillo, et al. Modelos de alto nível expressos através de diagramas de estados, sendo cada estado a representação uma característica Modelos intermediários expressos em linguagem de domínio específico para portlets Modelos de configuração introduzidos manualmente na fase intermediária Código gerado: Portlets J2EE / Arquitetura MVC

Abordagem FOMDD de Trujillo, et al. Composição (refinamento) do modelo de características mostra como a adição de novos estados ao diagrama inicial é propagada ao longo das fases até a geração de código Síntese de código obtida pela combinação dos códigos relativos a cada uma das características

FOMDD Idealmente, a síntese deve ser feita pela transformação em código do modelo que representa a combinação das características (caminho B)

Nossa abordagem FOMDD Generalização da abordagem de Trujillo et al Modelos de alto nível expressos através de uma linguagem genérica de especificação de sistemas Profile UML do metamodelo para Modelagem de Características

Nossa abordagem FOMDD Generalização da abordagem de Trujillo et al Modelos de configuração expressos em alto nível através de linguagem declarativa OCL Código gerado: tecnologia/arquitetura de acordo com módulo escolhido

Abordagem Proposta Arquitetura da ferramenta para FOMDD

Abordagem Proposta

Avaliação Proposta Realização de estudo de caso envolvendo Implementação de sistema usando abordagem de Trujillo et al Implementação de sistema usando nossa abordagem Comparação das abordagens Complexidade dos artefatos desenvolvidos Rastreabilidade entre artefatos Grau de automação Qualidade do produto

Referências 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, 355-371, 2004 Czarnecki, Krzysztof, Eisenecker, Ulrich, and Czarnecki, Krzysztof: Generative Programming: Methods, Tools, and Applications, Addison-Wesley Professional, June 2000 Kleppe, Anneke, Warmer, Jos, and Bast, Win: MDA Explained: The Model Driven Architecture: Pratice and Promise, Addison Wesley, April 2003