Esse artigo faz parte da revista Engenharia de Software 10 edição especial. Clique aqui para ler todos os artigos desta edição

Processo

Gerência de Reutilização de Software

 

 

De que se trata o artigo:

Neste artigo apresenta-se o processo de Gerência de Reutilização de Software, sua contribuição para as organizações intensivas em software, além de benefícios e dificuldades na implementação de suas práticas.

 

Para que serve:

Serve para esclarecimento e melhor entendimento do tema por profissionais da área de qualidade e pelas organizações que pretendem implementar Gerência de Reutilização de Software.

 

Em que situação o tema é útil:

A adoção de práticas de reutilização de software surge como uma maneira da organização melhorar a produtividade das equipes, reduzir custos e melhorar a qualidade de seus produtos.

 

Mais recentemente temos um cenário de demanda por uma melhor qualidade de software. Demanda porque ter uma qualidade adequada não é mais um diferencial de negócio, mas sim uma condição básica para negócios. Qualidade de software em um sentido mais amplo, incluindo uma composição de fatores como os prazos menores, custos menores, menor quantidade de defeitos, menos insatisfações de uma maneira geral, maior qualidade dos produtos desenvolvidos, maior previsibilidade, maior produtividade, maior competitividade e melhores resultados de negócio [Salviano 2006a].

Segundo Salviano (2006a), a melhoria de processo de software tem mostrado na prática ser uma abordagem viável, eficaz e eficiente para a necessária melhoria das organizações intensivas em software. A comunidade tem relatado vários casos de sucesso como, por exemplo, Herbsleb et al. [1994], DACS [1999] e Card [2002].

A melhoria de processo de software baseada em modelos (em inglês, model based software process improvement) pode ser definida como: uma abordagem para melhoria das organizações intensivas em software, baseada em modelos de capacidade de processo, que orienta ações para alteração dos processos utilizados para aquisição, fornecimento, desenvolvimento, manutenção e/ou suporte de sistemas de software, com o objetivo de estabelecer processos que satisfaçam de forma mais eficiente e eficaz os objetivos e necessidades de negócio da organização [Salviano 2006a].

Diante deste cenário e utilizando a abordagem de melhoria de processo de software, a adoção de práticas de reutilização de software surge como uma maneira da organização melhorar a produtividade das equipes, reduzir custos e melhorar a qualidade de seus produtos.

Neste sentido, o processo Gerência de Reutilização de Software tem como objetivo definir procedimentos tanto administrativos quanto técnicos para utilização de ativos reutilizáveis em uma organização, estabelecendo e controlando uma biblioteca para o armazenamento e recuperação destes ativos [IEEE, 2004].

Neste artigo apresenta-se o processo de Gerência de Reutilização de Software, sua contribuição para as organizações intensivas em software, além de benefícios e dificuldades na implementação de suas práticas. Para isso, o artigo está organizado da seguinte forma: a seção 2 apresenta uma visão geral sobre a Gerência de Reutilização de Software; a seção 3 descreve este processo no MPS.BR, nível de maturidade Parcialmente Definido (E); a seção 4 trata da implementação das práticas deste processo numa organização; e por fim, a seção 5 trata das considerações finais.

Gerência de Reutilização de Software

Conforme Werner (2007), a reutilização é inerente ao processo de solução de problemas utilizado pelos seres humanos. Na medida em que soluções são encontradas, estas são utilizadas em problemas similares e nossa capacidade de abstração garante a adaptação necessária ao novo contexto. O problema, portanto, não é a falta de reutilização na Engenharia de Software, mas a falta de uma sistemática ampla e formal para realizá-la.

Segundo Krueger (1992), reutilização de software é a disciplina responsável pela criação de sistemas de software a partir de software preexistente. Reutilização de software consiste no processo de reaproveitar artefatos e conhecimentos de softwares já existentes na organização para construir novos, reduzindo tempo e custo e melhorando a qualidade destes produtos [Porto, 2008]. Por isso, mecanismos para a manutenção e recuperação destes ativos devem ser implementados, assim como uma biblioteca de ativos de processo, no qual a recuperação de ativos utilizados em outros projetos possam ser adaptados (quando necessário) e reutilizados em novos projetos [SEI, 2006].

Através de reutilização de software, alguns benefícios podem ser obtidos como [Werner 2007] [CRUISE 2007]:

·       melhores índices de produtividade;

·       produtos de melhor qualidade, mais confiáveis, consistentes e padronizados;

·       redução dos custos e esforço envolvidos no desenvolvimento e manutenção de software;

·       maior flexibilidade na estrutura do software produzido, facilitando sua manutenção e evolução;

·       tamanho de equipe menor, levando a uma melhor comunicação e maior produtividade, entre outros.

 

Por outro lado, existem algumas dificuldades relacionadas à [Werner 2007] [CRUISE 2007]:

·         identificação, recuperação e modificação de artefatos reutilizáveis;

·         compreensão dos artefatos recuperados;

...

Quer ler esse conteúdo completo? Tenha acesso completo