Você está na página 1de 49

UNIVASF - Universidade Federal do Vale do So Francisco

Manuteno de Software
Prof. Ricardo A. Ramos

Ciclo de Vida de Software

Manuteno de Software
Alteraes efetuadas no software depois de sua liberao. As alteraes ocorrem por diversas razes. As razes para as alteraes determinam a categoria de manuteno.

Categorias de Manuteno
1) Identificar e Corrigir Erros

Manuteno Corretiva

Categorias de Manuteno
2) Adaptar o Software ao Ambiente

Manuteno Adaptativa

Categorias de Manuteno
3) Atender Pedidos do Usurio para Modificar Funes Existentes, Incluir Novas Funes e Efetuar Melhoramentos Gerais

Manuteno Perfectiva (ou aperfeioativa)

Categorias de Manuteno
4) Melhorar a manutenibilidade ou confiabilidade futuras e fornecer uma base melhor para futuros melhoramentos

Manuteno Preventiva

A Fase de Manuteno de Software


Fase mais problemtica do Ciclo de Vida de Software Pode despender mais de 70% de todo esforo de uma Organizao Esses sistemas devem continuar rodando e as alteraes so inevitveis

A Fase de Manuteno de Software


Por que exigida tanta Manuteno e por que despendido tanto Esforo nessa atividade?
Idade Mdia de 10 a 15 anos Quando foram implementados , o tamanho do programa e espao de armazenamento eram o principal interesse Migrao Para Novas Plataformas Sistemas mal estruturados

A Fase de Manuteno de Software


Por que exigida tanta Manuteno e por que despendido tanto Esforo nessa atividade? (cont)
Melhoramentos Para Atender Novas Necessidades Nenhuma preocupao com a Arquitetura Global Codificao, Lgica e Documentao ruins

10

Custo de Manuteno
Custo da manuteno como uma porcentagem do oramento do software

Manuteno Desenvolvimento Outros

Lientz e Swanson ( 1980) 48,8 % 43,3 % 7,9 %

Arfa et alii (1988-1989) 44,63% 46,59 % 8,78 %

11

Custo de Manuteno
Outros Custos no Monetrios
Adiamento de oportunidades de desenvolvimento Reduo da qualidade global do software Insatisfao do cliente Insatisfao do pessoal de manuteno

12

Custo de Manuteno
Custo Final da Manuteno
Diminuio dramtica na produtividade

(Boehm )
Custo do desenvolvimento $250.00 por linha de cdigo Custo da manuteno $1000.00 por linha de cdigo

13

Custo de Manuteno
O Custo de manuteno pode ser dividido em:
tentar entender o que o software faz interpretar as estruturas de dados, as caractersticas de interface e limites de desempenho analisar, avaliar, projetar, codificar e testar as modificaes (Atividades Produtivas)
14

Problemas da Manuteno
A maioria dos problemas com a manuteno do software causada por deficincias na maneira como o software foi planejado e desenvolvido

15

Problemas da Manuteno
PROBLEMAS CLSSICOS

difcil ou impossvel traar a evoluo do software atravs das vrias verses. As alteraes no so adequadamente documentadas difcil ou impossvel traar o processo atravs do qual o software foi criado.

16

Problemas da Manuteno
PROBLEMAS CLSSICOS (cont.)

muito difcil entender programas "de outras pessoas". A dificuldade aumenta conforme o nmero de elementos na configurao de software diminui. "As outras pessoas" freqente-mente no esto presentes para explicar.

17

Problemas da Manuteno
PROBLEMAS CLSSICOS (cont.)

A documentao no existe, incompreensvel ou est desatualizada. A maioria dos softwares no foi projetado para suportar alteraes. A manuteno no vista como um trabalho glamouroso.

18

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

19

Manutenibilidade
A manutenibilidade afetada por muitos fatores:
cuidado inadequado com o projeto, codificao e teste configurao de software ruim disponibilidade de pessoal qualificado de software

20

Manutenibilidade
A manutenibilidade afetada por muitos fatores: (cont)
facilidade de manusear o sistema uso de linguagens de programao padronizadas uso de sistemas operacionais padronizados estruturas padronizadas de documentao

21

Manutenibilidade
A manutenibilidade afetada por muitos fatores: (cont)
disponibilidade de um computador prprio para a manuteno disponibilidade da pessoa ou grupo que desenvolveu o software o planejamento para manutenibilidade (fator mais importante que afeta a manutenibilidade)
22

Medidas Quantitativas de Manutenibilidade


Difcil de quantificar Pode-se determinar a manutenibilidade indiretamente considerando-se atributos das atividades de manuteno que podem ser medidos

23

Medidas Quantitativas de Manutenibilidade


Mtricas de Manutenibilidade (Gilb)
tempo de reconhecimento do problema tempo de demora administrativa tempo de coleta de ferramentas de manuteno tempo de anlise do problema tempo de especificao da alterao tempo de correo ou modificao tempo de teste local e global 24 tempo de reviso da manuteno

Medidas Quantitativas de Manutenibilidade


A manutenibilidade pode ser medida indiretamente considerando medidas da estrutura do projeto e medidas da complexidade do software

25

Revises de Manutenibilidade
A manutenibilidade deve ser considerada em cada nvel do processo de reviso da engenharia de software.

26

Revises de Manutenibilidade
ETAPA DE REVISO DE REQUISITOS

observar: reas de melhoramentos futuros aspectos de portabilidade do software interfaces que poderiam causar impacto manuteno

27

Revises de Manutenibilidade
ETAPA DE REVISO DE PROJETO

avaliar:
projeto arquitetural projeto procedimental projeto de interfaces e projeto de dados

quanto facilidade de manuteno e qualidade global.


28

Revises de Manutenibilidade
ETAPA DE REVISO DE CDIGO

dar nfase:
ao estilo documentao interna

29

Revises de Manutenibilidade
ETAPA DE REVISO DE TESTE

Cada passo do teste pode fornecer indcios sobre partes do software que poderiam exigir manuteno preventiva

30

Fatores de Qualidade de Software


(Norma ISO 9126) Os fatores de qualidade de software focalizam trs aspectos importantes do software produto
31

Tarefas de Manuteno
1) Estabelecer uma organizao para a manuteno (de fato" ou formal)

32

Tarefas de Manuteno
2) Descrever procedimentos de avaliao e de comunicao 3) Definir seqncias padronizadas de eventos (para os pedidos de manuteno)

33

Seqncia de Eventos
34

Tarefas de Manuteno
4) Estabelecer procedimentos para registrar a histria das atividades de manuteno

35

Exemplo de Dados que podem ser Armazenados (Swanson)


identificao do programa nmero de comandos fonte linguagem de programao usada data da instalao do programa nmero de execues do programa desde a instalao nmero de falhas de processamento associadas ao item anterior nvel e identificao da alterao no programa nmero de comandos fonte adicionados por alterao no programa nmero de pessoas-horas despendidos na manuteno identificao do pedido de manuteno tipo de manuteno datas de incio e fim da manuteno 36

Tarefas de Manuteno
5) Definir critrios de reviso e avaliao

37

MEDIDAS de DESEMPENHO e MANUTENO (Swanson) nmero mdio de falhas de processamento por execuo do programa pessoas-horas despendido em cada categoria de manuteno nmero mdio de pessoas-horas despendido por comando fonte adicionado ou retirado devido a manuteno tempo mdio de processamento para um pedido de manuteno porcentagem de pedidos de manuteno por tipo
38

Manuteno de Cdigo Aliengena


Os programas aliengenas so assim chamados porque:
Programas com fluxo de controle equivalente a um prato de espaguete Mdulos muito grandes Poucas linhas de comentrios significativos
39

Manuteno de Cdigo Aliengena


Os programas aliengenas so assim chamados porque: (cont.)
No existe nenhum outro elemento da configurao de software, alm do cdigo. Nenhum membro do pessoal atual de manuteno trabalhou no desenvolvimento do programa.
40

Manuteno de Cdigo Aliengena


Os programas aliengenas so assim chamados porque: (cont.)
Nenhuma metodologia de desenvolvimento foi aplicada:
Projeto de dados e projeto arquitetural ruins Documentao e registro histrico das alteraes incompletos
41

Manuteno de Cdigo Aliengena


O QUE PODE SER FEITO COM CDIGO "ALIENGENA" ?

Engenharia Reversa e Reengenharia


42

Engenharia Reversa
ENGENHARIA REVERSA

processo de anlise de um software, partindo-se inicialmente da implementao para um nvel mais alto de abstrao

43

Reengenharia
REENGENHARIA

implica no exame e na alterao do software para reconstru-lo em uma nova forma.

44

Engenharia Reversa e Reengenharia

45

Elementos da Engenharia Reversa


1) NVEL DE ABSTRAO conforme o nvel de abstrao aumenta, mais compreensveis se tornam as informaes.

46

Elementos da Engenharia Reversa


2) COMPLETITUDE DO PROCESSO refere-se ao nvel de detalhes que fornecido em cada nvel de abstrao.

47

Elementos da Engenharia Reversa


3) INTERATIVIDADE refere-se ao grau de participao do ser humano no processo de engenharia reversa. conforme o nvel de abstrao aumenta, a interatividade deve aumentar ou a completitude ser prejudicada

48

Elementos da Engenharia Reversa


3) DIRECIONALIDADE se a direcionalidade tem sentido nico, toda informao extrada a partir do cdigo fonte usada durante as atividades de manuteno se a direcionalidade tem sentido duplo, a informao usada para "alimentar" uma ferramenta de reengenharia.
49

Você também pode gostar