Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5...
Transcript of Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5...
![Page 1: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/1.jpg)
Reuso de Software
Aluna: Maria de FAluna: Maria de Fáátima Costa de Souzatima Costa de SouzaProfa.: Dra.Profa.: Dra. RossanaRossana M. C. AndradeM. C. Andrade
![Page 2: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/2.jpg)
2
Sumário
• Definição• Origem• Benefícios• Obstáculos• Características• Fatores de Sucesso e Falha• O Grande Problema• Conclusão
![Page 3: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/3.jpg)
3
Definição de Reuso
• Ao todo, são apresentadas 5 definições. São elas:– Freeman: É o uso de qualquer informação que o
desenvolvedor pode precisar na criação de processo de software.
– Basili e Rombach: O uso de tudo que esteja associado ao processo de desenvolvimento de software, incluindo o conhecimento.
– Frakes e Isoda: O uso de engenharia de conhecimento ou artefatos de softwares existentes para a construção do novos softwares.
![Page 4: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/4.jpg)
4
Definição de Reuso
– Tracz: O uso de software que foi projetado para reuso
– Ezran: A prática sistemática do desenvolvimento de software a partir de um conjunto de blocos, de forma que similaridades em termos de requisitos e/ou arquitetura entre aplicações possam ser exploradas para se alcançar substanciais benefícios em produtividade, qualidade e desempenho do negócio
![Page 5: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/5.jpg)
5
Definição de Reuso
• Mas a adotada pelos autores é a seguinte:
– Reuso é o processo de criação de sistemas de softwares a partir de softwares já existentes, ao invés de construí-los do zero
![Page 6: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/6.jpg)
6
Origem
• Idéia de reuso não é nova (1968)• Conferência de Engenharia de Software (NATO)• Crise do Software• A indústria do software está fraca e um aspecto
dessa franqueza é a falta de componente de software sub-industrial
• Ponto de partida para investigar técnicas de produção em massa do software
![Page 7: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/7.jpg)
7
Origem
• Produção em massa de componentes de softwares (Doug McIlroy)
• NATO
![Page 8: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/8.jpg)
8
Existem Benefícios?
• Reutilizar traz algum benefício?
• Qual?
![Page 9: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/9.jpg)
9
Benefícios do Reuso
• Impactos positivos na qualidade do software, custo e produtividade
• Quanto a melhoria da qualidade:– Qualidade– Produtividade– Confiabilidade
![Page 10: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/10.jpg)
10
Benefícios do Reuso
• Quanto a redução do esforço– Redução do trabalho e o tempo de desenvolvimento– Tempo de Mercado– Documentação– Custo da manutenção– Tamanho da Equipe
![Page 11: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/11.jpg)
11
Existem Obstáculos?
• Existem obstáculos para se reutilizar um software?
• Quais?
![Page 12: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/12.jpg)
12
Obstáculos
• Podem ser do tipo: – Gerencial– Organizacional– Econômico– Conceitual ou Técnico
• Gerencial e Organizacional– Falta de suporte de gerenciamento– Gerenciamento de Projeto– Estruturas organizacionais inadequadas
![Page 13: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/13.jpg)
13
Obstáculos
• Econômicos– Leva mais tempo– É mais caro– “componentes devem ser reusados mais de 13 vezes
para recuperar o investimento...” [Favaro,1991]• Conceitual e Técnico
– Dificuldade de encontrar software reusável– Não reusabilidade do software encontrado– Modificacão
![Page 14: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/14.jpg)
14
Características Básicas
• A área de reuso de software tem três características chaves. São elas:– Prática sistemática de desenvolvimento de software– Explora similaridade em requisitos e/ou arquiteturas
entre aplicações– Oferece benefícios substanciais na produtividade,
qualidade e performance comercial
![Page 15: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/15.jpg)
15
O que reusar?
• Recursos de software reusáveis
• Podem ser de dois tipos:– Vertical: específico ( software financeiro, médico,
algoritmo)– Horizontal: genérico. Podem ser utilizados independente
da aplicação (autenticação de serviço)
![Page 16: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/16.jpg)
16
Fatores de Sucesso e Falha
• O Problema– Não existe um conjunto de fatores de sucesso comuns
entre empresas– Reuso é vantagem competitiva
• Sucesso– Gerenciamento– Fatores humanos– Maturidade do processo
![Page 17: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/17.jpg)
17
Fatores de Sucesso e Falha
• Falha– 1/3 dos projetos falharam [Morisio, 2002]– Não introduzir processos específicos de reuso– Não modificar processos existentes que não
consideravam reuso– Não considerar fatores humanos como parte do
processo
![Page 18: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/18.jpg)
18
O Grande Problema• ARIANE 5
– Em 4 de Julho de 1996, o foguete Ariane 5, da Agência Espacial Européia, explodiu 4 segundos depois do seu lançamento. Depois de uma década de desenvolvimento e mais de $7 bilhões de investimentos.
– A causa da queda se deu por problemas no Sistema de Referência Inercial (SRI), que foi desenvolvido e reusado do Ariane 4. O fato do Ariane 5 ter uma aceleração inicial cinco vezes maior que o Ariane 4, fez com que ocorresse um overflow em um operação de conversão de tipos.
![Page 19: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/19.jpg)
19
O Grande Problema• ARIANE 5
– Conclusão: é importante realizar uma avaliação completa de um componente em seu novo contexto [Weyuker, 1998]
![Page 20: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/20.jpg)
20
Conclusão
• Reuso consiste em criar sistemas de softwares a partir de softwares já existentes
• Essa estratégia proporciona vantagem competitiva as empresas
• Mas também podem proporcionar grandes problemas caso o componente reusado não seja adequado ao novo software
![Page 21: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/21.jpg)
21
Perguntas
![Page 22: Reuso de Software - UFC · 2008. 6. 5. · 3 Definição de Reuso • Ao todo, são apresentadas 5 definições. São elas: – Freeman: É o uso de qualquer informação que o desenvolvedor](https://reader036.fdocumentos.com/reader036/viewer/2022062605/5fd9ff9311a16c0ac74cd570/html5/thumbnails/22.jpg)
22
Referências• [Favaro, 1991] Favaro, J. What Price Reusability?
A Case Study, In: Proceedings of the First International Symposium on Environments and Tools for Ada, California, USA, March, 1991, pp. 115-124.
• [Morisio et al., 2002] Morisio, M.; Ezran, M.; Tully, C. Success and Failure Factors in Software Reuse, In: IEEE Transactions on SoftwareEngineering, Vol. 28, No. 04, April, 2002, pp. 340-357.
• [Weyuker, 1998] Testing Component-BasedSoftware: A Cautionary Tale. IEEE Software, Vol 15, No. 5, 1998, pp. 54-59.