[en] COLLABORATIVE CONFIGURATION OF SOFTWARE PRODUCT LINE - CARLOS ROBERTO MARQUES JUNIOR (MAXWELL, 2011)
[pt] A configuração de produto é uma atividade chave para permitir a customização em massa. Ela corresponde a produção de um sistema computacional a partir de uma linha de produtos de software, respeitando as necessidades individuais dos clientes. Na prática, a atividade de configuração do produto pode se tornar uma tarefa complexa, principalmente porque envolve várias partes interessadas com diferentes competências para tomar decisões. Vários trabalhos proprõem decompor a atividade de configuração em estágios pré-estabelecidos, atravrés dos quais os interessados podem tomar suas decisões de forma separada e coerente. No entanto, quando há uma descentralização geográfica do conhecimento necessário em cada etapa e/ou quando os requisitos do cliente forem imprecisos e mudarem com frequência, essas soluções propostas não se aplicam. Para resolver essas questões, este trabalho proprõe uma abordagem de configuração dinâmica e colaborativa de produtos com base na metáfora de assistência pessoal. Os assistentes pessoais num ambiente cooperativo coordenam as decisões dos stakeholders e pró-ativamente executam tarefas, tais como o raciocínio sobre as implicaçõoes das decisões, integrando as decisões distribuídas e resolvendo os requisitos divergentes. Uma ferramenta protótipo, chamada Libertas, e dois cenários ilustrativos que avaliam a aplicabilidade da nossa abordagem também são apresentados. O primeiro cenário analisa o processo de configuração para configurar um sistema operacional para suportar os requisitos de negócio de uma empresa. O segundo aborda um cen´ario com uma linha de produtos de software para portais web. === [en] Product configuration is a key activity for enabling mass customization. It corresponds to tailoring a software application from a software product line, respecting individual customer requirements. In practice, the product configuration activity is challenging, mainly because it involves numerous stakeholders with different expertise making decisions. Several works claim to decompose the configuration activity into pre-arranged stages, whereby stakeholders can make their decisions in a separated way and coherent fashion. However, due to the decentralization in geography of the knowledge required in each stage and that customer requirements could be imprecise and change frequently, the proposed solutions do not apply. To address these issues, this work proposes a dynamic and collaborative product configuration approach based on the personal assistant metaphor. Personal assistants in a cooperative way coordinate stakeholders´ decisions and proactively perform tasks, such as reasoning about the ramifications of decisions, integrating distributed decisions and resolving divergent requirements. A tool prototype, called Libertas, and two case studies that evaluate the applicability of our approach are also presented. The first case study analyzes the configuration process to configure an operational system to support the business requirements of an enterprise. The second one addresses a scenario of a software product line for web portals.