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
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)
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
Top Related