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.

Slides:



Advertisements
Apresentações semelhantes
Orientação a objetos identidade abstração classificação encapsulamento
Advertisements

Análise e Projeto Orientado a Objetos
Abordagem Entidade Relacionamento
Trabalho de APSI II Diagrama de Instalação Victor Campolino Moussallem
UML Modelando um sistema.
O Modelo E-R Definição: Características
O Processo Praxis 3.0 Processos de Software 25/03/2017
(Unified Modeling Language)
Engenharia de Software
Unified Modeling Language (UML) - Modelação da Arquitectura -
Modelo Entidade-Relacionamento
Engenharia de Software Professor Sandro de Paiva Carvalho.
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho.
UML: Diagrama de Classes
Teste em Esquemas de Dados Maria Cláudia Figueiredo Pereira Emer Universidade Federal do Paraná Departamento de Informática Seminário.
Introdução a diagrama de classes e UML
Processo Desenvolvimento de Software Tradicional
(Linguagem de Modelagem Unificada)
O processo de coletar os requisitos (escopo do cliente)
Introdução Visão Geral do Método.
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Gabriel Silva Bornia Prof. Dr. Roberto Tom Price Orientador
Classes e objetos Modelagem
Modelagem para Web Aula de 11/04/2011.
Tecnologias de Linguagens para Banco de Dados I
Simone Sawasaki Tanaka
SQL Server 2012 Introdução a Modelagem de Dados
RUPinho Qualidade de Software
Diagrama de Classes e Colaboração
DIAGRAMA DE CASO DE USO Prof. Fabíola Gonçalves C. Ribeiro.
DIAGRAMA DE CLASSE Modelagem de Software
Fase de Elaboração: Fluxo de Requisitos
Análise e Projeto de Sistemas
Fase de Elaboração: Fluxo de Análise Análise de Sistemas de Software Prof. Rodrigo Ribeiro.
Profª Daniela TLBD.
Observatório - EPT NÚCLEO DE TECNOLOGIA. Função: Gerar soluções estratégicas através da aplicação e desenvolvimento de ferramentas de TI. A coordenação.
Fase de Concepção (Início, Planejamento)
Análise e Projeto de Sistemas
© Ricardo Pereira e Silva
Projeto Orientado aos Objetos Prof. Wolley W. Silva
Especificação em Projeto de Sistemas
Bruno Silva Desenvolvido a partir de
Análise Orientado aos Objetos Prof. Wolley W. Silva
O Processo Unificado (UP)
GERENCIAMENTO DE PROJETOS DE T.I
Laboratório de Programação
Processos de Software.
Generalização e herança Agregação e composição
Análise e Projeto de Sistemas
Fluxos secundários Só devem ser analisados e descritos após a descrição dos fluxos básicos. Fluxos alternativos situações especiais (desconto para um cliente)
Ferramentas de Suporte a MDD: Um Quadro Comparativo
Linguagem de Modelagem Unificada
Processo de Desenvolvimento de Software – PDS
Diagramas de Caso de Uso
Engenharia de Software e Sistemas
Fluxo de Análise e Projeto 7 - Atividade Projetar Classes.
UML Diagramas de Classes Disciplina: Engenharia de Software
Modelagem Conceitual Descreve a informação que o sistema vai gerenciar.
Modelagem Conceitual descreve a informação que o sistema vai gerenciar.
Frameworks e Componentes Daniel Fernando Pavelec.
Modelagem Conceitual Descreve a informação que o sistema vai gerenciar.
Copyright © 2006 Qualiti. Todos os direitos reservados. Projetar Classes.
Modelagem Conceitual descreve a informação que o sistema vai gerenciar.
Projeto de Banco de Dados
Gerenciamento de Configuração de Software
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Apresentação Leonardo Brussolo de Paula
Diagrama de Classes Herança Dependências.
Análise e Design de Software Site:
Análise e Projeto de Sistemas Análise & modelagem conceitual Prof. Edjandir Corrêa Costa
Transcrição da apresentação:

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á

Agenda Linha de Produto de Software SMarty – Abordagem para Gerenciamento de Variabilidades Organização dos documentos do experimento

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.

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

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.

Linha de Produto de Software Atividades Essenciais de LPS Arquitetura da LPS Arquitetura de cada produto da LPS

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.

Linha de Produto de Software Exemplo de Modelo de Características Legenda: Característica Obrigatória Característica Opcional Mutualmente Inclusivas Mutualmente Exclusivas

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.

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.

Gerenciamento de Variabilidade Artefato de uma Linha de Produto Variabilidade Similaridades Pontos de Variação

Gerenciamento de Variabilidade Artefato de uma Linha de Produto Variabilidade Variantes Pontos de Variação

Gerenciamento de Variabilidade Artefato de uma Linha de Produto Variabilidade Pontos de Variação

Gerenciamento de Variabilidade Restrições entre variantes Artefato de uma Linha de Produto Variabilidade Restrições entre variantes Pontos de Variação

Gerenciamento de Variabilidade Restrições entre variantes Opcionais – podem ser selecionadas ou não. Ou – uma ou mais podem ser selecionadas. Restrições entre variantes Mutualmente exclusivas (alternativa - XOR) – apenas uma delas deve ser selecionada.

Gerenciamento de Variabilidade Possíveis produtos da LPS

Gerenciamento de Variabilidade Ou – uma ou mais podem ser selecionadas. Possíveis produtos da LPS (alternativa - XOR) – apenas uma delas deve ser selecionada. Opcionais – podem ser selecionadas ou não.

Abordagem SMarty para Gerenciamento de Variabilidades Item Sim Não Observação Baseada em UML? X   Perfil? Processo? Estereótipos? Estereótipos específicos padrões para todos os modelos. Diretrizes? Diretrizes específicas para cada modelo.

Abordagem SMarty Estereó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.

Abordagem SMarty <<mandatory>> <<optional>> Legenda: Característica Obrigatória Característica Opcional Mutuamente Inclusiva Mutuamente Exclusiva <<mandatory>> <<optional>> <<alternative_XOR>> <<alternative_OR>>

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.

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>>;

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

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

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>>.

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

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.

Mapeamento de Características na arquitetura da LPS Exemplo de Interface com Interesses associados usando estereótipos UML

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.

Perguntas?