Manutenção desoftware. SCE 186- Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestrede2002



Documentos relacionados
UNIVASF - Universidade Federal do Vale do São Francisco Manutenção de Software

EVOLUÇÃO DE SOFTWARE

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

Engenharia Reversa e Reengenharia

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

Gerência e Planejamento de Projeto. SCE Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestre de 2002

Tópicos. Engenharia de Software: Uma Visão Geral

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

Engenharia de Software II

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

Qualidade de Software. Prof.: Ivon Rodrigues Canedo. PUC Goiás

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Capítulo 20 - Manutenção de Software. Os Fatores de Qualidade de Software focalizam três aspectos importantes do Software Produto: (ISO 9126)

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Reengenharia. Fabrício de Sousa

Metodologia de Desenvolvimento de Sistemas

Engenharia de Software II

ENGENHARIA DE SOFTWARE I

Qualidade de. Software. Definições. Qualidade do Produto ISO Processo de. Software. Modelo de Processo de. Software CMM SPICE ISO 12207

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

Engenharia de Requisitos

Universidade Paulista

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016

Modernização e Evolução do Acervo de Software. Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br

Gerência e Planejamento de Projeto. SCE Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestre de 2002

Engenharia de Software Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Modelos de Qualidade de Produto de Software

Engenharia de Software

Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

GARANTIA DA QUALIDADE DE SOFTWARE

ENGENHARIA DE SOFTWARE

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Implantação de um Processo de Medições de Software

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Documento de Arquitetura

Engenharia de Software II

Manutenção e Ferramentas CASE. Marcos L. Chaim Segundo Bimestre 2003 Mestrado Profissional IC/Unicamp

Engenharia de Software II

Ler e interpretar simbologias elétricas. Elaborar diagramas elétricos em planta baixa. Ler e interpretar Planta Baixa.

GESTÃO DAS INFORMAÇÕES DAS ORGANIZAÇÕES MÓDULO 11

Qualidade de Software. Profa. Cátia dos Reis Machado

Engenharia de Software

Atividade da gerência da qualidade

ERP Enterprise Resource Planning

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

CHECK - LIST - ISO 9001:2000

Gerenciador de Log Documento Visão. Versão 2.0

GOVERNO DO ESTADO DO PARÁ MINISTÉRIO PÚBLICO DE CONTAS DOS MUNICÍPIOS DO ESTADO DO PARÁ MPCM CONCURSO PÚBLICO N.º 01/2015

Profa. Gislaine Stachissini. Unidade III GOVERNANÇA DE TI

Análise de Sistemas. Conceito de análise de sistemas

Manutenção de Software

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

Atividades da Engenharia de Software GERENCIAMENTO DA CONFIGURAÇÃO DE SOFTWARE. Atividades da Engenharia de Software. Processo de Desenvolvimento de

ISO Aécio Costa

Introdução Fatores de Qualidade Garantia de Qualidade Rivisões de Software Conclusão. Qualidade. Plácido A. S. Neto 1

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

Introdução à Engenharia de Software

SIMULADO: Simulado 3 - ITIL Foundation v3-40 Perguntas em Português

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA

Introdução à Computação

Prof. Dr. Ivanir Costa. Unidade III QUALIDADE DE SOFTWARE

Requisitos de Software

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1

Auditoria e Qualidade de Software ISO/IEC 9126 Engenharia de Software Qualidade de Produto

Gestão de Modificações. Fabrício de Sousa

Sistemas de Informação I

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

pacotes de software na forma em que são É importante salientar que não é objetivo do software, suas atividades e produtos

2 Fundamentação. 2.1 Manutenção e Evolução de Sistemas

F.1 Gerenciamento da integração do projeto

IC-UNICAMP IC-UNICAMP

Auditoria do TCO de redes de

Professor: Curso: Disciplina:

ARQUITETURA DE SOFTWARE

O custo da infra-estrutura no

Sumário. Prefácio Capítulo 1 O que é qualidade? Capítulo 2 Normas e organismos normativos Capítulo 3 Métricas: visão geral...

Modelo Cascata. Alunos: Bruno Nocera Zanette Pedro Taques

Gerenciador de Log. Documento Visão. Projeto Integrador 2015/2. Engenharia de Software. Versão 2.0. Engenharia de Software

QUESTIONÁRIO DE AVALIAÇÃO Primeira Fase

Engenharia de Sistemas Computacionais

Introdução. Hardware X Software. Corpo Humano Parte Física. Capacidade de utilizar o corpo em atividades especificas explorando seus componentes

MÓDULO 11 ELEMENTOS QUE FAZEM PARTE DO PROJETO DO SISTEMA

Requisitos de Software

Qualidade de Software

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

15 Computador, projeto e manufatura

Projeto de Redes Top-Down

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE 1. VISÃO GERAL 1.1. PROCESSOS EM GERAL

Tecnologia e Sistemas de Informações

UnG. As cinco funções do administrador são: Planejar, Organizar, Comandar, Coordenar e Controlar.

Processo de Desenvolvimento de Software. Engenharia de Software.

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Transcrição:

Manutenção desoftware SCE 186- Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestrede2002

CiclodeVidadeSoftware 2

ManutençãodeSoftware n Alterações efetuadas no software depois de sua liberação. n As alterações ocorrem por diversas razões. n As razões para as alterações determinam a categoria de manutenção. 3

CategoriasdeManutenção 1) Identificar e Corrigir Erros Manutenção Corretiva 4

CategoriasdeManutenção 2) Adaptar o Software ao Ambiente Manutenção Adaptativa 5

CategoriasdeManutenção 3) Atender Pedidos do Usuário para Modificar Funções Existentes, Incluir Novas Funções e Efetuar Melhoramentos Gerais Manutenção Perfectiva 6

CategoriasdeManutenção 4) Melhorar a manutenibilidade ou confiabilidade futuras e fornecer uma base melhor para futuros melhoramentos Manutenção Preventiva 7

AFasedeManutençãode Software n Fase mais problemática do Ciclo de Vida de Software n Pode despender mais de 70% de todo esforço de uma Organização n Esses sistemas devem continuar rodando e as alterações são inevitáveis 8

AFasedeManutençãode Software n Por que é exigida tanta Manutenção e por que é despendido tanto Esforço nessa atividade? u Idade Média de 10 a 15 anos u Quando foram implementados, o tamanho do programa e espaço de armazenamento eram o principal interesse u Migração para novas plataformas u Sistemas mal estruturados 9

AFasedeManutençãode Software n Por que é exigida tanta Manutenção e por que é despendido tanto Esforço nessa atividade? (cont) u Melhoramentos para atender novas necessidades u Nenhuma preocupação com a arquitetura global u Codificação, lógica e documentação ruins 10

ManutençãoEstruturadax Não-Estruturada 11

CustodeManutenção n Custo da manutenção como uma porcentagem do orçamento do software Lientz e Swanson ( 1980) Arfa et alii (1988-1989) Manutenção 48,8 % 44,63% Desenvolvimento 43,3 % 46,59 % Outros 7,9 % 8,78 % 12

CustodeManutenção n Outros Custos não Monetários u Adiamento de oportunidades de desenvolvimento u Redução da qualidade global do software u Insatisfação do cliente u Insatisfação do pessoal de manutenção 13

CustodeManutenção n Custo Final da Manutenção u Diminuição dramática na produtividade n (Boehm ) u Custo do desenvolvimento $250.00 por linha de código u Custo da manutenção $1000.00 por linha de código 14

CustodeManutenção n O Custo de manutenção pode ser dividido em: u tentar entender o que o software faz u interpretar as estruturas de dados, as características de interface e limites de desempenho u analisar, avaliar, projetar, codificar e testar as modificações (Atividades Produtivas) 15

Custo de Manutenção MODELO DE ESFORÇO DE MANUTENÇÃO [Belady72] no qual, M p ke F M = Esforço total F p = Esforço produtivo F k = Constante empírica F c = Medida de complexidade atribuída à falta de bom projeto e documentação F d = Medida do grau de familiaridade com o software c d Crescimento exponencial. 16

Problemas da Manutenção n A maioria dos problemas com a manutenção do software é causada por deficiências na maneira como o software foi planejado e desenvolvido 17

Problemas da Manutenção PROBLEMAS CLÁSSICOS PROBLEMAS CLÁSSICOS n É difícil ou impossível traçar a evolução do software através das várias versões. As alterações não são adequadamente documentadas n É difícil ou impossível rastrear o processo através do qual o software foi criado. 18

Problemas da Manutenção PROBLEMAS CLÁSSICOS (cont.) PROBLEMAS CLÁSSICOS (cont.) n É muito difícil entender programas "de outras pessoas". A dificuldade aumenta conforme o número de elementos na configuração de software diminui. n "As outras pessoas" freqüentemente não estão presentes para explicar. 19

Problemas da Manutenção PROBLEMAS CLÁSSICOS (cont.) PROBLEMAS CLÁSSICOS (cont.) n A documentação não existe, é incompreensível ou está desatualizada. n A maioria dos softwares não foram projetados para apoiar alterações. n A manutenção não é vista como um trabalho glamoroso. 20

Manutenibilidade n A Manutenibilidade pode ser definida qualitativamente como a facilidade com que o software pode ser entendido, corrigido, adaptado e ou melhorado 21

Manutenibilidade n A manutenibilidade é afetada por muitos fatores: u cuidado inadequado com o projeto, codificação e teste u configuração de software ruim u disponibilidade de pessoal qualificado de software 22

Manutenibilidade n A manutenibilidade é afetada por muitos fatores: (cont) u facilidade de manusear o sistema u uso de linguagens de programação padronizadas u uso de sistemas operacionais padronizados u estruturas padronizadas de documentação 23

Manutenibilidade n A manutenibilidade é afetada por muitos fatores: (cont) u disponibilidade de um computador próprio para a manutenção u disponibilidade da pessoa ou grupo que desenvolveu o software u o planejamento para manutenibilidade o planejamento para manutenibilidade (fator mais importante que afeta a manutenibilidade) 24

Medidas Quantitativas de Manutenibilidade n Difícil de quantificar n Pode-se determinar a manutenibilidade indiretamente considerando-se atributos das atividades de manutenção que podem ser medidos 25

Medidas Quantitativas de Manutenibilidade Métricas de Manutenibilidade (Gilb) u tempo de reconhecimento do problema u tempo de demora administrativa u tempo de coleta de ferramentas de manutenção u tempo de análise do problema u tempo de especificação da alteração u tempo de correção ou modificação u tempo de teste local e global u tempo de revisão da manutenção 26

Medidas Quantitativas de Manutenibilidade n A manutenibilidade pode ser medida indiretamente considerando medidas da estrutura do projeto e medidas da complexidade do software 27

Revisões de Manutenibilidade n A manutenibilidade deve ser considerada em cada nível do processo de revisão da engenharia de software. 28

Revisões de Manutenibilidade ETAPA DE REVISÃO DE REQUISITOS observar: n áreas de melhoramentos futuros n aspectos de portabilidade do software n interfaces que poderiam impactar a manutenção 29

Revisões de Manutenibilidade ETAPA DE REVISÃO DE PROJETO avaliar: u projeto arquitetural u projeto procedimental u projeto de interfaces e u projeto de dados quanto à facilidade de manutenção e à qualidade global. 30

Revisões de Manutenibilidade ETAPA DE REVISÃO DE CÓDIGO dar ênfase: u ao estilo u à documentação interna 31

Revisões de Manutenibilidade ETAPA DE REVISÃO DE TESTE n Cada passo do teste pode fornecer indícios sobre partes do software que poderiam exigir manutenção preventiva 32

Fatores de Qualidade de Software (Norma ISO 9126) n Os fatores de qualidade de software focalizam três aspectos importantes do software produto 33

Tarefas de Manutenção 1) Estabelecer uma organização para a manutenção ( de fato" ou formal) 34

Tarefas de Manutenção 2) Descrever procedimentos de avaliação e de comunicação 3) Definir seqüências padronizadas de eventos (para os pedidos de manutenção) 35

Seqüência de Eventos 36

Tarefas de Manutenção 4) Estabelecer procedimentos para registrar a história das atividades de manutenção 37

Exemplo de Dados que podem ser Armazenados (Swanson) identificação do programa número de comandos fonte linguagem de programação usada data da instalação do programa número de execuções do programa desde a instalação número de falhas de processamento associadas ao item anterior nível e identificação da alteração no programa número de comandos fonte adicionados por alteração no programa número de pessoas-horas despendidos na manutenção identificação do pedido de manutenção tipo de manutenção datas de início e fim da manutenção 38

Tarefas de Manutenção 5) Definir critérios de revisão e avaliação 39

MEDIDAS de DESEMPENHO e MANUTENÇÃO (Swanson) n número médio de falhas de processamento por execução do programa n pessoas-horas despendido em cada categoria de manutenção n número médio de pessoas-horas despendido por comando fonte adicionado ou retirado devido a manutenção n tempo médio de processamento para um pedido de manutenção n porcentagem de pedidos de manutenção por tipo 40

Tarefas de Manutenção 5) Definir critérios de revisão e avaliação MEDIDAS de DESEMPENHO e MANUTENÇÃO (Swanson) número médio de falhas de processamento por execução do programa pessoas-horas despendido em cada categoria de manutenção número médio de pessoas-horas despendido por comando fonte adicionado ou deletado devido a manutenção tempo médio de processamento para um pedido de manutenção porcentagem de pedidos de manutenção por tipo 40 Arcabouço Quantitativo Técnicas de Desenvolvimento, Linguagens, Esforço de Manutenção, Alocação de Recursos 41

Manutenção de Código Alienígena n Os programas alienígenas são assim chamados porque: u Programas com fluxo de controle equivalente a uma tigela de espaguete u Módulos muito grandes u Poucos linhas de comentários significativos 42

Manutenção de Código Alienígena n Os programas alienígenas são assim chamados porque: (cont.) u Não existe nenhum outro elemento da configuração de software, além do código u Nenhum membro do pessoal atual de manutenção trabalhou no desenvolvimento do programa 43

Manutenção de Código Alienígena n Os programas alienígenas são assim chamados porque: (cont.) u Nenhuma metodologia de desenvolvimento foi aplicada: F Projeto de dados e projeto arquitetural ruins F Documentação e registro histórico das alterações incompletos 44

Manutenção de Código Alienígena O QUE PODE SER FEITO COM CÓDIGO "ALIENÍGENA"? Engenharia Reversa e Reengenharia 45

Engenharia Reversa ENGENHARIA REVERSA ENGENHARIA REVERSA n processo de análise de um software, partindo-se inicialmente da implementação para um nível mais alto de abstração 46

Reengenharia REENGENHARIA n implica no exame e na alteração do software para reconstruí-lo em uma nova forma. 47

Engenharia Reversa e Reengenharia 48

Elementos da Engenharia Reversa 1) NÍVEL DE ABSTRAÇÃO n conforme o nível de abstração aumenta, mais compreensíveis se tornam as informações. 49

Elementos da Engenharia Reversa 2) COMPLETITUDE DO PROCESSO 2) COMPLETITUDE DO PROCESSO n refere-se ao nível de detalhes que é fornecido em cada nível de abstração. 50

Elementos da Engenharia Reversa 3) INTERATIVIDADE n refere-se ao grau de participação do ser humano no processo de engenharia reversa. n conforme o nível de abstração aumenta, a interatividade deve aumentar ou a completitude será prejudicada 51

Elementos da Engenharia Reversa 3) DIRECIONALIDADE n se a direcionalidade tem sentido único, toda informação extraída a partir do código fonte é usada durante as atividades de manutenção n se a direcionalidade tem sentido duplo, a informação é usada para "alimentar" uma ferramenta de reengenharia. 52