Você está na página 1de 27

Universidade Federal de Santa Catarina

Graduação em Tecnologias da Informação e Comunicação


Engenharia de Software II
Professora: Tatiana Nilson dos Santos

ENGENHARIA DE SOFTWARE II

Profª.: Tatiana Nilson dos Santos


email: tatiana.santos@ufsc.br
Turma: DEC7130 - 04652
Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

MANUNTENÇÃO DE SOFTWARE
Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

O que é?

 Processos de ciclo de vida de


um software;
Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

O que é?

 Processo de alteração do sistema depois que o mesmo já foi liberado para o cliente
(já está em uso);

 Permite corrigir falhas, melhorar o desempenho do sistema (ou outros atributos)


ou até mesmo adaptá-lo às mudanças do ambiente (contexto organizacional).
Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

O que é?

 Distribuição de esforços na manutenção


de um sistema
Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

Fase de manutenção

 Fase mais problemática do ciclo de vida de software;

 Pode despender mais de 70% de todo esforço de uma organização;

 Os sistemas devem continuar rodando e as alterações são inevitáveis;


Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

Fase de manutenção

Por que é exigida tanta manutenção?

 Migração para novas plataformas;


 Sistemas mal estruturados;
 Melhoramentos para atender necessidades;
 Nenhuma preocupação com a arquitetura global do sistema;
 Codificação, lógica e documentação ruins.
Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

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;

Problemas Clássicos:

 É difícil ou impossível traçar a evolução do software em suas várias versões. As


alterações não são adequadamente documentadas;

 É difícil ou impossível traçar o processo pelo qual o software foi criado;


Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

Problemas da manutenção
 É muito difícil entender programas “de outras pessoas”;

 Frequentemente “as outras pessoas” não estão presentes para explicar;

 A documentação não existe, é incompreensível ou está desatualizada;

 A maioria dos softwares não foram projetados para suportar alterações;

 A manutenção não é vista como um trabalho glamoroso.


Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

Tarefas da manutenção

1. Estabelecer uma organização


para a manutenção;
Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

Tarefas da manutenção

2. Descrever os procedimentos de
avaliação e de comunicação;

3. Definir sequências padronizadas de


eventos (para pedidos de manutenção);
Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

Tarefas da manutenção
4. Estabelecer procedimentos para registrar a história das atividades de manutenção:

 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;
 Tipo de manutenção;
 Data de início e fim da manutenção.
Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

Tarefas da manutenção

5. Definir critérios de revisão e avaliação:

 Técnicas de desenvolvimento;
 Esforço de manutenção;
 Alocação de recursos;
 Número médio de pessoas-horas despendido por comando fonte adicionado
ou deletado devido a manutenção;
 Porcentagem de pedidos de manutenção por tipo.
Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

Sucesso da manutenção
 Foi desenvolvida uma estratégia de manutenção para gerenciar modificações,
migração e aposentadoria dos produtos;

 Foi identificado o impacto das alterações no sistema existente;

 A documentação afetada foi atualizada;

 Os produtos modificados são desenvolvidos com testes que demonstram que os


requisitos não estão comprometidos;
Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

Sucesso da manutenção

 Os upgrades dos produtos são migrados para o ambiente do cliente;

 Os produtos são retirados de uso de maneira controlada, de modo a minimizar o


distúrbio para o cliente;

 As modificações são comunicadas a todas as partes afetadas.


Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

Tipos de manutenção
Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

Tipos de manutenção
Manutenção corretiva (reparo de defeito de software):

 Correção de erros no software que não foram identificados na fase de teste (se
houver teste);

 Pode ser que estes erros nem atrapalhem a execução do software, mas pode haver
casos mais complexos que exigem reparos temporários rápidos.

 Manutenção corretiva planejada e não planejada;


Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

Tipos de manutenção
Manutenção adaptativa (adaptação do software a um ambiente operacional
diferente):

 Serve para acomodar as constantes mudanças em seu ambiente externo, essa


mudança pode ser:
 em regra de negócio;
 a criação de uma nova plataforma de hardware;
 uma nova versão de um sistema operacional que não seja compatível com o
software.
Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

Tipos de manutenção
Manutenção evolutiva (manutenção para adicionar funcionalidades ao softwares ou
modificá-las):

 Modificações não previstas no documento de requisitos originais do software;

 Tem por objetivo melhorar a qualidade do software, acrescentar novas


funcionalidades, melhorar seu desempenho e até modificar seu código-fonte para
se obter legibilidade ou adequação à alguns paradigmas de programação.
Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

Tipos de manutenção
Manutenção preventiva (evitar ou diminuir a queda do desempenho do sistema):

 Alterações no software para melhorar a confiabilidade;

 Oferecer uma estrutura melhor para futuras manutenções.

 É reconhecido possível erros que virão a ocorrer no software, porém ele será
corrigido antes que aconteça de fato;
Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

Tipos de manutenção
Preventiva
4%

Evolutiva
50% Corretiva
21%

Adaptativa
25%
Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

Custo da manutenção

 O custo de manutenção é geralmente muito maior que o custo de


desenvolvimento;

 Cada vez menos sistemas são desenvolvidos “do zero”: normalmente são
desenvolvidos/adaptados a partir de outros sistemas;

 Faz mais sentido considerar desenvolvimento e manutenção como atividades


contínuas;
Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

Custo da manutenção
Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

Custo da manutenção
 Geralmente é benéfico investir esforço no desenvolvimento para reduzir custos de
manutenção;

 É mais caro adicionar as novas funcionalidades depois que o sistema entra em


operação;
Custo de desenvolvimento Custo de manutenção

Sistema 2

Sistema 1

0 100 200 300 400 500 600 700 800


Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

Atividade em sala

1. Corrigir um erro ou efetuar uma mudança na fase de manutenção é muito mais


barato e rápido do que na fase de definição.

(a) Verdadeiro ou Falso?


(b) Por que?
Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

Atividade em sala

3. Quais as principais dificuldades na realização das atividades de manutenção de


software?

4. Apresente um conjunto de ações para amenizar estas dificuldades?


Universidade Federal de Santa Catarina
Graduação em Tecnologias da Informação e Comunicação
Engenharia de Software II
Professora: Tatiana Nilson dos Santos

Atividade extra classe

 Leitura do livro Engenharia de Software, Ian Sommerville, 9ª Edição. Pearson


Education, 2011, Seção 9.3 Manutenção de Software;

Você também pode gostar