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
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
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
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
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
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
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
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
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
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
Custos do SoftwareCustos do Software
Desenvolvimento ................ 30 - 40 %Desenvolvimento ................ 30 - 40 %
Manutenção ........................ 70 - 60 %Manutenção ........................ 70 - 60 %
Manutenção de Software
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Á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
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
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
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
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
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
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 ?

Manuencao de software

  • 1.
    Entendendo a ManutençãoEntendendoa 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.
    Definições de ManutençãoDefiniçõesde 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.
    Definições de ManutençãoDefiniçõesde 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.
    Sinônimos de ManutençãoSinônimosde 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.
    Tipos de ManutençãoTiposde 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.
    Manutenção PreventivaManutenção Preventiva Prevenirfuturas 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.
    Estudos sobre ManutençãoEstudossobre 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.
    Fatores que afetamo 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.
    Atividades Típicas doAtividadesTí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.
    Funções Básicas naFunçõesBá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.
    Custos do SoftwareCustosdo Software Desenvolvimento ................ 30 - 40 %Desenvolvimento ................ 30 - 40 % Manutenção ........................ 70 - 60 %Manutenção ........................ 70 - 60 % Manutenção de Software
  • 12.
    Alternativas para ReduziraAlternativas 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.
    Modelo de ManutençãoModelode 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.
    Controle das RequisiçõesControledas 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.
    Controle das MudançasControledas 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.
    Controle de VersõesControlede 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.
    Indicadores de ManutençãoIndicadoresde 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.
    Exercício 1Exercício 1 Quaisas 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.
    Premissas da ReengenhariaPremissasda 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.
    Premissas da ReengenhariaPremissasda 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.
    ConceitoConceito ““Reengenharia é oprocesso 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.
    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.
    Outros ConceitosOutros Conceitos ““Meiopara 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.
    Objetivos da ReengenhariaObjetivosda 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.
    Objetivos da ReengenhariaObjetivosda 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.
    Razões para ReengenhariaRazõespara 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.
    Razões para serefazer 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.
    Sistemas Candidatos àSistemasCandidatos à 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.
    Exercício 2Exercício 2 Quesistemas 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.
    Áreas de AtuaçãodaÁ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.
    AnáliseAnálise É o processode 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.
    ReestruturaçãoReestruturação É o processode 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.
    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.
    MigraçãoMigração É o processode 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.
    ReutilizaçãoReutilização É o processode 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.
    Exercício 3Exercício 3 Queexperiê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 ?