Um Estudo sobre Ferramentas CASE para Gerenciamento do Processo de Engenharia de Domínio em Linha de Produtos de Software

Texto

(1)

UM ESTUDO SOBRE FERRAMENTAS CASE

UM ESTUDO SOBRE FERRAMENTAS CASE PARA GERENCIAMENTO DOPARA GERENCIAMENTO DO PROCESSO DE ENGENHARIA DE DOMÍNIO EM LINHA DE PRODUTOS PROCESSO DE ENGENHARIA DE DOMÍNIO EM LINHA DE PRODUTOS DEDE

SOFTWARE  SOFTWARE  CARUARU CARUARU 2011 2011

(2)

ELYDA LAISA SOARES XAVIER ELYDA LAISA SOARES XAVIER

UM ESTUDO SOBRE FERRAMENTAS CASE

UM ESTUDO SOBRE FERRAMENTAS CASE PARA GERENCIAMENTO DOPARA GERENCIAMENTO DO PROCESSO DE ENGENHARIA DE DOMÍNIO EM LINHA DE PRODUTOS PROCESSO DE ENGENHARIA DE DOMÍNIO EM LINHA DE PRODUTOS DEDE

SOFTWARE  SOFTWARE 

Monografia apresentada à Universidade de Monografia apresentada à Universidade de Pernambuco como requisito parcial para a obtenção Pernambuco como requisito parcial para a obtenção do título de Bacharel em Sistemas de Informação, do título de Bacharel em Sistemas de Informação, sob orientação do Prof. M.Sc. Humberto Rocha de sob orientação do Prof. M.Sc. Humberto Rocha de Almeida Neto e co-orientação do Prof. D.Sc. Almeida Neto e co-orientação do Prof. D.Sc. Vinícius Cardoso Garcia.

Vinícius Cardoso Garcia.

CARUARU CARUARU

2011 2011

(3)
(4)
(5)

em que aceitei o Seu Filho, Jesus Cristo, como único Senhor e Salvador da minha em que aceitei o Seu Filho, Jesus Cristo, como único Senhor e Salvador da minha vida. E por ter me capacitado durante os meus estudos da graduação bem como vida. E por ter me capacitado durante os meus estudos da graduação bem como durante a execução deste trabalho.

durante a execução deste trabalho.

À minha mãe, Edna Cristina, pelo amor incondicional que dedica a mim, À minha mãe, Edna Cristina, pelo amor incondicional que dedica a mim, minha irmã, Erika Sabrinna, e meu sobrinho, Éder Vinícius; por acordar às 06h para minha irmã, Erika Sabrinna, e meu sobrinho, Éder Vinícius; por acordar às 06h para preparar meu café da manhã após uma noite agitada de estudos, pelas broncas, preparar meu café da manhã após uma noite agitada de estudos, pelas broncas, conselhos, pela paciência e tanto mais.

conselhos, pela paciência e tanto mais.

Ao meu pai, João Eudes, pelo seu amor e por estar sempre presente na Ao meu pai, João Eudes, pelo seu amor e por estar sempre presente na minha vida, mesmo quando fisicamente longe; pelo incentivo aos estudos e pelo minha vida, mesmo quando fisicamente longe; pelo incentivo aos estudos e pelo apoio durante as dificuldades da caminhada.

apoio durante as dificuldades da caminhada.

À minha e irmã e ao meu sobrinho, pela paciência enquanto eu monopolizava À minha e irmã e ao meu sobrinho, pela paciência enquanto eu monopolizava o computador, PC e internet; pelo carinho nos momentos de stress e por serem a o computador, PC e internet; pelo carinho nos momentos de stress e por serem a melhor irmã e o melhor sobrinho que eu poderia ter.

melhor irmã e o melhor sobrinho que eu poderia ter.

Ao meu namorado, Diógenes Ricardo, pelos trabalhos em grupo, pela Ao meu namorado, Diógenes Ricardo, pelos trabalhos em grupo, pela paciência (ou pela falta dela =P) durante as reuniões para execução destes paciência (ou pela falta dela =P) durante as reuniões para execução destes trabalhos; pela confiança, pelo amor e, principalmente, pelo empenho em trabalhos; pela confiança, pelo amor e, principalmente, pelo empenho em mostrar-me a Verdade. Te amo, mostrar-meu amor.

me a Verdade. Te amo, meu amor.

À minha família, pelo amor e incentivo (e pelos inúmeros momentos hilários À minha família, pelo amor e incentivo (e pelos inúmeros momentos hilários que passamos juntos, os quais são motivo de gargalhadas durante nossas que passamos juntos, os quais são motivo de gargalhadas durante nossas reuniões). Sem eles eu não teria

reuniões). Sem eles eu não teria conseguido.conseguido.

Ao meu orientador, Humberto Rocha, pelas contribuições e pela paciência e Ao meu orientador, Humberto Rocha, pelas contribuições e pela paciência e confiança em orientar-me. Além de orientador, era preciso ser psicólogo. E ele confiança em orientar-me. Além de orientador, era preciso ser psicólogo. E ele cumpriu bem esse papel também!

cumpriu bem esse papel também!

Ao meu co-orientador, Vinícius Garcia, pela confiança depositada em mim Ao meu co-orientador, Vinícius Garcia, pela confiança depositada em mim durante todos os trabalhos que fizemos na graduação e pela orientação deste durante todos os trabalhos que fizemos na graduação e pela orientação deste

trabalho, nunca me entregando as respostas de „mãos beijadas‟, mas sempre me trabalho, nunca me entregando as respostas de „mãos beijadas‟, mas sempre me

incitando a pensar. Obrigada, Vinícius. incitando a pensar. Obrigada, Vinícius.

À equipe do SigConfex e ao nosso orientador, Fernando Carvalho, pelo À equipe do SigConfex e ao nosso orientador, Fernando Carvalho, pelo aprendizado e pelas risadas.

aprendizado e pelas risadas.

Aos professores da UPE Caruaru, por terem contribuído para a minha Aos professores da UPE Caruaru, por terem contribuído para a minha formação com seus conhecimentos e conselhos durante estes 4 anos.

formação com seus conhecimentos e conselhos durante estes 4 anos.

Ao meu pastor, Ary Queiroz Jr., pela preocupação com a minha vida Ao meu pastor, Ary Queiroz Jr., pela preocupação com a minha vida espiritual, pelo auxílio nos momentos difíceis e pelos edificantes estudos bíblicos espiritual, pelo auxílio nos momentos difíceis e pelos edificantes estudos bíblicos

que me fazem, cada dia mais, crescer “

que me fazem, cada dia mais, crescer “na graça e no conhecimento de nosso na graça e no conhecimento de nosso  Senhor e Salvador Jesus Cristo 

(6)

Aos meus amigos: Aêda, João, Bruno, André, Warla, Marísia, Joana, Poeta, Aos meus amigos: Aêda, João, Bruno, André, Warla, Marísia, Joana, Poeta, Jéssica, Walkiria e Cristianne por compartilhar tantos momentos de alegria e por me Jéssica, Walkiria e Cristianne por compartilhar tantos momentos de alegria e por me aturar nos momentos de tristeza.

aturar nos momentos de tristeza.

A Moisés Bonifácio, meu professor de espanhol durante o ensino fu

A Moisés Bonifácio, meu professor de espanhol durante o ensino fu ndamentalndamental e médio, por acreditar no meu potencial e por depositar sua confiança em mim. e médio, por acreditar no meu potencial e por depositar sua confiança em mim. Moisés, você foi (e é) pra mim um grande amigo.

Moisés, você foi (e é) pra mim um grande amigo. Gracias por todo.Gracias por todo.

Por fim, mas não menos importante, à Cardeal Distribuidora e a todos os que Por fim, mas não menos importante, à Cardeal Distribuidora e a todos os que fazem parte desta empresa. Agradeço, em especial, a Rodrigo Queiroz, Wellington fazem parte desta empresa. Agradeço, em especial, a Rodrigo Queiroz, Wellington Cavalcante, Igor Nascimento e Hian Cintra, meus companheiros no setor de TI, por Cavalcante, Igor Nascimento e Hian Cintra, meus companheiros no setor de TI, por me apoiarem e confiarem no meu

me apoiarem e confiarem no meu potencial em todos os momentos.potencial em todos os momentos. Eu amo cada um de

(7)

Uma das abordagens sistemáticas de reuso de

Uma das abordagens sistemáticas de reuso de software software que mais tem crescido nasque mais tem crescido nas

últimas décadas é a de Linha de Produtos de

últimas décadas é a de Linha de Produtos de Software Software . Grandes empresas, como. Grandes empresas, como

Nokia, Philips e Siemens têm-se utilizado desta abordagem a fim de reduzir o

Nokia, Philips e Siemens têm-se utilizado desta abordagem a fim de reduzir o time- time-  to-market 

to-market de seus produtos, diminuir custos e aumentar a qualidade dosde seus produtos, diminuir custos e aumentar a qualidade dos softwares softwares 

produzidos. A adoção da Linha de Produtos de

produzidos. A adoção da Linha de Produtos de Software Software , no entanto, não é algo, no entanto, não é algo

simples. Para que haja sucesso na sua adoção, faz-se necessário um processo de simples. Para que haja sucesso na sua adoção, faz-se necessário um processo de gerenciamento sistematizado e consistente, que leve em consideração a posição gerenciamento sistematizado e consistente, que leve em consideração a posição importante que os artefatos reusáveis possuem. Neste contexto, as ferramentas importante que os artefatos reusáveis possuem. Neste contexto, as ferramentas CASE exercem um papel primordial no controle das iterações durante o CASE exercem um papel primordial no controle das iterações durante o desenvolvimento através da abordagem de Linha de Produtos de

desenvolvimento através da abordagem de Linha de Produtos de Software Software . Diante. Diante

deste cenário, este trabalho visa investigar ferramentas CASE e relatos de deste cenário, este trabalho visa investigar ferramentas CASE e relatos de experiência a fim de propor um conjunto de

experiência a fim de propor um conjunto de features features  que apoie efetivamente oque apoie efetivamente o

gerenciamento do processo de Engenharia de Domínio em Linha de Produtos de gerenciamento do processo de Engenharia de Domínio em Linha de Produtos de

Software. Software.

Palavras-chave: Linha de Produtos de

Palavras-chave: Linha de Produtos de Software Software , Famílias de Produtos, Ferramentas, Famílias de Produtos, Ferramentas

CASE, Gerenciamento e Engenharia de Domínio. CASE, Gerenciamento e Engenharia de Domínio.

(8)

One of systematic approaches to software reuse with higher growing over the last  One of systematic approaches to software reuse with higher growing over the last  decades is the Software Product Line. Large companies such as Nokia, Philips and  decades is the Software Product Line. Large companies such as Nokia, Philips and  Siemens have been using this approach to reduce time-to-market of their products, Siemens have been using this approach to reduce time-to-market of their products, reduce costs and increase quality of the produced software. Adopting Software  reduce costs and increase quality of the produced software. Adopting Software  Product Line, however, is not a simple work. To be successful in its adoption, it is  Product Line, however, is not a simple work. To be successful in its adoption, it is  necessary a systematic and consistent process of management that takes into  necessary a systematic and consistent process of management that takes into  account the important position of the reusable artifacts. In this context, CASE tools  account the important position of the reusable artifacts. In this context, CASE tools  have a key role in controlling the iterations during the development using the  have a key role in controlling the iterations during the development using the  Software Product Line approach. In this context, this paper aims to investigate CASE  Software Product Line approach. In this context, this paper aims to investigate CASE  tools and reports of experience to propose a set of features to support effectively the  tools and reports of experience to propose a set of features to support effectively the  management of the process of Domain Engineering in Software Product Line.

management of the process of Domain Engineering in Software Product Line.

Keywords 

Keywords :: Software Product Lines, Product Families, CASE tools, Management Software Product Lines, Product Families, CASE tools, Management  and and  Domain Engineering.

(9)

Figura 2 -

Figura 2 - Três exemplares da série de aparelhos celulares E da Três exemplares da série de aparelhos celulares E da Nokia, cujosNokia, cujos

sistemas compartilham diversas similaridades... 14 sistemas compartilham diversas similaridades... 14 Figura 3

Figura 3 - Vantagens da - Vantagens da customização em massa customização em massa ... . 2020 Figura 4 -

Figura 4 - Objetivo geral dos principais processos da Linha de Produtos deObjetivo geral dos principais processos da Linha de Produtos de Software Software ..

Autor (2011) ... 24 Autor (2011) ... 24 Figura 5 - Custos da Linha de Produtos de

Figura 5 - Custos da Linha de Produtos de Software Software . Adaptada de (LINDEN et. al.,. Adaptada de (LINDEN et. al.,

2007, p.4) ... 25 2007, p.4) ... 25 Figura 6 -

Figura 6 - Fluxo de atividades executado para realização da pesquisa. Autor (2011)Fluxo de atividades executado para realização da pesquisa. Autor (2011) ... 39 ... 39 Figura 7 -

Figura 7 - Quantidade de trabalhos selecionados para leitura, classificados por baseQuantidade de trabalhos selecionados para leitura, classificados por base científica. Autor (2011) ... 41 científica. Autor (2011) ... 41 Figura 8 -

Figura 8 - Trabalhos com contribuições significativasTrabalhos com contribuições significativas, organizados por ano , organizados por ano dede

publicação. Autor (2011) ... 45 publicação. Autor (2011) ... 45

(10)

Tabela 1

Tabela 1 - Diferentes - Diferentes nomenclaturas envolvidas na LPS. nomenclaturas envolvidas na LPS. ... . 2222 Tabela 2

Tabela 2 - Classificação das - Classificação das ferramentas segundo Furgetta ferramentas segundo Furgetta (1993) (1993) ... ... 3232 Tabela 3 - Classificação dos

Tabela 3 - Classificação dos workbenches workbenches segundo Furgetta segundo Furgetta (1993) (1993) ... ... 3333

Tabela 4 -

Tabela 4 - Classificação dos ambientes segundo FurgeClassificação dos ambientes segundo Furgetta (1993)tta (1993)... ... 3434 Tabela 5

Tabela 5 – – Ferramentas selecionadas e seus Ferramentas selecionadas e seus dados. Autor dados. Autor (2011) ...(2011) ... ... 4343

Tabela 6

Tabela 6 – – CADSEg e suasCADSEg e suas features.features. Autor (2011) Autor (2011) ... ... 4343

Tabela 7 - PloneMeeting e suas

Tabela 7 - PloneMeeting e suas features features (continua). Autor (continua). Autor (2011) ...(2011) ... ... 4343

Tabela 8

-Tabela 8 - Features Features propostas para as lacunas encontradas nos relatos propostas para as lacunas encontradas nos relatos dede

experiência (continua). Autor (2011) ... 46 experiência (continua). Autor (2011) ... 46 Tabela 9

-Tabela 9 - Features Features adicionais. Autor (2011) ... 48adicionais. Autor (2011) ... 48

Tabela 10

-Tabela 10 - Features Features propostas que apoiam o Gerenciamento Organizacional. Autorpropostas que apoiam o Gerenciamento Organizacional. Autor

(2011) ... 49 (2011) ... 49 Tabela 11

-Tabela 11 - Features Features propostas que apoiam o Gerenciamento Técnico (continua).propostas que apoiam o Gerenciamento Técnico (continua).

Autor (2011) ... 49 Autor (2011) ... 49

(11)

1.1.

1.1. Contextualização... 13Contextualização... 13 1.2.

1.2. Problema de Pesquisa ... 15Problema de Pesquisa ... 15 1.3.

1.3. Objetivos ... 15Objetivos ... 15 1.3.1.

1.3.1. Objetivo Geral ... 15Objetivo Geral ... 15 1.3.2.

1.3.2. Objetivos Específicos ... 16Objetivos Específicos ... 16 1.4.

1.4. Justificativa ... 16Justificativa ... 16 1.5.

1.5. Escopo Negativo ... 16Escopo Negativo ... 16 1.6.

1.6. Contribuições ... 17Contribuições ... 17 1.7.

1.7. Organização do Trabalho Organização do Trabalho ... ... 1818 2.

2. REFERENCIAL TEÓRICO ... 19 REFERENCIAL TEÓRICO ... 19  2.1.

2.1. LINHA DE LINHA DE PRODUTOS DE SOFTWARE PRODUTOS DE SOFTWARE (LPS) (LPS) ... . 1919 2.1.1.

2.1.1. Histórico ... 19Histórico ... 19 2.1.2.

2.1.2. Conceito ... 21Conceito ... 21 2.1.3.

2.1.3. Processos FundamentProcessos Fundamentais ...ais ... ... 2121 2.1.3.1.

2.1.3.1. Engenharia de Domínio ... 22Engenharia de Domínio ... 22 2.1.3.2.

2.1.3.2. Engenharia de Aplicação ... 22Engenharia de Aplicação ... 22 2.1.3.3. 2.1.3.3. Gerenciamento Gerenciamento ... ... 2323 2.1.4. 2.1.4. Vantagens ... 24Vantagens ... 24 2.1.5. 2.1.5. Riscos ... 26Riscos ... 26 2.2.

2.2. FERRAMENTAS CASE ... 29FERRAMENTAS CASE ... 29 2.2.1. 2.2.1. Histórico ... 29Histórico ... 29 2.2.2. 2.2.2. Conceito ... 29Conceito ... 29 2.2.3. 2.2.3. Motivação ... 30Motivação ... 30 2.2.4.

2.2.4. Classificação das Classificação das Ferramentas CASE Ferramentas CASE ... ... 3131 2.2.5.

2.2.5. Ferramentas CASE em Linha de Produtos deFerramentas CASE em Linha de Produtos de Software Software ... ... 3434

3.

3. METODOLOGIA ... 37 METODOLOGIA ... 37  3.1.

3.1. Natureza da Pesquisa Natureza da Pesquisa ... ... 3737 3.1.1.

3.1.1. Quanto aos Fins ... 37Quanto aos Fins ... 37 3.1.2.

3.1.2. Quanto aos Meios Quanto aos Meios ... ... 3737 3.1.3.

3.1.3. Quanto à Forma de Abordagem ...Quanto à Forma de Abordagem ... ... 3838 3.2.

(12)

SOFTWARE ... 40  SOFTWARE ... 40 

4.1.

4.1. Realização das Realização das Pesquisas nas Bases Pesquisas nas Bases Científicas Científicas ... . 4040 4.2.

4.2. Análise das Ferramentas ... 41Análise das Ferramentas ... 41 4.3.

4.3. Análise dos Relatos Análise dos Relatos de Experiência de Experiência ... ... 4444 4.4.

4.4. Features Adicionais Features Adicionais ... ... 4747 4.5.

4.5. Proposta ... 48Proposta ... 48 4.5.1.

4.5.1. Conjunto Proposto e Conjunto Proposto e Riscos da LPS Riscos da LPS ... ... 5050 4.6.

4.6. Discussão ... 51Discussão ... 51 4.6.1.

4.6.1. Dificuldades ... 51Dificuldades ... 51 4.6.2.

4.6.2. Limitações da Pesquisa Limitações da Pesquisa ... ... 5252 5.

5. CONSIDERAÇÕES FINAIS CONSIDERAÇÕES FINAIS ... . 53 53  5.1.

5.1. Trabalhos Relacionados ... 53Trabalhos Relacionados ... 53 5.2.

5.2. Trabalhos Futuros ... 54Trabalhos Futuros ... 54 5.3.

5.3. Lições Aprendidas... 54Lições Aprendidas... 54 6.

6. REFERÊNCIAS ... 55 REFERÊNCIAS ... 55  ANEXO 1

(13)

1. INTRODUÇÃO 1. INTRODUÇÃO

1.1. Contextualização 1.1. Contextualização

Nas últimas décadas, os computadores e, por consequência, os programas, Nas últimas décadas, os computadores e, por consequência, os programas, tornaram-se parte do cotidiano das pessoas e das organizações. O

tornaram-se parte do cotidiano das pessoas e das organizações. O software software tornou-

tornou-se um diferencial competitivo das empresas, tornou-sendo estornou-sencial tanto para resolução se um diferencial competitivo das empresas, sendo essencial tanto para resolução de problemas simples - como manter um cadastro de clientes - quanto para tarefas de problemas simples - como manter um cadastro de clientes - quanto para tarefas complexas

complexas  – – como o controle de aeronaves. Sendo assim, a demanda e acomo o controle de aeronaves. Sendo assim, a demanda e a

complexidade dos sistemas têm crescido sobremaneira nas últimas décadas. complexidade dos sistemas têm crescido sobremaneira nas últimas décadas.

Diante da necessidade em atender a crescente demanda do mercado e Diante da necessidade em atender a crescente demanda do mercado e visando agilizar a entrega do produto sem perda de sua qualidade, tanto a indústria visando agilizar a entrega do produto sem perda de sua qualidade, tanto a indústria quanto a academia têm movido esforços para a maximização da produtividade no quanto a academia têm movido esforços para a maximização da produtividade no processo de desenvolvimento.

processo de desenvolvimento.

Uma das formas de se atingir este objetivo é por meio de abordagens Uma das formas de se atingir este objetivo é por meio de abordagens sistemáticas de reuso de

sistemáticas de reuso de software software . A Figura 1, adaptada de Garcia (2010),. A Figura 1, adaptada de Garcia (2010),

apresenta diferentes abordagens de reuso

apresenta diferentes abordagens de reuso existentes:existentes:

Figura 1 - Abordagens para reuso de

Figura 1 - Abordagens para reuso de software software 

Entre estas abordagens está a de Linha de Produtos de Software (LPS). Entre estas abordagens está a de Linha de Produtos de Software (LPS). Segundo Pohl et. al. (2005, p.14, tradução nossa):

Segundo Pohl et. al. (2005, p.14, tradução nossa): ““Linha de Produtos de Software Linha de Produtos de Software éé um paradigma para desenvolver aplicações de software (sistemas intensivos de  um paradigma para desenvolver aplicações de software (sistemas intensivos de  software e produtos de software) usando plataformas e customização em massa  software e produtos de software) usando plataformas e customização em massa ”.”.

(14)

Ou seja, a produção de

Ou seja, a produção de software software se dá em massa, no entanto, leva em conta asse dá em massa, no entanto, leva em conta as

necessidades específicas dos clientes. Para atingir tal objetivo, uma plataforma, necessidades específicas dos clientes. Para atingir tal objetivo, uma plataforma, composta por um conjunto comum de funcionalidades, é reutilizada por todos os composta por um conjunto comum de funcionalidades, é reutilizada por todos os produtos da linha.

produtos da linha.

As tarefas envolvidas no desenvolvimento da plataforma compõem o As tarefas envolvidas no desenvolvimento da plataforma compõem o processo de Engenharia de Domínio.

processo de Engenharia de Domínio. Já as tarefas de desenvolvimento dos produtosJá as tarefas de desenvolvimento dos produtos finais compõem o processo de Engenharia de Aplicação.

finais compõem o processo de Engenharia de Aplicação.

Entre as vantagens da utilização desta abordagem, podemos citar a Entre as vantagens da utilização desta abordagem, podemos citar a diminuição do

diminuição do time-to-market time-to-market - que é o tempo que um produto demora a chegar ao- que é o tempo que um produto demora a chegar ao

mercado, aumento da qualidade dos produtos, diminuição dos custos de mercado, aumento da qualidade dos produtos, diminuição dos custos de desenvolvimento, entre outras (POHL et. al., 2005).

desenvolvimento, entre outras (POHL et. al., 2005). Os

Os softwares softwares de uma determinada série de celulares, que compartilhem ade uma determinada série de celulares, que compartilhem a

maior parte de suas funcionalidades, são exemplos de sistemas que podem ser maior parte de suas funcionalidades, são exemplos de sistemas que podem ser desenvolvidos numa LPS. A Figura 2 mostra parte da série de celulares E da Nokia, desenvolvidos numa LPS. A Figura 2 mostra parte da série de celulares E da Nokia, cujos sistemas compartilham diversas similaridades, o que indica que o cujos sistemas compartilham diversas similaridades, o que indica que o desenvolvimento de tais sistemas pode beneficiar-se das vantagens da Linha de desenvolvimento de tais sistemas pode beneficiar-se das vantagens da Linha de Produtos de

Produtos de Software Software ..

Figura 2 - Três exe

Figura 2 - Três exemplares da série de aparelhos celulares E da mplares da série de aparelhos celulares E da Nokia, cujos sistemas compartilhamNokia, cujos sistemas compartilham diversas similaridades

diversas similaridades11

Apesar de todas as vantagens, a adoção da LPS não é algo simples. Para se Apesar de todas as vantagens, a adoção da LPS não é algo simples. Para se obter os benefícios previstos por esta abordagem é necessário um processo de obter os benefícios previstos por esta abordagem é necessário um processo de gerenciamento consistente, que leve em consideração a importância que a gerenciamento consistente, que leve em consideração a importância que a plataforma possui. Além disso, o gerenciamento deve ser eficaz ao lidar com os plataforma possui. Além disso, o gerenciamento deve ser eficaz ao lidar com os riscos inerentes à implantação da LPS (os riscos serão tratados na seção 2.1.5 riscos inerentes à implantação da LPS (os riscos serão tratados na seção 2.1.5

(15)

deste trabalho).

deste trabalho). O planejamento de toda a Linha de O planejamento de toda a Linha de Produtos e as tarefas envolvidasProdutos e as tarefas envolvidas no desenvolvimento da plataforma fazem parte do processo de Engenharia de no desenvolvimento da plataforma fazem parte do processo de Engenharia de Domínio.

Domínio.

E para dar apoio à tarefa de gerenciamento, é indispensável o uso de E para dar apoio à tarefa de gerenciamento, é indispensável o uso de ferramentas específicas, que forneçam suporte às particularidades desta ferramentas específicas, que forneçam suporte às particularidades desta abordagem,

abordagem, levando em conta as diferenças entre o desenvolvimento de um sistemalevando em conta as diferenças entre o desenvolvimento de um sistema único e de uma família de produtos. Conhecidas como CASE (

único e de uma família de produtos. Conhecidas como CASE (Computer-Aided Computer-Aided  Software Engineering 

Software Engineering - Engenharia de Software com Auxílio de Computador), estas- Engenharia de Software com Auxílio de Computador), estas ferramentas “

ferramentas “proporcionam apoio ao processo de software pela automação de proporcionam apoio ao processo de software pela automação de  algumas atividades de processo e pelo fornecimento de informações sobre o  algumas atividades de processo e pelo fornecimento de informações sobre o  software que está sendo desenvolvido 

software que está sendo desenvolvido ”” (SOMMERVILLE, 2010, p.85, tradução(SOMMERVILLE, 2010, p.85, tradução

nossa). nossa).

Dentre os diversos benefícios trazidos pelo uso deste tipo de ferramenta Dentre os diversos benefícios trazidos pelo uso deste tipo de ferramenta estão a aceleração no desenvolvimento de produtos, maior facilidade de estão a aceleração no desenvolvimento de produtos, maior facilidade de manutenção do produto e documentação dos processos, entre outros.

manutenção do produto e documentação dos processos, entre outros.

1.2.

1.2. Problema Problema de de PesquisaPesquisa

Diante desta necessidade de apoio automatizado para o gerenciamento da Diante desta necessidade de apoio automatizado para o gerenciamento da LPS, a pergunta definida para a pesquisa foi: Quais são as

LPS, a pergunta definida para a pesquisa foi: Quais são as features features 2 2  que umaque uma

ferramenta CASE deve possuir para contribuir efetivamente com o gerenciamento do ferramenta CASE deve possuir para contribuir efetivamente com o gerenciamento do processo de Engenharia de Domínio em Linha de Produtos de

processo de Engenharia de Domínio em Linha de Produtos de Software Software ??

1.3. Objetivos 1.3. Objetivos

Para responder à pergunta de pesquisa, foram definidos os seguintes Para responder à pergunta de pesquisa, foram definidos os seguintes objetivos, divididos em geral e específicos:

objetivos, divididos em geral e específicos: 1.3.1. Objetivo Geral

1.3.1. Objetivo Geral Propor um conjunto de

Propor um conjunto de features features que apoie efetivamente o gerenciamento doque apoie efetivamente o gerenciamento do

processo de Engenharia de Domínio em Linha de Produtos de

processo de Engenharia de Domínio em Linha de Produtos de Software Software ..

22O termoO termo

feature 

(16)

1.3.2. Objetivos Específicos 1.3.2. Objetivos Específicos

 Investigar os subprocessos de gerenciamento em Linha de ProdutosInvestigar os subprocessos de gerenciamento em Linha de Produtos

de

de Software Software ..

 Pesquisar ferramentas acadêmicas e industriais que forneçam suportePesquisar ferramentas acadêmicas e industriais que forneçam suporte

ao gerenciamento do processo de Engenharia de Domínio em Linha de ao gerenciamento do processo de Engenharia de Domínio em Linha de Produtos de

Produtos de Software Software ..

 Identificar e documentarIdentificar e documentar features features básicas e complementares de cadabásicas e complementares de cada

ferramenta encontrada. ferramenta encontrada.

 Pesquisar relatos de experiências no uso da abordagem de Linha dePesquisar relatos de experiências no uso da abordagem de Linha de

Produtos de

Produtos de Software.Software.

 Identificar, através dos relatos encontrados, possíveis necessidadesIdentificar, através dos relatos encontrados, possíveis necessidades

referentes a

referentes a features features que deem suporte ao gerenciamento do processoque deem suporte ao gerenciamento do processo

de Engenharia de Domínio em Linha de

de Engenharia de Domínio em Linha de Produtos deProdutos de Software Software ..

1.4. Justificativa 1.4. Justificativa

O presente trabalho poderá contribuir com estudos futuros no sentido da O presente trabalho poderá contribuir com estudos futuros no sentido da identificação das

identificação das features features que uma ferramenta CASE deve possuir para dar apoioque uma ferramenta CASE deve possuir para dar apoio

efetivo ao gerenciamento do processo de Engenharia de Domínio em Linha de efetivo ao gerenciamento do processo de Engenharia de Domínio em Linha de Produtos de

Produtos de Software Software ..

Além disso, a listagem das

Além disso, a listagem das features features poderá servir de ponto de partida para opoderá servir de ponto de partida para o

desenvolvimento de uma ferramenta CASE que centralize as funcionalidades desenvolvimento de uma ferramenta CASE que centralize as funcionalidades necessárias ao gerenciamento do processo de Engenharia de Domínio em Linha de necessárias ao gerenciamento do processo de Engenharia de Domínio em Linha de Produtos de

Produtos de Software Software . Algumas das vantagens desta centralização estão no. Algumas das vantagens desta centralização estão no

aumento da agilidade do processo de desenvolvimento e na execução das tarefas aumento da agilidade do processo de desenvolvimento e na execução das tarefas cotidianas de gerenciamento, mais velocidade no relacionamento com o cliente, cotidianas de gerenciamento, mais velocidade no relacionamento com o cliente, além da padronização dos artefatos produzidos, facilitando a documentação de todo além da padronização dos artefatos produzidos, facilitando a documentação de todo processo (CRONHOLM, 1995) e garantindo a consistência destes documentos processo (CRONHOLM, 1995) e garantindo a consistência destes documentos (PRESSMAN, 2001).

(PRESSMAN, 2001). 1.5.

1.5. Escopo Escopo NegativoNegativo

A abordagem de Linha de Produtos de

A abordagem de Linha de Produtos de Software Software envolve inúmeras áreas deenvolve inúmeras áreas de

interesse dentro da Engenharia de

interesse dentro da Engenharia de Software,Software, tais como Gestão da Qualidade,tais como Gestão da Qualidade,

Testes, Gestão de Configuração, entre outros. Devido à vasta extensão do tema, é Testes, Gestão de Configuração, entre outros. Devido à vasta extensão do tema, é

(17)

preciso ressaltar as questões que não serão abordadas no presente trabalho, a preciso ressaltar as questões que não serão abordadas no presente trabalho, a saber:

saber:

-- Frameworks Frameworks : Este trabalho não aborda em detalhes nenhum: Este trabalho não aborda em detalhes nenhum framework framework 

específico para a LPS, uma vez que o conjunto de

específico para a LPS, uma vez que o conjunto de features features a ser investigado devea ser investigado deve

ser genérico, dando suporte a abordagens variadas. Em (MATINLASSI, 2004), o ser genérico, dando suporte a abordagens variadas. Em (MATINLASSI, 2004), o autor lista, detalha e compara os principais

autor lista, detalha e compara os principais frameworks frameworks disponíveis.disponíveis.

-- DesenvolvimentoDesenvolvimento: O desenvolvimento de uma ferramenta com as: O desenvolvimento de uma ferramenta com as features features 

investigadas não faz parte do escopo deste trabalho. investigadas não faz parte do escopo deste trabalho.

-- Aspectos técnicosAspectos técnicos: Os aspectos técnicos, que auxiliem o desenvolvimento: Os aspectos técnicos, que auxiliem o desenvolvimento das

das features features investigadas, também não serão tratados neste investigadas, também não serão tratados neste trabalho.trabalho.

-- Revisão Sistemática de Literatura (RSL)Revisão Sistemática de Literatura (RSL): Uma RSL estabelece um: Uma RSL estabelece um processo formal para conduzir a investigação, evitando a introdução de vieses da processo formal para conduzir a investigação, evitando a introdução de vieses da revisão de literatura informal, dando maior credibilidade à pesquisa em andamento revisão de literatura informal, dando maior credibilidade à pesquisa em andamento (SOUSA e RIBEIRO, 2009). Este trabalho não é uma Revisão Sistemática de (SOUSA e RIBEIRO, 2009). Este trabalho não é uma Revisão Sistemática de Literatura; no entato, ele se utiliza de algumas atividades típicas de uma RSL (como Literatura; no entato, ele se utiliza de algumas atividades típicas de uma RSL (como a utilização de

a utilização de strings strings de busca e escolha dos trabalhos a partir de critérios dede busca e escolha dos trabalhos a partir de critérios de

inclusão e exclusão) a fim de dar mais coesão ao estudo. A realização da RSL neste inclusão e exclusão) a fim de dar mais coesão ao estudo. A realização da RSL neste trabalho foi descartada devido ao pouco tempo disponível para sua execução.

trabalho foi descartada devido ao pouco tempo disponível para sua execução. 1.6. Contribuições

1.6. Contribuições

Entre as contribuições efetivas deste trabalho, podemos citar: Entre as contribuições efetivas deste trabalho, podemos citar:

 Um estudo investigativo sobre Linha de Produtos deUm estudo investigativo sobre Linha de Produtos de Software Software  ee

ferramentas CASE, que podem servir de ponto de partida para aqueles ferramentas CASE, que podem servir de ponto de partida para aqueles que desejam aprender sobre os temas

que desejam aprender sobre os temas..

 Uma investigação extensiva de ferramentas para gerenciamento doUma investigação extensiva de ferramentas para gerenciamento do

processo de Engenharia de Domínio em LPS, que traz uma visão geral processo de Engenharia de Domínio em LPS, que traz uma visão geral sobre o que está sendo desenvolvido e utilizado no mercado e na sobre o que está sendo desenvolvido e utilizado no mercado e na academia.

academia.

 Uma investigação extensiva de relatos de experiência, que expõe asUma investigação extensiva de relatos de experiência, que expõe as

reais necessidades e as dificuldades do mercado e da academia no reais necessidades e as dificuldades do mercado e da academia no que diz respeito ao gerenciamento em Linha de Pr

(18)

1.7.

1.7. Organização Organização do do TrabalhoTrabalho

Neste capítulo, foi realizada uma breve introdução aos temas deste trabalho: Neste capítulo, foi realizada uma breve introdução aos temas deste trabalho: Linha de Produtos de

Linha de Produtos de Software Software  e ferramentas CASE. Ainda neste capítulo, oe ferramentas CASE. Ainda neste capítulo, o

problema de pesquisa foi apresentado, bem como os objetivos gerais e específicos problema de pesquisa foi apresentado, bem como os objetivos gerais e específicos para responder a pergunta de pesquisa. Além disso, apresentamos a justificativa para responder a pergunta de pesquisa. Além disso, apresentamos a justificativa para realização deste trabalho e suas contribuições.

para realização deste trabalho e suas contribuições.

O restante do trabalho está organizado da seguinte forma: O restante do trabalho está organizado da seguinte forma:

Capítulo 2: Apresenta a revisão da literatura, que aborda de forma Capítulo 2: Apresenta a revisão da literatura, que aborda de forma mais abrangente os temas Linha de Produtos de

mais abrangente os temas Linha de Produtos de Software Software  ee

ferramentas CASE, com o apoio da

ferramentas CASE, com o apoio da literatura.literatura.

Capítulo 3: Relata a metodologia a ser seguida para a realização da Capítulo 3: Relata a metodologia a ser seguida para a realização da pesquisa e da análise de dados.

pesquisa e da análise de dados.

Capítulo 4: Apresenta o estudo sobre ferramentas CASE para Capítulo 4: Apresenta o estudo sobre ferramentas CASE para gerenciamento do processo de Engenharia de Domínio para Linha de gerenciamento do processo de Engenharia de Domínio para Linha de Produtos de

Produtos de Software Software e seus resultados.e seus resultados.

Capítulo 5: Expõe as conclusões sobre os estudos e a proposta de Capítulo 5: Expõe as conclusões sobre os estudos e a proposta de trabalhos futuros.

(19)

2.

2. REFERENCIAL REFERENCIAL TEÓRICOTEÓRICO

A seguir, serão apresentados, com apoio da literatura, os principais temas A seguir, serão apresentados, com apoio da literatura, os principais temas que formam a base teórica deste trabalho, a saber: Linha de Produtos de

que formam a base teórica deste trabalho, a saber: Linha de Produtos de Software Software ee

Ferramentas CASE. Ferramentas CASE. 2.1.

2.1. LINHA LINHA DE DE PRODUTOS PRODUTOS DE DE SOFTWARE SOFTWARE (LPS)(LPS) Nesta seção, abordaremos o tema Linha de

Nesta seção, abordaremos o tema Linha de Produtos deProdutos de Software Software , mostrando, mostrando

o histórico do surgimento da abordagem, conceito, processos fundamentais que o histórico do surgimento da abordagem, conceito, processos fundamentais que compõem a LPS e, por

compõem a LPS e, por fim, suas vantagens e os fim, suas vantagens e os riscos inerentes à sua adoção.riscos inerentes à sua adoção. 2.1.1. Histórico

2.1.1. Histórico

Uma linha de produtos, ou família de produtos, é um grupo de sistemas que Uma linha de produtos, ou família de produtos, é um grupo de sistemas que compartilham características comuns. Um dos primeiros artigos a citar uma compartilham características comuns. Um dos primeiros artigos a citar uma abordagem de desenvolvimento voltada para famílias de produtos foi publicado em abordagem de desenvolvimento voltada para famílias de produtos foi publicado em 1976.

1976. Em seu artigo “Em seu artigo “On the Design and Development of Program Families On the Design and Development of Program Families ”, David”, David

Parnas propunha um novo processo para desenvolver famílias de produtos de Parnas propunha um novo processo para desenvolver famílias de produtos de

software,

software, a partira partir de um modelo-base. Parnas (1976, p.1, tradução nossa) citavade um modelo-base. Parnas (1976, p.1, tradução nossa) citava

ainda o método tradicional de desenvolvimento de uma família de produtos à época: ainda o método tradicional de desenvolvimento de uma família de produtos à época:

““Um membro particular da família de produtos é desenvolvido por completo (...) e os Um membro particular da família de produtos é desenvolvido por completo (...) e os  outros membros da família são desenvolvidos pela modificação deste membro 

outros membros da família são desenvolvidos pela modificação deste membro ”.”. Já o termo “

Já o termo “Linha de Produtos Linha de Produtos ” é uma ” é uma referência clara às linhas de montagemreferência clara às linhas de montagem

fordistas do século XX, que trouxeram um novo modo de fabricação dos produtos: a fordistas do século XX, que trouxeram um novo modo de fabricação dos produtos: a produção em massa (BOTELHO, 2008). Essa nova abordagem trouxe mudanças produção em massa (BOTELHO, 2008). Essa nova abordagem trouxe mudanças substanciais para as indústrias da época, entre as quais podemos citar a drástica substanciais para as indústrias da época, entre as quais podemos citar a drástica redução do tempo de produção, com consequente aumento no número de produtos redução do tempo de produção, com consequente aumento no número de produtos desenvolvidos e redução do preço dos mesmos (FUSCO et. al.,

desenvolvidos e redução do preço dos mesmos (FUSCO et. al., 2003).2003). Linha de Produtos de

Linha de Produtos de Software Software é uma abordagem de desenvolvimento paraé uma abordagem de desenvolvimento para

famílias de produtos criada com o mesmo objetivo, o de produzir em massa - de famílias de produtos criada com o mesmo objetivo, o de produzir em massa - de maneira rápida e com baixo custo. A Linha de Produtos, no entanto, possui uma maneira rápida e com baixo custo. A Linha de Produtos, no entanto, possui uma diferença substancial da produção fordista: investigação das necessidades diferença substancial da produção fordista: investigação das necessidades particulares de cada cliente, a

particulares de cada cliente, a que chamamos de customização em massa.que chamamos de customização em massa. A customização em massa é

A customização em massa é ““um processo de produção que combina um processo de produção que combina  elementos da produção em massa com os de 

(20)

são adaptados para atender as necessidades individuais dos clientes 

são adaptados para atender as necessidades individuais dos clientes ” (HINDLE,” (HINDLE,

2008, p.125, tradução nossa). A respeito da necessidade de customização dos 2008, p.125, tradução nossa). A respeito da necessidade de customização dos

softwares 

softwares Douglas McIlroy (1968, p.138, Douglas McIlroy (1968, p.138, tradução nossa) pontuou:tradução nossa) pontuou:

Nenhum usuário de um produto particular de uma família deve ser Nenhum usuário de um produto particular de uma família deve ser penalizado, com uma generalidade indesejada, pelo fato de haver sido penalizado, com uma generalidade indesejada, pelo fato de haver sido empregado um padrão de rotina. Em outras palavras, o comprador de um empregado um padrão de rotina. Em outras palavras, o comprador de um componente da família irá escolhê-lo adaptado às suas exatas necessidades. componente da família irá escolhê-lo adaptado às suas exatas necessidades. Neste cenário, o cliente se torna “

Neste cenário, o cliente se torna “prosumidor prosumidor 3 3 ” ” : :  produtor (ao interferir noprodutor (ao interferir no

processo produtivo) e consumidor. A Figura 3, adaptada de (HEINEMANN e processo produtivo) e consumidor. A Figura 3, adaptada de (HEINEMANN e SCHWARZL, 2010, p.140), mostra as vantagens obtidas pela combinação da SCHWARZL, 2010, p.140), mostra as vantagens obtidas pela combinação da produção em massa e adaptação às necessidades dos clientes, típicos da produção em massa e adaptação às necessidades dos clientes, típicos da customização em massa:

customização em massa:

Figura 3 - Vantagens da

Figura 3 - Vantagens da customização em massacustomização em massa

Conforme mostrado na figura acima, algumas dessas vantagens são: Conforme mostrado na figura acima, algumas dessas vantagens são: diminuição de custos, resultante da produção massificada; aumento da vantagem diminuição de custos, resultante da produção massificada; aumento da vantagem competitiva, uma vez que os produtos desenvolvidos são adaptados às competitiva, uma vez que os produtos desenvolvidos são adaptados às necessidades dos consumidores; e maior integração com os

necessidades dos consumidores; e maior integração com os clientes, que participamclientes, que participam de maneira ativa no processo produtivo.

de maneira ativa no processo produtivo.

3

3Este conceito foi estabelecido por Alvin Toffler em seu livroEste conceito foi estabelecido por Alvin Toffler em seu livro

The Third Wave 

(21)

2.1.2. Conceito 2.1.2. Conceito

A seguir, é dado o conceito do

A seguir, é dado o conceito do Software Engineering Institute Software Engineering Institute (SEI) para uma(SEI) para uma

Linha de Produtos de

Linha de Produtos de Software Software ..

Linha de Produtos de

Linha de Produtos deSoftware Software constitui um conjunto de sistemas deconstitui um conjunto de sistemas de software software  intensivo que compartilham um comum, conjunto de características que intensivo que compartilham um comum, conjunto de características que satisfaçam as necessidades específicas de um determinado segmento de satisfaçam as necessidades específicas de um determinado segmento de mercado ou missão, e que são desenvolvidos a partir de um conjunto comum mercado ou missão, e que são desenvolvidos a partir de um conjunto comum de ativos principais de maneira pré-determinada

de ativos principais de maneira pré-determinada44

Em outras palavras, Linha de Produtos de

Em outras palavras, Linha de Produtos de Software Software é uma abordagem deé uma abordagem de

desenvolvimento de

desenvolvimento de software software que se aproveita das características em comum deque se aproveita das características em comum de

uma família de produtos para construir, a partir de um conjunto de artefatos uma família de produtos para construir, a partir de um conjunto de artefatos reusáveis, produtos que atendam às necessidades de um determinado segmento de reusáveis, produtos que atendam às necessidades de um determinado segmento de mercado.

mercado.

Este conjunto de artefatos reusáveis é conhecido como plataforma. Esta deve Este conjunto de artefatos reusáveis é conhecido como plataforma. Esta deve conter os artefatos comuns a todos os produtos que serão desenvolvidos. Além conter os artefatos comuns a todos os produtos que serão desenvolvidos. Além disso, deve ser flexível o suficiente para suportar as especificidades de cada disso, deve ser flexível o suficiente para suportar as especificidades de cada

produto. Segundo Pohl et. al. (2005, p.20, tradução nossa) a plataforma “

produto. Segundo Pohl et. al. (2005, p.20, tradução nossa) a plataforma “ consiste de consiste de  todos os tipos de artefatos de software (requisitos, projeto, execução, testes, entre  todos os tipos de artefatos de software (requisitos, projeto, execução, testes, entre  outros)

outros)”.”.

A definição de LPS apresentada é a mais adequada ao contexto deste A definição de LPS apresentada é a mais adequada ao contexto deste trabalho, uma vez que ressalta o uso da plataforma - mostrando sua importância na trabalho, uma vez que ressalta o uso da plataforma - mostrando sua importância na Linha de Produtos de

Linha de Produtos de Software Software - e apresenta a necessidade de planejamento e- e apresenta a necessidade de planejamento e

organização do desenvolvimento. organização do desenvolvimento.

2.1.3.

2.1.3. Processos FundProcessos Fundamentaisamentais A Linha de Produtos de

A Linha de Produtos de Software Software , em geral, é dividida três processos, em geral, é dividida três processos

fundamentais: Engenharia de Domínio, Engenharia de Aplicação e Gerenciamento. fundamentais: Engenharia de Domínio, Engenharia de Aplicação e Gerenciamento. A nomenclatura destes processos, no entanto, pode variar. A Tabela 1, adaptada de A nomenclatura destes processos, no entanto, pode variar. A Tabela 1, adaptada de (NORTHROP, 2008), mostra duas diferentes terminologias para os processos (NORTHROP, 2008), mostra duas diferentes terminologias para os processos envolvidos em LPS:

envolvidos em LPS:

44Citação retirada de http://www.sei.cmu.edu/productlines/frame_report/what.is.a.PL.htm. Acesso:Citação retirada de http://www.sei.cmu.edu/productlines/frame_report/what.is.a.PL.htm. Acesso: 09/05/2011

(22)

Tabela 1 -

Tabela 1 - Diferentes nomenclaturas envolvidas na LPS.Diferentes nomenclaturas envolvidas na LPS. Nomenclaturas

Nomenclaturas

Linha de Produtos

Linha de Produtos Família de ProdutosFamília de Produtos Núcleo de Ativos

Núcleo de Ativos PlataformaPlataforma

Desenvolvimento do Núcleo de Ativos

Desenvolvimento do Núcleo de Ativos Engenharia de DomínioEngenharia de Domínio Desenvolvimento do Produto

Desenvolvimento do Produto Engenharia de AplicaçãoEngenharia de Aplicação

2.1.3.1.

2.1.3.1. Engenharia Engenharia de de DomínioDomínio

Também conhecido como Desenvolvimento do Núcleo de Ativos, segundo Também conhecido como Desenvolvimento do Núcleo de Ativos, segundo

Pohl et. al. (2005, p. 21, tradução nossa), “

Pohl et. al. (2005, p. 21, tradução nossa), “ é o processo de engenharia de produto é o processo de engenharia de produto  de software no qual a similaridade e a variabilidade da linha de produtos é definida e  de software no qual a similaridade e a variabilidade da linha de produtos é definida e  executada 

executada ”.”.

Este processo objetiva conhecer o domínio da linha de produtos, verificando Este processo objetiva conhecer o domínio da linha de produtos, verificando quais requisitos são comuns a todas as aplicações da linha e quais requisitos são quais requisitos são comuns a todas as aplicações da linha e quais requisitos são específicos de determinadas aplicações. Uma diferença substancial do específicos de determinadas aplicações. Uma diferença substancial do desenvolvimento em LPS para o desenvolvimento de sistemas únicos é a desenvolvimento em LPS para o desenvolvimento de sistemas únicos é a necessidade de planejar rigorosamente o desenvolvimento de artefatos flexíveis, necessidade de planejar rigorosamente o desenvolvimento de artefatos flexíveis, que se adaptem a todos os produtos que farão uso dos mesmos. Devido a esta que se adaptem a todos os produtos que farão uso dos mesmos. Devido a esta

característica, esta fase pode, ainda, ser chamada de “desenvolvimento para reuso” característica, esta fase pode, ainda, ser chamada de “desenvolvimento para reuso”

(LINDEN et. al., 2007). (LINDEN et. al., 2007).

Por fim, os componentes são desenvolvidos e a plataforma de artefatos Por fim, os componentes são desenvolvidos e a plataforma de artefatos reusáveis é montada com os artefatos comuns a t

reusáveis é montada com os artefatos comuns a todas as aplicações.odas as aplicações. 2.1.3.2.

2.1.3.2. Engenharia Engenharia de de AplicaçãoAplicação

Engenharia de Aplicação ou Desenvolvimento do Produto

Engenharia de Aplicação ou Desenvolvimento do Produto é é ““o processo de o processo de  engenharia de linha de produtos no qual as aplicações da linha de produtos são  engenharia de linha de produtos no qual as aplicações da linha de produtos são  construídas através do reuso de artefatos de domínio e explorando a variabilidade  construídas através do reuso de artefatos de domínio e explorando a variabilidade  da linha 

da linha ”” (POHL et. al., 2005, p. 21, tradução nossa).(POHL et. al., 2005, p. 21, tradução nossa).

Este processo engloba todas as atividades realizadas para o

Este processo engloba todas as atividades realizadas para o desenvolvimendesenvolvimentoto das aplicações a partir da plataforma criada durante o Desenvolvimento do Núcleo das aplicações a partir da plataforma criada durante o Desenvolvimento do Núcleo de Ativos

(23)

cada aplicação diferente a partir dos artefatos reusáveis. Nesta fase, os esforços cada aplicação diferente a partir dos artefatos reusáveis. Nesta fase, os esforços estão voltados para atingir uma taxa de

estão voltados para atingir uma taxa de reuso tão alta reuso tão alta quanto possível.quanto possível. 2.1.3.3. Gerenciamento

2.1.3.3. Gerenciamento

O processo de gerenciamento em Linha de Produtos de

O processo de gerenciamento em Linha de Produtos de Software Software , bem como, bem como

em qualquer projeto de

em qualquer projeto de software,software, é um procedimento de extrema importância paraé um procedimento de extrema importância para

que a organização atinja resultados satisfatórios. A respeito disto, o

que a organização atinja resultados satisfatórios. A respeito disto, o Software Software  Engineering Institute 

Engineering Institute (SEI)(SEI) argumenta:argumenta:

O conjunto de artefatos e a idealização sobre como eles são usados para O conjunto de artefatos e a idealização sobre como eles são usados para criar produtos não se materializam sem planejamento e certamente não vêm criar produtos não se materializam sem planejamento e certamente não vêm gratuitamente. Eles exigem conhecimento antecipado da organização, gratuitamente. Eles exigem conhecimento antecipado da organização, investimento, planejamento e direção. Eles exigem o pensamento estratégico investimento, planejamento e direção. Eles exigem o pensamento estratégico que vai além de um único produto

que vai além de um único produto55..

O gerenciamento é responsável por planejar e coordenar as atividades de O gerenciamento é responsável por planejar e coordenar as atividades de desenvolvimento do núcleo de ativos, bem como as dos produtos gerados a partir desenvolvimento do núcleo de ativos, bem como as dos produtos gerados a partir deste núcleo. Em outras palavras, o gerenciamento direciona a execução da LPS. deste núcleo. Em outras palavras, o gerenciamento direciona a execução da LPS.

Em comparação ao desenvolvimento de um sistema único, o gerenciamento Em comparação ao desenvolvimento de um sistema único, o gerenciamento em LPS possui tarefas adicionais. Os gerentes da LPS devem preocupar-se com em LPS possui tarefas adicionais. Os gerentes da LPS devem preocupar-se com questões pontuais, as quais são exclusivas desta abordagem, como as mudanças e questões pontuais, as quais são exclusivas desta abordagem, como as mudanças e evolução da plataforma, entrada e saída de produtos da

evolução da plataforma, entrada e saída de produtos da linha, entre outras linha, entre outras questões.questões. Com relação às atividades, o SEI divide o processo de gerenciamento da Com relação às atividades, o SEI divide o processo de gerenciamento da Linha de Produtos de

Linha de Produtos de Software Software em duas grandes áreas. São elas:em duas grandes áreas. São elas:

 Gerenciamento OrganizacionalGerenciamento Organizacional: deve criar uma estrutura: deve criar uma estrutura

organizacional

organizacional66 adequada para a empresa e certificar-se de que asadequada para a empresa e certificar-se de que as unidades organizacionais recebem os recursos adequados (por unidades organizacionais recebem os recursos adequados (por exemplo, pessoal bem treinado)

exemplo, pessoal bem treinado) em quantidades suficientes.em quantidades suficientes.

 Gerenciamento TécnicoGerenciamento Técnico: supervisiona o desenvolvimento da: supervisiona o desenvolvimento da

plataforma e as atividades de desenvolvimento dos produtos, plataforma e as atividades de desenvolvimento dos produtos, assegurando que aqueles que os constroem estão engajados nas assegurando que aqueles que os constroem estão engajados nas

55Citação retirada de http://www.sei.cmu.edu/productlines/frame_report/what.is.a.PL.htm. Acesso:Citação retirada de http://www.sei.cmu.edu/productlines/frame_report/what.is.a.PL.htm. Acesso: 17/03/2011.

17/03/2011.

6

6A estrutura de uma organização pode ser definida como o resultado de um processo através do qualA estrutura de uma organização pode ser definida como o resultado de um processo através do qual

a autoridade é distribuída, as atividades desde os níveis mais baixos até a alta administração são a autoridade é distribuída, as atividades desde os níveis mais baixos até a alta administração são especificadas e um sistema de comunicação é delineado

(24)

atividades necessárias, seguindo os processos definidos para a linha atividades necessárias, seguindo os processos definidos para a linha de produtos. Além disso, o gerente é responsável por recolher dados de produtos. Além disso, o gerente é responsável por recolher dados para acompanhamento do progresso.

para acompanhamento do progresso.

De uma maneira geral, o gerenciamento deve dar subsídios para a realização De uma maneira geral, o gerenciamento deve dar subsídios para a realização das atividades da LPS. Ressaltamos que o gerenciamento das atividades do das atividades da LPS. Ressaltamos que o gerenciamento das atividades do processo de Engenharia de Domínio é o foco deste

processo de Engenharia de Domínio é o foco deste trabalho.trabalho.

A Figura 4 mostra o objetivo geral dos principais processos envolvidos na A Figura 4 mostra o objetivo geral dos principais processos envolvidos na Linha de Produtos de

Linha de Produtos de Software Software ..

Figura 4 - Objetivo geral dos

Figura 4 - Objetivo geral dos principais processos da Linha de Produtos deprincipais processos da Linha de Produtos de Software Software . Autor (2011). Autor (2011)

2.1.4. Vantagens 2.1.4. Vantagens

Diversas são as vantagens alcançadas através da utilização da abordagem Diversas são as vantagens alcançadas através da utilização da abordagem de Linha de Produtos, as quais motivam sua adoção. Entre elas (POHL et. al. 2005): de Linha de Produtos, as quais motivam sua adoção. Entre elas (POHL et. al. 2005):

 Redução dos Custos de DesenvolvimentoRedução dos Custos de Desenvolvimento: Uma vez que os: Uma vez que os

artefatos da plataforma são reusados por diversas aplicações artefatos da plataforma são reusados por diversas aplicações diferentes, os custos de desenvolvimento caem significativamente a diferentes, os custos de desenvolvimento caem significativamente a cada

cada software software desenvolvido. É preciso ressaltar, no entanto, que paradesenvolvido. É preciso ressaltar, no entanto, que para

um investimento inicial em LPS, o custo é alto (uma vez que é um investimento inicial em LPS, o custo é alto (uma vez que é necessária a codificação de cada artefato da plataforma). O ponto de necessária a codificação de cada artefato da plataforma). O ponto de quebra, a partir do qual passa a valer a pena o investimento em Linha quebra, a partir do qual passa a valer a pena o investimento em Linha de Produtos, é o desenvolvimento de 3 sistemas, aproximadamente de Produtos, é o desenvolvimento de 3 sistemas, aproximadamente (LINDEN et. al., 2007).

(LINDEN et. al., 2007).

••Atividades relacionadas aoAtividades relacionadas ao

desenvolvimento da plataforma desenvolvimento da plataforma Engenharia de Engenharia de Domínio Domínio

••Atividades relacionadas aoAtividades relacionadas ao

desenvolvimento dos produtos desenvolvimento dos produtos Engenharia de

Engenharia de Aplicação Aplicação

••Planejamento da LPS e coordenaçãoPlanejamento da LPS e coordenação

das atividades de Engenharia de das atividades de Engenharia de Domínio e Engenharia de Aplicação Domínio e Engenharia de Aplicação Gerenciamento

(25)

A Figura 5, mostrada abaixo, evidencia a redução dos custos A Figura 5, mostrada abaixo, evidencia a redução dos custos de desenvolvimento a cada

de desenvolvimento a cada software software  desenvolvido com o uso dadesenvolvido com o uso da

abordagem de LPS. Em contraste, os custos de desenvolvimento de abordagem de LPS. Em contraste, os custos de desenvolvimento de sistemas únicos crescem na medida em que aumenta a

sistemas únicos crescem na medida em que aumenta a quantidade dequantidade de

softwares 

softwares desenvolvidos.desenvolvidos.

Figura 5 - Custos da

Figura 5 - Custos da Linha de Produtos deLinha de Produtos de Software Software . Adaptada de (LINDEN et. al., 2007, p.4). Adaptada de (LINDEN et. al., 2007, p.4)

 Melhor aproveitamento dos recursos humanosMelhor aproveitamento dos recursos humanos : Visto que a maior: Visto que a maior

parte do trabalho está

parte do trabalho está concentrada no desenvolvimento da plataforma,concentrada no desenvolvimento da plataforma, ao fim desta fase grande parte da equipe de desenvolvimento já pode ao fim desta fase grande parte da equipe de desenvolvimento já pode ser alocada para outros projetos. É preciso somente uma fração desta ser alocada para outros projetos. É preciso somente uma fração desta equipe para o desenvolvimento dos produtos da linha.

equipe para o desenvolvimento dos produtos da linha.

 Redução do time-to-market Redução do time-to-market : :  Estando a plataforma pronta, osEstando a plataforma pronta, os

esforços para a elaboração do novo produto concentram

esforços para a elaboração do novo produto concentram-se apenas na-se apenas na sua montagem, a partir dos artefatos da plataforma, e sua montagem, a partir dos artefatos da plataforma, e desenvolvimento das

desenvolvimento das features features  específicas do mesmo. Porespecíficas do mesmo. Por

consequência, o tempo de entrada do produto no m

consequência, o tempo de entrada do produto no mercado é reduzido.ercado é reduzido.

 Aumento da qualidade dos Aumento da qualidade dos produtosprodutos: Se um erro for encontrado em: Se um erro for encontrado em

qualquer produto da linha, a solução para o mesmo é propagada a qualquer produto da linha, a solução para o mesmo é propagada a todos os outros produtos. Além disso, os artefatos da plataforma são todos os outros produtos. Além disso, os artefatos da plataforma são

(26)

testados em diversos produtos, o que implica em aumento da testados em diversos produtos, o que implica em aumento da qualidade.

qualidade.

 Benefícios para os clientesBenefícios para os clientes: a padronização dos artefatos traz: a padronização dos artefatos traz

benefícios de usabilidade para os clientes, que terão facilidade em benefícios de usabilidade para os clientes, que terão facilidade em manusear diferentes produtos da linha, já que

manusear diferentes produtos da linha, já que a interface dos produtosa interface dos produtos (baseados na mesma plataforma) se assemelha. Já a customização (baseados na mesma plataforma) se assemelha. Já a customização garante produtos adaptados às suas necessidades. Outrossim, a garante produtos adaptados às suas necessidades. Outrossim, a redução de custos de desenvolvimento se reflete no preço final do redução de custos de desenvolvimento se reflete no preço final do produto, que será diminuído.

produto, que será diminuído.

Diversos relatos de experiências mostram que grandes empresas têm-se Diversos relatos de experiências mostram que grandes empresas têm-se aproveitado dos benefícios ocasionados pela adoção da Linha de Produtos de aproveitado dos benefícios ocasionados pela adoção da Linha de Produtos de

Software 

Software . Entre as quais podemos citar: Bosch, Nokia, Philips, Siemens (LINDEN et.. Entre as quais podemos citar: Bosch, Nokia, Philips, Siemens (LINDEN et.

al., 2007); Motorola (JIANG et. al., 2008); Forças Armadas Norte Americana al., 2007); Motorola (JIANG et. al., 2008); Forças Armadas Norte Americana (BERGEY et. al., 2010), entre outras. Tais exposições mostram que a LPS vem (BERGEY et. al., 2010), entre outras. Tais exposições mostram que a LPS vem ganhando força com o passar dos anos, tornando-se estratégia de desenvolvimento ganhando força com o passar dos anos, tornando-se estratégia de desenvolvimento de empresas renomadas em todo o mundo.

de empresas renomadas em todo o mundo. 2.1.5. Riscos

2.1.5. Riscos

Adotar a estratégia de Linha de Produtos de

Adotar a estratégia de Linha de Produtos de Software Software , é claro, tem seus, é claro, tem seus

riscos associados. Este projeto pode ser considerado uma mudança tecnológica e, riscos associados. Este projeto pode ser considerado uma mudança tecnológica e, portanto, deve envolver uma avaliação da situação atual da empresa, uma portanto, deve envolver uma avaliação da situação atual da empresa, uma articulação do estado desejado e a elaboração de um plano para atingir este estado articulação do estado desejado e a elaboração de um plano para atingir este estado (DURSCKI et al., 2004).

(DURSCKI et al., 2004). Clements e Northrop

Clements e Northrop apud apud Cohen (2002) relatam, entre outros, os seguintesCohen (2002) relatam, entre outros, os seguintes

riscos associados à adoção da LPS: riscos associados à adoção da LPS:

 Líder não identificadoLíder não identificado: sem um líder com autoridade de gestão, a: sem um líder com autoridade de gestão, a

LPS não pode ter êxito. O líder é o indivíduo que comunica o projeto à LPS não pode ter êxito. O líder é o indivíduo que comunica o projeto à gerência e aos desenvolvedores, mantém o projeto durante a adoção, gerência e aos desenvolvedores, mantém o projeto durante a adoção, conserva os desenvolvedores na direção correta diante das conserva os desenvolvedores na direção correta diante das dificuldades e mantém a equipe motivada. Onde não há indivíduos com dificuldades e mantém a equipe motivada. Onde não há indivíduos com estas qualidades, a adoção geralmente falha.

(27)

 Abordagem incompatívelAbordagem incompatível: A Linha de Produtos de: A Linha de Produtos de Software Software deve serdeve ser

uma estratégia que atenda às metas específicas da empresa. Embora uma estratégia que atenda às metas específicas da empresa. Embora as metas variem de organização para organização, os objetivos da as metas variem de organização para organização, os objetivos da LPS são sempre baseados na exploração do reuso sistemático entre LPS são sempre baseados na exploração do reuso sistemático entre os produtos. Se os produtos em desenvolvimento não têm os produtos. Se os produtos em desenvolvimento não têm similaridades suficientes para justificar uma abordagem de Linha de similaridades suficientes para justificar uma abordagem de Linha de Produtos, qualquer esforço de empreendimento irá falhar devido à falta Produtos, qualquer esforço de empreendimento irá falhar devido à falta de resultados tangíveis.

de resultados tangíveis.

 Adaptação insuficienteAdaptação insuficiente: Assim como a arquitetura ou os: Assim como a arquitetura ou os

componentes requerem um grau de adaptação para uma Linha de componentes requerem um grau de adaptação para uma Linha de Produtos, a organização também deve adaptar suas práticas em Produtos, a organização também deve adaptar suas práticas em relação às equipes de desenvolvimento ou produtos. A falta de relação às equipes de desenvolvimento ou produtos. A falta de adaptabilidade pode resultar em desempenho abaixo do ideal ou adaptabilidade pode resultar em desempenho abaixo do ideal ou desvios de planejamento, os quais inviabilizam a LPS.

desvios de planejamento, os quais inviabilizam a LPS.

 Falha na evolução da abordagemFalha na evolução da abordagem: se a LPS não é aperfeiçoada: se a LPS não é aperfeiçoada

continuamente ao longo do tempo, as práticas provavelmente irão se continuamente ao longo do tempo, as práticas provavelmente irão se tornar ineficazes e desvios de planejamento irão surgir.

tornar ineficazes e desvios de planejamento irão surgir.

 Divulgação ineficazDivulgação ineficaz: O líder da Linha de Produtos deve assumir a: O líder da Linha de Produtos deve assumir a

responsabilidade de desenvolver e distribuir o tipo e níveis apropriados responsabilidade de desenvolver e distribuir o tipo e níveis apropriados de documentação, treinamento, e suporte efetivo da LPS, os quais são de documentação, treinamento, e suporte efetivo da LPS, os quais são essenciais para um lançamento bem-sucedido da linha de produtos. O essenciais para um lançamento bem-sucedido da linha de produtos. O lançamento não ocorrerá conforme previsto ou não produzirá os lançamento não ocorrerá conforme previsto ou não produzirá os resultados desejados se houver

resultados desejados se houver preparação inadequada.preparação inadequada.

 Padronização inadequadaPadronização inadequada: As organizações comumente erram em: As organizações comumente erram em

imaginar que a adoção de normas sustentará automaticamente a LPS. imaginar que a adoção de normas sustentará automaticamente a LPS. Infelizmente, se a institucionalização ocorre muito rapidamente, normas Infelizmente, se a institucionalização ocorre muito rapidamente, normas inadequadas ou obsoletas poderão ser instituídas, e a inovação pode inadequadas ou obsoletas poderão ser instituídas, e a inovação pode ser encerrada prematuramente. Por outro lado, se a normatização é ser encerrada prematuramente. Por outro lado, se a normatização é

Imagem

Referências