“O desenvolvimento de um software é algo que tem evoluído de uma estrutura monolítica, centralizada e estática (que preferimos chamar “fat cat phase”, ou “fase do gato gordo”) para uma estrutura modular, distribuída e dinâmica, tanto no nível de processo quanto no de produto.
O mercado está demandando um desenvolvimento de software que seja flexível, adaptável, confiável, e evolvente, que possa responder mais rapidamente às necessidades dos consumidores.
Mais do que ser desenvolvido por uma única organização, ele está sendo construído por partes federadas, que são desenvolvidas por distintas organizações. Da mesma forma, os produtos de software estão crescentemente sendo criados e evoluídos através da congregação de componentes e serviços de software individuais que podem ser descobertos e combinados dinamicamente.
Em casos extremos, a forte distinção entre uma fase estática, em que o software é projetado, composto, validado, e aplicado, e a fase de tempo de execução, em que um sistema cuidadosamente definido e imutável é operado, desapareceu completamente.
Ou seja, o software pode evoluir dinamicamente enquanto está operando, através de uma variedade de mecanismos que incluem descoberta dinâmica, negociação e amarração.
Um dos mais significativos avanços no desenvolvimento de software tem sido o do Reuso de software. Mas o que isto significa? O reuso de software é o processo de criar sistemas de software a partir de software existente, mais do que construí-lo desde a fase zero.
E qual é a motivação para a adoção desta tecnologia? A engenharia de hardware e de software conforma sistemas poderosos, mas que exigem projetos complexos. Além disto, no desenvolvimento de software se observa que de 40% a 60% dos códigos de programação são reusáveis (em aplicações); 75% das funções são comuns a mais de um programa, e somente 15% do código é único. O reuso do software é crítico para a melhoria da qualidade e da produtividade do desenvolvimento do software, bem como da redução de custos.
Mas se é uma tecnologia relevante, por que ela ainda não é largamente utilizada (os entraves)? Os principais fatores que têm inibido o desenvolvimento desta tecnologia são: a ausência de uma clara estratégia de reusabilidade, e a falta de um suporte gerencial de alto nível nas equipes de desenvolvimento.
Neste sentido, um modelo de adoção de reuso (ou seja, uma estratégia) ajuda a organização a entender como o reuso irá mudar o modo como ela faz negócios, e como ela deve planejar para esta mudança. Um modelo de adoção de reuso é um guia para o processo de melhoria. Ele sugere área onde a capacidade pode ser medida de modo sistemático em uma organização num dado ponto do tempo. Ele oferece um lugar por onde começar; o benefício da experiência da comunidade desenvolvedora; um plano de orientação para priorizar as ações; e um modo de definir tipo de melhoria melhor atende a sua organização.
E onde obter informações a respeito da tecnologia de reuso de software? Você pode até não acreditar, mas o lugar no Brasil onde se está produzindo tecnologia de ponta na área de reuso de software é Pernambuco, e, de modo particular, no Centro de Estudos e Sistemas Avançados do Recife- CESAR, em parceria com o Centro de Informática da UFPE-CIn.
No seio destas instituições há o grupo denominado RISE- Reuse in Software Engineering Group, formado por professores, pesquisadores e alunos, além de empresas e outras universidades parceiras, que vêm desenvolvendo atividades de pesquisa e desenvolvimento na tecnologia de reuso de software em várias disciplinas, tais como custos, métricas, reengenharia, adaptação, engenharia de domínios, inspeção, engenharia de aplicações, testes e certificações.
O grupo já realizou dois workshops, um em 2006 (os trabalhos apresentados podem ser vistos no site http://wire.cesar.org.br) e outro este ano (com trabalhos no site http://wire2007.cesar.org.br/slides.html), e já produziu um livro intitulado CRUISE- Component Reuse In Software Engineering, que pode ser baixado no site http://cruise.cesar.org.br/index.html.
Se você estiver interessado em dominar esta tecnologia, pode ficar certo que será um dos assuntos que deverá dominar a agenda da indústria de software no cenário mundial!
Este é o meu artigo desta semana na coluna Rai-Tec, do JC On-Line, que você pode ler aqui, ou pode baixá-lo em formato pdf (aqui)! (PS: resolvi editá-lo na íntegra, já que saiu truncado no JC-Online)
Setembro 12, 2007 às 10:59 pm |
Mais notícias sobre reuso na mídia
Excelente matéria do professor de Economia da UFPE e ex-Secretário Executivo de Tecnologia, Inovação e Ensino Superior de Pernambuco, José Carlos Cavalcanti. Apresenta de forma bem clara conceitos de reuso de software, motivações e inibidores.
L…
Setembro 13, 2007 às 12:48 pm |
Eduardo,
Obrigado!
Vou ficar mais atento ao que vocês estão trabalhando!
Boa Sorte!
JCC