Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior...

20
Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior [email protected]

Transcript of Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior...

Page 1: Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior crmarquesjc@gmail.com.

Uma Ferramenta para Configuração Colaborativa de Produtos em LPS

Carlos Roberto Marques [email protected]

Page 2: Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior crmarquesjc@gmail.com.

Motivação

• O paradigma de desenvolvimento de software baseada em Linha de Produto de Software (LPS) tem se apresentado como uma interessante abordagem para as fábricas de software.

• Diversos benefícios são obtidos com a utilização de LPS.– Redução no custo de desenvolvimento– Aumento da Qualidade– Redução no Time-to-Market– Redução no esforço de manutenção– Melhor estimação de custos – entre outros

Page 3: Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior crmarquesjc@gmail.com.

Motivação

• Forma de modelagem mais utilizada são os diagramas de Features.– Abordagem chave para capturar e gerenciar features comuns e

variáveis de linha de produtos.• Muitos sistemas possuem conjuntos de features que são de

interesse e/ou responsabilidade de diferentes pessoas e/ou departamentos.

Page 4: Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior crmarquesjc@gmail.com.

Problema

Page 5: Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior crmarquesjc@gmail.com.

Problema

Page 6: Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior crmarquesjc@gmail.com.

Solução Proposta

• Utilização de agentes para auxílio na configuração de produtos e no diagramas de features.

• Resolução de Conflitos– Agentes devem indicar quais features não podem ser

selecionadas e sugerir outras.

Page 7: Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior crmarquesjc@gmail.com.

Solução Proposta

• Criar uma ferramenta que: – dê suporte a configuração de produtos de forma distribuída;– possua uma abordagem multiagentes para auxílio das

decisões.

Page 8: Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior crmarquesjc@gmail.com.

Apresentação da Ferramenta

• A ferramenta é composta por dois tipos de agentes:– ControllerAgent: Agente central, responsável pelo controle

das alterações e manutenção da integridade do modelo;– FeatureModelAgent: Agente auxiliar do usuário que está

configurando um produto no modelo de feature. • Responsável pelos avisos e sugestões.

• A cada FeatureModelAgent é atribuído um role;– Cada FeatureModelAgent só pode fazer alterações em features

pertencente ao DecisionSet associado.

Page 9: Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior crmarquesjc@gmail.com.

Apresentação da Ferramenta

FeatureModelAgent

FeatureModelAgent

FeatureModelAgent

ControllerAgent

Page 10: Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior crmarquesjc@gmail.com.

Apresentação da Ferramenta

• Representação do FeatureModel

Page 11: Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior crmarquesjc@gmail.com.

Apresentação da Ferramenta

Page 12: Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior crmarquesjc@gmail.com.

Interface principal

Page 13: Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior crmarquesjc@gmail.com.

Casos Possível na Ferramenta

• Três caso possíveis observado quando um usuário gera um evento em sua interface (marca ou desma um feature)– Nenhuma restrição desrespeitada;– Restrição desrespeitada dentro do própria DecisionSet;– Restrição desrespeitada fora do DecisionSet

Page 14: Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior crmarquesjc@gmail.com.

Caso 1

Caso 1: Nenhuma restrição desrespeitada

1. Usuário gera evento

2. Agente verifica restrições

3. Agente avisa ao controlador

FeatureModelAgent

ControllerAgent

4. Controlador atualiza seu modelo e faz broadcast aos outros agentes.

FeatureModelAgent

FeatureModelAgent

FeatureModelAgent

5. Agente altera seu modelo

6. Interface é atualizada (padrão observer)

Page 15: Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior crmarquesjc@gmail.com.

Caso 2

Caso 2: Restrição desrespeitada dentro do própria DecisionSet

1. Usuário gera evento

2. Agente verifica restrições

4. Agente avisa ao controlador

FeatureModelAgent

ControllerAgent

5. Controlador faz broadcast aos outros agentes.

FeatureModelAgent

FeatureModelAgent

FeatureModelAgent

6. Agente altera seu modelo

7. Interface é atualizada (padrão observer)

3. Agente avisa ao usuário restrição e sugere ação.

error

warning

Page 16: Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior crmarquesjc@gmail.com.

Caso 2

Caso 3: Restrição desrespeitada fora do DecisionSet

1. Usuário gera evento

2. Agente verifica restrições

3. Agente pergunta quem é responsável pelo DecisionSet

FeatureModelAgent 1

ControllerAgent

FeatureModelAgent 2

4. Agente pede ao outro para executar ação

5. Agente pede ao seu usuário para executar ação.

warning

6a – Usuário aceita 1- Caso 1 é execudo 2 - Quando FeatureModelAgent1 receber mensagem do broadcast, ele autoriza o usuário a executar ação.

7b – Usuário não aceita 1 – FeatureModelAgent2 avisa ao FeatureModelAgent1 que usuário não aceitou. 2 – FeatureModelAgent1 avisa ao seu usuário que outro usuário não aceitou a sugestão.

Page 17: Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior crmarquesjc@gmail.com.

Próximos Passos

• Até final do período– Finalizar a interface;– Terminar comunicação entre agentes;– Terminar verificação das restrições (extração de sugestões);– Escrever a monografia.

• Próximo período– Estender o modelo de feature;– Recomendação de configuração (ótimas);

• Agente pode indicar quais features produzem um configuração ótima dado um conjunto de restrições.

– Inclusão de argumentação;– Fazer a implementação da interface como plug-in do eclipse.

Page 18: Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior crmarquesjc@gmail.com.

Trabalhos Relacionados

• FMP (http://gsd.uwaterloo.ca/projects/fmp-plugin/)• XFeature (http://www.pnp-software.com/XFeature/)• FAMA (http://www.isa.us.es/fama/)

Page 19: Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior crmarquesjc@gmail.com.

Referências

• Czarnecki, K., Helsen, S. & Eisenecker, U. (2004b), Staged configuration using feature models, in R. L. Nord, ed., ‘Proceedings of the Third Software Product-Line Conference (SPLC 2004), Boston, MA, USA, August/September 2004’, Vol. 3154 of Lecture Notes in Computer Science, Springer-Verlag.

• K. Czarnecki, S. Helsen, and U. Eisenecker. Staged configuration through specialization and multi-level configuration of feature models. Software Process Improvement and Practice, 10(2):143–169, 2005.

• M. Mendonca, D. D. Cowan, T. Oliveira, A Process-Centric Approach for Coordinating Product Configuration Decisions, HICSS, p. 283a, 2007.

• Mendonca, M., Oliveira, T., Cowan, D.D.: Collaborative Product Configuration in Software Product Lines – Formalization and Dependency Analysis, Journal of Software, ISSN 1796-217X, vol. 3, issue 2, pp. 69-82, February 2008.

Page 20: Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior crmarquesjc@gmail.com.

Uma Ferramenta para Configuração Colaborativa de Produtos em LPS

Carlos Roberto Marques [email protected]