Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Entendendo a Manutenção
Qual a origem maior do trabalho de manutenção? Quais são as maiores dificuldades na realização da manutenção? O que torna um software acessível ou difícil de manter? Manutenção de Software
2
Definições de Manutenção
“Qualquer trabalho no software feito depois que ele se torna operacional ou passa para a produção” - Parikh Correção de Erros; Revisão dos Requisitos Originais; Aumento de função e performance. Manutenção de Software
3
Definições de Manutenção
Modificação de um software com objetivo de corrigir falhas, aperfeiçoar ou adaptar o software; Mecanismo de combate à deterioração do software que pode tornar o software desestruturado, precário e resistente à alterações; Modificação de um programa existente para refletir novas obrigações ou características adicionais; Adaptação do software para constante modificação às necessidades de trabalho; Ação de fazer com que o software que foi liberado seja mantido em funcionamento de uma maneira satisfatória. Manutenção de Software
4
Sinônimos de Manutenção
Modificação; Acréscimos; Refinamentos; Remoção de defeitos; Adições no sistema; Remendos e correções; Suporte; Evoluções; Ajustes; Extensão; Expansão; Revisão; Atualização; Re-programação; Re-desenvolvimento; Melhorias; Alterações. Manutenção de Software
5
Tipos de Manutenção (Causa)
Corretiva: Deficiência; Adaptativa: Mudança de Ambiente; Aperfeiçoadora: Requisição de manutenção do usuário. Manutenção de Software
6
Manutenção Preventiva
Prevenir futuras manutenções (3 tipos) Melhorar a capacidade de manutenção - manutenibilidade Manutenção de Software
7
Estudos sobre Manutenção
Lieth e Swanson: 1980 487 Empresas Dinardo: 1988 25 empresas c/ Mainframe IBM Corretiva: 20% Adaptativa: 25% Aperfeiçoadora: 55% Corretiva: 17% Adaptativa: 70% Aperfeiçoadora: 13% Manutenção de Software
8
Fatores que afetam o trabalho de manutenção
Tamanho do Sistema; Idade do Sistema; Experiência e Conhecimento dos Mantenedores. Manutenção de Software
9
Atividades Típicas do Mantenedor
Estudar especificações e projetos do sistema; Interagir com os usuários; Examinar programas e sua documentação; Descobrir erros e deficiências nos programas fontes; Projetar uma alteração em programa; Modificar um programa; Revalidar um programa; Atualizar a documentação do programa. Manutenção de Software
10
Funções Básicas na Alteração de Software
a) Entender o software e a mudança a ser feita (50%); b) Modificar o software para incorporar a mudança (25%); c) Revalidar o software (25%). Manutenção de Software
11
Custos do Software Desenvolvimento ................ 30 - 40 %
Manutenção % Manutenção de Software
12
Alternativas para Reduzir a Manutenção de Software
Não fazer nada. Apenas continuar como está; Adicionar mais pessoal para o desenvolvimento e manutenção para reduzir BackLog; Planejar a manutenção de software focalizando novas tecnologias para construir sistemas mais fáceis de se manter e gradativamente substituir os atuais; Adotar um plano agressivo para reescrever sistemas atuais o quanto possível; Adotar ferramentas automatizadas para melhorar a manutenção e tecnologia dos sistemas atuais. Manutenção de Software
13
Modelo de Manutenção CONTROLE DAS REQUISIÇÕES CONTROLE DAS MUDANÇAS
CONTROLE DE VERSÕES Manutenção de Software
14
Controle das Requisições
Coletar informações sobre cada requisição; Definir mecanismos para categorização das requisições; Utilizar análise de impacto para avaliar requisições em termos de custos X benefícios; Determinar grau de prioridade para cada requisição. Manutenção de Software
15
Controle das Mudanças Selecionar uma atividade de mudança necessária da lista de prioridades; Reproduzir o problema; Analisar a especificação e o código-fonte; Projetar as mudanças e testes; Realizar atividades de garantia de qualidade (revisões e inspeções). Manutenção de Software
16
Controle de Versões Determinação da Versão;
Construção de uma nova versão (gerência de configuração) Testes completos; Distribuição do programa; Teste de Aceitação. Manutenção de Software
17
Indicadores de Manutenção
Tempo utilizado para resolver uma mudança; Programas mais afetados; Requisições atendidas e em aberto; Usuários mais atendidos; Estimativa de tempo e complexidade da manutenção (FPA). Manutenção de Software
18
Exercício 1 Quais as principais dificuldades na realização das atividades de manutenção de software? Apresente um conjunto de ações para amenizar estas dificuldades. Que outros indicadores poderiam ser utilizados para monitorar a manutenção? Manutenção de Software
19
Premissas da Reengenharia
Sistemas existentes são uma vantagem valiosa da qual a corporação depende e portanto deveriam ser apropriadamente gerenciados; A manutenção de software poderá ser mais efetiva e eficientemente realizada com ajuda de ferramentas poderosas; É uma manutenção automatizada; Fundamentos da Reengenharia
20
Premissas da Reengenharia
Envolve a melhoria dos processos de manutenção de software e melhoria dos sistemas atuais pela aplicação de novas tecnologias e ferramentas para a manutenção de software; Sugere um estratégia de manutenção a longo prazo ao invés de simplesmente procurar por uma imediata mudança na manutenção de Software; Oferece uma maneira de organizar o software e mantê-lo organizado. Fundamentos da Reengenharia
21
Conceito “Reengenharia é o processo de examinar software existente e/ou modificá-lo com ajuda de ferramentas automatizadas para: Melhorar sua futura manutenção; Atualizar sua tecnologia; Estender sua expectativa de vida; Aumentar a produtividade da manutenção. Fundamentos da Reengenharia
22
Outros Conceitos “É o estudo e alteração de um determinado sistema para reconstruí-lo numa nova forma e subseqüente implementação dessa nova forma”; “Modificação em código e estrutura de dados existentes usando os princípios de engenharia de software atuais para aumentar a capacidade de manutenção e capacidade de adaptação do sistema”. “Combinação de técnicas e ferramentas que facilitam a análise, melhoria, redesenho e reutilização de sistemas existentes para suportar as necessidades de informação”; Fundamentos da Reengenharia
23
Outros Conceitos “Meio para melhorar sistemas existentes sem causar impactos na sua funcionalidade atual, plataforma ou arquitetura técnica”; “Conjunto de técnicas e ferramentas orientadas à avaliação, reposicionamento e transformação de sistemas existentes, com o objetivo de estender-lhes a vida útil e ao mesmo tempo, proporcionar-lhes uma melhor qualidade técnica e funcionalidade” (Furlan); Fundamentos da Reengenharia
24
Objetivos da Reengenharia
Criar um inventário dos sistemas existentes; Fornecer assistência automatizada para a manutenção; Reduzir custos e erros de manutenção; Tornar o sistema mais fácil de compreender, modificar e testar. Fundamentos da Reengenharia
25
Objetivos da Reengenharia
Facilitar a conversão e migração do sistema; Reforçar a aderência a padrões; Melhorar a resposta às solicitações de manutenção; Melhorar o ânimo do pessoal de manutenção; Proteger e estender a vida do sistema; Utilizar CASE para suportar sistemas atuais; Reutilizar componentes de sistemas existentes. Fundamentos da Reengenharia
26
Razões para Reengenharia
Freqüentes falhas de produção; Problemas de desempenho; Tecnologia obsoleta; Problemas de integração de sistemas; Qualidade técnica ruim; Dificuldades para testar e caro para manter; Problemas crescentes no sistema. Fundamentos da Reengenharia
27
Razões para se refazer o sistema (Engenharia)
Não confiável; Algoritmos ruins ou incorretos; Não atende as necessidades dos usuários. Fundamentos da Reengenharia
28
Sistemas Candidatos à Reengenharia
São de importância crítica da empresa; São alvo de manutenção freqüente e requerem um grande percentual de recursos de manutenção; São compreensíveis e podem seguramente ser modificados por poucos membros da equipe de software; Contém erros que ninguém pode encontrar; Requerem uma melhoria considerável. Fundamentos da Reengenharia
29
Exercício 2 Que sistemas poderiam ser alvo de reengenharia? Justifique. Quais as principais razões para Reengenharia ou Engenharia? Manutenção de Software
30
Áreas de Atuação da Reengenharia
Análise; Reestruturação; Engenharia Reversa; Migração; Reutilização. Fundamentos da Reengenharia
31
Análise É o processo de examinar os sistemas atuais a fim de compreender os componentes do sistema e como seus programas funcionam. O propósito principal é identificar programas prioritários para Reengenharia e medir sua qualidade. Fundamentos da Reengenharia
32
Reestruturação É o processo de alterar a forma do software (Ex: definição e nomes de dados e código do programa) sem alterar sua funcionalidade. O propósito principal é tornar o programa mais fácil de ser compreendido. Fundamentos da Reengenharia
33
Engenharia Reversa É o processo de analisar o software para reconstruir uma descrição de seus componentes e seus relacionamentos. Uma descrição de alto nível do programa é obtida a partir do programa físico. O propósito é redocumentar o sistema e descobrir informações do projeto com o auxílio na melhoria da compreensão do programa. Fundamentos da Reengenharia
34
Migração É o processo de converter um software de uma linguagem para outra, mover de um ambiente operacional para outro ou atualizar sua tecnologia. O propósito principal é amenizar o impacto de adoção de novos ambientes e tecnologias. Fundamentos da Reengenharia
35
Reutilização É o processo de sistematicamente reaproveitar os diversos elementos criados durante o desenvolvimento de software (código, projeto, especificações, documentação). O propósito principal é acelerar o desenvolvimento de novos sistemas e melhorar sua qualidade. Fundamentos da Reengenharia
36
Exercício 3 Que experiências de reengenharia você conhece? Classifique-as. Quais as principais dificuldades enfrentadas nestas experiências ?
Apresentações semelhantes
© 2025 SlidePlayer.com.br Inc.
All rights reserved.