Reutilização (Engenharia de Domínio)

Slides:



Advertisements
Apresentações semelhantes
«Forte do Bom Sucesso (Lisboa) – Lápides 1, 2, 3» «nomes gravados, 21 de Agosto de 2008» «Ultramar.TerraWeb»
Advertisements

1 ANÁLISE E PROJETO NO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE PROCESSO: CONCEITO MODELOS DE PROCESSO PROCESSO UNIFICADO HISTÓRIA CARACTERÍSTICAS AS QUATRO.
INFORMAÇÕES COMPLEMENTARES
O Modelo de Jesus para Crescimento e Serviço
A busca das mulheres para alcançar seu espaço dentro das organizações
Material pedagógico Multiplicar x 5 Clica!
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Capa Disciplina: Ajustamento de Observações
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
Nome : Resolve estas operações começando no centro de cada espiral. Nos rectângulos põe o resultado de cada operação. Comprova se no final.
1 INQUÉRITOS PEDAGÓGICOS 2º Semestre 2003/2004 ANÁLISE GERAL DOS RESULTADOS OBTIDOS 1.Nº de RESPOSTAS ao inquérito 2003/2004 = (42,8%) 2.Comparação.
Curso de ADMINISTRAÇÃO
Relações Adriano Joaquim de O Cruz ©2002 NCE/UFRJ
PERSPECTIVA CONCEITUAL
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
EXPRESSÕES ARITMÉTICAS
FUNÇÃO MODULAR.
Engenharia de Requisitos
Aula 4 Nomes, Vinculações, Tipos e Escopos
EXEMPLOS DE ESTRUTURAS PROTENDIDAS
Composição e Geração de Aplicações usando Aspectos
Classes e objetos Modelagem
AP 1.
Provas de Concursos Anteriores
Análise de Casos de Uso Alexandre Motnteiro.
Instituto de Geociências Universidade Federal de Minas Gerais
MATEMÁTICA PARA NEGÓCIOS
Renda até 2 SM.
Diagnósticos Educativos = Diagnósticos Preenchidos 100% = 1.539
Engenharia de Requisitos
PESQUISA SOBRE PRAZO MÉDIO DA ASSISTÊNCIA NA SAÚDE SUPLEMENTAR
(CESPE/ Técnico Judiciário do TRT 17ª Região/ES) O Superior Tribunal de Justiça entende que o candidato aprovado em concurso público dentro do limite.
MECÂNICA - DINÂMICA Exercícios Cap. 13, 14 e 17. TC027 - Mecânica Geral III - Dinâmica © 2013 Curotto, C.L. - UFPR 2 Problema
Regulamento FMTKD adaptado para Categorias Não-Oficiais
Candidato: Lucas Santos de Oliveira Orientador: Marco Aurélio Gerosa Defesa de Mestrado.
Aluno: Mário Monteiro Orientador: Sérgio Soares 1.
Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do.
Object Oriented Software Construction (MEYER, Bertrand)
1 CENTRO DE DESENVOLVIMENTO E PLANEJAMENTO REGIONAL – 2006 P Ó S-GRADUA Ç ÃO EM ECONOMIA Microeconomia I Prof.: Edson Domingues Cap í tulo II: Escolha.
Arquitetura de software
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
CATÁLOGO GÉIA PÁG. 1 GÉIA PÁG. 2 HESTIA PÁG. 3.
PROCESSOS PRINCIPAIS Alunos - Grau de Satisfação 4971 avaliações * Questões que entraram em vigor em 2011 ** N.A. = Não Aplicável Versão: 07/02/2012 INDICADORES.
Arquiteturas de Referência
Lemas (Sudkamp)  .
Trabalho sobre Cor Thiago Marques Toledo.
Coordenação Geral de Ensino da Faculdade
Plataforma Brasil – Submissão de pesquisa
Estudo dos Gases Prof. Fabio Costa.
Projeto Marcas que Eu Gosto 1 PROJETO MARCAS QUE EU GOSTO Estudos Quantitativo de Consumidores Janeiro / 2005.
Modelagem Estatística
Irradiações 1- Definição 2- Mecânica da Irradiação
Projeto Medindo minha escola.
C ORROPIOS, C ARDINCHAS E C ÃES G RANDES O LIVRO de José Paixão em imagens – com pistas de leitura propostas por por www.joraga.net.
GERENCIAMENTO DE REDES UTILIZANDO O PROTOCOLO SNMP
Semântica de Linguagens de Programação
1.
Projeto de Banco de Dados
Nossa Velha - Nova Cruz Alta Parte 21.
DIEGO RICARDO DE ARAUJO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO INSTITUTO DE CIÊNCIA EXATAS UNIVERSIDADE FEDERAL DE JUIZ DE FORA Seleção de Características.
BPM BUSINESS PROCESS MANAGEMENT Projecto em Informática e Gestão de Empresas Lisboa, 20 de Junho de 2006.
Estatística Aula 9 – 28/02/2011.
1 Aplicações do Fecho Regular. 2 A interseção de uma linguagem livre de contexto e uma linguagem regular é uma linguagem livre de contexto livre de contexto.
Olhe fixamente para a Bruxa Nariguda
Atuação do Terceiro Setor: Relações Sustentáveis? Sustentabilidade da Sociedade Civil & Sustentabilidade das Organizações da Sociedade Civil Mário Aquino.
Máquina de Turing Universal
Equipe Bárbara Régis Lissa Lourenço Lucas Hakim Ricardo Spada Coordenador: Gabriel Pascutti.
Arquiteturas de Gerenciamento
1 - Listas com Acesso Aleatório. 2 - Fila, o Acesso Ordenado (FIFO)
AM020C A interface entre Meio Ambiente, Sociedade e Economia Indicadores de produtividade e empregabilidade da agricultura do Brasil. Aluna Andressa Santos.
Transcrição da apresentação:

Reutilização (Engenharia de Domínio) Toacy C. de Oliveira COPPE/UFRJ Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Agenda Introdução Conceitos Análise de Domínio Projeto e Implementação de Domínios Métodos Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Engenharia de Domínio Introdução Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Motivação Como observado em [Parnas76], a quantidade de recursos necessários para desenvolver uma aplicação seria reduzido se esta fizesse parte de um grupo de aplicações similares (uma família de aplicações) que pudessem ser desenvolvidas a partir de um núcleo em comum. Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Problema Como identificar esta família ? Como identificar o que é comum e o que não é ? Como identificar uma aplicação pertencente à familia? Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Resposta Análise de Domínio Engenharia de Domínio (termo mais abrangente) Toacy C. Oliveira - COPPE/UFRJ

Motivação para ED (não-tec) A maioria dos sistemas de software podem ser classificados de acordo com a área do negócio e o tipo de tarefas que estes suportam. Ex: Sistemas de Reserva de Passagens, Registro Médico, Gerenciamento de Estoque... Toacy C. Oliveira - COPPE/UFRJ

Motivação para ED (tec) Similarmente, parte destes sistemas podem ser classificadas do acordo com sua funcionalidade. Banco de Dados, Pacotes para Sincronização, Workflow, GUI.. Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Domínio ? Área organizada ao redor de uma classe de sistemas. Ex. Telecomunicações Parte de um sistema. Ex. Persistência Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Engenharia de Domínio É a atividade de coletar, organizar e armazenar experiências passadas adquiridas na construção de sistemas ou parte de sistemas em um domínio em particular, na forma de uma artefato reutilizável. É também responsável por prover meios de reutilizar estas artefatos na construção de novos sistemas. Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Passos Análise de Domínio Projeto do Domínio Implementação do Domínio Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Análise de Domínio Define um conjunto de requisitos reutilizáveis em um domínio. Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Projeto do Domínio Estabelece uma arquitetura comum aos sistemas de um dado domínio. Toacy C. Oliveira - COPPE/UFRJ

Implementação do Domínio Implementação dos artefatos reutilizáveis (componentes, linguagens de domínio, geradores) e a infra-estrutura de reuso. Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ SE vs DE SE (Software Engineering) Visa o desenvolvimento de um sistema específico para um usuário específico em um contexto específico. DE (Domain Engineering) Visa o desenvolvimento de um artefato reutilizável, ou seja, genérico e flexível o suficiente para dar origem a várias aplicações.Leva em consideração um conjunto de usuários e um conjunto de contextos de utilização. Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ DE vs AE Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Engenharia de Domínio Conceitos Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Domínio [Dicionário] “A sphere of activity, concern, or function; a field, e.g. the domain of history.” American Heritage Dictionary Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Domínio [Czarnecki99] An area of knowledge: scoped to maximize the satisfaction of the requirements of its stakeholders, including a set of concepts and terminology understood by practitioners in that area, and including knowledge of how to build software systems (or parts of software systems) in that area. Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Análise de Domínio Conceitos Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Análise de Domínio Objetivos Selecionar e definir o domínio foco. Colecionar informações relevantes sobre o domínio e integrá-la a um Modelo de Domínio coerente. Originalmente proposto por [Neighbors81] quando desenvolvendo o paradigma Draco. Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Fontes de Informação Especialistas no Domínio Manuais Livros Protótipos Experimentos Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Modelo do Domínio*** Representação das propriedades comuns e variáveis de um sistema em um domínio bem como suas interdependências (somente do que varia) . Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Estrutura do Modelo Definição do Domínio Léxico do Domínio / Domain Specific Language Modelos Conceituais Modelos de Features Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Definição Define o escopo do domínio e caracteriza seu conteúdo através de exemplos de sistemas em seu domínio, contra-exemplos (sistemas fora do domínio) e regras genéricas de inclusão e exclusão. Ex : “Todo sistema com a funcionalidade XXX pertence ao domínio”. Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Léxico Define o vocabulário Ex Dicionário de Dado, DSL, UML Profile. Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Modelo Conceitual Descreve os conceitos em algum formalismo. Ex. UML, Fluxograma,... Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Modelo de Features Define um conjunto de requisitos reutilizáveis e configuráveis que especificam um sistema no domínio. Este requisito é chamado de Feature (será apresentado em breve). Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Um “template”*** Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Um “exemplo”*** Overview “O domínio das Telecomunicações abrange sistemas que lidam com o estabelecimento de uma comunicação ponto a ponto” Definitions Emissor = agente que inicia a comunicação. Receptor = agente de aceita a comunicação. Central = HW que faz a ligação física entre emissor <> receptor Variabilities Sistemas de telecom podem ter formas de bilhetagem diferenciadas. Parameters Tipos de Central, Definição de Custos,..., Issues Não será levado em consideração comunicações via internet. Scenarios Emissor em um LugarX utilizando uma Central Analógica liga para Receptor utilizando central digital a um custo de... Toacy C. Oliveira - COPPE/UFRJ

Projeto & Implementação Domínio Conceitos Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Objetivo Projeto Desenvolver uma arquitetura para os sistemas do domínio. Implementação Materialização do projeto em componentes, geradores para configuração e etc. Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Arquitetura (1) “Abstractly, software architecture involves the description of elements from which systems are built, interactions among those elements, patterns that guide their composition, and constraints on these patterns. In general, a particular system is defined in terms of a collection of components and interactions among these components. Such a system may in turn be used as a (composite) element in a larger system design.” [ShawGarlan96] Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Arquitetura (2) A software architecture is a description of the subsystems and components of a software system and the relationships between them. Subsystems and components are typically specified in different views to show the relevant functional and nonfunctional properties of a software system. The software architecture of a system is an artifact. It is the result of the software development activity. [Buschmann et al96] Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Padrão Arquitetural Configuração recorrente dos elementos de uma arquitetura. Layers Pipes and Filters Blackboard Broker Model-View-Controller Microkernnel Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Arquitetura Real Normalmente está baseada em mais de um padrão ao mesmo tempo. É um projeto de alto nível que satisfaz a todos os requisitos mas permite um alto grau de flexibilidade/liberdade para a implementação. Ex OO Framework Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Engenharia de Domínio Métodos Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Por que outro ? Métodos Tradicionais Não diferenciam Engenharia de Domínio da Engenharia da Aplicação (ES). Não levam em consideração a delimitação do domínio (não há escopo). Não diferenciam entre a modelagem da variabilidade no contexto de uma ou várias aplicações. Não representam a variabilidade de forma independente da plataforma. Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Métodos FODA (Feature-Oriented Domain Analysis) [Kang90] FORM (Feature-Oriented Reuse Method) [Kang98] ODM (Organization Domain Modeling) [SCK96] RSEB (Reuse-Driven Software Engineering Business) [JacobsonGriss97] FeatuRSEB (Featured RSEB) [GrissFavaro98] PuLSE (Product Line Software Engineering) [BDF99] FAST (Family-Oriented Abstraction, Specification, and Translation) [Weiss99] Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Engenharia de Domínio O Modelo de Features Toacy C. Oliveira - COPPE/UFRJ

O Modelo de Features*** Representação hierárquica que visa capturar os relacionamentos estruturais entre as Features de um domínio de aplicação. Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Feature Aspecto visível pelo usuário, qualidade ou característica presente em uma aplicação. Característica ou conceito essencial para um stakeholder/cliente das aplicações em um domínio. Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Exemplo Quando alguém compra um automóvel é necessário fazer uma escolha sobre a característica transmissão (manual ou automática). Automóvel Transmissão Manual Automática Toacy C. Oliveira - COPPE/UFRJ

Representação da Feature Nome Deve ser conciso e capaz de descrever a característica em questão. É utilizado como parte do vocabulário do domínio Modelo de Features = Taxonomia Toacy C. Oliveira - COPPE/UFRJ

Representação Gráfica Transmissão Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Exemplos Persistência EstratégiadeVenda Transmissão Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Features = Classes ? Classes => descrição genérica de um conjunto de objetos. Features => descrição genérica de instâncias de features. Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Features != Classes Instâncias de Classes => têm propriedades pré-definidas, estado. Instâncias de Features ou de conceitos => pode ser qualquer coisa. Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Diagrama de Features É composto por um conjunto de nós (Features), relacionamentos entre estes nós e ícones nos relacionamentos. Tem a forma de uma árvore onde a raiz representa o conceito em questão (concept node). Os outros nós da árvore reprsentam as features (feature node). Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Exemplo Carro Motor Transmissão Potência Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Relação Pai-Filho Todo o nó (menos o nó conceito) presente em um Diagrama de Features tem um pai. Pai (Motor , Potencia) = Verdadeiro Pai (Carro , Motor) = Verdadeiro Pai (Carro ,Transmissão) = Verdadeiro Pai (Motor , Carro) = Falso Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Características Features podem ser Obrigatórias (Mandatory) Alternativas (Alternative) Opcionais (Optional) Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Feature Obrigatória Deve estar presente nas instâncias do conceito se e somente se seu pai também está incluído na instância. Pai Obrigatório => Filho presente Pai Opcional e Presente => Filho Presente Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Representação Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Exemplo Carro Motor Transmissão Potência Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Feature Opcional Pode estar presente nas instâncias do conceito se e somente se seu pai também está incluído na instância. Pai Opcional e Presente => Filho Presente ou Pai Opcional e Presente => Filho não Presente Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Represetação Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Exemplo Carro Ar Condicionado Transmissão TemperaturaLimite Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Feature Alternativa Uma Feature pode ter um ou mais conjuntos de Features alternativas. Se o pai de uma Feature alternativa é incluída na instância do conceito, então uma e somente uma Feature alternativa pode ser incluída na instância. Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Representação Dois conjuntos de alternativas Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Exemplo Carro XOR Pickup Sedan Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Exemplo Motor OR Álcool Gasolina Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Restrição Existe um relacionamento entre Features que permite representar restições de domínio. Ex: Ar Condicionado requer Potencia > 50HP Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Restrição Carro Ar Condicionado Motor Potência > 50 Toacy C. Oliveira - COPPE/UFRJ

Expressando Variabildade Variabilidade é expressa através de features alternativas e opcionais. Um ponto de variabilidade é uma feature com sub-features variáveis. Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Exemplo Carro Motor Chassi Transmissão ArCondicionado Manual Automática Gasolina Diesel Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Mapeamento Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Classes Toacy C. Oliveira - COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ Referência*** Chapter 5 – Features Model disponível em http://www-ia.tu-ilmenau.de/~czarn/feature/ http://www.sei.cmu.edu/publications/documents/91.reports/91.tr.028.html Toacy C. Oliveira - COPPE/UFRJ