30
Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do material gentilmente cedido por : Mestrando: Anderson da Silva Marcolino Orientador: Prof. Dr. Edson A. Oliveira Junior UEM – Universidade Estadual de Maringá

Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Embed Size (px)

Citation preview

Page 1: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software

Thelma Elita Colanzi

Adaptação do material gentilmente cedido por :Mestrando: Anderson da Silva Marcolino Orientador: Prof. Dr. Edson A. Oliveira JuniorUEM – Universidade Estadual de Maringá

Page 2: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Agenda

• Linha de Produto de Software

• SMarty – Abordagem para Gerenciamento de Variabilidades

• Organização dos documentos do experimento

Page 3: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Linha de Produto de Software

• Abordagem que objetiva promover a geração de produtos específicos com base na reutilização de uma infraestrutura central - núcleo de artefatos - formada por uma arquitetura de software e seus componentes.

Page 4: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Linha de Produto de Software

Quais seriam as possíveis diferenças entre os produtos dessa linha de produção?

Page 5: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Linha de Produto de Software

• Por meio desta abordagem, é possível explorar as semelhanças dos seus produtos para aumentar o reúso de artefatos.

• A abordagem de LPS tem sido adotada na indústria de software.

• Vantagens: • Maior reutilização de artefatos;• Maximização de lucros;• Diminuição do time to market;• Diminuição de riscos;• Produtos com maior qualidade;• Contribuição para o aprimoramento;• ROI; etc.

Page 6: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Linha de Produto de Software

• Atividades Essenciais de LPS

Arquitetura da LPS

Arquitetura de cada produto

da LPS

Page 7: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Linha de Produto de Software

• A base de uma LPS é seu núcleo de artefatos. – arquitetura da LPS, os componentes reusáveis, modelos de domínio,

requisitos da LPS, modelos de características e planos de teste.

• Uma característica (feature) é uma capacidade do sistema que é relevante e visível para o usuário final.

• O modelo de características inclui todas as características de uma LPS e os seus inter-relacionamentos.

• A definição explícita de variabilidades em LPS é a diferença chave entre o desenvolvimento de sistemas únicos e o desenvolvimento de LPS.

Page 8: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Linha de Produto de Software

• Exemplo de Modelo de CaracterísticasLegenda:

Característica Obrigatória

Característica Opcional

Mutualmente Inclusivas

Mutualmente Exclusivas

Page 9: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Linha de Produto de Software

• Variabilidade é a forma como os membros de uma família de produtos podem se diferenciar entre si.

• O gerenciamento de variabilidades é uma das atividades mais importantes no gerenciamento de uma LPS.

• A variabilidade é descrita por pontos de variação e variantes.

Page 10: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Linha de Produto de Software

• Ponto de variação: Um local específico de um artefato em que uma decisão de projeto ainda não foi tomada;

• Variante: Corresponde a uma alternativa de projeto para resolver uma determinada variabilidade.

• Restrições entre variantes: define os relacionamentos entre duas ou mais variantes para que seja possível resolver um ponto de variação ou uma variabilidade.

Page 11: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Gerenciamento de Variabilidade

Similaridades

Pontos de Variação

Artefato de uma Linha de ProdutoVariabilidade

Page 12: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Gerenciamento de Variabilidade

Pontos de Variação

Variantes

Artefato de uma Linha de ProdutoVariabilidade

Page 13: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Gerenciamento de Variabilidade

Pontos de Variação

Artefato de uma Linha de ProdutoVariabilidade

Page 14: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Gerenciamento de Variabilidade

Pontos de Variação

Artefato de uma Linha de ProdutoVariabilidade

Restrições entre variantes

Restrições entre variantes

Page 15: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Gerenciamento de Variabilidade

Restrições entre variantes

Restrições entre variantes

Mutualmente exclusivas (alternativa - XOR) – apenas uma delas deve ser selecionada.

Opcionais – podem ser selecionadas ou não.

Ou – uma ou mais podem ser selecionadas.

Page 16: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Gerenciamento de Variabilidade

Possíveis produtos da LPS

Page 17: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Gerenciamento de Variabilidade

Possíveis produtos da LPS

Ou – uma ou mais podem ser selecionadas.

Opcionais – podem ser selecionadas ou não.

(alternativa - XOR) – apenas uma delas deve ser selecionada.

Page 18: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Abordagem SMarty para Gerenciamento de Variabilidades

Abordagem SMarty

Item Sim Não Observação

Baseada em UML? X    

Perfil? X    

Processo? X    

Estereótipos? X   Estereótipos específicos padrões para todos os modelos.

Diretrizes? X   Diretrizes específicas para cada modelo.

Page 19: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Abordagem SMartyEstereótipos Abordagem SMarty

Estereótipo Utilização

<<variationPoint>>Representa o local em que ocorre uma variabilidade. Um ponto de variação está sempre associado a uma ou mais variantes.

<<mandatory>>A variante estará obrigatoriamente presente na configuração de qualquer produto da linha de produto.

<<optional>>A variante pode ou não estar presente na configuração de um produto da linha de produto. Variantes opcionais também podem ou não estar associadas a um ponto de variação.

<<alternative_OR>>Estão sempre associadas aos pontos de variação. Pelo menos uma das variantes deverá ser escolhida para resolver o ponto de variação, ou seja, para estar presente na configuração de um produto da linha de produto.

<<alternative_XOR>>Estão sempre associadas aos pontos de variação. Somente uma das variantes deverá ser escolhida para resolver o ponto de variação.

<<variability>> Indica uma variabilidade existente em um modelo UML.

<<requires>>Indica um relacionamento de dependência (em UML) entre variantes no qual a variante dependente (origem da dependência) só existirá em uma configuração se a variante relacionada (destino da dependência) existir.

<<mutex>>

Indica um relacionamento de dependência (em UML) entre variantes no qual a variante dependente (origem da dependência) só existirá em uma configuração se a variante relacionada (destino da dependência) obrigatoriamente não existir. São conhecidas como variantes mutuamente exclusivas.

Page 20: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Abordagem SMarty

Legenda:

Característica Obrigatória

Característica Opcional

Mutuamente Inclusiva

Mutuamente Exclusiva

<<mandatory>> <<optional>>

<<alternative_OR>><<alternative_XOR>>

Page 21: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Abordagem SMarty

• As variabilidades são identificadas por meio do comentário UML, estereotipada com <<variability>> contendo os seguintes meta atributos:– Name: nome da variabilidade;– minSelection: a quantidade mínima de variantes a serem selecionadas;– maxSelection: a quantidade máxima de variantes a serem selecionadas;– bindingTime: em qual momento a variabilidade será resolvida;– allowsAddingVar: se permite incluir novas variantes para resolver o

ponto de variação; e– variants: quais as variantes para resolver o ponto de variação (casos de

uso ligados ao ponto de variação).

• Estas notas são inseridas em todas as variabilidades.

Page 22: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Abordagem SMarty

Diretrizes• D.2.1 Elementos de modelos de casos de uso relacionados aos mecanismos

de extensão e de pontos de extensão sugerem pontos de variação com variantes associadas, as quais podem ser inclusivas ou exclusiva;

• D.2.3 Em modelos de caso de uso relacionadas com a associação de inclusão (<<include>>) ou associados a atores sugerem variantes obrigatórias ou opcionais;

• D.2.5 Variantes que, ao serem selecionadas para fazer parte de um produto, exigem a presença de outra(s) determinada(s) variante(s) devem ter seus relacionamentos de dependência marcados com o estereótipo <<requires>>;

• D.2.6 Variantes mutuamente exclusivas para um determinado produto devem ter seus relacionamentos de dependência marcados com o estereótipo <<mutex>>;

Page 23: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Abordagem SMarty

Exemplo de Diagrama de Casos de Uso com Representação de Variabilidades

Page 24: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Abordagem SMarty

Exemplo de Identificação de Variabilidade em Casos de Uso

Page 25: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Abordagem SMarty

Diretrizes• D.2.2 Em modelos de classes, pontos de variação e suas variantes são

identificadas nos seguintes relacionamentos:– Generalização, os classificadores mais gerais são os pontos de variação, enquanto os

mais específicos são as variantes;– Realização de interface, os “suppliers” (especificações) são os pontos de variação e as

implementações (clientes) são as variantes;– Agregação, as instâncias tipadas com losangos não preenchidos são os pontos de

variação e as instâncias associadas são as variantes; e– Composição, as instâncias tipadas com losangos preenchidos são os pontos de

variação e as instâncias associadas são as variantes.• D.2.4 Elementos de modelos de classes, relacionados à associações nas quais os

seus atributos aggregationKind possuem valor none, ou seja, não representam agregação nem composição, sugerem variantes obrigatórias ou opcionais.

• D.2.7 Componentes formados por classes com variabilidades são marcados com o estereótipo <<variable>>.

Page 26: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Abordagem SMarty

Exemplo Parcial de Diagrama de Classes com Representação de Variabilidades

Page 27: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Mapeamento de Características na arquitetura da LPS• Uma das formas de se implementar características de LPS é

tratando cada uma delas como um interesse presente na família.

• Interesses correspondem a requisitos, funcionais ou não, que devem estar presentes no sistema. – Alguns são naturalmente transversais e, por isso, se espalham em

vários pontos dentro do software. – Quanto mais modularizado um interesse estiver dentro do projeto do

software mais reusável será o seu projeto.

• Os interesses podem ser mapeados em artefatos da LPS usando estereótipos UML.

Page 28: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Mapeamento de Características na arquitetura da LPS

Exemplo de Interface com Interesses associados usando estereótipos UML

Page 29: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Experimento

• Doc. 1 – Termo de Adesão * • Doc. 2 – Questionário de Caracterização• Doc. 3 – Conceitos de LPS e SMarty• Doc. 4 – Descrição Geral da LPS *• Doc. 5 – Formulário Experimento *

* Doc. 1, Doc. 4 e Doc. 5 variam para cada uma das LPS.

Page 30: Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do

Perguntas?