Entendendo a ManutençãoEntendendo a Manutenção
Qual a origem maior do trabalho deQual a origem maior do trabalho de
manute...
Definições de ManutençãoDefinições de Manutenção
““Qualquer trabalho no software feito depoisQualquer trabalho no software...
Definições de ManutençãoDefinições de Manutenção
Modificação de um software com objetivo de corrigir falhas,Modificação de...
Sinônimos de ManutençãoSinônimos de Manutenção
Modificação;Modificação;
Acréscimos;Acréscimos;
Refinamentos;Refinamentos;
...
Tipos de ManutençãoTipos de Manutenção
(Causa)(Causa)
Corretiva:Corretiva:
Deficiência;Deficiência;
Adaptativa:Adaptativa:...
Manutenção PreventivaManutenção Preventiva
Prevenir futuras manutenções (3 tipos)Prevenir futuras manutenções (3 tipos)
Me...
Estudos sobre ManutençãoEstudos sobre Manutenção
Lieth e Swanson:Lieth e Swanson:
19801980
487 Empresas487 Empresas
Dinard...
Fatores que afetam o trabalho
de manutenção
Tamanho do Sistema;Tamanho do Sistema;
Idade do Sistema;Idade do Sistema;
Expe...
Atividades Típicas doAtividades Típicas do
MantenedorMantenedor
Estudar especificações e projetos do sistema;Estudar espec...
Funções Básicas naFunções Básicas na
Alteração de SoftwareAlteração de Software
a) Entender o software e a mudança a sera)...
Custos do SoftwareCustos do Software
Desenvolvimento ................ 30 - 40 %Desenvolvimento ................ 30 - 40 %
...
Alternativas para Reduzir aAlternativas para Reduzir a
Manutenção de SoftwareManutenção de Software
Não fazer nada. Apenas...
Modelo de ManutençãoModelo de Manutenção
CONTROLE DAS REQUISIÇÕESCONTROLE DAS REQUISIÇÕES
CONTROLE DAS MUDANÇASCONTROLE DA...
Controle das RequisiçõesControle das Requisições
Coletar informações sobre cada requisição;Coletar informações sobre cada ...
Controle das MudançasControle das Mudanças
Selecionar uma atividade de mudança necessária daSelecionar uma atividade de mu...
Controle de VersõesControle de Versões
Determinação da Versão;Determinação da Versão;
Construção de uma nova versão (gerên...
Indicadores de ManutençãoIndicadores de Manutenção
Tempo utilizado para resolver uma mudança;Tempo utilizado para resolver...
Exercício 1Exercício 1
Quais as principais dificuldades naQuais as principais dificuldades na
realização das atividades de...
Premissas da ReengenhariaPremissas da Reengenharia
Sistemas existentes são uma vantagemSistemas existentes são uma vantage...
Premissas da ReengenhariaPremissas da Reengenharia
Envolve a melhoria dos processos deEnvolve a melhoria dos processos de
...
ConceitoConceito
““Reengenharia é o processo de examinarReengenharia é o processo de examinar
software existente e/ou modi...
Outros ConceitosOutros Conceitos
““É o estudo e alteração de um determinado sistemaÉ o estudo e alteração de um determinad...
Outros ConceitosOutros Conceitos
““Meio para melhorar sistemas existentes sem causarMeio para melhorar sistemas existentes...
Objetivos da ReengenhariaObjetivos da Reengenharia
Criar um inventário dos sistemas existentes;Criar um inventário dos sis...
Objetivos da ReengenhariaObjetivos da Reengenharia
Facilitar a conversão e migração do sistema;Facilitar a conversão e mig...
Razões para ReengenhariaRazões para Reengenharia
Freqüentes falhas de produção;Freqüentes falhas de produção;
Problemas de...
Razões para se refazer oRazões para se refazer o
sistema (Engenharia)sistema (Engenharia)
Não confiável;Não confiável;
Alg...
Sistemas Candidatos àSistemas Candidatos à
ReengenhariaReengenharia
São de importância crítica da empresa;São de importânc...
Exercício 2Exercício 2
Que sistemas poderiam ser alvo deQue sistemas poderiam ser alvo de
reengenharia? Justifique.reengen...
Áreas de Atuação daÁreas de Atuação da
ReengenhariaReengenharia
Análise;Análise;
Reestruturação;Reestruturação;
Engenharia...
AnáliseAnálise
É o processo de examinar osÉ o processo de examinar os
sistemas atuais a fim desistemas atuais a fim de
com...
ReestruturaçãoReestruturação
É o processo de alterar a forma doÉ o processo de alterar a forma do
software (Ex: definição ...
Engenharia ReversaEngenharia Reversa
É o processo de analisar o software paraÉ o processo de analisar o software para
reco...
MigraçãoMigração
É o processo de converter um softwareÉ o processo de converter um software
de uma linguagem para outra, m...
ReutilizaçãoReutilização
É o processo de sistematicamenteÉ o processo de sistematicamente
reaproveitar os diversos element...
Exercício 3Exercício 3
Que experiências de reengenharia vocêQue experiências de reengenharia você
conhece? Classifique-as....
Próximos SlideShares
Carregando em…5
×

Manuencao de software

1.234 visualizações

Publicada em

  • Seja o primeiro a comentar

Manuencao de software

  1. 1. Entendendo a ManutençãoEntendendo a Manutenção Qual a origem maior do trabalho deQual a origem maior do trabalho de manutenção?manutenção? Quais são as maiores dificuldades naQuais são as maiores dificuldades na realização da manutenção?realização da manutenção? O que torna um software acessível ou difícilO que torna um software acessível ou difícil de manter?de manter? Manutenção de Software
  2. 2. Definições de ManutençãoDefinições de Manutenção ““Qualquer trabalho no software feito depoisQualquer trabalho no software feito depois que ele se torna operacional ou passa paraque ele se torna operacional ou passa para a produção” - Parikha produção” - Parikh Correção de Erros;Correção de Erros; Revisão dos Requisitos Originais;Revisão dos Requisitos Originais; Aumento de função e performance.Aumento de função e performance. Manutenção de Software
  3. 3. Definições de ManutençãoDefinições de Manutenção Modificação de um software com objetivo de corrigir falhas,Modificação de um software com objetivo de corrigir falhas, aperfeiçoar ou adaptar o software;aperfeiçoar ou adaptar o software; Mecanismo de combate à deterioração do software queMecanismo de combate à deterioração do software que pode tornar o software desestruturado, precário epode tornar o software desestruturado, precário e resistente à alterações;resistente à alterações; Modificação de um programa existente para refletir novasModificação de um programa existente para refletir novas obrigações ou características adicionais;obrigações ou características adicionais; Adaptação do software para constante modificação àsAdaptação do software para constante modificação às necessidades de trabalho;necessidades de trabalho; Ação de fazer com que o software que foi liberado sejaAção de fazer com que o software que foi liberado seja mantido em funcionamento de uma maneira satisfatória.mantido em funcionamento de uma maneira satisfatória. Manutenção de Software
  4. 4. Sinônimos de ManutençãoSinônimos de Manutenção Modificação;Modificação; Acréscimos;Acréscimos; Refinamentos;Refinamentos; Remoção de defeitos;Remoção de defeitos; Adições no sistema;Adições no sistema; Remendos e correções;Remendos e correções; Suporte;Suporte; Evoluções;Evoluções; Ajustes;Ajustes; Extensão;Extensão; Expansão;Expansão; Revisão;Revisão; Atualização;Atualização; Re-programação;Re-programação; Re-desenvolvimento;Re-desenvolvimento; Melhorias;Melhorias; Alterações.Alterações. Manutenção de Software
  5. 5. Tipos de ManutençãoTipos de Manutenção (Causa)(Causa) Corretiva:Corretiva: Deficiência;Deficiência; Adaptativa:Adaptativa: Mudança de Ambiente;Mudança de Ambiente; Aperfeiçoadora:Aperfeiçoadora: Requisição de manutenção do usuário.Requisição de manutenção do usuário. Manutenção de Software
  6. 6. Manutenção PreventivaManutenção Preventiva Prevenir futuras manutenções (3 tipos)Prevenir futuras manutenções (3 tipos) Melhorar a capacidade de manutenção -Melhorar a capacidade de manutenção - manutenibilidademanutenibilidade Manutenção de Software
  7. 7. Estudos sobre ManutençãoEstudos sobre Manutenção Lieth e Swanson:Lieth e Swanson: 19801980 487 Empresas487 Empresas Dinardo:Dinardo: 19881988 25 empresas c/25 empresas c/ Mainframe IBMMainframe IBM Corretiva: 17%Corretiva: 17% Adaptativa: 70%Adaptativa: 70% AperfeiçoadoraAperfeiçoadora: 13%: 13% Corretiva: 20%Corretiva: 20% Adaptativa: 25%Adaptativa: 25% AperfeiçoadoraAperfeiçoadora: 55%: 55% Manutenção de Software
  8. 8. Fatores que afetam o trabalho de manutenção Tamanho do Sistema;Tamanho do Sistema; Idade do Sistema;Idade do Sistema; Experiência e Conhecimento dosExperiência e Conhecimento dos Mantenedores.Mantenedores. Manutenção de Software
  9. 9. Atividades Típicas doAtividades Típicas do MantenedorMantenedor Estudar especificações e projetos do sistema;Estudar especificações e projetos do sistema; Interagir com os usuários;Interagir com os usuários; Examinar programas e sua documentação;Examinar programas e sua documentação; Descobrir erros e deficiências nos programasDescobrir erros e deficiências nos programas fontes;fontes; Projetar uma alteração em programa;Projetar uma alteração em programa; Modificar um programa;Modificar um programa; Revalidar um programa;Revalidar um programa; Atualizar a documentação do programa.Atualizar a documentação do programa. Manutenção de Software
  10. 10. Funções Básicas naFunções Básicas na Alteração de SoftwareAlteração de Software a) Entender o software e a mudança a sera) Entender o software e a mudança a ser feita (50%);feita (50%); b) Modificar o software para incorporar ab) Modificar o software para incorporar a mudança (25%);mudança (25%); c) Revalidar o software (25%).c) Revalidar o software (25%). Manutenção de Software
  11. 11. Custos do SoftwareCustos do Software Desenvolvimento ................ 30 - 40 %Desenvolvimento ................ 30 - 40 % Manutenção ........................ 70 - 60 %Manutenção ........................ 70 - 60 % Manutenção de Software
  12. 12. Alternativas para Reduzir aAlternativas para Reduzir a Manutenção de SoftwareManutenção de Software Não fazer nada. Apenas continuar como está;Não fazer nada. Apenas continuar como está; Adicionar mais pessoal para o desenvolvimento eAdicionar mais pessoal para o desenvolvimento e manutenção para reduzirmanutenção para reduzir BackLogBackLog;; Planejar a manutenção de software focalizandoPlanejar a manutenção de software focalizando novas tecnologias para construir sistemas maisnovas tecnologias para construir sistemas mais fáceis de se manter e gradativamente substituir osfáceis de se manter e gradativamente substituir os atuais;atuais; Adotar um plano agressivo para reescrever sistemasAdotar um plano agressivo para reescrever sistemas atuais o quanto possível;atuais o quanto possível; Adotar ferramentas automatizadas para melhorar aAdotar ferramentas automatizadas para melhorar a manutenção e tecnologia dos sistemas atuais.manutenção e tecnologia dos sistemas atuais. Manutenção de Software
  13. 13. Modelo de ManutençãoModelo de Manutenção CONTROLE DAS REQUISIÇÕESCONTROLE DAS REQUISIÇÕES CONTROLE DAS MUDANÇASCONTROLE DAS MUDANÇAS CONTROLE DE VERSÕESCONTROLE DE VERSÕES Manutenção de Software
  14. 14. Controle das RequisiçõesControle das Requisições Coletar informações sobre cada requisição;Coletar informações sobre cada requisição; Definir mecanismos para categorização dasDefinir mecanismos para categorização das requisições;requisições; Utilizar análise de impacto para avaliar requisiçõesUtilizar análise de impacto para avaliar requisições em termos de custos X benefícios;em termos de custos X benefícios; Determinar grau de prioridade para cada requisição.Determinar grau de prioridade para cada requisição. Manutenção de Software
  15. 15. Controle das MudançasControle das Mudanças Selecionar uma atividade de mudança necessária daSelecionar uma atividade de mudança necessária da lista de prioridades;lista de prioridades; Reproduzir o problema;Reproduzir o problema; Analisar a especificação e o código-fonte;Analisar a especificação e o código-fonte; Projetar as mudanças e testes;Projetar as mudanças e testes; Realizar atividades de garantia de qualidadeRealizar atividades de garantia de qualidade (revisões e inspeções).(revisões e inspeções). Manutenção de Software
  16. 16. Controle de VersõesControle de Versões Determinação da Versão;Determinação da Versão; Construção de uma nova versão (gerência deConstrução de uma nova versão (gerência de configuração)configuração) Testes completos;Testes completos; Distribuição do programa;Distribuição do programa; Teste de Aceitação.Teste de Aceitação. Manutenção de Software
  17. 17. Indicadores de ManutençãoIndicadores de Manutenção Tempo utilizado para resolver uma mudança;Tempo utilizado para resolver uma mudança; Programas mais afetados;Programas mais afetados; Requisições atendidas e em aberto;Requisições atendidas e em aberto; Usuários mais atendidos;Usuários mais atendidos; Estimativa de tempo e complexidade da manutençãoEstimativa de tempo e complexidade da manutenção (FPA).(FPA). Manutenção de Software
  18. 18. Exercício 1Exercício 1 Quais as principais dificuldades naQuais as principais dificuldades na realização das atividades de manutençãorealização das atividades de manutenção de software?de software? Apresente um conjunto de ações paraApresente um conjunto de ações para amenizar estas dificuldades.amenizar estas dificuldades. Que outros indicadores poderiam serQue outros indicadores poderiam ser utilizados para monitorar a manutenção?utilizados para monitorar a manutenção? Manutenção de Software
  19. 19. Premissas da ReengenhariaPremissas da Reengenharia Sistemas existentes são uma vantagemSistemas existentes são uma vantagem valiosa da qual a corporação depende evaliosa da qual a corporação depende e portanto deveriam ser apropriadamenteportanto deveriam ser apropriadamente gerenciados;gerenciados; A manutenção de software poderá ser maisA manutenção de software poderá ser mais efetiva e eficientemente realizada com ajudaefetiva e eficientemente realizada com ajuda de ferramentas poderosas;de ferramentas poderosas; É uma manutenção automatizada;É uma manutenção automatizada; Fundamentos da Reengenharia
  20. 20. Premissas da ReengenhariaPremissas da Reengenharia Envolve a melhoria dos processos deEnvolve a melhoria dos processos de manutenção de software e melhoria dosmanutenção de software e melhoria dos sistemas atuais pela aplicação de novassistemas atuais pela aplicação de novas tecnologias e ferramentas para atecnologias e ferramentas para a manutenção de software;manutenção de software; Sugere um estratégia de manutenção aSugere um estratégia de manutenção a longo prazo ao invés de simplesmentelongo prazo ao invés de simplesmente procurar por uma imediata mudança naprocurar por uma imediata mudança na manutenção de Software;manutenção de Software; Oferece uma maneira de organizar oOferece uma maneira de organizar o software e mantê-lo organizado.software e mantê-lo organizado. Fundamentos da Reengenharia
  21. 21. ConceitoConceito ““Reengenharia é o processo de examinarReengenharia é o processo de examinar software existente e/ou modificá-lo comsoftware existente e/ou modificá-lo com ajuda de ferramentas automatizadas para:ajuda de ferramentas automatizadas para: Melhorar sua futura manutenção;Melhorar sua futura manutenção; Atualizar sua tecnologia;Atualizar sua tecnologia; Estender sua expectativa de vida;Estender sua expectativa de vida; Aumentar a produtividade da manutenção.Aumentar a produtividade da manutenção. Fundamentos da Reengenharia
  22. 22. Outros ConceitosOutros Conceitos ““É o estudo e alteração de um determinado sistemaÉ o estudo e alteração de um determinado sistema para reconstruí-lo numa nova forma e subseqüentepara reconstruí-lo numa nova forma e subseqüente implementação dessa nova forma”;implementação dessa nova forma”; ““Modificação em código e estrutura de dadosModificação em código e estrutura de dados existentes usando os princípios de engenharia deexistentes usando os princípios de engenharia de software atuais para aumentar a capacidade desoftware atuais para aumentar a capacidade de manutenção e capacidade de adaptação do sistema”.manutenção e capacidade de adaptação do sistema”. ““Combinação de técnicas e ferramentas que facilitamCombinação de técnicas e ferramentas que facilitam a análise, melhoria, redesenho e reutilização dea análise, melhoria, redesenho e reutilização de sistemas existentes para suportar as necessidades desistemas existentes para suportar as necessidades de informação”;informação”; Fundamentos da Reengenharia
  23. 23. Outros ConceitosOutros Conceitos ““Meio para melhorar sistemas existentes sem causarMeio para melhorar sistemas existentes sem causar impactos na sua funcionalidade atual, plataforma ouimpactos na sua funcionalidade atual, plataforma ou arquitetura técnica”;arquitetura técnica”; ““Conjunto de técnicas e ferramentas orientadas àConjunto de técnicas e ferramentas orientadas à avaliação, reposicionamento e transformação deavaliação, reposicionamento e transformação de sistemas existentes, com o objetivo de estender-lhes asistemas existentes, com o objetivo de estender-lhes a vida útil e ao mesmo tempo, proporcionar-lhes umavida útil e ao mesmo tempo, proporcionar-lhes uma melhor qualidade técnica e funcionalidade” (Furlan);melhor qualidade técnica e funcionalidade” (Furlan); Fundamentos da Reengenharia
  24. 24. Objetivos da ReengenhariaObjetivos da Reengenharia Criar um inventário dos sistemas existentes;Criar um inventário dos sistemas existentes; Fornecer assistência automatizada para aFornecer assistência automatizada para a manutenção;manutenção; Reduzir custos e erros de manutenção;Reduzir custos e erros de manutenção; Tornar o sistema mais fácil de compreender,Tornar o sistema mais fácil de compreender, modificar e testar.modificar e testar. Fundamentos da Reengenharia
  25. 25. Objetivos da ReengenhariaObjetivos da Reengenharia Facilitar a conversão e migração do sistema;Facilitar a conversão e migração do sistema; Reforçar a aderência a padrões;Reforçar a aderência a padrões; Melhorar a resposta às solicitações deMelhorar a resposta às solicitações de manutenção;manutenção; Melhorar o ânimo do pessoal de manutenção;Melhorar o ânimo do pessoal de manutenção; Proteger e estender a vida do sistema;Proteger e estender a vida do sistema; Utilizar CASE para suportar sistemas atuais;Utilizar CASE para suportar sistemas atuais; Reutilizar componentes de sistemas existentes.Reutilizar componentes de sistemas existentes. Fundamentos da Reengenharia
  26. 26. Razões para ReengenhariaRazões para Reengenharia Freqüentes falhas de produção;Freqüentes falhas de produção; Problemas de desempenho;Problemas de desempenho; Tecnologia obsoleta;Tecnologia obsoleta; Problemas de integração de sistemas;Problemas de integração de sistemas; Qualidade técnica ruim;Qualidade técnica ruim; Dificuldades para testar e caro paraDificuldades para testar e caro para manter;manter; Problemas crescentes no sistema.Problemas crescentes no sistema. Fundamentos da Reengenharia
  27. 27. Razões para se refazer oRazões para se refazer o sistema (Engenharia)sistema (Engenharia) Não confiável;Não confiável; Algoritmos ruins ou incorretos;Algoritmos ruins ou incorretos; Não atende as necessidades dosNão atende as necessidades dos usuários.usuários. Fundamentos da Reengenharia
  28. 28. Sistemas Candidatos àSistemas Candidatos à ReengenhariaReengenharia São de importância crítica da empresa;São de importância crítica da empresa; São alvo de manutenção freqüente eSão alvo de manutenção freqüente e requerem um grande percentual de recursosrequerem um grande percentual de recursos de manutenção;de manutenção; São compreensíveis e podem seguramenteSão compreensíveis e podem seguramente ser modificados por poucos membros daser modificados por poucos membros da equipe de software;equipe de software; Contém erros que ninguém pode encontrar;Contém erros que ninguém pode encontrar; Requerem uma melhoria considerável.Requerem uma melhoria considerável. Fundamentos da Reengenharia
  29. 29. Exercício 2Exercício 2 Que sistemas poderiam ser alvo deQue sistemas poderiam ser alvo de reengenharia? Justifique.reengenharia? Justifique. Quais as principais razões paraQuais as principais razões para Reengenharia ou Engenharia?Reengenharia ou Engenharia? Manutenção de Software
  30. 30. Áreas de Atuação daÁreas de Atuação da ReengenhariaReengenharia Análise;Análise; Reestruturação;Reestruturação; Engenharia Reversa;Engenharia Reversa; Migração;Migração; Reutilização.Reutilização. Fundamentos da Reengenharia
  31. 31. AnáliseAnálise É o processo de examinar osÉ o processo de examinar os sistemas atuais a fim desistemas atuais a fim de compreender os componentes docompreender os componentes do sistema e como seus programassistema e como seus programas funcionam.funcionam. O propósito principal é identificarO propósito principal é identificar programas prioritários paraprogramas prioritários para Reengenharia e medir suaReengenharia e medir sua qualidade.qualidade.Fundamentos da Reengenharia
  32. 32. ReestruturaçãoReestruturação É o processo de alterar a forma doÉ o processo de alterar a forma do software (Ex: definição e nomessoftware (Ex: definição e nomes de dados e código do programa)de dados e código do programa) sem alterar sua funcionalidade.sem alterar sua funcionalidade. O propósito principal é tornar oO propósito principal é tornar o programa mais fácil de serprograma mais fácil de ser compreendido.compreendido. Fundamentos da Reengenharia
  33. 33. Engenharia ReversaEngenharia Reversa É o processo de analisar o software paraÉ o processo de analisar o software para reconstruir uma descrição de seusreconstruir uma descrição de seus componentes e seus relacionamentos.componentes e seus relacionamentos. Uma descrição de alto nível doUma descrição de alto nível do programa é obtida a partir doprograma é obtida a partir do programa físico.programa físico. O propósito éO propósito é redocumentarredocumentar o sistema eo sistema e descobrir informações do projeto comdescobrir informações do projeto com o auxílio na melhoria da compreensãoo auxílio na melhoria da compreensão do programa.do programa. Fundamentos da Reengenharia
  34. 34. MigraçãoMigração É o processo de converter um softwareÉ o processo de converter um software de uma linguagem para outra, moverde uma linguagem para outra, mover de um ambiente operacional parade um ambiente operacional para outro ou atualizar sua tecnologia.outro ou atualizar sua tecnologia. O propósito principal é amenizar oO propósito principal é amenizar o impacto de adoção de novosimpacto de adoção de novos ambientes e tecnologias.ambientes e tecnologias. Fundamentos da Reengenharia
  35. 35. ReutilizaçãoReutilização É o processo de sistematicamenteÉ o processo de sistematicamente reaproveitar os diversos elementosreaproveitar os diversos elementos criados durante o desenvolvimento decriados durante o desenvolvimento de software (código, projeto,software (código, projeto, especificações, documentação).especificações, documentação). O propósito principal é acelerar oO propósito principal é acelerar o desenvolvimento de novos sistemas edesenvolvimento de novos sistemas e melhorar sua qualidade.melhorar sua qualidade. Fundamentos da Reengenharia
  36. 36. Exercício 3Exercício 3 Que experiências de reengenharia vocêQue experiências de reengenharia você conhece? Classifique-as.conhece? Classifique-as. Quais as principais dificuldadesQuais as principais dificuldades enfrentadas nestas experiências ?enfrentadas nestas experiências ?

×