Configuração Colaborativa de Linha de Produtos de Software

Documentos relacionados
Adriano Medeiros dos Santos. Suporte a Componentes Compostos Para o Middleware SCS. Dissertação de Mestrado

Bruno Loureiro Rezende. Um Framework para a Automação de Testes com Linguagens de Especificação Configuráveis DISSERTAÇÃO DE MESTRADO

Adriano Francisco Branco. Um modelo de programação para RSSF com. Dissertação de Mestrado

Renato Figueiró Maia. Um Framework para Sistemas Baseados em Componentes Distribuídos. Informática DEPARTAMENTO DE INFORMÁTICA

Bruno Siqueira Silva. Workflows dinâmicos em gerência de projetos ágeis. Dissertação de Mestrado

Um Estudo Sobre Middlewares Adaptáveis

Matchmaking Uma infraestrutura para alinhamento de esquemas

Uma meta-ferramenta de geração de diagramas utilizada na engenharia reversa de sistemas legados.

Um ambiente de suporte para uma linguagem de modelagem de sistemas multi-agentes

Integração de Ontologia com Modelagem de Processo: Um Método para Facilitar a Elicitação de Requisitos

Proposta de um sistema de suporte à decisão para programação de navios baseado em otimização: um caso prático

Elicitação de requisitos de software através da utilização de questionários

Utilização de uma estratégia para identificação de fontes de informação na fase de elicitação

Gerenciando Conflitos em Reuniões: Uma Estratégia para a Elicitação de Requisitos de Software

Usando a abordagem MDA no desenvolvimento de sistemas multi-agentes

Iam Vita Jabour. O Impacto de Atributos Estruturais na Identificação de Tabelas e Listas em Documentos HTML. Dissertação de Mestrado

Estudo Comparativo de Estratégias de Classificação de Páginas Web

Geração semi-automática de massas de testes funcionais a partir da composição de casos de uso e tabelas de decisão

Mineração de Dados voltada para Recomendação no Âmbito de Marketing de Relacionamento

UMA IMPLEMENTAÇÃO DO SERVIÇO WMS SOBRE A BIBLIOTECA TERRALIB

Francisco Eduardo Torres Cursino de Moura. Uma proposta para Rendering Baseado em Imagens em celulares

Sistema para Consultas sobre Banco de Dados Relacional Baseado em Palavras-Chave

Bruno de Figueiredo Melo e Souza. Modelos de fatoração matricial para recomendação de vídeos. Dissertação de Mestrado

Criação Automática de Visões Materializadas em SGBDs Relacionais

Avaliação Probabilística de Reservas de Óleo e Gás Considerando o Efeito da Variação do Preço do Óleo

João Paulo de Freitas Araujo. Algoritmos para acelerar a computação de Árvores de corte de Gomory e Hu. Dissertação de Mestrado

Laura Gonçalves Carvalho

Sistema de recomendação de segundo nível para suporte à produção de matérias jornalísticas

Estudo de Viabilidade da Implementação de Software de Roteamento para Transporte de Funcionários de Refinaria da Petrobras

APLICAÇÃO DE CONCEITOS DE ENGENHARIA DE FATORES HUMANOS: UM ESTUDO DE CASO EM UMA EMPRESA DE OPERAÇÕES LOGÍSTICAS

Carlos Roberto da Costa Ferreira. Interpolação Modificada de LSF's. Dissertação de Mestrado

Lourival Vieira Neto. Lunatik: Scripting de Kernel de Sistema Operacional com Lua. Dissertação de Mestrado

Vinci Pegoretti Amorim. Uma Arquitetura Flexível para Replicação de Bases Distribuídas Heterogêneas. Dissertação de Mestrado

Geraldo da Silva Rocha Netto. Escalonamento Flexível de Workflows com Restrições Temporais. Dissertação de Mestrado

Aplicação do Método AHP para Avaliação de Projetos Industriais

Uma abordagem baseada em SPH para animação interativa de águas rasas em jogos

Patrícia Teixeira de Sá

Marcos José Gomes Cristovão

SDiff: Uma ferramenta para comparação de documentos com base nas suas estruturas sintáticas

Uma Proposta de Sistema de Dependência a Distância Usando a Plataforma Moodle

Marcos Borges Pessoa. Geração e execução automática de scripts de teste para aplicações web a partir de casos de uso direcionados por comportamento

QEEF-G: Execução Paralela Adaptativa de Consultas Iterativas

Pontifícia Universidade Católica do Rio de Janeiro

Experimentos de Previsão da Estrutura a Termo da Taxa de Juros Americana: Reversão à Media, Inércia e Influência de Variáveis Macroeconômicas

Compras de itens não críticos: implementação no nível operacional e práticas em uma empresa de petróleo

Uma Abordagem para a Evolução Transparente em Repositórios de Medição de Software

Mauricio Kreczmarsky Guimarães Meinicke. Opacidade 3D na Visualização Volumétrica de Dados Sísmicos

Desenvolvimento e avaliação de um jogo de computador para ensino de vocabulário para crianças com autismo

Pontifícia Universidade Católica do Rio de Janeiro

Thomas de Campos Tsuchida. Modelagem da localização de pólos de venda de derivados de petróleo. Dissertação de Mestrado (Opção Profissional)

Rafael Cezar Menezes. Dissertação de Mestrado

Marcelo de Mattos Bezerra. Interações no Ensino e na Prática do Design e da Arquitetura. Dissertação de Mestrado

Bruno Baère Pederassi Lomba de Araujo. Um estudo sobre adaptatividade dinâmica de dificuldade em jogos. Dissertação de Mestrado

Uma Abordagem de Desenvolvimento de Groupware Baseada em Linha de Produto de Software e Modelo 3C de Colaboração

DISSERTAÇÃO DE MESTRADO

Uma Avaliação Empírica de um Ambiente Favorável para o Desenvolvimento Dirigido por Testes

Suzana Soares Duprat. Entretenimento Via Celular para Baixa Renda. Dissertação de Mestrado. Dissertação apresentada ao Programa de Pósgraduação

Os desafios de interface e de interação na computação ciente de contexto

OPERADORES LOGÍSTICOS E SEUS CLIENTES: UM ESTUDO EMPÍRICO

Relação entre Governança Corporativa e Remuneração de Executivos no Brasil

Previsão da Produção Industrial do Brasil: Uma Aplicação do Modelo de Índice de Difusão Linear

Pedro Tiago Barbosa do Couto. Resolução de problemas de transporte rodoviário de cargas utilizando programação inteira DISSERTAÇÃO DE MESTRADO

Avaliação Preliminar dos Movimentos Aéreos no Aeroporto Internacional Antônio Carlos Jobim Galeão

DISSERTAÇÃO DE MESTRADO

SQLLOMining: Obtenção de Objetos de Aprendizagem utilizando técnicas de Aprendizado de Máquina

Controle da Execução e Disponibilização de Dados para Aplicativos sobre Seqüências Biológicas: o Caso BLAST

Gustavo Simão Rodrigues

Framework para coordenação e mediação de Web Services modelados como Learning Objects para ambientes de aprendizado na Web

Comparação de estratégias de construção de poços marítimos incorporando incertezas

Davi Romero de Vasconcelos. Análise de Estratégias Utilizando Verificação Formal de Modelos. Dissertação de Mestrado

Um Estudo sobre a Importância das Características dos Projetos de Patrocínio na Visão das Empresas Patrocinadoras de Eventos

Gerenciamento Integrado de Riscos de Projetos

Zonas de Influência Portuárias (Hinterlands) e um Estudo de Caso em um Terminal de Contêineres com a Utilização de Sistemas de Informação Geográfica

Ricardo Fukasawa. Resolução de problemas de logística ferroviária utilizando programação inteira DISSERTAÇÃO DE MESTRADO

A importância da dívida cambial no endividamento público brasileiro

Considerações sobre o Afeto em Psicanálise

Gerenciamento e Planejamento de Projetos de Software Usando Metodologias Ágeis: Um Estudo de Caso

Avaliação da Licitação de Lotes de Frequência para LTE Utilizando a Teoria de Opções Reais

Quais as Bases do Comprometimento dos Indivíduos da Geração Y em uma Empresa do Setor Privado no Brasil?

Considerações sobre a flutuação no emprego do subjuntivo em contextos orais do Português do Brasil

Efeitos de mudanças de ratings de países da América Latina no mercado acionário brasileiro

Guilherme de Sousa Neves. Previsão de estoque de peças eletrônicas sobressalentes. Dissertação de Mestrado

Luzia da Costa Tonon. O Teorema de Cramér-Lundberg via martingais DISSERTAÇÃO DE MESTRADO. Programa de Pós Graduação em Matemática

Mônica Nogueira de Assis. Cancioneiro Transgressor Um estudo sobre a poética da canção em Renato Russo e Cazuza. Dissertação de Mestrado

Andre Luis Ferreira da Silva. Estabilidade dos Betas de Ações no Mercado Brasileiro: Uma Avaliação em Períodos de Alta Volatilidade

Barbara Sampaio Vieira Duarte. O comportamento do mediador no conflito entre árabes e israelenses DISSERTAÇÃO DE MESTRADO

Metáforas para linguagem no Curso de Saussure

Aplicação da Análise de Sistemas à Definição de Processos de Desenvolvimento de Software

Rogério José Ramos de Oliveira Magalhães

Alexandra de Almeida. A noção de sublime em Kant e a questão da comoção na arte. Dissertação de Mestrado

Finanças Comportamentais: Uma Aplicação da Teoria do Prospecto na Tomada de Decisão de Investidores no Brasil

PUC RIO. Ana Beatriz Favero. OS DESTINOS DA SEDUÇÃO EM PSICANÁLISE Estudo sobre a sedução em Freud, Ferenczi e Laplanche DISSERTAÇÃO DE MESTRADO

Crime e Poupança: Teoria e Evidências para o Brasil

Alexandre Roberto Rentería ESTIMAÇÃO DE PROBABILIDADE FUZZY A PARTIR DE DADOS IMPRECISOS. Tese de Doutorado

Renata Renovato Martins. A Retórica de Górgias - Considerações sobre o Górgias de Platão e sobre o Górgias histórico. Dissertação de Mestrado

Um Framework de Jogos Sérios para Mercado de Informações com Aplicação em Ética Empresarial

Rebecca Coscarelli Cardoso Bastos

Transcrição:

Carlos Roberto Marques Junior Configuração Colaborativa de Linha de Produtos de Software Dissertação de Mestrado Dissertação apresentada ao Programa de Pós graduação em Informática do Departamento de Informática do Centro Técnico Científico da PUC-Rio como requisito parcial para obtenção do grau de Mestre em Informática. Orientador: Prof. Carlos José Pereira de Lucena Rio de Janeiro Abril de 2011

Carlos Roberto Marques Junior Configuração Colaborativa de Linha de Produtos de Software Dissertação apresentada ao Programa de Pós graduação em Informática do Departamento de Informática do Centro Técnico Científico da PUC-Rio como requisito parcial para obtenção do grau de Mestre em Informática. Aprovada pela Comissão Examinadora abaixo assinada. Prof. Carlos José Pereira de Lucena Orientador Departamento de Informática PUC-Rio Prof. Renato Fontoura de Gusmão Cerqueira Departamento de Informática PUC-Rio Prof. Simone Diniz Junqueira Barbosa Departamento de Informática PUC-Rio Prof. José Eugenio Leal Coordenador Setorial do Centro Técnico Científico PUC-Rio Rio de Janeiro, 7 de Abril de 2011

Todos os direitos reservados. É proibida a reprodução total ou parcial do trabalho sem autorização da universidade, do autor e do orientador. Carlos Roberto Marques Junior Graduou-se no curso de Bacharelado em Ciência da Computação na Universidade Federal de Viçosa (UFV) em 2008. Trabalhou na Petrobras Distribuidora em 2010 e, atualmente, é analista de sistemas do Banco Nacional de Desenvolvimento Econômico e Social (BNDES). Marques Junior, Carlos Roberto Ficha Catalográfica Configuração colaborativa de linha de produtos de software/ Carlos Roberto Marques Junior; orientador: Carlos José Pereira de Lucena. Rio de Janeiro : PUC-Rio, Departamento de Informática, 2011. v., 98 f: il. ; 29,7 cm 1. Dissertação (mestrado) - Pontifícia Universidade Católica do Rio de Janeiro, Departamento de Informática. Inclui referências bibliográficas. 1. Informática Teses. 2. Engenharia de Software. 3. Linha de Produtos de Software. 4. Ferramentas para Configuração de Produtos de Software. 5. Sistemas Multiagentes. I. Lucena, Carlos José Pereira de. II. Pontifícia Universidade Católica do Rio de Janeiro. Departamento de Informática. III. Título. CDD: 004

Agradecimentos Primeiramente, ao meus pais, Carlos Roberto e Maria Luzia, por todo o carinho e amor que me derem durante toda minha vida. Esse sentimento me deu forças para conseguir vencer todos os desafios que surgiram. Agradeço a minha irmã, Letícia, por ser essa menina tão especial e ser minha grande amiga: eu amo vocês. Ao Professor Lucena, meu orientador, com que tive a oportunidade de aprender muito, através de seus conselhos. Ao Elder, que desde o início sempre me ajudou com grandes ideias, conselhos, e principalmente, pela presteza todas as vezes que precisei. Este trabalho não seria possível sem sua ajuda e amizade. Ao Pedro, pelo apoio e conversas durante essa fase. Aos amigos Marcelo Oikawa e Thiago Silva pela amizade que fizemos desde Viçosa e aqui no Rio. A todos meus amigos da minha cidade, Muniz Freire, e da faculdade, que sempre me apoiaram. Agradeço a todos os amigos que fiz na BR Distribuidora, que sempre me deram força pra terminar o mestrado, e em especial minha ex-chefe, Gorete, pela compreensão e flexibilidade para poder continuar no mestrado durante o trabalho. Aos professores, pelo conhecimento que me ajudaram neste trabalho, e ao LES, PUC-Rio e CAPES, pela ajuda financeira.

Resumo Marques Junior, Carlos Roberto; Lucena, Carlos José Pereira de. Configuração Colaborativa de Linha de Produtos de Software. Rio de Janeiro, 2011. 98p. Dissertação de Mestrado Departamento de Informática, Pontifícia Universidade Católica do Rio de Janeiro. A configuração de produto é uma atividade chave para permitir a customização em massa. Ela corresponde à 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 propõem decompor a atividade de configuração em estágios pré-estabelecidos, atravé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 propõ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ções 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ário com uma linha de produtos de software para portais web. Palavras chave Engenharia de Software; Linha de Produtos de Software; Ferramentas para Configuração de Produtos de Software; Sistemas Multiagentes;

Abstract Marques Junior, Carlos Roberto; Lucena, Carlos José Pereira de (Advisor). Collaborative Configuration of Software Product Lines. Rio de Janeiro, 2011. 98p. MSc. Dissertation Departamento de Informática, Pontifícia Universidade Católica do Rio de Janeiro. 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. Keywords Software Engineering; Software Product Line; Configuration Tools for Software Products; Multiagent Systems;

Sumário 1 Introdução 11 1.1 Problema e Limitação das Abordagens Atuais 12 1.2 Solução Proposta 14 1.3 Objetivos 15 1.4 Organização do Texto 15 2 Revisão da Literatura 17 2.1 Linha de Produtos de Software 17 2.1.1 Modelo de Features 18 2.2 Processo de Configuração Colaborativa de LPS 20 2.2.1 Configuração em Estágios 20 2.2.2 Fluxo de Atividades para Configuração de Features 23 2.2.3 Coordenação em Configuração Colaborativa de Produtos 26 2.3 Engenharia de Software Orientada a Agentes 30 2.4 Conclusão 32 3 Configuração Colaborativa de Linha de Produtos de Software 33 3.1 Visão Geral da Abordagem 33 3.2 Um exemplo de execução 35 3.3 Ambiente de Configuração 38 3.4 Integrando Decisões 39 3.4.1 Configuração Global 40 3.4.2 Negociação de Decisões 41 3.4.3 Priorização de stakeholders 44 3.5 Abordagem Dinâmica vs. Coordenação por Fluxo de Atividades 45 3.6 Recuperação de Estados Inconsistentes 46 3.6.1 Grafo de Dependências 47 3.6.2 Validando Decisões 49 3.6.3 Produzindo Planos de Ações de Recuperação 49 3.6.4 Filtrando Planos de Ações 52 3.7 Sugestão de Configurações Ótimas 54 3.7.1 Cálculo de uma configuração ótima 56 3.7.2 Classificando Sugestões 57 3.7.3 Atualização dos Algoritmos de Produção de Planos de Ações de Recuperação 57 3.8 Conclusão 58 4 Libertas: Uma Ferramenta de suporte à Configuração Dinâmica e Distribuída de LPS 59 4.1 Visão Geral da Arquitetura 59 4.1.1 Interface Gráfica de Usuário 60 4.1.2 Modelo de Features 62 4.1.3 Assistente Pessoal 63 4.2 Módulos de Raciocínio 64

4.2.1 Módulo de Validação 65 4.2.2 Módulo de Produção de Planos de Ações de Recuperação 65 4.2.3 Módulo de Otimização 66 4.3 Dinâmica da Ferramenta 66 4.4 Avaliação de Desempenho 69 4.5 Conclusão 71 5 Cenários Ilustrativos 73 5.1 Linux 73 5.1.1 Descrição da LPS 73 5.1.2 Cenário de Configuração 77 5.2 Portal Web 83 5.2.1 Descrição da LPS 83 5.2.2 Cenário de Configuração 86 5.3 Conclusão 90 6 Conclusão 91 6.1 Contribuições 91 6.2 Trabalhos Futuros 92 7 Referências Bibliográficas 94

Lista de figuras 2.1 Tipos de Features. 18 2.2 Modelo de features de um subconjunto do kernel do Linux. 19 2.3 Passos de especialização na configuração em estágios. 21 2.4 Configuração em estágios. 22 2.5 Fluxo de atividades para configuração de features. 24 2.6 Modelo de features dividido em conjuntos de decisão. 27 2.7 Coordenação em configuração colaborativa de produtos. 28 2.8 Dependência entre conjuntos de decisão. 29 2.9 Planos de configuração colaborativa de produtos. 30 3.1 Visão geral da proposta de configuração dinâmica e distribuída de produtos. 34 3.2 Modelo de features reduzido do kernel do Linux. 36 3.3 Exemplo. 37 3.4 Ambientes de configuração. 38 3.5 Evolução da configuração global de CG i para CG i+1. 41 3.6 Grafo de dependências. 49 3.7 Modelo de features para exemplificar filtros de ações de correção. 55 4.1 Arquitetura da ferramenta Libertas. 60 4.2 Interface principal da ferramenta Libertas. 61 4.3 Interface principal da ferramenta Libertas. 62 4.4 Diagrama de classes do modelo de features utilizado. 63 4.5 Exemplo de solicitação de ações. 68 4.6 Análise do algoritmo de produção de ações de recuperação sobre cinco tipos de modelos de features. 72 5.1 Modelo de features do kernel do Linux dividido em conjuntos de decisão. 78 5.2 Configuração do modelo de features do kernel do Linux dados os requisitos de negócio. 79 5.3 Configuração do modelo de features do kernel do Linux após as mudanças de requisitos. 81 5.4 Modelo de features da LPS dos portais web. 83 5.5 Modelo de features dos portais web dividido em conjuntos de decisão. 87 5.6 Configuração do modelo de features do portal web dados os requisitos de negócio. 88 5.7 Configuração do modelo de features do portal web após as mudanças de requisitos. 89

Lista de tabelas 4.1 Resultados da aplicação do algoritmo de produção de ações de recuperação. 71