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

Reutilização (Engenharia de Domínio)

  • Upload
    harvey

  • View
    22

  • Download
    2

Embed Size (px)

DESCRIPTION

Reutilização (Engenharia de Domínio). Toacy C. de Oliveira COPPE/UFRJ. Introdução Conceitos Análise de Domínio Projeto e Implementação de Domínios Métodos. Agenda. Engenharia de Domínio. Introdução. Motivação. - PowerPoint PPT Presentation

Citation preview

Page 1: Reutilização (Engenharia de Domínio)

1

Reutilização(Engenharia de Domínio)

Toacy C. de Oliveira

COPPE/UFRJ

Toacy C. Oliveira - COPPE/UFRJ

Page 2: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 2

Agenda

Introdução

Conceitos

Análise de Domínio

Projeto e Implementação de Domínios

Métodos

Page 3: Reutilização (Engenharia de Domínio)

3

Engenharia de Domínio

Introdução

Toacy C. Oliveira - COPPE/UFRJ

Page 4: Reutilização (Engenharia de Domínio)

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.

Page 5: Reutilização (Engenharia de Domínio)

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?

Page 6: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 6

Resposta

Análise de Domínio

Engenharia de Domínio (termo mais abrangente)

Page 7: Reutilização (Engenharia de Domínio)

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...

Page 8: Reutilização (Engenharia de Domínio)

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..

Page 9: Reutilização (Engenharia de Domínio)

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

Page 10: Reutilização (Engenharia de Domínio)

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.

Page 11: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 11

Passos

Análise de Domínio

Projeto do Domínio

Implementação do Domínio

Page 12: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 12

Análise de Domínio

Define um conjunto de requisitos reutilizáveis em um domínio.

Page 13: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 13

Projeto do Domínio

Estabelece uma arquitetura comum aos sistemas de um dado domínio.

Page 14: Reutilização (Engenharia de 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.

Page 15: Reutilização (Engenharia de Domínio)

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.

Page 16: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 16

DE vs AE

Page 17: Reutilização (Engenharia de Domínio)

17

Engenharia de Domínio

Conceitos

Toacy C. Oliveira - COPPE/UFRJ

Page 18: Reutilização (Engenharia de Domínio)

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

Page 19: Reutilização (Engenharia de Domínio)

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.

Page 20: Reutilização (Engenharia de Domínio)

20

Análise de Domínio

Conceitos

Toacy C. Oliveira - COPPE/UFRJ

Page 21: Reutilização (Engenharia de Domínio)

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.

Page 22: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 22

Fontes de Informação

Especialistas no Domínio Manuais Livros Protótipos Experimentos

Page 23: Reutilização (Engenharia de Domínio)

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) .

Page 24: Reutilização (Engenharia de Domínio)

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

Page 25: Reutilização (Engenharia de Domínio)

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”.

Page 26: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 26

Léxico

Define o vocabulárioEx Dicionário de Dado, DSL, UML Profile.

Page 27: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 27

Modelo Conceitual

Descreve os conceitos em algum formalismo.Ex. UML, Fluxograma,...

Page 28: Reutilização (Engenharia de Domínio)

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).

Page 29: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 29

Um “template”***

Page 30: Reutilização (Engenharia de Domínio)

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...

Page 31: Reutilização (Engenharia de Domínio)

31

Projeto & Implementação Domínio

Conceitos

Toacy C. Oliveira - COPPE/UFRJ

Page 32: Reutilização (Engenharia de Domínio)

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.

Page 33: Reutilização (Engenharia de Domínio)

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]

Page 34: Reutilização (Engenharia de Domínio)

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]

Page 35: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 35

Padrão Arquitetural

Configuração recorrente dos elementos de uma arquitetura.LayersPipes and FiltersBlackboardBrokerModel-View-ControllerMicrokernnel

Page 36: Reutilização (Engenharia de Domínio)

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

Page 37: Reutilização (Engenharia de Domínio)

37

Engenharia de Domínio

Métodos

Toacy C. Oliveira - COPPE/UFRJ

Page 38: Reutilização (Engenharia de Domínio)

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.

Page 39: Reutilização (Engenharia de Domínio)

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]

Page 40: Reutilização (Engenharia de Domínio)

40

Engenharia de Domínio

O Modelo de Features

Toacy C. Oliveira - COPPE/UFRJ

Page 41: Reutilização (Engenharia de Domínio)

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.

Page 42: Reutilização (Engenharia de Domínio)

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.

Page 43: Reutilização (Engenharia de 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

Page 44: Reutilização (Engenharia de Domínio)

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

Page 45: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 45

Representação Gráfica

Transmissão

Page 46: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 46

Exemplos

Persistência EstratégiadeVenda

Transmissão

Page 47: Reutilização (Engenharia de Domínio)

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.

Page 48: Reutilização (Engenharia de Domínio)

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.

Page 49: Reutilização (Engenharia de Domínio)

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).

Page 50: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 50

Exemplo

Carro

Motor Transmissão

Potência

Page 51: Reutilização (Engenharia de Domínio)

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

Page 52: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 52

Características

Features podem serObrigatórias (Mandatory)

Alternativas (Alternative)

Opcionais (Optional)

Page 53: Reutilização (Engenharia de Domínio)

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

Page 54: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 54

Representação

Page 55: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 55

Exemplo

Carro

Motor Transmissão

Potência

Page 56: Reutilização (Engenharia de Domínio)

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

Page 57: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 57

Represetação

Page 58: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 58

Exemplo

Carro

Ar Condicionado Transmissão

TemperaturaLimite

Page 59: Reutilização (Engenharia de Domínio)

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.

Page 60: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 60

Representação

Dois conjuntos de alternativas

Page 61: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 61

Exemplo

Carro

Pickup Sedan

XOR

Page 62: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 62

Exemplo

Motor

Álcool Gasolina

OR

Page 63: Reutilização (Engenharia de Domínio)

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

Page 64: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 64

Restrição

Carro

Ar Condicionado Motor

Potência > 50

Page 65: Reutilização (Engenharia de Domínio)

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.

Page 66: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 66

Exemplo

Carro

Motor Transmissão

Manual

Chassi ArCondicionado

Gasolina Diesel Automática

Page 67: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 67

Mapeamento

Page 68: Reutilização (Engenharia de Domínio)

Toacy C. Oliveira - COPPE/UFRJ 68

Classes

Page 69: Reutilização (Engenharia de Domínio)

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