A utilizao de softwares no cotidiano das pessoas est se tornando cada vez
mais indispensvel e frequente, e estes softwares esto em constante mudana, mesmo os desenvolvidos h alguns anos atrs ainda sofrem alteraes. No caso de aplicativos para outros dispositivos mveis, como celulares e tablets, sofrem atualizaes frequentes e em curtos perodos de tempo. Produzir softwares que possam ser reutilizveis cada vez mais importante. A reutilizao de software uma prtica conhecida h muitos anos, mas o seu auge comea somente na ltima dcada, onde essa tcnica comeou de fato a ser usada no desenvolvimento de software rotineiro. Essa mudana veio da necessidade de entregas mais rpidas, prazos mais curtos, custos menores e manutenes mais rpidas. No desenvolvimento do software, tem que ser adotada ligeiras modificaes introduzindo novas caractersticas na construo de software. O objetivo principal da utilizao de componentes reutilizveis de software o incremento do reuso. Para atingir este objetivo de forma mais efetiva, pesquisas tm sido realizadas para desenvolver repositrios, que possam auxiliar na busca de componentes de software com a finalidade de aumentar a reusabilidade e a produtividade de desenvolvedores de software.
Objetivos O objetivo principal deste trabalho apresentar uma nova viso, para as empresas de construo de softwares e de componentes, em uma proposta com o objetivo de favorecer a busca de componentes reutilizveis, bem como fortalecer a pesquisa e o desenvolvimento de programas, que possam no futuro, ser reutilizados e/ou reaproveitados de alguma forma, agregando valores que possam trazer benefcios s empresas, como, por exemplo, a diminuio de gastos com o desenvolvimento completo de um programa. Justificativa Um dos principais motivos para a escolha da reutilizao a crescente demanda por softwares, muitas vezes com caractersticas parecidas, que faz com que a utilizao de ideias j projetadas e testadas seja uma alternativa rpida e econmica. Levando em conta que com o uso de componentes ou at mesmo programas completos na construo de novos softwares, h uma significativa melhora na qualidade do novo software e na conformidade com padres, pois o usurio j familiarizado com uma plataforma, no ter dificuldades na utilizao de outra semelhante. Referencial terico O uso de softwares no dia a dia das pessoas est se tornando, cada vez mais, indispensvel e frequente. Os softwares esto em constante atualizao, e mesmo softwares desenvolvidos h 10 anos sofrem alteraes. No caso de aplicativos para smartphones, Iphones, Ipads e outros dispositivos mveis esses sofrem atualizaes frequentes, em um curto perodo de tempo.
Construir softwares que possam ser reusveis e estendidos, importante. Isso permitiria aos programadores prestar manuteno ao software e evolu-lo com facilidade de entendimento e de forma que o mesmo possa ser reusvel ao longo dos anos. O software que ser atualizado poder, ento, sofrer alteraes de forma que essas alteraes no impactem nas outras funcionalidades do sistema.
Para construir softwares reusveis, deve-se adotar uma abordagem de programao na qual os mdulos do sistema sejam independentes, a exemplo da programao orientada a objetos. Um problema em potencial a presso por parte do mercado para que o produto fique pronto o mais rpido possvel. Nesses casos, os desenvolvedores tm pouco tempo para construir o software, o que dificulta o desenvolvimento focado em reusabilidade. Quando isso acontece, o cdigo resultante pode ser de difcil compreenso para o programador que far manuteno. Como consequncias, o software poder no ser evoludo e possveis erros presentes no mesmo podero no ser concertados. Planejar a reutilizao de um determinado software a ser construdo , portanto, uma boa forma de garantir a qualidade do produto. (A Importncia da Reusabilidade em Software)
Levantamento do problema A reutilizao de software se baseia no uso de conceitos, produtos ou solues previamente elaboradas ou adquiridas para criao de um novo software, visando melhorar significativamente a qualidade e a produtividade. Reusar um produto significa poder reusar partes de um sistema desenvolvido anteriormente como: especificaes, mdulos de um projeto, arquitetura e cdigo fonte. a reaplicao de informaes e artefatos de um sistema j definido, em outros sistemas semelhantes. O termo reuso pode ser considerado uma denominao genrica para uma srie de tcnicas utilizadas, que vo desde a etapa de modelagem de um projeto at a implementao. Na Reutilizao encontramos algumas dificuldades, entre elas: A identificao, compreenso, seleo, recuperao e modificao de artefatos reutilizveis, pois difcil para o programador encontrar um cdigo que sirva perfeitamente para o seu novo projeto; Qualidade dos artefatos recuperados que podem no ser confiveis na implementao do projeto; A implementao dos artefatos recuperados pode no ser uma tarefa fcil; Sndrome do no foi inventado aqui: a barreira da falta de humildade para a usar algo que algum fez e foi bem sucedido ; Falta de ferramentas de apoio pois atualmente os CASE no apoiam desenvolvimento com reutilizao: ser vlido ainda hoje?
Proposta de soluo/melhoria A reutilizao est relacionada ao aumento dos nveis de qualidade, e esse aumento uma consequncia da reutilizao de componentes que foram previamente documentados, testados e aprovados. Um Software que j foi testado em sistemas de trabalho dever ser mais confivel do que software novo, pois seus defeitos de projetos e implementao j foram encontrados e corrigidos; como os ajustes dos bugs que so acumulados cada vez que um componente reusado: pelo fato do componente ser reutilizado, ou utilizado em vrios projetos simultaneamente, o mesmo aprimorado cada vez mais, pois como bastante difundido e utilizado, a tendncia que os bugs surjam mais; Outro fator considervel e o ganho em produtividade que pode ser alcanando devido ao fato de que menos cdigo fonte deve ser desenvolvido, menor esforo de teste e projeto de software pelo fato de usarmos ou adquirirmos mdulos prontos, a economia em desenvolvimento e confiabilidade do software aumentam bastante; em geral de 40% a 60% do cdigo reutilizvel. O uso de componentes j testados em vrios sistemas aumenta a chance de deteco prvia de erros. quanto mais difundido o componente , mas sujeito a testes e correo de falhas ele . Reduo de esforo: a) Reuso de artefatos em vrias fases do desenvolvimento de software; b) Reuso de documentao: apenas o que for desenvolvido do zero precisar de nova Documentao; c) O tamanho da equipe pode ser reduzido e mesmo assim, aumentar a produtividade. Podemos notar com estes fatos, o quanto ganharemos de melhoria de qualidade no desenvolvimento do mesmo aplicativo. Desta forma, uma melhoria possvel para o aspecto de reusabilidade de componentes de software seria a construo de cdigos reeditveis padronizados.
Concluso Pode-se concluir que o reuso consiste em criar sistemas de softwares a partir de softwares j existentes, essa estratgia proporciona vantagem competitiva s empresas, porem podem proporcionar grandes problemas caso o componente reusado no seja adequado ao novo software. O aumento do reuso do software considerado como pr-condio tcnica crucial para melhorar a qualidade geral do software e reduzir os custos de manuteno e de produo como agilidade, confiabilidade e reduo de custos no gerenciamento do processo de criao do software.
Referncias A Importncia da Reusabilidade em Software. Disponvel em: <http://tiqx.blogspot.com.br/2012/02/importancia-da-reusabilidade-em.html> Reuso de Software - Algumas Vantagens. Disponvel em: <http://www.administradores.com.br/artigos/economia-e-financas/reuso-de- software-algumas-vantagens/28162/> Design Pattern e a reusabilidade de software. Disponvel em: <http://www.slideshare.net/phpal/design-pattern-e-a-reusabilidade-de-software> Facetas da Reusabilidade de Software. Disponvel em: <http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/pat/reusabilidade.html>