36
Entendendo a Entendendo a Manutenção Manutenção Qual a origem maior do trabalho Qual a origem maior do trabalho de manutenção? de manutenção? Quais são as maiores dificuldades Quais são as maiores dificuldades na realização da manutenção? na realização da manutenção? O que torna um software acessível O que torna um software acessível ou difícil de manter? ou difícil de manter? Manutenção de Software

Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Embed Size (px)

Citation preview

Page 1: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Entendendo a ManutençãoEntendendo a Manutenção

Qual a origem maior do trabalho de Qual a origem maior do trabalho de

manutenção?manutenção?

Quais são as maiores dificuldades na Quais 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ícil O que torna um software acessível ou difícil

de manter?de manter?

Manutenção de Software

Page 2: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Definições de ManutençãoDefinições de Manutenção

““Qualquer trabalho no software feito depois Qualquer trabalho no software feito depois

que ele se torna operacional ou passa para que 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

Page 3: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

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 que Mecanismo de combate à deterioração do software que

pode tornar o software desestruturado, precário e pode tornar o software desestruturado, precário e resistente à alterações;resistente à alterações;

Modificação de um programa existente para refletir novas Modificaçã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 às Adaptaçã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 seja Açã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

Page 4: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

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

Page 5: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Tipos de Manutenção Tipos 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

Page 6: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

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

Page 7: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

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

Page 8: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Fatores que afetam o trabalho de manutenção

Tamanho do Sistema;Tamanho do Sistema;

Idade do Sistema;Idade do Sistema;

Experiência e Conhecimento dos Experiência e Conhecimento dos

Mantenedores.Mantenedores.

Manutenção de Software

Page 9: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Atividades Típicas do Atividades 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 programas Descobrir 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

Page 10: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Funções Básicas na Funções Básicas na Alteração de SoftwareAlteração de Software

a) Entender o software e a mudança a ser a) Entender o software e a mudança a ser

feita (50%);feita (50%);

b) Modificar o software para incorporar a b) 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

Page 11: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Custos do SoftwareCustos do Software

Desenvolvimento ................ 30 - 40 %Desenvolvimento ................ 30 - 40 %

Manutenção ........................ 70 - 60 %Manutenção ........................ 70 - 60 %

Manutenção de Software

Page 12: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Alternativas para Reduzir a Alternativas 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 e Adicionar mais pessoal para o desenvolvimento e

manutenção para reduzir manutenção para reduzir BackLogBackLog;; Planejar a manutenção de software focalizando Planejar a manutenção de software focalizando

novas tecnologias para construir sistemas mais novas tecnologias para construir sistemas mais fáceis de se manter e gradativamente substituir os fáceis de se manter e gradativamente substituir os atuais;atuais;

Adotar um plano agressivo para reescrever sistemas Adotar um plano agressivo para reescrever sistemas atuais o quanto possível;atuais o quanto possível;

Adotar ferramentas automatizadas para melhorar a Adotar ferramentas automatizadas para melhorar a manutenção e tecnologia dos sistemas atuais.manutenção e tecnologia dos sistemas atuais.

Manutenção de Software

Page 13: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Modelo de Manutenção Modelo de Manutenção CONTROLE DAS REQUISIÇÕES CONTROLE DAS REQUISIÇÕES

CONTROLE DAS MUDANÇASCONTROLE DAS MUDANÇAS

CONTROLE DE VERSÕESCONTROLE DE VERSÕES

Manutenção de Software

Page 14: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

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 das Definir mecanismos para categorização das

requisições;requisições; Utilizar análise de impacto para avaliar requisições Utilizar 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

Page 15: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Controle das MudançasControle das Mudanças Selecionar uma atividade de mudança necessária da Selecionar 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 qualidade Realizar atividades de garantia de qualidade

(revisões e inspeções).(revisões e inspeções).

Manutenção de Software

Page 16: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Controle de Versões Controle de Versões Determinação da Versão;Determinação da Versão; Construção de uma nova versão (gerência de Construçã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

Page 17: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Indicadores de Manutenção Indicadores 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ção Estimativa de tempo e complexidade da manutenção

(FPA).(FPA).

Manutenção de Software

Page 18: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Exercício 1Exercício 1

Quais as principais dificuldades na Quais as principais dificuldades na

realização das atividades de manutenção realização das atividades de manutenção

de software?de software?

Apresente um conjunto de ações para Apresente um conjunto de ações para

amenizar estas dificuldades.amenizar estas dificuldades.

Que outros indicadores poderiam ser Que outros indicadores poderiam ser

utilizados para monitorar a manutenção?utilizados para monitorar a manutenção?

Manutenção de Software

Page 19: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Premissas da ReengenhariaPremissas da Reengenharia Sistemas existentes são uma vantagem Sistemas existentes são uma vantagem

valiosa da qual a corporação depende e valiosa da qual a corporação depende e portanto deveriam ser apropriadamente portanto deveriam ser apropriadamente gerenciados;gerenciados;

A manutenção de software poderá ser mais A manutenção de software poderá ser mais efetiva e eficientemente realizada com ajuda efetiva e eficientemente realizada com ajuda de ferramentas poderosas;de ferramentas poderosas;

É uma manutenção automatizada;É uma manutenção automatizada;

Fundamentos da Reengenharia

Page 20: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Premissas da ReengenhariaPremissas da Reengenharia Envolve a melhoria dos processos de Envolve a melhoria dos processos de

manutenção de software e melhoria dos manutenção de software e melhoria dos sistemas atuais pela aplicação de novas sistemas atuais pela aplicação de novas tecnologias e ferramentas para a tecnologias e ferramentas para a manutenção de software;manutenção de software;

Sugere um estratégia de manutenção a longo Sugere um estratégia de manutenção a longo prazo ao invés de simplesmente procurar por prazo ao invés de simplesmente procurar por uma imediata mudança na manutenção de uma imediata mudança na manutenção de Software;Software;

Oferece uma maneira de organizar o Oferece uma maneira de organizar o software e mantê-lo organizado.software e mantê-lo organizado.

Fundamentos da Reengenharia

Page 21: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

ConceitoConceito

““Reengenharia é o processo de examinar Reengenharia é o processo de examinar

software existente e/ou modificá-lo com software 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

Page 22: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

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üente para 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 dados Modificação em código e estrutura de dados existentes usando os princípios de engenharia de existentes usando os princípios de engenharia de software atuais para aumentar a capacidade de software 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 facilitam Combinação de técnicas e ferramentas que facilitam a análise, melhoria, redesenho e reutilização de a análise, melhoria, redesenho e reutilização de sistemas existentes para suportar as necessidades de sistemas existentes para suportar as necessidades de informação”;informação”;

Fundamentos da Reengenharia

Page 23: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Outros ConceitosOutros Conceitos

““Meio para melhorar sistemas existentes sem causar Meio para melhorar sistemas existentes sem causar

impactos na sua funcionalidade atual, plataforma ou impactos 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 de avaliação, reposicionamento e transformação de

sistemas existentes, com o objetivo de estender-lhes a sistemas existentes, com o objetivo de estender-lhes a

vida útil e ao mesmo tempo, proporcionar-lhes uma vida ú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

Page 24: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Objetivos da ReengenhariaObjetivos da Reengenharia

Criar um inventário dos sistemas existentes;Criar um inventário dos sistemas existentes;

Fornecer assistência automatizada para a Fornecer 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

Page 25: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

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 de Melhorar 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

Page 26: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

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 para Dificuldades para testar e caro para

manter;manter; Problemas crescentes no sistema.Problemas crescentes no sistema.

Fundamentos da Reengenharia

Page 27: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Razões para se refazer o Razõ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 dos Não atende as necessidades dos

usuários.usuários.

Fundamentos da Reengenharia

Page 28: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

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 e São alvo de manutenção freqüente e

requerem um grande percentual de recursos requerem um grande percentual de recursos de manutenção;de manutenção;

São compreensíveis e podem seguramente São compreensíveis e podem seguramente ser modificados por poucos membros da ser 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

Page 29: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Exercício 2Exercício 2

Que sistemas poderiam ser alvo de Que sistemas poderiam ser alvo de

reengenharia? Justifique.reengenharia? Justifique.

Quais as principais razões para Quais as principais razões para

Reengenharia ou Engenharia?Reengenharia ou Engenharia?

Manutenção de Software

Page 30: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Á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

Page 31: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

AnáliseAnáliseÉ o processo de examinar os É o processo de examinar os

sistemas atuais a fim de sistemas atuais a fim de compreender os componentes do compreender os componentes do sistema e como seus programas sistema e como seus programas

funcionam. funcionam.

O propósito principal é identificar O propósito principal é identificar programas prioritários para programas prioritários para Reengenharia e medir sua Reengenharia e medir sua

qualidade.qualidade.Fundamentos da Reengenharia

Page 32: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

ReestruturaçãoReestruturação

É o processo de alterar a forma do É o processo de alterar a forma do

software (Ex: definição e nomes software (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 o O propósito principal é tornar o

programa mais fácil de ser programa mais fácil de ser

compreendido.compreendido.

Fundamentos da Reengenharia

Page 33: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

Engenharia ReversaEngenharia ReversaÉ o processo de analisar o software para É o processo de analisar o software para

reconstruir uma descrição de seus reconstruir uma descrição de seus componentes e seus relacionamentos. componentes e seus relacionamentos.

Uma descrição de alto nível do Uma descrição de alto nível do programa é obtida a partir do programa programa é obtida a partir do programa

físico. físico.

O propósito é O propósito é redocumentarredocumentar o sistema e o sistema e descobrir informações do projeto com descobrir informações do projeto com o auxílio na melhoria da compreensão o auxílio na melhoria da compreensão

do programa.do programa.Fundamentos da Reengenharia

Page 34: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

MigraçãoMigração

É o processo de converter um software É o processo de converter um software

de uma linguagem para outra, mover de uma linguagem para outra, mover

de um ambiente operacional para outro de um ambiente operacional para outro

ou atualizar sua tecnologia. ou atualizar sua tecnologia.

O propósito principal é amenizar o O propósito principal é amenizar o

impacto de adoção de novos impacto de adoção de novos

ambientes e tecnologias.ambientes e tecnologias.

Fundamentos da Reengenharia

Page 35: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

ReutilizaçãoReutilização

É o processo de sistematicamente É o processo de sistematicamente

reaproveitar os diversos elementos reaproveitar os diversos elementos

criados durante o desenvolvimento de criados 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 o O propósito principal é acelerar o

desenvolvimento de novos sistemas e desenvolvimento de novos sistemas e

melhorar sua qualidade.melhorar sua qualidade.

Fundamentos da Reengenharia

Page 36: Entendendo a Manutenção n Qual a origem maior do trabalho de manutenção? n Quais são as maiores dificuldades na realização da manutenção? n O que torna

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 dificuldades Quais as principais dificuldades

enfrentadas nestas experiências ? enfrentadas nestas experiências ?