entendendo a manutenção n qual a origem maior do trabalho de manutenção? n quais são as maiores...
Post on 16-Apr-2015
154 Views
Preview:
TRANSCRIPT
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
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
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
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çã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
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 dos Experiência e Conhecimento dos
Mantenedores.Mantenedores.
Manutenção de Software
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
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
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 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Á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 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
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
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
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
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
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 ?
top related