Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior...
-
Upload
renan-menor -
Category
Documents
-
view
213 -
download
0
Transcript of Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior...
Uma Ferramenta para Configuração Colaborativa de Produtos em LPS
Carlos Roberto Marques [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
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)
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
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.
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 [email protected]