Beruflich Dokumente
Kultur Dokumente
Introdução
Engenharia de Domínio
Estudo de Caso
Conclusão
2
Contextualização (Desenvolvimento Tradicional)
Produto único
3
Contextualização (Desenvolvimento Proposto)
Reaproveitamento de peças
Vários modelos
4
Contextualização (Desenvolvimento Proposto)
Limpador de Pára-
brisa Traseiro: Motor: 1.0, 1.6 ou
opcional 2.0
Câmbio:
automático ou
Ar
manual
Condicionado:
opcional
5
Definição
Domínio
Processo sistemático (mesmo conjunto de regras)
Componentes reutilizáveis de software
Não depende de um projeto concreto
6
Exemplo:
7
8
Gestão de Produto
Qual o objetivo?
Aspectos econômicos
Escopo do domínio
9
Engenharia de requisitos de domínio
Viabilidade (resumo do uso da arquitetura)
Requisitos de domínio (O que é o domínio? Qual a
necessidade dos stakeholders? O que é prioridade? )
Validação de requisitos
10
Desenho de domínio
Define a arquitetura de referência
Variabilidade
Representação de variabilidade em caso de uso
11
Desenho de domínio
Representação de variabilidade (Jacobson, Griss e
Jonsson em 1997)
Estereótipo <<extend>> e a marca “•”
12
Desenho de domínio
Descrição do cenário
Id: CA01
Ator: Professora
Objetivo: agenda {V0} utilizando o sistema
Pré-condição: o usuário ter logado no sistema
Cenário de sucesso:
- Quando o sistema é iniciado o sistema mostra as possíveis funções de { V0 }
- Para utilizar as funções de { V0 } o usuário deve proceder:
- {V2}
------------------------------------------------------------------------
V0: alternative
V0: 1. Aula teórica
2. Aula prática
------------------------------------------------------------------------
V2: parâmetro
if V0=1 then
procedure_A:
- digite a data no campo1
- confirme pressionando o botão OK
13
Desenho de domínio
Configuration knowledge
“suponha que aula prática obriga fazer aula teórica no
mesmo dia”
Componente Tarefa
Agendar Aula Selecionar o cenário CA01
14
Desenho de domínio
Modelo de features (características)
- Determina quais os produtos são válidos no domínio
- “Incorpora” o Configuration knowledge (facilidade gráfica)
- Feature Modeling Plug-in (FMP)
15
Realização do domínio
Implementação da arquitetura (Codificação)
16
Realização do domínio
Programação Orientada a Aspecto (framework AspectJ)
Separa e organiza o código de acordo com sua
importância
Permite a criação de métodos, variáveis, classes em
tempo de execução
Interesses tranversais
A arquitetura
Impossível com programação tradicional
17
Realização do domínio
Ex:
18
Testes de domínio
Verifica se os componentes gerados estão de acordo
com o Configuration knowledge
19
Definição
Família de sistema
Ativos em comum
Forma preestabelecida (Planos de produção)
Segmento particular ou missão
20
Produtos com características:
Comuns
Variáveis
21
O que não é LPS?
Desenvolvimento de um sistema único com reuso
Requer vários produtos
22
Atividades essenciais para uma linha de produto
de software Engenharia da
Aplicação
Engenharia de
Domínio
Técnico e
organizacional
23
Vantagens
Lucratividade
Qualidade (erros detectados mais rápido)
Produtividade
Desvantagens
Muito esforço inicial
Padronizações desapropriadas
Evolução da abordagem (precisa sempre ser revisado e
atualizado)
Caso contrário, podem ter mudanças (interesses pessoais)
e comprometer o modelo
24
Desenvolvimento de uma LPS para calculadoras
Objetivo: Mostrar o funcionamento de uma LPS
usando as definições apresentadas
Cenário: Imagine um escola onde cada
professor de matemática dependendo da turma
em que ministra aula precisa de uma
calculadora
Ensino Infantil: Calculadora Simples(+,-,x e :)
Ensino Fundamental: Calculadora Avançada (+,-,x, :,
seno, cosseno, tangente e raiz quadrada)
25
Engenharia de Domínio
Gestão do Produto (Já foi explicado todo o cenário)
Engenharia de requisitos de domínio
CÓDIGO DESCRIÇÃO
O sistema deverá permitir que o usuário faça operações
C01
matemáticas
Existe um número enorme de operações matemáticas, onde
C02 dependendo da área do profissional, ele pode usar algumas
operações e outras não
É observado que existem várias operações (Somar, Subtrair,
C03 multiplicar, Dividir, Raiz quadrada, exponencial e entre outras que
podem surgir)
O operador do sistema será na maioria das vezes, qualquer
C04
profissional da área matemática dos diversos ramos
Todos os usuários usam operações básicas (Somar, Subtrair,
C05
Multiplicar e Dividir)
26
Engenharia de Domínio
Desenho do domínio
27
Engenharia de Domínio
Desenho do domínio
Configuration knowledge
Feature Tarefa
Calculadora Selecionar o cenário CA01
28
Engenharia de Domínio
Desenho do domínio
Modelo features
29
Engenharia de Domínio
Realização do domínio (ex: Calculadora Avançada)
30
Engenharia de Domínio
Realização do domínio
31
Facilidade
Agilidade
Menor Custo
Muito Esforço
Precisa de uma profunda análise (vale a pena
usar LPS em determinados casos?)
32