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]