You are on page 1of 59

UNIVERSIDADE DE PERNAMBUCO

DIGENES RICARDO FREITAS DE OLIVEIRA

UM ESTUDO SOBRE GERENCIAMENTO DE VARIABILIDADE DE REQUISITOS EM LINHA DE PRODUTOS DE SOFTWARE

CARUARU 2011

UNIVERSIDADE DE PERNAMBUCO

DIGENES RICARDO FREITAS DE OLIVEIRA

UM ESTUDO SOBRE GERENCIAMENTO DE VARIABILIDADE DE REQUISITOS EM LINHA DE PRODUTOS DE SOFTWARE

Monografia apresentada ao Curso de Sistemas de Informao da Universidade de Pernambuco como requisito parcial para a concluso do curso de Sistemas de Informao, sob orientao do Prof. Msc. Humberto Rocha de Almeida Neto e coorientao do Prof. D.Sc. Vinicius Cardoso Garcia.

CARUARU 2011

Monografia de Graduao apresentada por Digenes Ricardo Freitas de Oliveira do Curso de Graduao em Sistemas de Informao da Faculdade de Cincia e Tecnologia de Caruaru Universidade de Pernambuco, sob o ttulo Um Estudo Sobre Gerenciamento de Variabilidade de Requisitos em Linha de Produtos de Software, orientada pelo Prof. M.Sc. Humberto Rocha de Almeida Neto e co-orientada pelo Prof. D.Sc. Vinicius Cardoso Garcia e aprovada pela Banca Examinadora formada pelos professores:

Prof. D.Sc. Fernando Carvalho Departamento de Sistemas de Informao / UPE

Prof. D.Sc. Vinicius Cardoso Garcia Centro de Informtica / UFPE

Visto e permitida a impresso. Caruaru, XX de junho de 2011.

Prof. Ccero Garrozi


Coordenador do Curso de Bacharelado em Sistemas de Informao da Faculdade de Cincia e Tecnologia de Caruaru Universidade de Pernambuco.

Aos meus familiares, irmos, amigos e minha amada.

AGRADECIMENTOS Como filho de quem sou, segundo Joo 1:12 (60D.C), expresso minha gratido. Primeiramente ao meu Pai celestial, pelo privilgio de ser seu filho e gozar da sua presena em minha vida de forma to intensa, inclusive na produo desse trabalho. Obrigado meu Deus, por ser um Pai to bondoso, que me ajudou a escrever, por me inspirar naqueles dias que eu no estava com a mnima vontade (nem de ligar o computador). Sem Ti, nada posso fazer, te amo Pai. Obrigado Jesus Cristo, por me dar este acesso ao Pai (I TIMTEO 2:5), sem o qual no poderia estar em paz com Deus (Romanos 5:1) e viver da Sua presena (ROMANOS 5:9-11). minha famlia, especialmente aos meus pais, Gilson Ricardo e Lunamar Freitas, pela criao que vocs me deram. A painho pelo apoio, sem o qual no poderia ter chegado aqui, por ser exatamente como o senhor (essencial para formao do meu carter). minha irm Amanda Jacqueline pelo companheirismo e pacincia (no tanta assim, no). Eu agradeo a Deus por vocs existirem. Amo muito vocs, essa uma conquista nossa! Ao meu amado, inspirador, conselheiro, Manuel Augustinho (in memoriam), minha gratido por tudo que o senhor fez, v. Pelas inmeras vezes que conversei o senhor sobre meus problemas, inclusive da faculdade, que o senhor no entendia direito de que era, mas falava exatamente o que eu precisava ouvir, impressionante! At logo meu heri e querido v (Quem estuda, Deus ajuda, dizia ele). s minhas avs L e Deija pela compreenso, maravilhosos conselhos, pelas disciplinas e pacincia. A vov Aurora (95 anos) que sempre que me v pergunta como esto os estudos (eu tinha que dizer algo novo). Aos Meus tios, em especial a tio Alexandre, vocs so muito importantes pra mim. minha amada Elyda Laisa, pela ajuda direta e indireta nesse trabalho, por ter pacincia com minhas cismas, me acalmando nos momentos de agonia e pelo incentivo. Obrigado minha linda, amo voc demais. Aos meus mestres Humberto Rocha e Vincius Garcia pelas sugestes, idias e crticas (foram muitas). Vincius, olho para trs e vejo como evolu com seus

comentrios, suas contribuies foram essenciais pra o fim desse trabalho. Deus abenoe vocs. Aos meus amigos de jornada da UPE, companheiros de trabalhos e projetos (no vou citar nomes, seno no cabe). Aos amigos de infncia (Everton, Joo Paulo, entre outros) por me escutarem e ajudar a aliviar a presso da faculdade com lazer (Jiu-Jtsu, trilhas, viagens, PS3, entre outras atividades). Valeu galera! Aos meus irmos em Cristo (Marcos, Romenilson, Rafael, Caio, Junior, Elifas, entre outros) pelas palavras de sabedoria (essa aqui, s do povo de Deus) sempre na hora certa... como Deus usou e usa vocs na minha vida! Graa e paz meus irmos, amo vocs. Finalmente a todos aqueles que contriburam direta ou indiretamente com o fim desse trabalho, meus sinceros agradecimentos.

RESUMO

Linha de Produtos de Software uma abordagem de desenvolvimento de software criada para atender diferentes segmentos de mercado. Esta abordagem tem apresentado grande aceitao no ambiente corporativo por permitir a construo de aplicaes de forma mais eficiente atravs do reuso de componentes comuns, alm de estar sendo extensivamente pesquisada por acadmicos. Dentro da Linha de Produtos de Software, a variabilidade tem o papel de fornecer recursos para implementao dos produtos a partir de diferentes perspectivas, mantendo um baixo custo de desenvolvimento e manuteno. Sendo assim, a adoo da Linha de Produtos apresenta-se como uma soluo vantajosa. A Engenharia de Requisitos do Domnio o ponto inicial para implementao da variabilidade. Este trabalho prope um conjunto de funcionalidades e caractersticas que devem compor uma ferramenta que d suporte ao Gerenciamento da variabilidade dentro Engenharia de Requisitos em Linha de Produtos de Software, alm de apresentar uma avaliao das principais solues.

Palavras-chave: Linha de produtos de software. Variabilidade. Gerenciamento de variabilidade, Engenharia de Requisitos do Domnio.

ABSTRACT Software Product Line is a software development approach designed to address different market segments. This approach has had great acceptance in the corporate environment by allowing the construction of applications more efficiently by reusing common components, besides being extensively researched by academics. In Software Product Line, the variability has a role in providing resources for implementation of products from different perspectives, while maintaining a low cost of development and maintenance. Thus, the adoption of Product Line presents itself as an advantageous solution. The Domain Engineering Requirements is the starting point for implementation of the variability. This -work- proposes a set of functionalities and characteristics that should make a tool that supports the variability management within the Requirements Engineering in Software Product Line and present an evaluation of main solutions.

Keywords: Software Product Line, Variability. Variability Management, Domain Egineering Requirements .

LISTA DE FIGURAS Figura 1: Custo para desenvolver N tipos de sistemas comparando o SSD com SPLE. Adaptada de Pohl (2005, p.10) ...................................................................... 21 Figura 2: Ponto de variao e suas variantes ........................................................... 23 Figura 3: Principais atividades para SPLE adaptada de (NORTHROP e CLEMENTS, 2007) ......................................................................................................................... 25 Figura 4: Os subprocessos da Engenharia de Domnio e Engenharia de Aplicao. Figura adaptada de (POHL et. al., 2005) .................................................................. 26 Figura 5: Etapas do processo da Engenharia de Requisitos. Adaptada

(SOMMERVILLE E KOTONYA, 1998) ...................................................................... 28 Figura 6: Processo de gerenciamento de variabilidade. Fonte: (BURGARELI, 2009, p. 131) ....................................................................................................................... 30 Figura 7: Principais abordagens de gerenciamento de variabilidade. (CHEN et. al., 2009) ......................................................................................................................... 31 Figura 8: Tcnicas de Gerenciamento dos requisitos. Adaptada (EBERLEIN, 2002) .................................................................................................................................. 34 Figura 9: Nmero de trabalhos selecionados para leitura completa.......................... 40 Figura 10: Nmero de trabalhos por base cientfica .................................................. 41

LISTA DE TABELAS Tabela 1: Principais formas de representao do gerenciamento de variabilidade... 32 Tabela 2: Informaes das Ferramentas ................................................................... 43 Tabela 3: Ferramentas e suas caractersticas........................................................... 44 Tabela 4: Ferramentas e suas funcionalidades ......................................................... 47 Tabela 5: Funcionalidades propostas ........................................................................ 49 Tabela 6: Funcionalidades complementares propostas ............................................ 50 Tabela 7: Critrios de usabilidade ............................................................................. 50

LISTA DE SIGLAS SSD - Single System Development SPL - Software Product Line SPLE - Software Product Line Engineering SEI - Software Engineering Institute VaMoS - Variability Modeling of Software-intesive GVLPS Gerenciamento de Variabilidade em Linha de produtos de Software

SUMRIO

1.

INTRODUO ................................................................................................... 14 1.1. 1.2. 1.3. Contextualizao......................................................................................... 14 Problema de Pesquisa ................................................................................ 15 Objetivos ..................................................................................................... 15

1.3.1. Objetivo Geral ........................................................................................ 15 1.3.2. Objetivos Especficos ............................................................................ 16 1.4. 1.5. 1.6. 1.7. 2. Justificativa ................................................................................................. 16 Escopo Negativo ......................................................................................... 17 Contribuies .............................................................................................. 17 Estrutura do Trabalho ................................................................................. 18

REFERENCIAL TERICO ................................................................................ 19 2.1. Linha de Produtos de Software ................................................................... 19

2.1.1. Definio ................................................................................................ 19 2.2.2. Quando usar SPL ................................................................................... 20 2.2. Variabilidade ............................................................................................... 22 2.2.1. Conceitos ............................................................................................... 22 2.2.2. Tipos de Variabilidade ........................................................................... 23 2.2.3. Nveis de Variabilidade .......................................................................... 24 2.2.4. Classificao das Variantes ................................................................... 24 2.3. Entendendo o funcionamento da SPLE ...................................................... 25 2.3.1. Engenharia de Domnio ......................................................................... 26 2.3.2. Engenharia de Aplicao ....................................................................... 27 2.4. Engenharia de Requisitos do Domnio ........................................................ 28 2.4.1. Gerenciamento de Variabilidade nos Requisitos ................................... 29 3. METODOLOGIA ................................................................................................ 37 3.1. Natureza da pesquisa ................................................................................. 37

3.1.1. Quanto aos fins...................................................................................... 37 3.1.2. Quanto aos meios.................................................................................. 37 3.1.3. Formas de abordagem .......................................................................... 38 3.2. Anlise dos dados .......................................................................................... 38

4. UM ESTUDO SOBRE GERENCIAMENTO DE VARIABILIDADE DE REQUISITOS EM LINHA DE PRODUTOS DE SOFTWARE ................................... 40 4.1. 4.2. Resultado das Pesquisas ............................................................................ 40 Investigao das Ferramentas .................................................................... 42

4.1.1. Critrios de Seleo das Ferramentas .................................................. 41 4.2.1. Ferramentas Selecionadas .................................................................... 42 4.2.2. Caractersticas das Ferramentas ........................................................... 44 4.2.3. Funcionalidades das Ferramentas......................................................... 46 4.3. 4.4. 5. Proposta...................................................................................................... 49 Trabalhos Relacionados ............................................................................. 51

CONSIDERAES FINAIS ............................................................................... 52 5.1. 5.2. 5.3. Limitaes ................................................................................................... 52 Lies Aprendidas....................................................................................... 53 Recomendaes para trabalhos futuros ..................................................... 53

6.

REFERNCIAS ................................................................................................. 55 ANEXO 1 BUSCA NAS BASES CIENTFICAS .................................................. 59

14

1. 1.1.

INTRODUO Contextualizao Desde o incio do desenvolvimento de sistemas computacionais at os dias

de hoje, muitos deles vm sendo produzidos sob uma perspectiva de manufatura (Desenvolvimento de Sistema nico, do ingls Single System Development - SSD). A idia de produo de software em massa, embora remota, j se mostrava presente em alguns trabalhos de pesquisadores que observavam a similaridade dos produtos desenvolvidos. Na dcada de 70 deu-se incio a um conceito de Famlia de Produtos (PARNAS, 1979), no qual se projetava que vrios sistemas que possussem as mesmas caractersticas estivessem dentro do mesmo domnio. Dessa forma, iniciouse o conceito Linha de Produtos de Software (do ingls Software Product Lines SPL), que se assemelha a linha de produo comum, com diviso de atividades, atores e sistematizao de processos. No contexto atual do desenvolvimento de sistemas, requisitos no-funcionais como confiabilidade, manutenibilidade, reusabilidade, entre outros, tornam-se cada vez mais importantes. Segundo o Bergey (2000) vrias empresas j ganharam melhorias quantificveis no quesito eficincia, produtividade e qualidade atravs da abordagem de SPL, que tem como caractersticas essenciais de seu funcionamento, estas condies no tcnicas. Segundo Pohl et. al. (2005), uma SPL um paradigma para desenvolvimento de software que se utiliza de uma plataforma e da customizao em massa1. A SPL pode ser dividida em dois grandes processos: desenvolvimento da plataforma, que um conjunto de artefatos reusveis; e desenvolvimento dos produtos, realizado a partir dos artefatos da plataforma. Em geral, o primeiro processo denominado Engenharia de Domnio e o segundo, Engenharia de Aplicao. De acordo com o Software Engineering Institute (SEI), alguns dos principais benefcios de uma SPL o fornecimento de produtos de forma massificada e, no

Conceito originado do toyotismo, que significa basicamente fabricar produtos customizados com a economia de custo da linha de produo.

15

entanto, customizados e a baixo custo2. Pohl et. al. (2005) ressaltam ainda a importncia da SPL no ambiente moderno:
Portanto, atualmente h uma forte necessidade para adoo da engenharia linha de produtos, quando pode ser observado um domnio de software, especialmente quando o tamanho e a complexidade ultrapassam os limites do que vivel com as abordagens tradicionais. (POHL et. al, 2005, p.14).

Em meio a esses pontos, a variabilidade dos artefatos a questo chave para o desenvolvimento desse paradigma de desenvolvimento. Segundo Weiss e Chi Tau (1999), variabilidade a forma como os membros de uma famlia de produtos podem se diferenciar entre si. Devido sua importncia, faz-se necessrio uma ateno especial ao seu gerenciamento, atravs de formas e ferramentas que deem apoio ao desenvolvimento, manuteno, evoluo entre outros. No contexto dos requisitos, a fase da SPL responsvel pelo gerenciamento da variabilidade a Engenharia de Requisitos do Domnio.

1.2.

Problema de Pesquisa Devido importncia do gerenciamento da variabilidade, este trabalho se

prope a analisar as principais ferramentas que podem auxiliar no processo de gerenciamento de variabilidade na Engenharia de Requisitos do Domnio da SPLE. Pretende-se, ao trmino deste trabalho, ter identificado subsdios suficientes para encontrar uma resposta para a seguinte indagao: Quais so as principais caractersticas e funcionalidades que devem compor uma ferramenta que apie efetivamente o Gerenciamento de Variabilidade de Requisitos do Domnio em Linha de Produtos de Software? 1.3. Objetivos

Os objetivos da pesquisa dividem-se em geral e especficos, os quais sero definidos a seguir. 1.3.1. Objetivo Geral Propor um conjunto de funcionalidades que apie o gerenciamento de variabilidade em SPL no contexto da Engenharia de Requisitos do Domnio.
2

http://www.sei.cmu.edu/productlines/frame_report/benefits.costs.htm. Acesso em: 11/05/2011.

16

1.3.2. Objetivos Especficos Com a finalidade de atingir o objetivo geral so definidos os seguintes objetivos especficos: Investigar os processos de gerenciamento de variabilidade de requisitos para Linha de Produtos de Software.

Pesquisar ferramentas acadmicas e industriais que dem suporte ao gerenciamento de variabilidade em Linhas de Produto de Software no contexto da Engenharia de Requisitos do Domnio.

Identificar e documentar funcionalidades bsicas e complementares de cada ferramenta.

Realizar uma anlise das ferramentas, de acordo com suas funcionalidades.

1.4.

Justificativa

O gerenciamento de variabilidade uma das principais atividades na SPLE (Software Product Line Engineering) sendo considerada a chave para a exeqibilidade da plataforma. Academicamente, esse estudo importante pois ir identificar as principais funcionalidades para uma ferramenta que apie o gerenciamento de variabilidade dos requisitos de domnio. E, atravs desta identificao, dando subsidio que acadmicos possam desenvolver uma soluo que atenda a necessidade do gerenciamento de variabilidade na SPLE. A contribuio prtica deste trabalho est na identificao das principais ferramentas para o gerenciamento de variabilidade de requisitos envolvidas do processo de desenvolvimento da SPL, a fim de garantir a eficincia da plataforma de desenvolvimento. Alm disso, a identificao e anlise das principais ferramentas envolvidas no processo de desenvolvimento dos requisitos podero auxiliar as fbricas de software a escolher a que melhor se adqua ao seu processo de desenvolvimento.

17

1.5.

Escopo Negativo

A proposta deste trabalho est inserida em um contexto mais amplo, portanto faz-se necessrio tratar alguns aspectos que no esto relacionados no escopo deste trabalho. Adicionalmente, as funcionalidades propostas para a ferramenta no compem um conjunto absoluto de requisitos necessrios, que devem sempre estar presentes em qualquer ferramenta para SPL. Estes requisitos dependem das necessidades do ambiente onde a mesma ser utilizada. Ressaltamos que os seguintes aspectos no fazem parte do escopo deste trabalho: Outras fases do processo de gerenciamento de variabilidade: embora seja feita uma breve explanao sobre a atuao do gerenciamento de variabilidade dos requisitos no contexto da SPLE, no sero tratadas, com detalhes, a variabilidade em outras fases da SPL - como arquitetura, implementao e testes. Abordagem de SPL: mesmo sendo dada uma viso geral sobre as principais abordagens em SPL e uma descrio sintetizada das fases da SPLE, este trabalho no prope um framework para desenvolvimento de SPL. Ferramenta: apesar de serem levantadas as principais caractersticas e funcionalidades que devem estar presentes em uma ferramenta para o gerenciamento de variabilidade dos requisitos, tal ferramenta no ser desenvolvida neste trabalho. 1.6. Contribuies As principais contribuies deste trabalho so:

A compreenso dos pontos principais que esto evolvidos nos processos de gerenciamento de variabilidade de requisitos para Linha de Produtos de Software.

A pesquisa das ferramentas acadmicas e industriais que do suporte s atividades necessrias no gerenciamento de variabilidade em Linhas de Produto de Software no contexto da Engenharia de Requisitos do Domnio.

18

A identificao e descrio de funcionalidades bsicas e complementares necessrias em uma ferramenta que apia eficientemente a Engenharia de Requisitos do Domnio.

Uma anlise comparativa da presena das principais funcionalidades e caractersticas nas ferramentas identificadas durante a pesquisa.

1.7.

Estrutura do Trabalho Neste captulo, foi apresentada a contextualizao da Engenharia de

Requisitos em Linha de Produtos de Software, alm do problema de pesquisa, e a definio dos objetivos, a fim de responder a pergunta de pesquisa. Adicionalmente, foi explanada a justificativa para execuo do trabalho e suas contribuies. Este trabalho est estruturando, a partir daqui, da seguinte maneira: No captulo 2 est o referencial terico, que apresenta os principais componentes envolvidos no contexto da Engenharia de Requisitos em Linha de Produtos de Software. O captulo 3 trata a forma de escrita deste trabalho, bem como mtodo para realizao da pesquisa e a forma de anlise de dados. O captulo 4 trata dos resultados do trabalho, apresentando tambm os trabalhos e ferramentas selecionados, a proposta de funcionalidades e os trabalhos relacionados. Por fim, so expostas as consideraes finais acerca do trabalho.

19

2. REFERENCIAL TERICO Este captulo apresenta os conceitos bsicos sobre Linha de Produtos de Software, Variabilidade e o Gerenciamento de Variabilidade de Requisitos do Domnio.

2.1.

Linha de Produtos de Software O termo linha de produtos de software surgiu como uma mescla de outros

termos. Nas dcadas de 70 e 80, pesquisadores como Parnas (1976), Habermann (1976), Neighbors (1984) entre outros, j estudavam a oportunidade da utilizao de uma forma de produo mais econmica e rpida, observando prticas da industria como produo em massa atrelada customizao. Era notada a similaridade de sistemas de software, os quais recebiam o nome de famlia de sistemas ou famlia de produtos. Nas prximas sees sero conceituados os principais componentes e atividades envolvidas no processo de SPL e descritos os principais processos sobre o funcionamento da SPLE. 2.1.1. Definio Uma linha de produtos compreende um conjunto de produtos que se destinam a um segmento de mercado especfico ou a uma misso particular (NORTHROP e CLEMENTS, 2007). Antes de melhor definir SPL necessrio conhecer outros conceitos importantes envolvidos nessa abordagem. Primeiramente, preciso compreender um conceito muito presente nas abordagens da SPL, que o conceito de feature3. Segundo Czarnecki et. al. (2005) uma feature um aspecto, qualidade ou caracterstica de um software ou de sistemas que proeminente visvel ao usurio ou a outro sistema. Outro importante conceito o de core assets, que consiste de itens reusveis, tais como requisitos, modelos, componentes, arquitetura, planos de testes, casos de testes, entre outros artefatos. Este conjunto, denominado plataforma, a base para

Neste trabalho, o termo feature no traduzido por entendermos que a traduo (caracterstica), na lngua portuguesa, no traduz o que tecnicamente o termo significa.

20

a linha de produtos de software, seus itens podem ser reusados por diferentes membros da famlia de produtos e podem evoluir junto plataforma. Com o entendimento desses conceitos, pode-se compreender melhor a definio de SPL de Clements e Northrop:
Uma linha de produtos de software um conjunto de sistemas com uso intensivo de reso software que compartilham um conjunto de features comuns e gerenciveis, que satisfazem s necessidades especficas de um segmento de mercado particular ou misso, e que so desenvolvidos a partir de um conjunto de core assets comuns, de modo planejado. (CLEMENTS E NORTHROP, 2001, p. 05).

Uma diferena bsica entre o processo SSD e SPLE que o primeiro focado no contrato, somente no produto final e a ser entregue no prazo; j o segundo tem uma viso estratgica, enxerga a oportunidade de negcio em determinado segmento do mercado (conhecido dentro do processo de SPLE como domnio). Na engenharia de software, o termo domnio definido como uma parte especializada do conhecimento, uma rea de experincia ou um conjunto de funcionalidades que se relacionam (NORTHROP E CLEMENTS, 2007). Assim como deve ser analisada a viabilidade de aplicar qualquer mudana em uma empresa, seja um software, um processo de desenvolvimento, uma ferramenta, ou uma metodologia. Deve-se verificar quando a prtica do paradigma da engenharia de linha de produtos vivel, o que ser visto a seguir. 2.2.2. Quando usar SPL A utilizao da abordagem de SPLE vlida quando h oportunidade para o desenvolvimento de softwares que compartilham caractersticas comuns. Uma anlise de mercado e outros estudos podem ser feitos a fim de confirmar se a utilizao da abordagem vlida. Quando a fabricao de produtos de forma individual, sob um processo de SSD, acarretaria em um custo muito alto, a SPLE contribuiria, neste caso, para a reduo deste custo, alm de aumentar a qualidade dos produtos e valorizar o capital humano (SEI4). Como em qualquer outra rea, as mudanas nas prticas de engenharia de software tm que ser justificadas sob a perspectiva econmica. Essa uma das
4

http://www.sei.cmu.edu/productlines/frame_report/benefits.costs.htm. Acesso em:11/05/2011.

21

principais razes para a adoo da SPLE, que tem como forte argumento a reduo dos custos. Segundo Pohl et. al. (2005), quando os artefatos de uma plataforma so reusados em diferentes tipos de sistema, h uma reduo de custo de cada sistema. Porm, antes de os componentes serem reusados, a empresa deve fazer um investimento inicial maior para criar a plataforma. Os custos sero reduzidos ao longo do desenvolvimento dos produtos, atravs da reutilizao dos artefatos da plataforma. A Figura 1 mostra a diferena de custo ao desenvolver produtos, sob os diferentes paradigmas de desenvolvimento (SSD e SPLE), apresentando o ponto de quebra existente quando aproximadamente trs sistemas so desenvolvidos, a SPLE passa a ter menor esforo de acumulado, mesmo tendo um investimento inicial maior.

Figura 1: Custo para desenvolver N tipos de sistemas comparando o SSD com SPLE. Adaptada de Pohl (2005, p.10)

A questo principal, que evidencia essa diferena no esforo para o desenvolvimento de produtos sob as diferentes abordagens, est na aplicao variabilidade, que ser conceituada a seguir.

22

2.2.

Variabilidade Nesta seo, sero explanados os aspectos referentes variabilidade, tais

como seus tipos, nveis e sua classificao. 2.2.1. Conceitos Para o funcionamento da SPLE uma das questes-chave a variabilidade. A importncia deste assunto tal que h um workshop internacional sobre o assunto: VaMoS5 (Variability Modeling of Software-intesive). O conceito de variabilidade apresentado, a fim de compreender seu funcionamento na Engenharia de Requisitos do Domnio. Bachmann e Clements (2005) definem variabilidade como a habilidade de um sistema ou core asset que, no ambiente de desenvolvimento, apia a produo de um conjunto de artefatos que diferem entre si. O que significa a adaptao no uso dos core assets em diferentes produtos. A variabilidade tem participao em todo o ciclo de vida do processo da SPLE, porm o objetivo da variabilidade em linha de produtos de software maximizar o retorno sobre o investimento (ROI) para construo e manuteno dos produtos dentro de um perodo de tempo especfico ou de um nmero de produtos (BACHMANN e CLEMENTS, 2005, p.10). Em SPL, a variabilidade fornece a flexibilidade para diferenciar e diversificar produtos. Nela, a habilidade de um artefato ser configurado, customizado, estendido ou mudado para um uso especfico em um contexto dada atravs de alguns conceitos vistos adiante, de acordo com (BACHMANN e CLEMENTS 2005) e (LINDEN et. al., 2007):

Variante: Representa um objeto de variabilidade dentro dos artefatos de domnio, como um componente. So instncias em um ponto de variao. Ponto de variao: Representao de um objeto da variabilidade, onde se decide a escolha entre as variantes, normalmente enriquecida por informaes contextuais do domnio.

VaMoS - Workshop Internacional sobre Modelagem de Variabilidade em Software Especficos

23

A Figura 2, a seguir, adaptada de Pohl et. al (2005, p. 153), mostra um exemplo de um ponto de variao e as variantes que podem ser escolhidas para ele.

Figura 2: Ponto de variao e suas variantes

Variao: Forma como duas variantes diferem entre si. Mecanismo de variabilidade: Responsvel por implementar a variabilidade. Dependncia de variantes: Usado para denotar as diferentes escolhas da variante no ponto de variao, essa notao inclui cardinalidade e outros atributos.

Restries de dependncias das variantes: Descreve as dependncias nas selees das variantes, apresentam-se de duas formas: o Requerida: Indica se a variante depende de outra. o Exclusiva: Indica se a variante entra em conflito com outra.

Devido importncia da variabilidade no funcionamento da SPL, a mesma deve ser definida, representada, explorada, implementada, evoluda, entre outros (LINDEN et. al., 2007, p. 8). A seguir, outros pontos relevantes na compreenso da variabilidade. 2.2.2. Tipos de Variabilidade Os core assets desenvolvidos podem ser utilizados tanto no domnio (na plataforma), quanto para produtos especficos. Segundo Linden et. al. (2007), a variabilidade pode ser dividida em trs tipos:

24

Comum: Uma caracterstica (funcional ou no funcional) que pode ser comum para todos os produtos da SPL e implementada na plataforma. Varivel: Caracterstica que deve ser comum para alguns produtos, mas no todos. Deve ser explicitamente modelada de forma que possa ser aplicada em um produto selecionado.

Especfica do produto: Uma caracterstica que deve ser parte de um produto. Normalmente com especialidades no exigidas pelo domnio, mas por clientes individuais.

2.2.3. Nveis de Variabilidade Svahnberg e Bosch (2000) argumentam que a variabilidade ocorre em vrios nveis, os quais so apresentados abaixo:

Nvel da linha de produto: Diz respeito forma como os diferentes produtos na SPL variam. Nvel do produto: Trata de como a variabilidade est preocupada com a arquitetura; da escolha dos componentes de um determinado produto e se eles esto ligados entre si.

Nvel dos componentes: Neste nvel, a variabilidade consiste em como adicionar novas implementaes da interface do componente, e tambm como estes evoluem ao longo do tempo.

Nvel do subcomponente: Um componente contm um conjunto de features. Neste nvel, estas features so selecionadas para criar um componente para um produto particular.

Nvel de cdigo: Acontece no nvel do desenvolvimento, e onde a maior parte da variabilidade entre produtos acontece.

2.2.4. Classificao das Variantes Neste trabalho, considerada a classificao das variantes associada a um ponto de variao de acordo com Czarnecki et. al. (2005) e Pohl et. al. (2005), que segue:

25

Mandatria: Deve ser selecionada para a aplicao se e somente se o ponto de variao parte da aplicao. Quando uma variante obrigatria; Opcional: Acontece quando uma variante pode, mas no precisa ser parte de um produto da SPL. Quando uma variante pode ser necessria ou no; Alternativa Inclusiva: Quando se deve escolher uma ou mais variantes; Alternativa Exclusiva: Quando somente uma das variantes necessria; Alternativa Mutuamente Inclusiva: Quando duas ou mais variantes so sempre necessrias juntas.

Uma vez que a questo da variabilidade na SPLE foi esclarecida, faz-se necessrio esclarecer o funcionamento da SPL e como a variabilidade aplicada no contexto da Engenharia de requisitos do domnio. 2.3. Entendendo o funcionamento da SPLE Uma vez apresentadas as definies referentes a features, core assets e s formas da variabilidade, possivel aprofundar um pouco mais a discusso sobre os processos essenciais para o funcionamento da SPLE. Apesar das inmeras abordagens existentes, os processos de

desenvolvimento assemelham-se em muitos pontos. Em alguns casos, apenas a nomenclatura de cada atividade diferente. A Figura 3, a seguir, mostra as trs principais atividades envolvidas na SPLE, segundo o modelo do SEI (Software Engineering Institute).

Figura 3: Principais atividades para SPLE adaptada de (NORTHROP e CLEMENTS, 2007)

26

A seguir sero descritos os subprocessos e os componentes que esto envolvidos nestas atividades principais, agora baseado no modelo de Pohl et. al. (2005). A Figura 4, a seguir apresenta uma viso detalhada das etapas do ciclo de desenvolvimento da SPLE segundo o modelo Pohl et. al. (2005).

Figura 4: Os subprocessos da Engenharia de Domnio e Engenharia de Aplicao. Figura adaptada de (POHL et. al., 2005)

Como mostra a Figura 4 acima, em relao aos aspectos tcnicos de desenvolvimento, a SPLE divide-se basicamente em duas atividades: Engenharia de Domnio e Engenharia de Aplicao. A nica fase que considera aspectos notcnicos a de Gerenciamento do Produto. Cada uma destas fases ser mostrada com mais detalhes nas sees seguintes. 2.3.1. Engenharia de Domnio nesta fase que acontece o entendimento do domnio e a construo (para o reuso) de uma plataforma de artefatos reusveis, a partir da qual sero desenvolvidos os produtos. Segundo Czarnecki e Eisenecker (2005, p. 36), o objetivo da Engenharia de Domnio:

27

realizar as atividades de coleta, organizao e armazenamento de experincias passadas no desenvolvimento de sistemas, ou partes do sistema em um domnio especfico, na forma de core assets e providenciar meios adequados para reus-los (recuperao, qualificao, adaptao, montagem, entre outros) ao construir novos sistemas.

A seguir sero descritas as etapas desse processo segundo (POHL et. al., 2005):

Gerenciamento do produto: Trata normalmente de aspectos no tcnicos, aborda questes econmicas e de estratgia de mercado. Engenharia de requisitos do domnio: Engloba todas as atividades de elicitao e documentao do que similar e varivel nos requisitos. Ressalta-se que este trabalho foca na maneira como as ferramentas podem apoiar na identificao, documentao, representao e outras atividades necessrias na realizao desta etapa.

Projeto do domnio: Aborda todas as atividades para a construo da arquitetura de referncia, a qual fornece uma estrutura que apia a arquitetura de todas as aplicaes da SPL.

Realizao do domnio: Trata em um nvel de detalhe maior a arquitetura e a implementao dos componentes reusveis. Testes do domnio: responsvel pela verificao e validao dos componentes reusveis. Os artefatos gerados no processo de Engenharia de Domnio so reusados

para desenvolver os produtos na prxima fase, que Engenharia de Aplicao. 2.3.2. Engenharia de Aplicao A Engenharia de Aplicao fase em que os produtos so desenvolvidos (com reuso) com base nos core assets construdos na Engenharia de Domnio. As etapas da Engenharia de Aplicao so as seguintes (POHL et. al., 2005):

Engenharia de requisitos da aplicao: Rene todas as atividades para a elicitao dos requisitos das aplicaes. Projeto da aplicao: Engloba as atividades para produo da arquitetura especfica, baseada na arquitetura de referncia. Seleciona e configura as partes especficas do produto em questo.

28

Realizao da aplicao: Desenvolve as aplicaes especficas. As principais preocupaes so com a seleo e configurao dos componentes para formar a aplicao.

Testes da aplicao: Compreende as atividades necessrias para validar e verificar a aplicao em relao sua especificao. Estas atividades so realizadas sob uma caracterstica essencial no uso do

paradigma de SPL: a variabilidade, a qual deve ser explorada ao longo de todo o ciclo de desenvolvimento (criao dos requisitos, na elaborao do modelo arquitetural, nos modelos de documentos, entre outros). 2.4. Engenharia de Requisitos do Domnio A Engenharia de Requisitos a base para o desenvolvimento de softwares no paradigma SSD, bem como a engenharia de requisitos do domnio para a SPL. Segundo Sommerville e Kotonya (1998) existem cinco atividades tpicas dos processos de engenharia de requisitos.

Captura dos requisitos

Anlise dos requisitos

Especificao dos requisitos

Verificao dos requisitos

Gerenciamento dos requisitos

Figura 5: Etapas do processo da Engenharia de Requisitos. Adaptada (SOMMERVILLE E KOTONYA, 1998)

Na construo de uma plataforma da SPL, essas atividades so executadas na fase de Engenharia de Requisitos do Domnio, uma vez que nesta fase que os requisitos sero transformados em variantes. Sendo assim, os requisitos devem estar elicitados antes, fazendo necessrias essas atividades, mesmo sendo de processos de desenvolvimento tradicionais.

29

Segundo Eberlein (2002), as maiores metas da engenharia de domnio so: identificar o potencial dos produtos e seus requisitos, analisar esses requisitos, projet-los e implement-los em um framework reutilizvel. Uma vez elicitados os requisitos e construdo modelo de variabilidade correspondente, a rastreabilidade pode ser aplicada, por exemplo, no mapeamento de elementos da arquitetura, do cdigo fonte, entre outros core assets, como casos de teste. Como exemplo de suporte a essa atividade, podemos citar a ferramenta TARGET (Machado, 2007), na qual a rastreabilidade pode ser verificada na gerao de casos de testes a partir das especificaes dos casos de uso. Sendo assim, a identificao da variabilidade dos requisitos deve ser especificada. Diante desta necessidade, a utilizao de uma ferramenta que apie essa atividade indispensvel. Na prxima seo, ser apresentado o gerenciamento de variabilidade dos requisitos e como as notaes e tcnicas podem ajudar, e tambm compreender como as ferramentas podero apoiar a execuo dessa atividade. 2.4.1. Gerenciamento de Variabilidade nos Requisitos O processo Gerenciamento de Variabilidade nos Requisitos pode ser considerado como uma atividade, a qual est totalmente interligada e interage com as atividades de Engenharia de Domnio e de Engenharia de Aplicao, apoiando a criao e a e evoluo do core assets e dos produtos (NORTHROP e CLEMENTS, 2007). Segundo Schmid e John (2004) o gerenciamento de variabilidade uma preocupao que surge em todas as fases do ciclo de vida da SPLE, sendo a principal caracterstica que a distingue o paradigma de SPL das outras abordagens. A Figura 6, a seguir, mostra o processo de gerenciamento de variabilidade de acordo com Burgareli (2009). Ela mostra como os artefatos de entrada (por exemplo, documento de requisitos) so processados em subfases (identificao,

especificao e implementao). Como sada, tem-se um modelo com a variabilidade implementada, por exemplo, feature model.

30

Figura 6: Processo de gerenciamento de variabilidade. Fonte: (BURGARELI, 2009, p. 131)

Ao longo dos anos, muitas abordagens para o gerenciamento de variabilidade foram levantadas a fim de padronizar e garantir a eficincia do desenvolvimento da SPLE. A Figura 7 mostra a evoluo cronolgica e os relacionamentos entre as principais abordagens, de onde se originaram. A pesquisa realizada por Chen et. al. (2009) retrata parte das diferentes abordagens existentes. O mtodo Feature-Oriented Domain Analysis FODA (KANG, 1990), por ser uns dos primeiros a tratar a anlise do domnio, inclusive na

31

representao da variabilidade dos requisitos, tem sido utilizado como base para abordagens como FORM, FDL entre outras. Seu mtodo sofreu aprimoramentos ao longo dos anos e ainda a base de pesquisas atuais. O FODA trata a anlise de domnio atravs de features. Esta grande quantidade de abordagens, porm, acaba por dificultar sua utilizao, uma vez que o interessado deve pesquisar com maiores detalhes e analisar cada uma delas a fim de identificar a que melhor se adapta ao seu perfil.

Figura 7: Principais abordagens de gerenciamento de variabilidade. (CHEN et. al., 2009)

De uma maneira geral, estas abordagens foram desenvolvidas para tratar problemas especficos, baseados em experincias pelas quais os autores passaram. Tais experincias trouxeram consigo diferentes notaes, tcnicas e ferramentas utilizadas no gerenciamento da variabilidade dos requisistos. Trataremos alguns deles a seguir:

2.4.1.1.

Notaes

Notao a forma como so representados os core assets. Djebbi e Salinesi (2006) relatam em sua experincia, divergncias nas terminologias e nos processos, e a no padronizao nas notaes.

32

Existem vrias formas de representar a variabilidade dos requisitos, de acordo com a abordagem adotada: casos de uso, classes UML 6, aspectos, servios e features. Sendo este ltimo utilizado pela maioria das metodologias. A Tabela 1 mostra as principais formas de representao grfica do gerenciamento de variabilidade, de acordo com reviso sistemtica de literatura realizada por Chen et. al. (2009b). importante que haja independncia de notao e customizao, a fim de facilitar sua adoo. Uma das primeiras notaes grficas foi introduzida pelo mtodo FODA (KANG, 1990). Nele, permite-se a representao de features obrigatrias, opcionais e alternativas e suas diversas relaes com as variantes domnio, no somente dos requisitos mas tambm da arquitetura e implementao. Mais tarde, esta notao foi integrada a outros processos, como o Feature-Oriented Reuse Method - FORM (GRISS, 1998) e outros, apresentados na Figura 7.
Tabela 1: Principais formas de representao do gerenciamento de variabilidade

Nome Modelo de Feature Usando UML e sua extensibilidade Variabilidade expressa como parte de uma tcnica que modela a arquitetura do sistema Usando linguagem natural Variabilidade expressa como parte de uma tcnica que modela os componentes do sistema X-frames organizados em camadas hierrquicas Linguagem de domnio especfico Tcnicas formais com base em matemtica Tcnicas baseadas em ontologias Soluo a partir da perspectiva de orientao a aspectos Gerenciamento de variabilidade ortogonal Gerncia de configurao baseado em modelagens Usando tcnicas de visualizao da informao
Fonte: (CHEN et. al., 2009b)

Nessa integrao, as construes bsicas da notao permaneceram inalteradas, entretanto algumas representaes grficas eram diferentes do proposto

Linguagem unificada de modelagem - Unified Modeling Language Specification, Version 2.0 (Final Adopted Specification, ptc/03-02-08), 2003, www.omg.org/cgi-bin/doc?ptc/2003-08-02, acessado em 15/04/2011 s 02:32.

33

pelo mtodo FODA, devido aos novos problemas encontrados e novas tecnologias que surgiram. Svahnberg et al. (2001), estenderam a notao de Griss (1998) com algumas novas construes. Foi acrescentada a possibilidade de expressar o tempo de ligao, ou seja, o momento em que uma feature especfica realmente selecionada para ser includa em um produto. Isto resultou em reduo dos esforos de desenvolvimento e da ociosidade da SPL, e foi introduzida uma nova categoria de features: features externas (features oferecidas por uma plataforma alvo de um sistema). Entretanto, a aplicabilidade de todas essas notaes limitada pelo fato de que muitas delas necessitam de ferramentas de modelagem para fins especficos, como a representao da cardinalidade em UML. Neste trabalho, as ferramentas so apresentadas, especificando o modelo de notao aos quais elas do suporte. 2.4.1.2. Tcnicas

A adoo de tcnicas de visualizao da variabilidade dos requisitos pode ajudar os colaboradores a apoiar tarefas essenciais da SPL, como a Engenharia de Requisitos do Domnio, e reforar na compreenso do funcionamento e potencial da SPLE. A seguir so apresentadas algumas tcnicas adotadas no funcionamento do gerenciamento de variabilidade dentro da Engenharia de Requisitos do Domnio. De acordo com Eberlein (2002) as tcnicas do SSD em muito assemelham-se com as da SPL, porm nesta ltima, existem preocupaes relacionadas a outros aspectos com respeito a variabilidade, similaridade, rastreabilidade, entre outros. A Figura 8, a seguir, apresenta algumas tcnicas utilizadas no gerenciamento dos requisitos de acordo com Eberlein (2002).

34

Figura 8: Tcnicas de Gerenciamento dos requisitos. Adaptada (EBERLEIN, 2002)

Com todas essas atividades, os requisitos podem ser gerenciados de forma muito eficiente com o apoio das ferramentas adequadas. possvel gerenciar vrios documentos, modelos e outros artefatos dos produtos e da plataforma sem muito esforo. Alm das mudanas nos requisitos, que podem ser facilmente geridas atravs de tcnicas de controle de verso. Na prxima seo, ser conhecido os aspectos que levam adoo de ferramentas para apoiar o gerenciamento de variabilidade dentro da Engenharia de Requisitos do Domnio.

2.4.1.3.

Ferramentas

Na Engenharia de Requisitos do Domnio, a visualizao do modelo de variabilidade fundamental para a aplicao em produtos, na evoluo da plataforma, no apoio ao rastreabilidade, entre outras.

35

A visualizao da rvore de variabilidade, junto com o modelo de deciso e dos componentes, facilita o entendimento dos stakeholders 7no processo de deciso e na configurao do produto escolhido (BOTTERWECK, 2008, p. 2). Portanto, a usabilidade deve ser um atributo a ser levado em considerao em uma ferramenta. H uma tendncia a problemas de compreenso do funcionamento da SPLE, tanto por parte dos clientes, como por engenheiros de software tambm. Isso se deve a fatores como:

A complexidade dos relacionamentos entre core assets. As fases do desenvolvimento da plataforma (Engenharia de requisitos do domnio, Projeto do domnio, entre outras). Os subprocessos destas fases acima. As inmeras abordagens para aplicao da SPLE Entre outros.

O gerenciamento das variaes deve ser apoiado por ferramentas automatizadas, que apiem os diversos recursos da SPLE. Como, por exemplo, a identificao de onde h exigncias ou existncia da aplicao da rastreabilidade, entre outros. Algumas abordagens podem acabar por exigirem o apoio de uma ferramenta adequada sua forma. Beuche et. al. (2003), relata alguns fatores a serem considerados em uma ferramenta, ou um conjunto delas, para que apiem o processo de gerenciamento de variabilidade como um todo. So elas:

Fcil, e com modelos universais para representar como as variabilidades e similaridades devem ser apoiadas. A variabilidade deve ser gerenciada em todos os nveis. A introduo de novas tcnicas de expressar a variabilidade deve ser possvel e fcil.

Pessoas interessadas no projeto (clientes, usurios finais, gerentes, programadores, entre outros).

36

Como a maioria das abordagens utiliza features como notao, sua representao normalmente compreendida. Porm, a descrio grfica das caractersticas das features requer ferramentas especiais para melhor entendimento. Fica mostrado que inmeras variveis esto envolvidas no contexto das ferramentas que apoiam o gerenciamento de variabilidade dos requisitos: manuteno, implementao, usabilidade. No Captulo 4 apresentada uma anlise das principais ferramentas que apoiam o gerenciamento de variabilidade dentro da Engenharia de Requisitos do Domnio, levando em considerao questes importantes surgidas ao logo dessa pesquisa, como notaes, tcnicas, abordagens apoiadas pelas ferramentas, entre outros aspectos.

37

3.

METODOLOGIA

Neste captulo, descrito como a pesquisa ser realizada atravs da descrio da natureza da pesquisa, da forma de abordagem, quanto aos objetivos, e aos procedimentos tcnicos. Ou seja, ser descrita a metodologia utilizada neste trabalho. Segundo Silva (2006) metodologia cientifica um conjunto de processos e operaes mentais que se deve empregar nas investigaes. a linha de raciocnio adotada no processo de pesquisa, que para uma pesquisa seja efetuada necessrio um conjunto de procedimentos intelectuais e tcnicos.

3.1.

Natureza da pesquisa A natureza da pesquisa pode ser classificada quanto aos fins, quantos aos

meios e quanto forma de abordagem. Segundo Silva (2006), a pesquisa cientfica caracteriza-se pelo esforo ordenado de explicar ou compreender dos dados encontrados.

3.1.1. Quanto aos fins A pesquisa que ser realizada neste trabalho classificada, quanto aos fins, como exploratria e descritiva. Segundo Honorato (2004, p.96), a pesquisa exploratria a pesquisa que tem como principal objetivo descobrir ideias, percepes, gerar hipteses mais precisas para um estudo aprofundado. realizada neste trabalho pela reviso de literatura. De acordo com Andrade (2006), na pesquisa descritiva o pesquisador observa, registra, analisa, classifica e interpreta os fatos sem interferir neles. realizada neste trabalho a partir da anlise das ferramentas. 3.1.2. Quanto aos meios A pesquisa que realizada neste trabalho classificada, quanto aos meios, como bibliogrfica, a qual fornecer o embasamento terico para o estudo, proporcionando mais familiaridade com o tema. Segundo Silva (2006) uma pesquisa

38

bibliogrfica

elaborada

partir

de

material

publicado,

constituindo

principalmente de livros, artigos de peridicos e atualmente com material disponibilizado na internet. 3.1.3. Formas de abordagem Quanto forma de abordagem, a pesquisa essencialmente qualitativa. Segundo Reis (2008, p.57), a pesquisa qualitativa tem como objetivo interpretar e dar significados aos fenmenos analisados. Nesta abordagem, os resultados no so traduzidos em nmeros (...) ou categorias homogneas. 3.2. Anlise dos dados A anlise dos dados realizada da seguinte maneira: Selecionar ferramentas a partir do trabalho de Lisboa (2008) A dissertao de Liana Lisboa, cujo ttulo ToolDAy A Tool for Domain Analysis foi realizada a partir de uma reviso sistemtica de literatura sobre ferramentas para Anlise de Domnio em SPL. Entre as ferramentas encontradas por Lisboa durante a reviso sistemtica de literatura, sero selecionadas aquelas que dem suporte ao gerenciamento de variabilidade dos requisitos. Este trabalho foi escolhido devido sua completude, no que se refere s ferramentas encontradas. Pesquisar ferramentas para Engenharia de Requisitos em SPL As ferramentas sero pesquisadas no site de buscas Google 8 e em bibliotecas cientficas, entre as quais: Association for Computing Machinery (ACM)9, Scientific Eletronic Library Online (SciELO)10, Institute of Electrical and Electronic Engineers (IEEE Xplore)11. Com foco em trabalhos posteriores a 2007, assemelhando-se em alguns pontos com o protocolo de pesquisa de Reviso Sistemtica de Literatura. Uma vez que o conjunto de ferramentas encontrado por Lisboa ser utilizada como base para este trabalho
8 9

http://www.google.com.br/ http://portal.acm.org/ 10 http://www.scielo.org/php/index.php 11 http://ieeexplore.ieee.org/

39

Relacionar ferramentas as ferramentas encontradas (a partir do trabalho de Lisboa e pela pesquisa) sero mais profundamente estudadas e, em seguida, relacionadas com os seguintes dados: Nome, Autor(es), Tipo de Licena, Background, Disponibilidade do Cdigo, Ano, Tipo e Abordagem em que se baseia.

Analisar documentao das ferramentas e catalogar funcionalidades As funcionalidades das ferramentas encontradas para gerenciamento de variabilidade dos requisitos sero listadas a partir da anlise da

documentao disponvel. Propor funcionalidades Por fim, funcionalidades complementares, que no foram listadas nas ferramentas analisadas, tambm podero ser propostas.

40

4.

UM

ESTUDO

SOBRE

GERENCIAMENTO

DE

VARIABILIDADE

DE

REQUISITOS EM LINHA DE PRODUTOS DE SOFTWARE Neste captulo, ser exposto o processo realizado para a execuo deste trabalho. Inicialmente ser descrita a pesquisa das ferramentas e as caractersticas de cada uma delas e, em seguida, sero listadas suas funcionalidades.

4.1.

Resultado das Pesquisas A pesquisa retornou 244 resultados (Anexo 1). No entanto, a fim de delimitar

e refinar tais resultados, foram includos somente trabalhos publicados a partir de 2007, uma vez que este estudo tambm se utiliza do resultado da reviso sistemtica sobre ferramentas de Anlise de Domnio realizada por Lisboa (2008). O refinamento foi realizado inicialmente pela leitura dos ttulos. Aps esta etapa, outros trabalhos foram excludos pela leitura do resumo. Aps estes passos, restaram 59 trabalhos, considerados relevantes para o domnio desta pesquisa. A Figura 9, abaixo, mostra a quantidade de trabalhos resultantes aps a execuo de cada uma destas etapas.

244 65 62 59 59

Trabalhos retornados aps as buscas nas bases cientficas Trabalhos selecionados aps a leitura do ttulo Trabalhos selecionados aps a excluso dos repetidos Trabalhos selecionados aps a leitura dos resumos Trabalhos selecionados para leitura completa

Figura 9: Nmero de trabalhos selecionados para leitura completa

41

Alm das pesquisas com as strings de buscas nas bases cientficas (Anexo 1) pesquisas espordicas foram realizadas no Google. A Figura 10 mostra a quantidade de trabalhos selecionados para leitura em cada base cientfica pesquisada e no buscador Google.

Trabalhos selecionados para leitura


60 50 40 30 20 10 1 0 ACM IEEE Science Direct Scopus Google 10 2 24 46

Figura 10: Nmero de trabalhos por base cientfica

4.1.1. Critrios de Seleo das Ferramentas Uma vez selecionados os principais trabalhos faz-se necessrio adotar critrios para seleo das ferramentas, visando alcanar o objetivo geral desta pesquisa, que focado na Engenharia de Requisitos do Domnio. Os critrios esto descritos a seguir.

Critrios de incluso: Os critrios estabelecidos para incluso das ferramentas encontradas para a anlise: o Ferramentas que apoiam a fase de Engenharia de Requisitos do Domnio com alguma funcionalidade. o Ferramentas com a documentao de suas funcionalidades ou caractersticas.

42

Estes critrios devem estar presentes em todas as ferramentas encontradas na pesquisa, tendo em vista o grande nmero de ferramentas retornado.

Critrios de excluso: Os critrios estabelecidos para excluso das ferramentas encontradas para a anlise: o Ferramentas que apoiam outras fases da SPL que no a fase de Engenharia de Requisitos do Domnio o Ferramentas que servem de suporte somente para gerenciamento de variabilidade, no apoiando as tarefas da Engenharia de Requisitos. o Ferramentas sem documentao que trate de suas funcionalidades ou caractersticas.

Os critrios foram aplicados aps a leitura completa da documentao ou referncia da ferramenta, quando encontrados. Nas prximas sees apresentado as caractersticas e funcionalidades relevantes das principais ferramentas, observando os critrios acima.

4.2. Investigao das Ferramentas Nesta seo, so apresentadas as ferramentas selecionadas as quais contm as funcionalidades relevantes na Engenharia de Requisitos de Domnio.

4.2.1. Ferramentas Selecionadas Aps a realizao da pesquisa, foram encontradas 20 ferramentas que apiam direta ou indiretamente o Gerenciamento de Variabilidade na Engenharia de Requisitos do Domnio, observando os critrios levantados na seo 4.1.1. Uma sntese destas ferramentas e suas funcionalidades so mostradas a seguir, na Tabela 2.

43

Tabela 2: Informaes das Ferramentas

Nome ArborCraft

Tipo de licena Gratuito

Background Plugin

Cdigo Fonte No disponvel No disponvel No disponvel No disponvel No disponvel No disponvel No disponvel OpenSource No disponvel No disponvel OpenSource No disponvel OpenSource No disponvel No disponvel No disponvel No disponvel OpenSource No disponvel OpenSource

Ano 2008

Tipo Acadmico

Abordagem Baseada Processo orientado a features Processo prprio Pohl et al. (2005) Processo genrico Processo prprio Processo orientado a features Processo orientado a features Processo orientado a features Processo prprio ModelDriven FODA

Domain Doors

No disponvel Comercial

Stand-alone Stand-alone

1995 2005

Industrial Acadmico e Industrial Industrial Acadmico Acadmico

Doppler Dream EA-Miner

Comercial Comercial Gratuito

Plugin Stand-alone Plugin

2008 2005 2007

FAMILIAR

No disponvel Gratuito

Plugin

2011

Acadmico

FeatureIDE

Plugin

2007

Acadmico e Industrial Industrial Acadmico Acadmico

Gears MD-SPL Feature Modeling Plug-in Odyssey OpenOME Pluss Pure:variants ReqSys

Comercial Gratuito Gratuito

Stand-alone Plugin Plugin

2010 2009 2004

Gratuito Gratuito Comercial Comercial e Gratuito No disponvel Gratuito Gratuito

Stand-alone Plugin No disponvel Plugin Plugin

2002 2005 2006 2008 2011

Acadmico Acadmico Acadmico e Industrial Acadmico e Industrial Acadmico

Processo prprio FODA PLUS Extenso do FODA Processo orientado a features FODA Processo orientado a features Processo orientado a features Processo genrico

Requiline SPLOT

Stand-alone Online

2005 2011

Acadmico Acadmico

ToolDAy

Comercial

Stand-alone

2008

Acadmico e Industrial Acadmico

XVCL

Gratuito

Plugin

2009

44

4.2.2. Caractersticas das Ferramentas As funcionalidades e caractersticas selecionadas por este estudo foram escolhidas aps a leitura completa dos trabalhos. Alm disto, os nomes de ferramentas citadas nos trabalhos foram pesquisados tanto nas bases cientficas utilizadas (j citadas na seo 4.2), quanto no tradicional mtodo de busca Google, a fim de encontrar a documentao referida das mesmas. A seguir, uma breve descrio das principais caractersticas selecionadas para anlise desta pesquisa.

Notao por XML: Representao dos requisitos no formato de XML. Essa caracterstica facilita a implantao da rastreabilidade. Notao por UML: Representao dos requisitos no formato de UML. Esse formato bastante utilizado na indstria, o que facilita adoo por parte dos envolvidos.

Notao por feature model: Esse modelo o mais antigo (KANG, 1990) e bastante utilizado pela maioria das abordagens e ferramentas, devido sua eficcia em representar a variabilidade dos requisitos.

Notao de Servios: Uma notao moderna. Poucas abordagens e ferramentas tratam especificamente sobre requisitos em uma SPL orientada a servios.

Notao de Aspectos: Representao de requisitos em forma de conjunto (aspectos). Suporte a outros processos: Existem outras notaes criadas para atender necessidades especficas, ou extenses de abordagens clssicas, conforme explanado em Chen (2009).

A Tabela 3, a seguir, mostra as ferramentas selecionadas, apontando suas caractersticas.

Tabela 3: Ferramentas e suas caractersticas

Feature Modeling Plug-in

Ferramentas FeatureIDE FAMILIAR ArborCraft EA-Miner

Pure:variants

OpenOME

Requiline

Odyssey

Notao por XML Notao por UML Notao por features models Notao de Aspectos Notao de Servios Suporte a outros processos

XVCL

Caracterticas

ToolDAy

MD-SPL

Doppler

ReqSys

Domain

SPLOT

Dream

Gears

Doors

Pluss

46

4.2.3. Funcionalidades das Ferramentas Aps a anlise das ferramentas, as funcionalidades mais relevantes foram selecionadas para anlise. Para esta seleo foram observados os critrios estabelecidos na seo 4.1.1. A seguir dada uma breve descrio destas funcionalidades.

Identificao Automtica de Variantes: Esta funcionalidade permite que, atravs da anlise lxica e semntica do documento de requisitos, seja gerada a rvore de features com suas dependncias, tipos e classificao. A identificao de potenciais variabilidades dentro do documento de requisitos acontece na interpretao do mesmo, por meio de padres de escrita, como RDL12, por exemplo.

Identificao de Variantes: a base para identificao dos requisitos. Define o que comum e o que especfico da plataforma. Tipos das Variantes: Uma extenso do ponto anterior. Trata da observao dos tipos, nveis e classificao, tomando por base os critrios de cada um deles, pesquisados na seo 2.2.

Modelo de Deciso: Suporte seleo de quais requisitos sero usados no produto derivado. Tratamento de RNF: Especificao dos Requisitos No Funcionais. Checagem de consistncia: Aps a seleo dos requisitos, checar se os mesmos esto conforme as regras estabelecidas no modelo geral (isto , o feature model).

Rastreabilidade: Muitos aspectos devem levar considerao este ponto. Por exemplo, a criao do feature model, a partir do documento de requisitos; a gerao automtica de componentes da arquitetura, entre outros artefatos da plataforma.

Tcnicas de Modelagem: A utilizao de tcnicas de modelagem para representar o escopo d uma viso geral das variaes do domnio. Podendo ser usados para isto tabelas, rvores, modelos, entre outros.

12

Requirements Description Language padro de escrita de requisitos que facilita a gerao de artefatos em ferramentas.

47

Features

por

Requisitos

em

Linguagem

Natural:

Os

requisitos

representados em linguagem natural facilitam o entendimento por parte dos clientes, no momento da seleo dos requisitos. Hierarquia de Variantes: Forma de representar o quanto os requisitos dependem de outros e como esto relacionados. Operaes em Variantes: Operaes bsicas de cadastro, alterao, remoo, possibilitando operaes de dependncia, atribuies, construo de rvores entre outras. Composio de Variantes: Conforme a evoluo ou alteraes necessrias, fazer a composio entre duas ou mais variantes. Cardinalidade nas Variantes: Oferecer diferentes tipos de relaes entre as variantes. Como composio, generalizao / especificao e implementao.

A Tabela 4, a seguir, mostra as ferramentas selecionadas e as funcionalidades de cada uma delas.

Tabela 4: Ferramentas e suas funcionalidades

Feature Modeling Plug-in

Ferramentas FeatureIDE

Pure:variants

OpenOME

ToolDAy

ArborCraft

FAMILIAR

Doppler

EA-Miner

Requiline

Odyssey

MD-SPL

ReqSys

Domain

Gears

SPLOT

Dream

Doors

Identificao Automtica de Variantes Identificao de Variantes Modelo de Deciso Tratamento de RNF Checagem de consistncia Rastreabilidade Tcnicas de Modelagem Variantes por Requisitos em Linguagem Natural Hierarquia de Variantes Tipos de Variantes Operaes em Variantes Composio de Variantes Cardinalidade nas Variantes

Pluss

Funcionalidades

XVCL

49

4.3.

Proposta Alm das funcionalidades encontradas durante a pesquisa, as quais foram

descritas na Tabela 4, algumas novas funcionalidades, aprimoramentos e critrio de usabilidade foram sugeridos pelo autor desde trabalho. Estas porpostas foram sugeridas a parpltir da observao das necessidades da Engenharia de Requisitos do Domnio, observadas aps a leitura dos artigos selecionados. As Tabelas 5, 6 e 7, a seguir, mostram este levantamento:

Tabela 5: Funcionalidades propostas

Funcionalidade Aprimoramentos da checagem de consistncias

Descrio No monitoramento das variantes, podem ocorrer repeties e/ou clones de requisitos, estando descritos diferentes, mas realizando a mesma tarefa. Especialmente em SPL, com processo orientado a features, isto causa problemas em features alternativas. Uma das solues para isto est no refatoramento das variantes que esto com esse comportamento.

Dinamicidade dos requisitos Representao de todos os requisitos da plataforma Controle de mudanas dos requisitos

Possibilidade de alterao nas formas (mandatria, opcional, etc.) das variantes. Um modelo representativo sob diferentes perspectivas (clientes, arquitetos, programadores) a fim de facilitar a compreenso do que est disponvel, ou do que se deseja ou precisa. Algumas modificaes que podem surgir ao longo da evoluo da plataforma, alterando assim o estado dos requisitos existentes e incluso de novos requisitos, operaes do tipo: Novo requisito, alterar requisito, apagar requisito, definir como oculto, definir com especfico, definir como em desuso. Suporte evoluo da plataforma, representando as alteraes das variantes ao longo dos anos, bem como os novos requisitos que foram includos na plataforma.

Evoluo

Composio das variantes dos requisitos

Dependendo da abordagem adotada, um componente, um aspecto ou servio, podem compor um conjunto de componentes, aspectos ou servios.

SPL orientada a servios

Neste caso, trataremos alguns pontos especficos deste contexto: Operaes de parametrizao para controle de quais variantes estaro ativas na aplicao dos servios em cada produto. Descrio da composio dos requisitos que esto presentes em cada servio. A forma de modelagem especfica dos tipos de variveis nesse ambiente e seus relacionamentos.

50

Alm das funcionalidades descritas anteriormente, que so intrnsecas Engenharia de Requisitos do Domino, sob suas direfente formas de abordagem, a seguir apresentaremos algumas funcionalidades e caracterscas complementares.
Tabela 6: Funcionalidades complementares propostas

Funcionalidade Automatizao

Descrio Identificao automtica das caractersticas das variantes, a partir da anlise lxica e semntica. Gerao de cdigo a partir da interpretao dos atributos dos requisitos.

Medio de esforo

Estimativa de tempo

Deteco de requisitos em desuso Suporte a evoluo

A anlise da complexidade na qual o requisito est inserido: a partir da anlise da quantidade de atributos, relacionamentos, tempo de vida, entre outros. Na derivao de produtos, calcular a estimativa de tempo, levando em considerao a quantidade dos novos requisitos especficos da aplicao e os j existentes na plataforma. Ao longo tempo, monitorar a utilizao dos requisitos e alertar sobre a no utilizao ou pouca utilizao dos mesmos. Ao longo da evoluo, tratar das features em desuso na plataforma, com resoluo de conflitos no modelo aps excluso das mesmas Realizar checagem de impacto, no esforo de manuteno, financeiro, entre outros, quanto insero, modificao, excluso de uma ou mais variantes.

Anlise de impacto

A seguir, a proposta tambm dos critrios de usabilidade, os quais visam proporcionar um ambiente mais fcil e intuitivo para os usurios da ferramenta. Os requisitos identificados esto detalhados a seguir:
Tabela 7: Critrios de usabilidade

Critrio Interface amigvel

Descrio Fornecer uma interface amigvel e intuitiva sobre os requisitos disponveis na ferramenta. Fornecer uma explicao detalhada das funcionalidades da ferramenta

Help/Manual

Importar/Exportar

Funes de importao e exportao, gerando arquivos do tipo XML, XMI, PDF, XLS entre outros, e permitindo a visualizao dos dados em outras ferramentas.

51

4.4.

Trabalhos Relacionados Embora a anlise sobre gerenciamento de variabilidade tenha sido objeto de

estudo de outros trabalhos, poucos autores tm lidado especificamente com as ferramentas que do suporte Engenharia de Requisitos no contexto da SPL. Este trabalho est relacionado dissertao de Lisboa (2008) que trata das ferramentas que apoiam a Anlise de Domnio, a qual serviu de fonte para a realizao do presente estudo. Alm deste, outros trabalhos foram relevantes e adequados dentro da temtica pesquisada. Como exemplos, podemos citar a pesquisa de Khurum e Gorschek (2009), que realizaram uma Reviso Sistemtica da Literatura sobre as ferramentas de suporte anlise de domnio em SPL; Vrias ferramentas que apoiam a Engenharia de Requisitos do Domnio foram identificadas durante esta pesquisa, conforme descrito no captulo 4, e suas anlises serviram para o desenvolvimento da tabela de funcionalidades. Porm novas necessidades podem surgir ao longo tempo, culminando em novas caractersticas e funcionalidades.

52

5.

CONSIDERAES FINAIS Neste trabalho foram apresentados insumos para um estudo sobre o

gerenciamento de variabilidade dos requisitos em Linha de Produtos de Software. A fim responder a indagao: Quais so as principais caractersticas e funcionalidades que devem compor uma ferramenta que apoie efetivamente o Gerenciamento de Variabilidade de Requisitos do Domnio em Linha de Produtos de Software? No desenvolvimento, foram relatados alguns conceitos-chave envolvidos na SPL como core assets, plataforma, domnio, features entre outros. Aps uma breve contextualizao envolvendo os processos de gerenciamento de variabilidade de requisitos, foram mostradas as principais notaes e tcnicas envolvidas no contexto da Engenharia de Requisitos do Domnio. Por fim, foi apresentada uma anlise das principais ferramentas e proposto um conjunto de funcionalidades e caractersticas, a fim propor recursos para o desenvolvimento de solues mais abrangentes e adequadas para o problema da Engenharia de Requisitos na SPLE.

5.1.

Limitaes Nesta seo, so mostrados os pontos do trabalho que de alguma forma,

limitam a pesquisa. So eles: Escassez de materiais que discutem explicitamente, a utilizao de tcnicas para a Engenharia de Requisitos no paradigma da SPL. A dependncia dos estudos publicados. A presente pesquisa ficou restrita aos dados reportados nos trabalhos encontrados, no tendo utilizado outras fontes, tais como questionrios ou entrevistas. A quantidade de ferramentas. Mesmo com o alto nmero de ferramentas, estas no davam suporte a todas as atividades necessrias para a execuo efetiva da Engenharia de Requisitos. Boa parte destas ferramentas atendia a apenas uma necessidade especfica. Grande quantidade de abordagens, que tratam com notaes de diferentes tipos, limitando a utilizao das ferramentas.

53

O surgimento de novas formas (notaes, tcnicas, mtodos), limita o resultado dessa pesquisa, uma vez que as ferramentas devero ter novas funcionalidades e caractersticas que demandam o desenvolvimento de novas solues. O presente trabalho, porm, serve com base para evoluo das mesmas. 5.2. Lies Aprendidas Vrios conhecimentos e experincias foram adquiridos ao longo do desenvolvimento desta pesquisa. Durante a pesquisa, diferentes formas foram encontradas de lidar com Engenharia de Requisitos, mesmo com a grande maioria utilizando o feature model para represent-la, outras formas so utilizadas para entender a necessidade especfica de cada interessado. Portanto, a realizao da SPLE pode ser utilizada sob diferentes perspectivas de como empregar a Engenharia de Requisitos. A seo de Recomendaes para trabalhos futuros das pesquisas selecionadas serviram de inspirao para a construo da tabela de funcionalidades propostas, que poder servir como base no desenvolvimento de novas solues. Um conjunto de funcionalidades e caractersticas, consistentes com as necessidades no mbito dos projetos de software modernos, foi construdo para facilitar as atividades no contexto da Engenharia de Requisitos do Domnio.

5.3.

Recomendaes para trabalhos futuros A principal recomendao para trabalhos futuros o desenvolvimento de

ferramentas que atendam s necessidades observadas durante a pesquisa. Vrias solues podem ser desenvolvidas, de acordo com as novas perspectivas de adoo da SPL, sejam orientadas a servios, orientadas a aspectos ou novas abordagens de tratamento dos componentes. No entanto, as ferramentas open-source selecionadas nesta pesquisa podem ser estudadas e implementadas novas funcionalidades, observando as propostas sugeridas. Alm disto, outras funcionalidades que deem suporte a novas tecnologias e modelos poderiam ser implementados para novas abordagens de SPL, a partir de uma especificao nova de tratamento da variabilidade dos requisitos.

54

Esta pesquisa ainda pode evoluir para outras reas envolvidas no ciclo de desenvolvimento da SPL, como arquitetura, realizao e testes, tanto na Engenharia de Domnio, como na Engenharia de Aplicao.

55

6.

REFERNCIAS

BACHMANN, F. e CLEMENTS, P., Variability in Software Product Lines, Software Engineering Institute, Pittsburgh, USA, Technical Report CMU/SEI-2005-TR-012, 2005.

BERGEY, J; Fisher, M; GALLAGHER, B; JONES, L; NORTHROP, L: Basic Concepts of Product Line Practice for the DoD. Technical Note CMU/SEI-2000TN-001. Carnegie Mellon University., 2000. BEUCHE, D.; HOLGER, P.; WOLFGANG S. P.. Variability Management with Feature Models. In Proceedings of the Software Variability Management Workshop, pages 7283, University of Groningen, The Netherlands. Technical Report IWI 20037-01, February 2003.

BOTTERWECK, G.; Thiel, S.; NESTOR, D.; SAAD, bin A.; CAWLEY C.; Visual Tool Support for Configuring and Understanding Software Product Lines, Lero, The Irish Software Engineering Research Centre, 2008.

BURGARELI L. K, Gerenciamento de Variabilidade de Linha De Produtos de Software com Utilizao de Objetos Adaptveis e Reflexo, Tese de doutorado, Escola Politcnica da Universidade de So Paulo ,So Paulo, 2009.

CHEN, Lianping; MUHAMMAD, Ali Babar, CAWLEY Ciaran; A Status Report on the Evaluation of Variability Management Approaches Lero, the Irish Software Engineering Research Centre, University of Limerick, Ireland, 2009b.

CHEN, Lianping; MUHAMMAD, Ali Babar, NOUR, Ali; Variability Management in Software Product Lines: A Systematic Review SPLC '09 Proceedings of the 13th International Software Product Line Conference Carnegie Mellon University Pittsburgh, PA, USA, 2009.

CLEMENTS P. e NORTHROP L., Software Product Lines: Practices and Patterns, Addison-Wesley, pp. 608, 2001.

56

CZARNECKI, K.; EISENECKER, U.W. Generative Programming: Methods, Techniques, and Applications. Canada: Addison -Wesley, 2005. DJEBBI, O e SALINESI, C.; Criteria for Comparing Requirements Variability Modeling Notations for Product Lines, In: Comparative Evaluation in

Requirements Engineering, 2006. CERE '06, 2006.

EBERLEIN, Chethana Kuloor Armin, Requirements Engineering for Software Product Lines, The University of Calgary, 2500 University Drive, N.W, Calgary, Alberta, Canada, 2002. GRISS, M.; FAVARO, J.; DALLESSANDRO, M. Integrating Feature Modeling with the RSEB. Proceedings of Fifth International Conference on Software Reuse (ICSR5), Victoria, Canada, pp. 76-85, June 1998.

HABERMANN, A. N.; FLON, L.; COOPRIDER, L.; Modularization and Hierarchy in a Family of Operating Systems. Communications of the ACM, 19(5):266272, 1976.

HONORATO, Gilson. Conhecendo o Marketing. Manole: Barueri, 2004. KANG K., COHEN S., HESS J., NOVAK W., PETERSON A., Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical report, CMU/SEI-90-TR021, November 1990

KHURUM, M.; GORSCHEK, T.; A systematic review of domain analysis solutions for product lines, Journal of Systems and Software 82, 2009.

LINDEN, Van der; FRANK J., SCHMID, Klaus; ROMMES, Eelco. Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering, Springer-Verlag Berlin Heidelberg, pp. 26, 2007.

LISBOA, L.B.; GARCIA, V.C.; LUCRDIO, D.; ALMEIDA, E.S. de; MEIRA, S.R.L; Fortes, R.P.M.; A systematic review of domain analysis tools, Information and Software Technology 52, 1 - 13, 2010.

57

MACHADO, P. e SAMPAIO, A. Automatic Test-Case Generation, Testing Techniques in Software Engineering, Second Pernambuco Summer School on Software Engineering, Recife, Brasil, 2007.

NEIGHBORS, J. M. The Draco Approach to Constructing Software from Reusable Components. IEEE Transactions on Software Engineering, 10(5):564 573, Sept. 1984.

NEIVA, D.F.S., RiPLE-RE: A Requirements Engineering Process for Software Product Lines, M.Sc. Dissertao, Universidade Federal de Pernambuco, Brasil, 2009.

NORTHROP, L. M. e CLEMENTS, P.C. A Framework for Software Product Line Practice. Version 5.0. Pittsburg. Software Engineering Institute, 2007. Disponvel em: < http://www.sei.cmu.edu/productlines/framework.html >. Acesso em: 28 fev. 2010 s 10:24. PARNAS, D. L. Designing Software for Ease of Extension and Contraction. IEEE Transactions on Software Engineering 5, 2, p. 128138, 1979.

PARNAS, D. L. On the Design and Development of Program Families. IEEE Transactions on Software Engineering, SE- 5(2):19, 1976.

POHL, K.; BCKLE, G.; VAN DER LINDEN, F.: Software Product Line Engineering Foundations, Principles, and Techniques. Springer, Heidelberg 2005.

REIS, Linda G.. Produo de monografia: da teoria prtica. 2 Edio. Senac: Braslia, 2008.

SCHMID, K.; e JOHN, I.; A Customizable Approach to Full Lifecycle Variability Management, Sci. Comput. Program.,vol. 53, pp. 259-284, 2004.

58

SOMMERVILLE, I. e KOTONYA, G. Requirements Engineering: Processes and Techniques. John Wiley e Son Ltd. 1998.

SOMMERVILLE, Ian; Software Engineering, Eighth Edition, Pearson Education Limited, Republica da China, excluindo Hong Kong, Macau, and Taiwan, 2007 SVAHNBERG M. e BOSCH J.; Issues Conserning Variability in Software Product Lines. In Development and Evolution of Software Architectures for Product Families, Proceedings of International Workshop IW-SAPF- 3, Vol 1429 of Lecture Notes in Computer Science, Springer, March 2000, pages 146-157, 2000.

SVAHNBERG, M.; VAN GURP J.; BOSCH J.; Research report: On the Notion of Variability in Software Product Lines. Blekinge Institute of Technology Research Report 2000:2, ISSN: 1103-1581, 2001.

WEISS, D.; CHI TAU, R. L. Software product-line engineering: a family-based software development process. Boston: Addison-Wesley, 1999.

59

ANEXO 1 BUSCA NAS BASES CIENTFICAS Base 1: http://www.scopus.com Data da busca: 10/05/2011 Strings utilizada: (("software product line") OR ("product families")) AND ("tool") AND ("variability management") AND ("requirements") AND ("domain engineering") Resultados: 10 Aps excluso pelo ttulo: 4 Base 2: http://search.scielo.org/ Data da busca: 10/05/2011 Strings utilizadas: (("software product line") OR ("product families")) AND ("tool") AND ("variability management") AND ("requirements") AND ("domain engineering") Resultados: 0 Aps excluso pelo ttulo: 0 Base 3: http://ieeexplore.ieee.org/ Data da busca: 10/05/2011 Strings utilizadas: (("software product line") OR ("product families")) AND ("tool") AND ("variability management") AND ("requirements") AND ("domain engineering") Resultados: 2 Aps excluso pelo ttulo: 0 Base 4: http://www.sciencedirect.com/ Data da busca: 10/05/2011 Strings utilizadas: (("software product line") OR ("product families")) AND ("tool") AND ("variability management") AND ("requirements") AND ("domain engineering") Resultados: 13 Aps excluso pelo ttulo: 10 BASE 5: http://portal.acm.org/ Data da busca: 10/05/2011 Strings utilizadas: (("software product line") OR ("product families")) AND ("tool") AND ("variability management") AND ("requirements") AND ("domain engineering") Resultados: 219 Aps excluso pelo ttulo: 49

Rate