reutilização de software
DESCRIPTION
Reutilização de Software. Introdução. Reutilização de software é Reaplicação de informações e artefatos de um sistema já definido, em outros sistemas semelhantes. Objetivos. Permitir ampla utilização de todos os tipos de informação encontradas em situações de desenvolvimento: Exemplos: - PowerPoint PPT PresentationTRANSCRIPT
Reutilização de Reutilização de SoftwareSoftware
IntroduçãoIntrodução
Reutilização de software é Reaplicação de Reutilização de software é Reaplicação de informações e artefatos de um sistema informações e artefatos de um sistema
já definido, em outros sistemas já definido, em outros sistemas semelhantessemelhantes
ObjetivosObjetivosPermitir ampla utilização de todos os tipos Permitir ampla utilização de todos os tipos
de informação encontradas em de informação encontradas em situações de desenvolvimento:situações de desenvolvimento:
Exemplos:Exemplos:– Fornecer bibliotecas de componentes Fornecer bibliotecas de componentes
reutilizáveisreutilizáveis– Evitar realização de tarefas previamente Evitar realização de tarefas previamente
desenvolvidasdesenvolvidas– Compartilhar conhecimento...Compartilhar conhecimento...
BenefíciosBenefícios Menor produção de software novoMenor produção de software novo Aumento de:Aumento de:
– ProdutividadeProdutividade– QualidadeQualidade– ConfiabilidadeConfiabilidade
Diminuição de:Diminuição de:– TempoTempo– Custo de manutençãoCusto de manutenção
ProblemasProblemasProblemas:Problemas: PopulaçãoPopulação CargaCarga ConstruçãoConstrução
Soluções:Soluções: Análise de Análise de
domíniodomínio Esquemas de Esquemas de
classificaçãoclassificação Propriedades Propriedades
genéricasgenéricas
RequisitosRequisitosInvestimentos para:Investimentos para:
– Criar componentes reutilizáveisCriar componentes reutilizáveis– Realizar testes e garantia de qualidade Realizar testes e garantia de qualidade
acima do que normalmente seria esperadoacima do que normalmente seria esperado– Manter bibliotecas, recursos de consulta e Manter bibliotecas, recursos de consulta e
outras facilidadesoutras facilidades
Percentual de ReusoPercentual de ReusoPercentual de Reuso
60% 62%85%
40% 50%
00,2
0,40,6
0,81
Raytheon Universityof
Califórnia
JapaneseSoftwareFactories
Hartford GTE DataServices
Seqüência1 Seqüência2 Seqüência3
Implantação da Implantação da ReutilizaçãoReutilização
Aspectos fundamentais:Aspectos fundamentais:– Criar repositório com componentes Criar repositório com componentes
reutilizáveisreutilizáveis– Incluir atividades relativas ao Incluir atividades relativas ao
reaproveitamento na metodologia de reaproveitamento na metodologia de desenvolvimentodesenvolvimento
– Seleção de ferramentas técnicas necessáriasSeleção de ferramentas técnicas necessárias– Compromisso gerencial e aceitação dos Compromisso gerencial e aceitação dos
profissionais para utilização desta técnicaprofissionais para utilização desta técnica
Ferramentas para Ferramentas para reutilizaçãoreutilização
Identificação/Análise de DomínioIdentificação/Análise de Domínio– Sistemas especialistas em extração de Sistemas especialistas em extração de
conhecimento...conhecimento... Descrição e Representação:Descrição e Representação:
– Sistemas de hipertexto...Sistemas de hipertexto... Classificação/Armazenamento:Classificação/Armazenamento:
– Repositório...Repositório... Produção/Refinamento:Produção/Refinamento:
– Ferramentas de testes...Ferramentas de testes...
Níveis de reusabilidadeNíveis de reusabilidade Reusando código (cortar e colar código Reusando código (cortar e colar código
fonte...)fonte...) Reusando dados (Ferramentas CASE...)Reusando dados (Ferramentas CASE...) Reusando projetos físicos (Reutilizar a Reusando projetos físicos (Reutilizar a
análise...)análise...) Reusando especificações (Elimina Reusando especificações (Elimina
esforço em projetar, codificar e testar...)esforço em projetar, codificar e testar...)
Abordagens tecnológicasAbordagens tecnológicas Bibliotecas de componentes Bibliotecas de componentes
– Documentação, testes...Documentação, testes... Técnicas de desenvolvimento Técnicas de desenvolvimento
orientadas a objetosorientadas a objetos– Herança (subclasses...)Herança (subclasses...)
Ferramentas CASEFerramentas CASE Recuperação de projetosRecuperação de projetos
– Iniciar a biblioteca...Iniciar a biblioteca...
Abordagens Abordagens organizacionaisorganizacionais
Oferecer sistemas de recompensa que Oferecer sistemas de recompensa que instale maior consciência da instale maior consciência da conveniência da reusabilidadeconveniência da reusabilidade
Encorajar a reusabilidadeEncorajar a reusabilidade Criar um grupo cujo única tarefa seja Criar um grupo cujo única tarefa seja
criar módulos reusáveiscriar módulos reusáveis
Análise de domínioAnálise de domínio
É o processo de aquisição de É o processo de aquisição de conhecimento referente a um conhecimento referente a um determinado assuntodeterminado assunto
Repositório de dadosRepositório de dados Representação dos dados na forma Representação dos dados na forma
entidade-relacionamentoentidade-relacionamento Armazenamento de dados e serviços de Armazenamento de dados e serviços de
manipulação destes dadosmanipulação destes dados Controle de acesso/segurançaControle de acesso/segurança Suporte ao desenvolvimento de Suporte ao desenvolvimento de
aplicações e manutençõesaplicações e manutenções