reutilização de software cláudia maria lima werner [email protected]/ufrj programa de...
TRANSCRIPT
![Page 1: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/1.jpg)
Reutilização de SoftwareReutilização de Software
Cláudia Maria Lima WernerCláudia Maria Lima Werner
[email protected]@cos.ufrj.br
COPPE/UFRJCOPPE/UFRJ
Programa de Engenharia de Sistemas e ComputaçãoPrograma de Engenharia de Sistemas e Computação
![Page 2: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/2.jpg)
TópicosTópicos
Engenharia de SoftwareEngenharia de Software
Processo de SoftwareProcesso de Software
Reutilização de SoftwareReutilização de Software
Benefícios e DificuldadesBenefícios e Dificuldades
HistóricoHistórico
Gerência de ReutilizaçãoGerência de Reutilização
Modelo de Referência (MR MPS)Modelo de Referência (MR MPS)
![Page 3: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/3.jpg)
Engenharia de SoftwareEngenharia de Software
““Aplicação de uma abordagem sistemática, Aplicação de uma abordagem sistemática,
disciplinada e quantificativa para o desenvolvimento, disciplinada e quantificativa para o desenvolvimento,
operação e manutenção de software, isto é, a operação e manutenção de software, isto é, a
aplicação da engenharia ao software.”aplicação da engenharia ao software.”
IEEE, 1993IEEE, 1993
![Page 4: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/4.jpg)
EngenhariaEngenharia
Resolução de problemas através de soluções Resolução de problemas através de soluções
economicamente viáveiseconomicamente viáveis
Motivacão: Limitação de recursos, tempo e Motivacão: Limitação de recursos, tempo e
pessoalpessoal
Método: Aplicação de conhecimento científico Método: Aplicação de conhecimento científico
sobre um determinado domínio tecnológicosobre um determinado domínio tecnológico
Desenvolvimento constante de tecnologias e Desenvolvimento constante de tecnologias e
conhecimentoconhecimento
![Page 5: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/5.jpg)
Dificuldades com SoftwareDificuldades com Software
O desenvolvimento de produtos de software é O desenvolvimento de produtos de software é
carocaro
O tempo estimado para desenvolvimento de um O tempo estimado para desenvolvimento de um
produto de software geralmente é superadoproduto de software geralmente é superado
Produtos de software dificilmente atingem o Produtos de software dificilmente atingem o
padrão de qualidade esperadopadrão de qualidade esperado
O grau de progresso no desenvolvimento de um O grau de progresso no desenvolvimento de um
produto de software é difícil de medirproduto de software é difícil de medir
![Page 6: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/6.jpg)
Crise do SoftwareCrise do Software
teve início em meados da década de 1960teve início em meados da década de 1960
custos de hardware começam a reduzircustos de hardware começam a reduzir
computadores se tornam cada vez mais velozes e computadores se tornam cada vez mais velozes e
com maior capacidade de armazenamentocom maior capacidade de armazenamento
demanda por software cresce com os avanços do demanda por software cresce com os avanços do
hardwarehardware
equipes de desenvolvimento não acompanham a equipes de desenvolvimento não acompanham a
demanda por produçãodemanda por produção
![Page 7: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/7.jpg)
Objetivos da ESObjetivos da ES
identificar os problemas envolvidos com o identificar os problemas envolvidos com o
desenvolvimento de softwaredesenvolvimento de software
analisar as causas destes problemasanalisar as causas destes problemas
propor soluções economicamente viáveis para a propor soluções economicamente viáveis para a
resolução destes problemasresolução destes problemas
organizar o conhecimento sobre técnicas para o organizar o conhecimento sobre técnicas para o
desenvolvimento de softwaredesenvolvimento de software
![Page 8: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/8.jpg)
Engenharia de SoftwareEngenharia de Software
Atualmente, o termo Engenharia de Software é utilizado Atualmente, o termo Engenharia de Software é utilizado
para se referir a:para se referir a:
modelos de ciclo de vidamodelos de ciclo de vida
métodos e ferramentas de desenvolvimentométodos e ferramentas de desenvolvimento
técnicas para gerência e controle da qualidadetécnicas para gerência e controle da qualidade
documentaçãodocumentação
outras técnicas que estabelecem padrões para as outras técnicas que estabelecem padrões para as
atividades de produção e manutenção de softwareatividades de produção e manutenção de software
![Page 9: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/9.jpg)
Conjunto de atividades, métodos, práticas e Conjunto de atividades, métodos, práticas e
tecnologias utilizadas para o desenvolvimento e tecnologias utilizadas para o desenvolvimento e
manutenção de software e produtos relacionados.manutenção de software e produtos relacionados.
Processo de SoftwareProcesso de Software
![Page 10: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/10.jpg)
AnáliseAnálise ProjetoProjeto CodificaçãoCodificação TesteTeste
Engenharia de Sistemas/ Informação
ManutençãoManutenção
Modelo de Processo ClássicoModelo de Processo Clássico
![Page 11: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/11.jpg)
Atividades de ApoioAtividades de Apoio
Acompanhamento e Controle do Projeto Revisões Técnicas Garantia da Qualidade de Software Gerência de Configuração Preparação e Produção de Documentos Gerência de Reutilização Medições Gerência de Risco
![Page 12: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/12.jpg)
Atividades de ApoioAtividades de Apoio
Acompanhamento e Controle do Projeto Revisões Técnicas Garantia da Qualidade de Software Gerência de Configuração Preparação e Produção de Documentos Gerência de Reutilização Medições Gerência de Risco
![Page 13: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/13.jpg)
Reutilização de SoftwareReutilização de Software
Reutilização de software é o processo de incorporar em Reutilização de software é o processo de incorporar em
um novo produto:um novo produto:
código,código,
especificações de requisitos e projeto,especificações de requisitos e projeto,
planos de teste,planos de teste,
qualquer produto gerado durante desenvolvimentos qualquer produto gerado durante desenvolvimentos
anteriores,anteriores,
conhecimento em geral.conhecimento em geral.
![Page 14: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/14.jpg)
BenefíciosBenefícios
Melhores índices de produtividade
Produtos de melhor qualidade, mais confiáveis,
consistentes e padronizados
Redução dos custos e tempo envolvidos no
desenvolvimento de software
Maior flexibilidade na estrutura do software produzido,
facilitando sua manutenção e evolução
![Page 15: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/15.jpg)
DificuldadesDificuldades
Identificação, recuperação e modificação de artefatos Identificação, recuperação e modificação de artefatos
reutilizáveisreutilizáveis
Compreensão dos artefatos recuperados Compreensão dos artefatos recuperados
Qualidade de artefatos reutilizáveisQualidade de artefatos reutilizáveis
Composição de aplicações a partir de componentesComposição de aplicações a partir de componentes
Barreiras psicológicas, legais e econômicasBarreiras psicológicas, legais e econômicas
Necessidade da criação de incentivos à reutilizaçãoNecessidade da criação de incentivos à reutilização
![Page 16: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/16.jpg)
Gerência de ReutilizaçãoGerência de Reutilização
Planejamento de ReutilizaçãoPlanejamento de Reutilização
Criação de ArtefatosCriação de Artefatos
Gerência de ArtefatosGerência de Artefatos
Utilização de ArtefatosUtilização de Artefatos
![Page 17: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/17.jpg)
Gerência de ReutilizaçãoGerência de Reutilização
Planejamento
Criação
Gerência
Utilização
Objetivos, Estratégias, Processos, Recursos
Artefatos
Artefatos,Descrições
Lições
Lições
Requisitos,Lições,
Processos,Artefatos
Requisitos
![Page 18: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/18.jpg)
Planejamento de ReutilizaçãoPlanejamento de Reutilização
Objetivo: definir uma Objetivo: definir uma Estratégia de ReutilizaçãoEstratégia de Reutilização e um e um
Plano para ImplementaçãoPlano para Implementação dentro da empresa dentro da empresa
Atividades:Atividades:
Estabelecer a estratégia para criação, gerência e Estabelecer a estratégia para criação, gerência e
utilização de artefatos reutilizáveisutilização de artefatos reutilizáveis
Integração da reutilização ao processo de Integração da reutilização ao processo de
desenvolvimentodesenvolvimento
Controle e evolução do processoControle e evolução do processo
![Page 19: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/19.jpg)
Criação de ArtefatosCriação de Artefatos
Objetivo: produzir software e produtos associados para Objetivo: produzir software e produtos associados para
a reutilização (a reutilização (Desenvolvimento para ReutilizaçãoDesenvolvimento para Reutilização))
Atividades:Atividades:
Análise e modelagem do DomínioAnálise e modelagem do Domínio
Desenvolvimento de uma Infra-estrutura de Desenvolvimento de uma Infra-estrutura de
ReutilizaçãoReutilização
Evolução do processoEvolução do processo
![Page 20: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/20.jpg)
Utilização de ArtefatosUtilização de Artefatos
Objetivo: compor sistemas a partir de artefatos Objetivo: compor sistemas a partir de artefatos
reutilizáveis (reutilizáveis (Desenvolvimento com ReutilizaçãoDesenvolvimento com Reutilização))
Atividades:Atividades:
Identificação, compreensão, avaliação, seleção, Identificação, compreensão, avaliação, seleção,
adaptação e integração de artefatosadaptação e integração de artefatos
FeedbackFeedback ao Planejamento, Criação e Gerência de ao Planejamento, Criação e Gerência de
ArtefatosArtefatos
![Page 21: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/21.jpg)
Modelo de Referência (MR MPS)
7 níveis de maturidade7 níveis de maturidade
A - Em OtimizaçãoA - Em OtimizaçãoB - Gerenciado quantitativamenteB - Gerenciado quantitativamenteC - DefinidoC - DefinidoD - Largamente definidoD - Largamente definidoE - Parcialmente definidoE - Parcialmente definidoF - GerenciadoF - GerenciadoG - Parcialmente GerenciadoG - Parcialmente Gerenciado
19 processos19 processos
![Page 22: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/22.jpg)
Medição / Gerência de Configuração
Aquisição / Garantia da Qualidade
Definição do Processo Org. / Avaliação e Melhoria do Processo Org. / Gerência de Projetos (evolução) Gerência de Recursos Humanos
Desenvolvimento de Requisitos / Projeto e Construção do Produto / Integração do Produto/ Verificação / Validação
Análise de Decisão e Resolução Gerência de Riscos
G
F
E
D
C
Gerência de Requisitos
Gerência de Projetos
Gerência de Projetos (evolução)
Análise de Causas de Problemas e Resolução A
B
Níveis de Maturidade MPSNíveis de Maturidade MPS
![Page 23: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/23.jpg)
Medição / Gerência de Configuração
Aquisição / Garantia da Qualidade
Desenvolvimento de Requisitos / Projeto e Construção do Produto / Integração do Produto/ Verificação / Validação
Análise de Decisão e Resolução Gerência de Riscos
G
F
E
D
C
Gerência de Requisitos
Gerência de Projetos
Gerência de Projetos (evolução)
Análise de Causas de Problemas e Resolução A
B
Níveis de Maturidade MPSNíveis de Maturidade MPS
Definição do Processo Org. / Avaliação e Melhoria do Processo Org. / Gerência de Projetos (evolução) Gerência de Recursos Humanos / Gerência de Reutilização
![Page 24: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/24.jpg)
Níveis de Maturidade MPSNíveis de Maturidade MPS
Medição / Gerência de Configuração
Aquisição / Garantia da Qualidade
Desenvolvimento de Requisitos / Projeto e Construção do Produto / Integração do Produto/ Verificação / Validação
Análise de Decisão e Resolução Gerência de RiscosDesenvolvimento para Reutilização
G
F
E
D
C
Gerência de Requisitos
Gerência de Projetos
Gerência de Projetos (evolução)
Análise de Causas de Problemas e Resolução A
B
Definição do Processo Org. / Avaliação e Melhoria do Processo Org. / Gerência de Projetos (evolução) Gerência de Recursos Humanos / Gerência de Reutilização
![Page 25: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/25.jpg)
Considerações FinaisConsiderações Finais
A reutilização é um conceito natural no Processo de A reutilização é um conceito natural no Processo de
Desenvolvimento de Software, mas é preciso cuidar de Desenvolvimento de Software, mas é preciso cuidar de
determinados aspectos para que ela seja efetivadeterminados aspectos para que ela seja efetiva
Ao adotá-la estaremos nos aproximando cada vez mais Ao adotá-la estaremos nos aproximando cada vez mais
de uma real “Engenharia de Software”de uma real “Engenharia de Software”
Com o surgimento de normas sobre as boas práticas e Com o surgimento de normas sobre as boas práticas e
processos envolvidos, finalmente, temos a chance de processos envolvidos, finalmente, temos a chance de
torná-la uma realidade nas empresastorná-la uma realidade nas empresas
![Page 26: Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.brCOPPE/UFRJ Programa de Engenharia de Sistemas e Computação](https://reader036.vdocuments.net/reader036/viewer/2022062623/552fc10d497959413d8c441a/html5/thumbnails/26.jpg)
BibliografiaBibliografia
Engenharia de Software; R.Pressman, 6ª Edição, McGraw-Hill, Engenharia de Software; R.Pressman, 6ª Edição, McGraw-Hill,
20062006
Software Reusability; (ed.) W.Schäfer, R.Prieto-Diaz and Software Reusability; (ed.) W.Schäfer, R.Prieto-Diaz and
M.Matsumoto, Ellis Horwood, 1994M.Matsumoto, Ellis Horwood, 1994
STARS Framework for Reuse Processes; 4th Annual Workshop on STARS Framework for Reuse Processes; 4th Annual Workshop on
Software Reuse, Syracuse, NY, 1991Software Reuse, Syracuse, NY, 1991
Domain Analysis and Software System Modeling; (ed.) R.Prieto-Domain Analysis and Software System Modeling; (ed.) R.Prieto-
Diaz and G.Arango, IEEE Computer Society Press Tutorial, 1991Diaz and G.Arango, IEEE Computer Society Press Tutorial, 1991
http://reuse.cos.ufrj.brhttp://reuse.cos.ufrj.br
http://www.softex.br/mpsbrhttp://www.softex.br/mpsbr