validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de...
TRANSCRIPT
![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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.pub/reader035/viewer/2022070311/552fc130497959413d8d486e/html5/thumbnails/30.jpg)
Perguntas?