Entendendo a Manutenção

Slides:



Advertisements
Apresentações semelhantes
GERENCIAMENTO DE MANUTENÇÃO
Advertisements

Manutenção em software Conceitos básicos
Qualidade de Software Aula 4
ENGENHARIA DE SOFTWARE Garantia de Qualidade de Software
ISO Processos do Ciclo de Vida do Software
Débora da Silva Orientadora: Maria Inés Castiñeira
Engenharia de Software
Tipos de sistemas de Lehman
Gestão de Projetos Áreas de conhecimentos Integração
Gerenciamento do escopo do projeto
INTRODUÇÃO A INFORMÁTICA
Mitos e Problemas Relacionados ao Software
Faculdade de Ciências Sociais de Aplicadas de Petrolina – FACAPE
Manutenção de Software
Qualidade de Software Aula 2
Engenharia Reversa É o processo de derivar as especificações lógicas dos componentes do sistema a partir de sua descrição física com auxílio de ferramentas.
Análise e Projeto de Sistemas
Engenharia Reversa e Reengenharia Software
Control Objectives for Information and related Technology
TSDD Teste de segurança durante o desenvolvimento.
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Gerenciamento de Requisitos com Casos de Uso
Engenharia de Software
UFRPE – Modelos de Qualidade Teresa Maciel
Configuração de manutenção
MANUTENÇÃO DE SOFTWARE
Análise e Desenvolvimento de Sistemas
José Roberto Blaschek Gerência do Escopo José Roberto Blaschek.
Técnicas e Projeto de Sistemas
Engenharia de Software
Prof.Alfredo Parteli Gomes
Aluno: Mário Monteiro Orientador: Sérgio Soares 1.
Fundamentos de Engenharia de SW
Gerenciamento de Configuração
Universidade São Marcos Curso: Gestão de Negócios Internacionais
PMBOK 5ª Edição Capítulo 5
Projeto: Capacitação em GP
Gestão de Projetos Ms. Karine R. de Souza
Análise de problemas Capacidade de pensamento crítico
Introdução à Qualidade
Prof. Alexandre Vasconcelos
Engenharia de Software
Qualidade Qualidade é um dos principais objetivos da Engenharia de Software. Muitos métodos, técnicas e ferramentas são desenvolvidas para apoiar a produção.
Engenharia de Software
CURSO TÉCNICO EM SEGURANÇA DO TRABALHO
Gerenciamento de Risco
Processo de Aquisição Adilson de Almeida Cezar Meriguetti
O Processo de desenvolvimento de software
Plano de Manutenção <RedMan>
ISO NBR Eduardo Silvestri Ribeiro
Documentação de Software
Teste de Software Conceitos iniciais.
ANÁLISE ESTRUTURADA DE SISTEMAS
Gestão de defeitos.
Qualidade no Desenvolvimento de Software Wolley W. Silva Baseado nas notas de aula dos professores Tatuo e Daisy.
Processos de Software.
Requisitos de Software
Engenharia de Software
Gerenciamento de Qualidade
Engenharia de Software
Erton W. Vieira Metodologias Ágeis, Qualidade de Software e Design Centrado no usuário: Pontos de Interação Erton W. Vieira.
ISO9001:2000 para Software Professor: Alexandre Vasconcelos Equipe: Amanda Pimentel Börje Karlsson Danielly Karine Erika Pessoa Jorge Cavalcanti Jose Edson.
Apresentação Leonardo Brussolo de Paula
TÉCNICAS DE ESTIMATIVAS
Introdução – ISO Conceitos relacionados a Norma NBR ISO/IEC 12207; Procedimentos de ciclo de vida e desenvolvimento de software; Objetivos e a estrutura.
Estimativa, Teste e Inspeção de Software
Eduardo C. Nicácio ITIL v3 Foundation Certified.  As melhores práticas do ITIL abrangem cinco processos de suporte a serviços, além do papel do Service.
1 Estimativa, Teste e Inspeção de Software Gerência de Projetos: Estimativa de Software Marcos Camada
Processos de Software Ludimila Monjardim Casagrande 1º Semestre Desenvolvimento e Qualidade.
ADMINISTRAÇÃO DA QUALIDADE
Transcrição da apresentação:

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

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

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

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

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

Manutenção Preventiva Prevenir futuras manutenções (3 tipos) Melhorar a capacidade de manutenção - manutenibilidade Manutenção de Software

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

Fatores que afetam o trabalho de manutenção Tamanho do Sistema; Idade do Sistema; Experiência e Conhecimento dos Mantenedores. Manutenção de Software

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

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

Custos do Software Desenvolvimento ................ 30 - 40 % Manutenção ........................ 70 - 60 % Manutenção de Software

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

Modelo de Manutenção CONTROLE DAS REQUISIÇÕES CONTROLE DAS MUDANÇAS CONTROLE DE VERSÕES Manutenção de Software

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Exercício 2 Que sistemas poderiam ser alvo de reengenharia? Justifique. Quais as principais razões para Reengenharia ou Engenharia? Manutenção de Software

Áreas de Atuação da Reengenharia Análise; Reestruturação; Engenharia Reversa; Migração; Reutilização. Fundamentos da Reengenharia

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

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

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

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

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

Exercício 3 Que experiências de reengenharia você conhece? Classifique-as. Quais as principais dificuldades enfrentadas nestas experiências ?