Reutilização
(Engenharia de
Domínio)
Toacy C. de Oliveira
COPPE/UFRJ
Toacy C. Oliveira - COPPE/UFRJ
1
Agenda

Introdução

Conceitos

Análise de Domínio

Projeto e Implementação de Domínios

Métodos
Toacy C. Oliveira - COPPE/UFRJ
2
Engenharia de
Domínio
Introdução
Toacy C. Oliveira - COPPE/UFRJ
3
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
4
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
5
Resposta

Análise de Domínio

Engenharia de Domínio (termo mais
abrangente)
Toacy C. Oliveira - COPPE/UFRJ
6
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
7
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
8
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
9
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
10
Passos

Análise de Domínio

Projeto do Domínio

Implementação do Domínio
Toacy C. Oliveira - COPPE/UFRJ
11
Análise de Domínio

Define um conjunto de requisitos
reutilizáveis em um domínio.
Toacy C. Oliveira - COPPE/UFRJ
12
Projeto do Domínio

Estabelece uma arquitetura comum aos
sistemas de um dado domínio.
Toacy C. Oliveira - COPPE/UFRJ
13
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
14
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
15
DE vs AE
Toacy C. Oliveira - COPPE/UFRJ
16
Engenharia de
Domínio
Conceitos
Toacy C. Oliveira - COPPE/UFRJ
17
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
18
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
19
Análise de Domínio
Conceitos
Toacy C. Oliveira - COPPE/UFRJ
20
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
21
Fontes de Informação
Especialistas no Domínio
 Manuais
 Livros
 Protótipos
 Experimentos

Toacy C. Oliveira - COPPE/UFRJ
22
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
23
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
24
Definição

Define o escopo do domínio e caracteriza
seu conteúdo através de exemplos de
sistemas em seu domínio, contraexemplos (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
25
Léxico

Define o vocabulário
 Ex
Dicionário de Dado, DSL, UML Profile.
Toacy C. Oliveira - COPPE/UFRJ
26
Modelo Conceitual

Descreve os conceitos em algum
formalismo.
 Ex.
UML, Fluxograma,...
Toacy C. Oliveira - COPPE/UFRJ
27
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
28
Um “template”***
Toacy C. Oliveira - COPPE/UFRJ
29
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
Scenarios
Não será levado em consideração comunicações via internet.
Emissor em um LugarX utilizando uma Central Analógica liga
para Receptor utilizando central digital a um custo de...
Toacy C. Oliveira - COPPE/UFRJ
30
Projeto &
Implementação
Domínio
Conceitos
Toacy C. Oliveira - COPPE/UFRJ
31
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
32
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
33
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
34
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
35
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
36
Engenharia de
Domínio
Métodos
Toacy C. Oliveira - COPPE/UFRJ
37
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
38
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
39
Engenharia de
Domínio
O Modelo de Features
Toacy C. Oliveira - COPPE/UFRJ
40
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
41
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
42
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
43
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
44
Representação Gráfica
Transmissão
Toacy C. Oliveira - COPPE/UFRJ
45
Exemplos
Persistência
EstratégiadeVenda
Transmissão
Toacy C. Oliveira - COPPE/UFRJ
46
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
47
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
48
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
49
Exemplo
Carro
Motor
Transmissão
Potência
Toacy C. Oliveira - COPPE/UFRJ
50
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
51
Características

Features podem ser
 Obrigatórias
(Mandatory)
 Alternativas
(Alternative)
 Opcionais
(Optional)
Toacy C. Oliveira - COPPE/UFRJ
52
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
53
Representação
Toacy C. Oliveira - COPPE/UFRJ
54
Exemplo
Carro
Motor
Transmissão
Potência
Toacy C. Oliveira - COPPE/UFRJ
55
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
56
Represetação
Toacy C. Oliveira - COPPE/UFRJ
57
Exemplo
Carro
Ar Condicionado
Transmissão
TemperaturaLimite
Toacy C. Oliveira - COPPE/UFRJ
58
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
59
Representação
Dois conjuntos de
alternativas
Toacy C. Oliveira - COPPE/UFRJ
60
Exemplo
Carro
XOR
Pickup
Sedan
Toacy C. Oliveira - COPPE/UFRJ
61
Exemplo
Motor
OR
Álcool
Gasolina
Toacy C. Oliveira - COPPE/UFRJ
62
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
63
Restrição
Carro
Ar Condicionado
Motor
Potência > 50
Toacy C. Oliveira - COPPE/UFRJ
64
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
65
Exemplo
Carro
Motor
Gasolina
Chassi
Diesel
Transmissão
Manual
Toacy C. Oliveira - COPPE/UFRJ
ArCondicionado
Automática
66
Mapeamento
Toacy C. Oliveira - COPPE/UFRJ
67
Classes
Toacy C. Oliveira - COPPE/UFRJ
68
Referência***

Chapter 5 – Features Model disponível em
http://www-ia.tuilmenau.de/~czarn/feature/

http://www.sei.cmu.edu/publications/docu
ments/91.reports/91.tr.028.html
Toacy C. Oliveira - COPPE/UFRJ
69
Download

Features