A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Entendendo a Manutenção

Apresentações semelhantes


Apresentação em tema: "Entendendo a Manutenção"— Transcrição da apresentação:

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 ?


Carregar ppt "Entendendo a Manutenção"

Apresentações semelhantes


Anúncios Google