reuso de software - ufc · 2008. 6. 5. · 3 definição de reuso • ao todo, são apresentadas 5...

22
Reuso de Software Aluna: Maria de F Aluna: Maria de F á á tima Costa de Souza tima Costa de Souza Profa.: Dra. Profa.: Dra. Rossana Rossana M. C. Andrade M. C. Andrade

Upload: others

Post on 25-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.