O documento discute o processo DRU do Nível C do MPS.Br, que trata do desenvolvimento de software para reuso. Apresenta as vantagens da reutilização, técnicas como SOA e componentes, e destaca a empresa Powerlogic como exemplo de certificação no processo DRU.
1. DRU – Desenvolvimento para Reuso
Juliana S. Cindra*.
*Instituto Federal de Educação, Ciência e Tecnologia Fluminense -
Campos dos Goytacazes/RJ
jucindra@gmail.com
Abstract. This paper aims to present the process DRU – Reuse Development,
Level C MPS.Br, partially showing how this process has been used in Brazil,
which companies use data and some of Level C. And present also some
techniques or procedures that enable the implementation of this process.
Resumo. Este trabalho tem como objetivo apresentar o processo DRU –
Desenvolvimento para Reuso, do Nível C do MPS.Br, mostrando de forma
parcial como este processo tem sido utilizado no Brasil, quais empresas
utilizam e alguns dados do Nível C. Bem como apresentar também algumas
técnicas ou procedimentos que possibilitam a implantação deste processo.
1. MPS.Br (Melhoria de Processos de Software Brasileiro)
A qualidade de software é um conjunto de atividades relacionadas com garantia da
qualidade de software. E é identificada como umas das áreas de conhecimento da
engenharia de software. O MPS.Br é um modelo brasileiro de qualidade de processo de
software e também um movimento para melhoria da qualidade de software.
Além de se basear na realidade do mercado brasileiro de software, o MPS.Br
também utiliza o CMMI (Integração do modelo de capacidade e maturidade, em
português), e as normas ISO IEC 12207 e 15504 como base.
A graduação da escala de implementação do MPS.BR varia entre os níveis G ao
A, onde o nível G é o menor nível e o nível A é o nível mais elevado da escala. Cada
nível trata de um assunto dentro da qualidade de software, e a cada um deles é atingido
um determinado grau de qualidade. Este trabalho focará no Nível C, mas precisamente
no processo DRU, onde os projetos encontram-se em estado definido, podendo assim
implantar tal processo para reutilização.
Figura dos níveis do MPS.Br
2. 2. O Nível C
O Nível C do MPS.Br equivale ao Nivel 3 do padrão de qualidade CMMI, onde seus
processos são bem definidos. Esses processos do Nível C são a Gerência de Risco –
GRI; a Análise de Decisão e Resolução – ADR; a Gerência de Reutilização – GRU
(evolução); e o Desenvolvimento para Reutilização – DRU.
Pode-se ser observado alguns dados interessantes sobre as empresas que se
encontram nos Nível C do MPS.Br, de acordo com o IMPS (Resultado de desempenho
de organizações que adotaram o modelo MPS) [Softex]:
[http://www.blogcmmi.com.br/avaliacao/lista-de-empresas-mps-br-no-brasil]
Empresas que atingiram o Nível C em 2010:
BRQ – RJ (validade até 25.ago.13)
BRQ – PR (válido até: 25.fev.13)
CAST – SP (validade até 13.ago.13)
FÓTON – DF (válido até: 18.mai.13)
MONTREAL – RJ (validade até 14.dez.13)
PD CASE – MG (validade até 09.set.13)
POWERLOGIC – MG (válido até: 09.mar.13)
SYNAPSIS – RJ e CE (válido até: 01.jul.12)
SYNOS – MG (válido até: 16.jul.12)
[http://www.blogcmmi.com.br/avaliacao/lista-de-empresas-mps-br-no-brasil]
2.1. O caso Powerlogic
Dentre estas empresas citadas acima, apenas a empresa Powerlogic até então,
teria sido aprovada na avaliação da implantação do processo DRU do Nível C do
MPS.Br. Utilizando processos baseados em métodos ágeis (notadamente o Scrum),
3. altamente pragmáticos. Como destaque de sua certificação foi constatado um alto nível
de automação alcançado com o uso de ferramental próprio de AML (Application
Lifecycle Management), o Powerlogic jAML.
Segundo o site da Powerlogic, ela é uma empresa totalmente brasileira que
desenvolve softwares para o mercado corporativo como também para o governo, e é
percursora do movimento open source no Brasil. Sua área de atuação seria o
fornecimento de soluções JavaEE, e o desenvolvimento de swites de software open
source que abrange todas as áreas do ciclo de vida de um desenvolvimento.
De acordo com estas informações seu domínio é bem definido, daí a
possibilidade de desenvolver para reuso.
3. O processo DRU
O desenvolvimento para reutilização talvez pode ser explicado como a identificação de
oportunidades de reutilização sistemática na organização, e estabelecimento de
programa de reutilização para o desenvolvimento de ativos a partir de engenharia de
domínios de aplicação.
Este processo do Nível C possui alguns resultados esperados para que possa ser
considerado atingigo o objetivo de desenvolver softwares para reutilização, e não
apenas gerenciar o processo de reúso. Além de utilizar soluções já pensadas, prontas, o
objetivo deste processo é transformar de consumidor de soluções reusáveis para
fabricante de tais soluções de reuso. Para isto é nessário que sejam atingidas algumas
metas que são os resultados esperados deste processo, descritos a seguir:
DRU 1. Domínios de aplicação em que serão investigadas oportunidades de
reutilização ou nos quais se pretende praticar reutilização são identificados, detectando
os respectivos potenciais de reutilização;
DRU 2. A capacidade de reutilização sistemática da organização é avaliada e
ações corretivas são tomadas, caso necessário;
DRU 3. Um programa de reutilização, envolvendo propósitos, escopo, metas e
objetivos, é planejado com a finalidade de atender às necessidades de reutilização de
domínios;
DRU 4. O programa de reutilização é implantado, monitorado e avaliado;
DRU 5. Propostas de reutilização são avaliadas de forma a garantir que o
resultado da reutilização seja apropriado para a aplicação alvo;
DRU 6. Formas de representação para modelos de domínio e arquiteturas de
domínio são selecionadas;
DRU 7. Um modelo de domínio que capture características, capacidades,
conceitos e funções comuns, variantes, opcionais e obrigatórios é desenvolvido e seus
limites e relações com outros domínios são estabelecidos e mantidos;
DRU 8. Uma arquitetura de domínio descrevendo uma família de aplicações
para o domínio é desenvolvida e mantida por todo seu ciclo de vida;
4. DRU 9. Ativos do domínio são especificados; adquiridos ou desenvolvidos, e
mantidos por todo seu ciclo de vida.
4. Desenvolvimento de software para reuso
O reuso de software oferece várias vantagens para as empresas e projetos, como
qualidade, economia, eficiência e agilidade. Que é a otimização das quatro variáveis
determinantes para o sucesso dos projetos de software: qualidade, custo, produtividade e
tempo.
Para que estas vantagens oferecidas pela reutilização de sofware sejam de fato
aproveitadas, é necessário que haja um planejamento estruturado para evitar problemas
que possam desestimular o reuso. Além de fatores técnicos que podem contribuir para a
não utilização do reuso de sofware, como por exemplo o fato de a maioria das
ferramentas CASE ainda não possuirem integração com bibliotecas de componentes,
existe também o fator psicológico de profissionais que preferem reescrever do que
reutilizar código.
A partir do momento que a reutilização de sofwares passa a ser algo mais
natural, ou seja, já ter passado por algumas experiências com reuso de código dando
maturidade neste processo. E já sabendo a área específica de atuação da empresa, que
pode ser determinada através de engenharia de domínio. Pode-se então passar para um
outro nível da reutilização que é não o consumo, mas o desenvolvimento de ativos.
4.1. Técnicas utilizadas
Atualmente as técnicas utilizadas para a reutilização de sofware costumam ser:
Arquitetura Baseada em Serviços (SOA); Desenvolvimento baseado em componentes; e
Linhas de produtos de sofware. A Arquitetura Baseada em Serviços (SOA), estabelece o
reuso na divisão da lógica que é feita no serviço. O desenvolvimento baseado em
Componentes, estabelece o reuso na componentização de recursos de sistemas. E a linha
de produtos de Software, estabelece o reuso no planejamento, onde um sistema é
construido baseado em sistemas de sofware similares.
Um exemplo de reutilização utilizando a Arquitetura Baseada em Serviços
(SOA), são os web services, que é uma solução de comunicação entre aplicações, de
forma que novas aplicações possam interagir com outras já existentes, e sistemas feitos
em plataformas diferentes tornem-se compatíveis. Pela arquitetura SOA ser baseada na
computação distribuída, os recursos reutilizáveis são os serviços oferecidos pelos
sistemas que os implementam, não sendo necessário escrever novamente a mesma
solução, visto que esta encontra-se disponível para os sistemas clientes.
Como exemplo de reutilização para o desenvolvimento baseado em componente,
pode-se citar os plugins, que são pequenas implementações de código que realizam
funções bem específicas, que podem ser adicionados ao sistema, mas que sua ausência
não impacta na funcionalidade original. Para o desenvolvimento de componentes existe
ainda um termo bem utilizado no meio do desenvolvimento para reutilização que são as
5. 'Bibliotecas de Componentes', estas são repositórios onde são armazenados
classificados, e catalogados componentes para reuso.
Por último, para as linhas de produtos de sofwares pode-se citar como um
exemplo simples os frameworks, que são estruturas base de sistemas, um esqueleto, ou
seja, possui características comuns aos sistemas, onde o sistema específico é
desenvovido baseado neste “pré-pronto”. A linha de produto de sofware tem como
característica a similaridade aos processos de produção de fábrica, onde é visado o reuso
e os possíveis múltiplos produtos da mesma família, como em um linha de produção.
Na linha de produto de software todo o código que irá ser reutilizado é planejado,
desenhado, e concebido tendo em vista a possibilidade de modificação e reutilização de
forma a se enquadrar aos vários sistemas.
5. Conclusão
O MPS.Br não impõe as técnicas ou os procedimentos que deverão ser utilizados para
se alcançar as metas de cada processo dos níveis, apenas determina o resultado que deve
ser obtido, desta forma garante a liberdade de escolha dos métodos que serão utilizados
para tal.
A princípio o desenvolvimento para reuso pode parecer algo custoso ou que não
vá valer a pena o trabalho. Mas encarando o desenvolvimento para reuso, assim como o
gerenciamento de recursos reutilizáveis como investimentos de longo prazo, pode-se
num futuro reduzir de forma significativa os custos e o trabalho no desenvolvimento de
sistemas. Como também pode vir a ser uma fonte de renda para a empresa
desenvolvedora dos ativos, podendo disponibilizar as soluções para venda.
Referências
Monteiro, P., Reis M. and Viana, J. (2010) “Integração de Metodologia Ágil com
Modelo de Maturidade de Software”.
Softex (2010) “Mps.Br”, http://www.softex.br/mpsBr/_apresentacoes/apresentacao.asp?
id=2337, Outubro.
http://www.powerlogic.com.br/powerportal/site.do?
evento=portlet&pIdPlc=ecpTaxonomiaMenuPortal&app=site&tax=9244&lang=pt_BR
&pg=6701&taxp=0&
http://www.sensedia.com/br/entrevista/58/claudia-werner-em-entrevista-para-da-insight
http://docs.google.com/viewer?a=v&q=cache:L-