Uma Ferramenta para Configuração
Colaborativa de Produtos em LPS
Carlos Roberto Marques Junior
[email protected]
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
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.
Problema
Problema
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.
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.
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.
Apresentação da Ferramenta
FeatureModelAgent
FeatureModelAgent
FeatureModelAgent
ControllerAgent
Apresentação da Ferramenta
• Representação do FeatureModel
Apresentação da Ferramenta
Interface principal
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
Caso 1
Caso 1: Nenhuma restrição desrespeitada
FeatureModelAgent
4. Controlador atualiza seu modelo e
faz broadcast aos outros agentes.
5. Agente altera seu modelo
6. Interface é atualizada (padrão observer)
FeatureModelAgent
1. Usuário gera evento
ControllerAgent
3. Agente avisa ao controlador
FeatureModelAgent
2. Agente verifica restrições
FeatureModelAgent
Caso 2
Caso 2: Restrição desrespeitada dentro do própria DecisionSet
error
FeatureModelAgent
5. Controlador faz broadcast
aos outros agentes.
warning
6. Agente altera seu modelo
7. Interface é atualizada (padrão observer)
3. Agente avisa ao usuário restrição
e sugere ação.
FeatureModelAgent
ControllerAgent
1. Usuário gera evento
4. Agente avisa ao controlador
FeatureModelAgent
2. Agente verifica restrições
FeatureModelAgent
Caso 2
Caso 3: Restrição desrespeitada fora do DecisionSet
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
ControllerAgent
1. Usuário gera evento
3. Agente pergunta quem é
responsável pelo DecisionSet
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.
4. Agente pede ao outro para executar ação
FeatureModelAgent 1
warning
2. Agente verifica restrições
FeatureModelAgent 2 5. Agente pede ao seu usuário
para executar ação.
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.
Trabalhos Relacionados
• FMP (http://gsd.uwaterloo.ca/projects/fmp-plugin/)
• XFeature (http://www.pnp-software.com/XFeature/)
• FAMA (http://www.isa.us.es/fama/)
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.
Uma Ferramenta para Configuração
Colaborativa de Produtos em LPS
Carlos Roberto Marques Junior
[email protected]
Download

CarlosRoberto-SMA2009.2-III - (LES) da PUC-Rio