1 Reutilização (Engenharia de Domínio) Toacy C. de Oliveira COPPE/UFRJ Toacy C. Oliveira -...
Transcript of 1 Reutilização (Engenharia de Domínio) Toacy C. de Oliveira COPPE/UFRJ Toacy C. Oliveira -...
1
Reutilização(Engenharia de Domínio)
Toacy C. de Oliveira
COPPE/UFRJ
Toacy C. Oliveira - COPPE/UFRJ
Toacy C. Oliveira - COPPE/UFRJ 2
Agenda
Introdução
Conceitos
Análise de Domínio
Projeto e Implementação de Domínios
Métodos
3
Engenharia de Domínio
Introdução
Toacy C. Oliveira - COPPE/UFRJ
Toacy C. Oliveira - COPPE/UFRJ 4
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 5
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 6
Resposta
Análise de Domínio
Engenharia de Domínio (termo mais abrangente)
Toacy C. Oliveira - COPPE/UFRJ 7
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 8
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 9
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 10
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 11
Passos
Análise de Domínio
Projeto do Domínio
Implementação do Domínio
Toacy C. Oliveira - COPPE/UFRJ 12
Análise de Domínio
Define um conjunto de requisitos reutilizáveis em um domínio.
Toacy C. Oliveira - COPPE/UFRJ 13
Projeto do Domínio
Estabelece uma arquitetura comum aos sistemas de um dado domínio.
Toacy C. Oliveira - COPPE/UFRJ 14
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 15
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 16
DE vs AE
17
Engenharia de Domínio
Conceitos
Toacy C. Oliveira - COPPE/UFRJ
Toacy C. Oliveira - COPPE/UFRJ 18
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 19
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.
20
Análise de Domínio
Conceitos
Toacy C. Oliveira - COPPE/UFRJ
Toacy C. Oliveira - COPPE/UFRJ 21
Análise de Domínio
ObjetivosSelecionar 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 22
Fontes de Informação
Especialistas no Domínio Manuais Livros Protótipos Experimentos
Toacy C. Oliveira - COPPE/UFRJ 23
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 24
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 25
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 26
Léxico
Define o vocabulárioEx Dicionário de Dado, DSL, UML Profile.
Toacy C. Oliveira - COPPE/UFRJ 27
Modelo Conceitual
Descreve os conceitos em algum formalismo.Ex. UML, Fluxograma,...
Toacy C. Oliveira - COPPE/UFRJ 28
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 29
Um “template”***
Toacy C. Oliveira - COPPE/UFRJ 30
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...
31
Projeto & Implementação Domínio
Conceitos
Toacy C. Oliveira - COPPE/UFRJ
Toacy C. Oliveira - COPPE/UFRJ 32
Objetivo
ProjetoDesenvolver 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 33
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 34
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 35
Padrão Arquitetural
Configuração recorrente dos elementos de uma arquitetura.LayersPipes and FiltersBlackboardBrokerModel-View-ControllerMicrokernnel
Toacy C. Oliveira - COPPE/UFRJ 36
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
37
Engenharia de Domínio
Métodos
Toacy C. Oliveira - COPPE/UFRJ
Toacy C. Oliveira - COPPE/UFRJ 38
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 39
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]
40
Engenharia de Domínio
O Modelo de Features
Toacy C. Oliveira - COPPE/UFRJ
Toacy C. Oliveira - COPPE/UFRJ 41
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 42
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 43
Exemplo
Quando alguém compra um automóvel é necessário fazer uma escolha sobre a característica transmissão (manual ou automática).AutomóvelTransmissãoManualAutomática
Toacy C. Oliveira - COPPE/UFRJ 44
Representação da Feature
NomeDeve 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 45
Representação Gráfica
Transmissão
Toacy C. Oliveira - COPPE/UFRJ 46
Exemplos
Persistência EstratégiadeVenda
Transmissão
Toacy C. Oliveira - COPPE/UFRJ 47
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 48
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 49
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 50
Exemplo
Carro
Motor Transmissão
Potência
Toacy C. Oliveira - COPPE/UFRJ 51
Relação Pai-Filho
Todo o nó (menos o nó conceito) presente em um Diagrama de Features tem um pai.
Pai (Motor , Potencia) = VerdadeiroPai (Carro , Motor) = VerdadeiroPai (Carro ,Transmissão) = VerdadeiroPai (Motor , Carro) = Falso
Toacy C. Oliveira - COPPE/UFRJ 52
Características
Features podem serObrigatórias (Mandatory)
Alternativas (Alternative)
Opcionais (Optional)
Toacy C. Oliveira - COPPE/UFRJ 53
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 presentePai Opcional e Presente => Filho Presente
Toacy C. Oliveira - COPPE/UFRJ 54
Representação
Toacy C. Oliveira - COPPE/UFRJ 55
Exemplo
Carro
Motor Transmissão
Potência
Toacy C. Oliveira - COPPE/UFRJ 56
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
ouPai Opcional e Presente => Filho não
Presente
Toacy C. Oliveira - COPPE/UFRJ 57
Represetação
Toacy C. Oliveira - COPPE/UFRJ 58
Exemplo
Carro
Ar Condicionado Transmissão
TemperaturaLimite
Toacy C. Oliveira - COPPE/UFRJ 59
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 60
Representação
Dois conjuntos de alternativas
Toacy C. Oliveira - COPPE/UFRJ 61
Exemplo
Carro
Pickup Sedan
XOR
Toacy C. Oliveira - COPPE/UFRJ 62
Exemplo
Motor
Álcool Gasolina
OR
Toacy C. Oliveira - COPPE/UFRJ 63
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 64
Restrição
Carro
Ar Condicionado Motor
Potência > 50
Toacy C. Oliveira - COPPE/UFRJ 65
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 66
Exemplo
Carro
Motor Transmissão
Manual
Chassi ArCondicionado
Gasolina Diesel Automática
Toacy C. Oliveira - COPPE/UFRJ 67
Mapeamento
Toacy C. Oliveira - COPPE/UFRJ 68
Classes
Toacy C. Oliveira - COPPE/UFRJ 69
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