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

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

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

Manutenção de Software

Manutenção Leitura: Sommerville; Pressman

Leitura: Cap : Sommerville; cap20: Pressman

ISO/IEC 12207: Manutenção

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

AVALIAÇÃO DA QUALIDADE DO PROCESSO DE MANUTENÇÃO DE SOFTWARE UTILIZANDO A NORMA NBR ISO/IEC 12207

Instituto Federal da Bahia Análise e Desenvolvimento de Sistemas INF022 Tópicos Avançados. Evolução de Software

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

Disciplina: Engenharia de Software. 3 Bimestre Aula 2: EVOLUÇÃO DE SOFTWARE

REENGENHARIA E ENGENHARIA REVERSA

TESTES DE SOFTWARE. Unidade 5 Teste de Software em Sistema em Produção. Luiz Leão

Engenharia de Software II

Prof. Ms. Ronaldo Martins da Costa

Modelos de Ciclo de Vida (Parte 1)

Engenharia Reversa e Reengenharia. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

Normas ISO:

Análise de Ponto de Função APF. Aula 02

- Engenharia Reversa - Evolução de Sofware. Desenvolvimento como. Requisitos o que. Sistema porque. Profa. Dra. Sandra Fabbri. operacional.

Engenharia de Software II

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

Gerência de Projetos e Manutenção de Software Aula 12 Medição / Manutenção / Encerramento Andréa Magalhães Magdaleno 2017.

Engenharia de Software II

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

Engenharia de Software

Engenharia de Requisitos

Engenharia de Software Processo de Desenvolvimento de Software

Qualidade de Software QUALIDADE DE SOFTWARE PRODUTO

Ciência da Computação ENGENHARIA DE SOFTWARE. Capítulo 1 Introdução

Qualidade e Certificação em Software. Prof. Cesar 1

Reengenharia de Software

Ferramentas CASE. CASE fornece ao engenheiro de software a habilidade de automatizar atividades manuais e de aperfeiçoar o conhecimento de engenharia.

Engenharia de Software I Processos de desenvolvimento de SW. profa. Denise Neves

QUALIDADE DE SOFTWARE

Métricas de processo e projeto de software

Teste de Software. Karen Frigo Busolin Novembro / 2010

Documentação de Software. Simone Vasconcelos

Princípios da Engenharia de Software aula 03

ENGENHARIA DE SOFTWARE

Introdução a Teste de Software

Introdução. Principal causa do fracasso no desenvolvimento de software é a não utilização de metodologias eficientes para a produção

Engenharia Reversa e Reengenharia. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2017

Engenharia de Software

Engenharia de Software

Capítulo 9. Evolução de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Teste de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015

ICET CURSO: Ciência da Computação e Sistemas de Informação (Engenharia de Software) Campus: Data: / / Nome:

Requisitos de Sistemas

Ciclo de vida: fases x atividades

FATORES E MÉTRICAS DE QUALIDADE

Engenharia de Requisitos

Introdução INTRODUÇÃO AO SWEBOK. Origens do corpo de conhecimentos da Engenharia de Software: Introdução a Computação e Engenharia de Software

22/08/2014. Planejamento e Controle da Produção: Conceito, Finalidades, Funções e Princípios. Conceito de Planejamento. Conceito de Controle

Formação Técnica em Administração. Modulo de Padronização e Qualidade

Disciplina que reúne metodologias, métodos e ferramentas a serem utilizados, desde a percepção do problema até o momento em que o sistema

GESTÃO DA MANUTENÇÃO 25

Engenharia de Software Aula 2.1 Introdução à Engenharia de Requisitos. Prof. Bruno Moreno

Engenharia de Requisitos

Análise e Projeto Orientado a Objetos

Qualidade de Software. Profª Rafaella Matos

Capítulo 24. Gerenciamento de Qualidade Pearson Prentice Hall. Todos os direitos reservados. slide 1

Definições e ciclo de vida

Gerência e Planejamento de Projeto. Engenharia de Software I Profa. Elisa Yumi Nakagawa 1 o semestre de 2015

FERRAMENTA DE CÁLCULO E GERENCIAMENTO DE ESTIMATIVAS DE SOFTWARE

Paradigmas de Software

Engenharia de Software

REUSO E REUSABILIDADE

TESTES DE SOFTWARE 1. Fundamentos sobre testes de software

Engenharia de Software: Uma Visão Geral. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

1/28. Roteiro Introdução NBR ISO NBR ISO Recomendações Conclusões Bibliografia 2/28

Documentação de Software

ENGENHARIA DE SOFTWARE

Índice. APRESENTAÇÃO A Empresa 3. SERVIÇOS Tecnologia da Automação (AT) 4 Tecnologia em Robótica (RT) 5 Tecnologia em Segurança (ST) 6 CONTATO 7

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

Evolução de Software. Agenda a Aula. Evolução de Software. Evolução de Software. Atividades Comuns. Atividades de Desenvolvimento

Engenharia de Confiança. Helena Macedo Reis Luis Fernando de Souza Moro

Modelos de Processo de Software. SSC Engenharia de Software 1 Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

ISO/IEC Prof. Alexandre Luís Franco

Qualidade de Software (cont)

Treinamento e-learning. Interpretação e implantação da ISO 9001:2015

Levantamento, Análise e Gestão Requisitos. Aula 11

Prof. Ms. Ronaldo Martins da Costa

Simulado para CFPS. Questões de Propósito, Tipo e Fronteira. 1. Um dos objetivos da Análise de Pontos de Função é:

LIVRO ENGENHARIA DE SOFTWARE FUNDAMENTOS, MÉTODOS E PADRÕES

3. Engenharia dos requisitos de software

Engenharia de Software II

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

Prof. Luiz A. Nascimento

IFSC/Florianópolis - CTI - Projeto de Sistemas - prof. Herval Daminelli

Métricas de Complexidade

Engenharia de Software II

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE. Aula 17 Reuso de software

Gerência de Projetos e Qualidade de Software. Prof. Walter Gima

Evolução de Software e Refatoração. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 21 1

Fábricas de Software. Processos de Software. Fábricas de Software. Fábricas de Software 17/08/2010. Jorge Dias

Escopo: PROCESSOS FUNDAMENTAIS

AVALIAÇÃO DA QUALIDADE DO PROCESSO DE MANUTENÇÃO DE SOFTWARE UTILIZANDO A NORMA NBR ISO/IEC 12207

Transcrição:

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

Manutenibilidade A Manutenibilidade pode ser definida qualitativamente como a facilidade com que o software pode ser entendido, corrigido, adaptado e ou melhorado. Tipos de Manutenção MANUTENÇÃO CORRETIVA: identificar e corrigir erros MANUTENÇÃO ADAPTATIVA: adaptar o software ao ambiente MANUTENÇÃO PERFECTIVA: atender pedidos do usuário para modificar funções existentes, incluir novas funções e efetuar melhoramentos gerais MANUTENÇÃO PREVENTIVA: Melhorar a manutenibilidade ou confiabilidade futuras e fornecer uma base melhor para futuros melhoramentos 1

Problemas da Manutenção A maioria dos problemas com a manutenção do software é causada por deficiências na maneira como o software foi planejado e desenvolvido PROBLEMAS CLÁSSICOS É difícil ou impossível rastrear o processo através do qual o software foi criado. A maioria dos softwares não foram projetados para suportar alterações. É 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 A documentação não existe, é incompreensível ou está desatualizada. É muito difícil entender programas "de outras pessoas", que frequentemente não estão presentes para explicar. A dificuldade aumenta conforme o número de elementos na configuração de software aumenta. A manutenção não é vista como um trabalho "glamoroso" ou importante 2

Custo de Manutenção Custos diretos da Manutenção - 70 % do orçamento do software (ciclo de vida) - Diminuição dramática na produtividade 40:1 [Boehm,79] - Custo do desenvolvimento : $25,00 por linha de código - Custo da manutenção : $1.000,00 por linha de código Outros custos Não Monetários - Adiamento de oportunidades de desenvolvimento - Insatisfação do cliente - Redução da qualidade global do software - Insatisfação do pessoal de desenvolvimento 3

Custo de Manutenção A manutenibilidade é difícil de quantificar. Pode-se determinar a manutenibilidade indiretamente considerando componentes das atividades de manutenção que podem ser medidos MÉTRICAS DE MANUTENIBILIDADE (Gilb, 1979) - tempo de reconhecimento do problema - tempo de demora administrativa - tempo de análise do problema - tempo de especificação da alteração - tempo de correção ou modificação - tempo de teste local e global - tempo de revisão da manutenção 4

Custo da Manutenção A manutenibilidade pode ser medida indiretamente considerando medidas da estrutura do projeto e medidas da complexidade do software MODELO PARA ESTIMATIVA DE CUSTOS DE MANUTENÇÃO Belady, 1972 M = P + Ke (c-d) Onde, M = esforço de manutenção P = esforço produtivo K = constante empírica e = número Euler (2,78...) c = medida de complexidade atribuida a falta de bom projeto e de boa documentação d = medida do grau de familiaridade com o software 5

Fatores Facilitadores Pessoal qualificado Processo de software estabelecido e documentado Sistemas com estruturas lógicas e compreensíveis Processo de manutenção estabelecido e documentado Processo de controle de mudanças estabelecido e documentado 6

Organização para a Manutenção 7

Organização para a Manutenção Autoridade controladora de mudanças: evita que as mudanças favoreçam um solicitante e prejudiquem outros... Controlador de manutenção: evita que modificações sejam implementadas sem serem devidamente aprovadas... Supervisor de sistemas: uma vez que tem familiaridade com um grupo de sistemas, pode avaliar mais rapidamente os pedidos de manutenção 8

Processo de Manutenção 9

Registros de Manutenção EXEMPLO DE DADOS QUE PODEM SER ARMAZENADOS (Swanson): identificação e descrição do programa número de linhas de comando 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 identificação e descrição das alterações no programa tipo de manutenção número de linhas de comandos adicionadas por alteração no programa datas de início e fim da manutenção número de pessoas-horas despendidos na manutenção 10

Gerenciamento da Manutenção Arcabouço Quantitativo (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 linha de comando 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 Decisões: Tecnologia de Desenvolvimento Estrutura de Manutenção Alocação de Recursos 11

Engenharia Reversa e Reengenharia Programas "Alienígenas" Programas com fluxo de controle equivalente a um "prato de espaguete", módulos muito grandes e poucas linhas de comentários significativos. Projeto de dados e projeto arquitetural ruins. Nenhuma metodologia de desenvolvimento foi aplicada. Nenhum outro elemento da configuração de software, além do código. Documentação e registro histórico das alterações incompletos. Nenhum membro do pessoal atual de manutenção trabalhou no desenvolvimento do programa. 12

Engenharia Reversa e Reengenharia ENGENHARIA REVERSA: Processo de análise de um software, partindo-se inicialmente da implementação para um nível mais alto de abstração REENGENHARIA: Implica no exame e na alteração do software para reconstrui-lo em uma nova forma. 13

Elementos de Eng. Reversa e Reengenharia DIRECIONALIDADE: Engenharia Reversa: se a direcionalidade tem sentido único, toda informação é extraída a partir do código fonte e usada durante as atividades de manutenção. Reengenharia : se a direcionalidade tem sentido duplo, a informação é usada para "alimentar" uma abordagem de reengenharia, que tentará reestruturar ou regenerar o programa antigo. GRAU DE ABSTRAÇÃO Refere-se ao nível de generalidade das descrições. Conforme o nível de abstração aumenta, mais produtivas se tornam as informações INTEIREZA: Refere-se ao nível de detalhes que é fornecido em cada nível de abstração. INTERATIVIDADE: Refere-se ao grau de participação do ser humano no processo de engenharia reversa. Conforme o nível de abstração aumenta, a interatividade deve aumentar ou a inteireza será prejudicada. 14