Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Reutilização (Engenharia de Domínio)
Toacy C. de Oliveira COPPE/UFRJ Toacy C. Oliveira - COPPE/UFRJ
2
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
3
Toacy C. Oliveira - COPPE/UFRJ
Engenharia de Domínio Introdução Toacy C. Oliveira - COPPE/UFRJ
4
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
5
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
6
Toacy C. Oliveira - COPPE/UFRJ
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
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
10
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
11
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
12
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
13
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
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
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
16
Toacy C. Oliveira - COPPE/UFRJ
DE vs AE Toacy C. Oliveira - COPPE/UFRJ
17
Toacy C. Oliveira - COPPE/UFRJ
Engenharia de Domínio Conceitos Toacy C. Oliveira - COPPE/UFRJ
18
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
19
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
20
Toacy C. Oliveira - COPPE/UFRJ
Análise de Domínio Conceitos Toacy C. Oliveira - COPPE/UFRJ
21
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
22
Toacy C. Oliveira - COPPE/UFRJ
Fontes de Informação Especialistas no Domínio Manuais Livros Protótipos Experimentos Toacy C. Oliveira - COPPE/UFRJ
23
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
24
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
25
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
26
Toacy C. Oliveira - COPPE/UFRJ
Léxico Define o vocabulário Ex Dicionário de Dado, DSL, UML Profile. Toacy C. Oliveira - COPPE/UFRJ
27
Toacy C. Oliveira - COPPE/UFRJ
Modelo Conceitual Descreve os conceitos em algum formalismo. Ex. UML, Fluxograma,... Toacy C. Oliveira - COPPE/UFRJ
28
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
29
Toacy C. Oliveira - COPPE/UFRJ
Um “template”*** Toacy C. Oliveira - COPPE/UFRJ
30
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
31
Projeto & Implementação Domínio
Conceitos Toacy C. Oliveira - COPPE/UFRJ
32
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
33
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
34
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
35
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
36
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
37
Toacy C. Oliveira - COPPE/UFRJ
Engenharia de Domínio Métodos Toacy C. Oliveira - COPPE/UFRJ
38
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
39
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
40
Toacy C. Oliveira - COPPE/UFRJ
Engenharia de Domínio O Modelo de Features 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
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
43
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
44
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
45
Representação Gráfica
Transmissão Toacy C. Oliveira - COPPE/UFRJ
46
Toacy C. Oliveira - COPPE/UFRJ
Exemplos Persistência EstratégiadeVenda Transmissão Toacy C. Oliveira - COPPE/UFRJ
47
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
48
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
49
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
50
Toacy C. Oliveira - COPPE/UFRJ
Exemplo Carro Motor Transmissão Potência Toacy C. Oliveira - COPPE/UFRJ
51
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
52
Toacy C. Oliveira - COPPE/UFRJ
Características Features podem ser Obrigatórias (Mandatory) Alternativas (Alternative) Opcionais (Optional) Toacy C. Oliveira - COPPE/UFRJ
53
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
54
Toacy C. Oliveira - COPPE/UFRJ
Representação Toacy C. Oliveira - COPPE/UFRJ
55
Toacy C. Oliveira - COPPE/UFRJ
Exemplo Carro Motor Transmissão Potência Toacy C. Oliveira - COPPE/UFRJ
56
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
57
Toacy C. Oliveira - COPPE/UFRJ
Represetação Toacy C. Oliveira - COPPE/UFRJ
58
Toacy C. Oliveira - COPPE/UFRJ
Exemplo Carro Ar Condicionado Transmissão TemperaturaLimite Toacy C. Oliveira - COPPE/UFRJ
59
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
60
Toacy C. Oliveira - COPPE/UFRJ
Representação Dois conjuntos de alternativas Toacy C. Oliveira - COPPE/UFRJ
61
Toacy C. Oliveira - COPPE/UFRJ
Exemplo Carro XOR Pickup Sedan Toacy C. Oliveira - COPPE/UFRJ
62
Toacy C. Oliveira - COPPE/UFRJ
Exemplo Motor OR Álcool Gasolina Toacy C. Oliveira - COPPE/UFRJ
63
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
64
Toacy C. Oliveira - COPPE/UFRJ
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
Toacy C. Oliveira - COPPE/UFRJ
Exemplo Carro Motor Chassi Transmissão ArCondicionado Manual Automática Gasolina Diesel Toacy C. Oliveira - COPPE/UFRJ
67
Toacy C. Oliveira - COPPE/UFRJ
Mapeamento Toacy C. Oliveira - COPPE/UFRJ
68
Toacy C. Oliveira - COPPE/UFRJ
Classes Toacy C. Oliveira - COPPE/UFRJ
69
Toacy C. Oliveira - COPPE/UFRJ
Referência*** Chapter 5 – Features Model disponível em Toacy C. Oliveira - COPPE/UFRJ
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.