Modelo orientado á Reuso
Autor: Lucas | Publicado: 2011-10-27T15:06:00-07:00

Introdução  O conceito de reutilização de software se baseia na programação modular onde podemos fazer uso de procedimentos, funções e classes pré existentes criados por outros que servirão para que outros literalmente montem suas aplicações finais.  Muitas bibliotecas são oferecidas juntamente com as ferramentas de desenvolvimento para reduzir o tempo e a complexidade de projetos de software, como a Microsoft Foundation Class (MFC) e a Visual Component Library (VCL) do Delphi.  A principal motivação para a reutilização está relacionada ao aumento dos níveis de qualidade e produtividade no desenvolvimento de software.  O aumento da produtividade é resultado de uma redução no tempo de desenvolvimento, evitando a reconstrução de partes do sistema que já existem     A reutilização sempre foi utilizada por outras engenharias. Apenas nos últimos anos é que a engenharia de software começou adotar o reuso como uma abordagem prática no desenvolvimento de software.    A reutilização é o processo de incorporar em um novo produto:    • Código;    • Plano de Teste;    • Conhecimento Geral;    • Especificações de requisitos e projetos.     Na maioria dos projetos de software já ocorre de modo informal algum reuso de software. A abordagem aqui descrita propõe a utilização de componentes previamente desenvolvidos e que podem ser utilizados por vários sistemas da forma que foram confeccionados. Existe uma ampla base de componentes de software reutilizáveis, que podem ser acessados, e com alguma infra-estrutura de integração para esses componentes. Este modelo tem a vantagem de reduzir a quantidade de software a ser desenvolvido, portanto de reduzir custos e riscos, permitindo desta forma à entrega mais rápida do software. Contudo, as adequações nos requisitos podem ser inevitáveis e pode resultar em um sistema que não atenda as necessidades do usuário, além de que novas versões dos componentes reutilizáveis podem não estar sob controle da equipe de desenvolvimento.  Por isso devemos saber alguns aspectos para utilizar de uma forma adequada o reuso. Como:     Compreender diferentes tipos de componentes quepodem ser reutilizados e os processos de projetodestinados ao reuso.  Ter uma noção das famílias de aplicações e compreender como elas são uma maneira de reutilizar o software, e     Compreender como os padrões são abstrações de alto nível que promovem o reuso de projetos no desenvolvimento orientado a objetos.     REUSO DE SOFTWARE  Na maioria das disciplinas de engenharia, os sistemas são desenvolvidos pela composição de componentes já usados em outros sistemas     Em engenharia de software até agora o foco tem sido o desenvolvimento de tudo, mas agora podemos reconhecer que para conseguir umsoftware melhor, mais rápido e com um menor custo, é necessário adotar um processo de desenvolvimento baseado em reuso sistemático     Engenharia de Software baseada em reuso        O reuso de sistemas de aplicações  •Todo sistema de aplicações pode ser reutilizado pela suaincorporação, sem mudanças em outro sistema (o reuso deprodutos COTS) ou pelo desenvolvimento de famílias deaplicações     O reuso de componentes  •Os componentes de uma aplicação, que variam desde subsistemas até objetos isolados, podem ser reutilizados.     O reuso de funções  •Os componentes de software que implementam uma única função bem definida, podem ser reutilizados.     Prática do Reuso     O reuso de sistemas de aplicações  •Praticado extensamente quando sistemas de software são implementados como famílias da aplicação. Reusar COTS está tornando-se cada vez mais comum     O reuso de componentes  •Visto agora como uma abordagem chave eficaz e difundida, como uma tecnologia de programação baseada em componente. Entretanto, é ainda relativamente imatura     O reuso de funções  •Comum em alguns domínios da aplicação (por exemplo, engenharia) onde as bibliotecas de domínio específicas de funções reusáveis foram estabelecidas.     Benefícios do reuso de software     Maior confiabilidade  •Os componentes foram testados em diferentes ambientes.     Redução dos riscos de processo  •Menor incerteza dos custos do desenvolvimento.     Uso efetivo de especialistas  •Reusar componentes em vez de pessoas.     Conformidade com padrões  •Impor padrões através de componentes reutilizáveis.     Desenvolvimento acelerado  •Evitar o desenvolvimento próprio e assim melhorar a velocidade de produção.     Requisitos para o Desenvolvimento com reuso     Deve ser possível encontrar componentes reutilizáveis apropriados     O responsável pelo reuso dos componentes precisa ter certeza de que o componente se comportará como especificado e de que é confiável.     Os componentes devem ter a documentação associada para ajudar o usuário a compreendê-los e adaptá-los a uma nova aplicação     Problemas com o reuso     Aumento nos custos de manutenção   Falta de ferramentas de apoio  Síndrome do 'não-foi-inventado-aqui'  Manutenção de uma biblioteca de componentes  Encontrar e adaptar componentes reutilizáveis     Conclusão  Basicamente o um projeto de software orientado a reuso planeja todo um esquema de componentes que podem ser reutilizados por outras empresas ou ela mesma, é difícil de ser elaborado mais compensa com o tempo não gasta nas produções de futuros software alem de poder ser comercializado.