(Manuten??o de Software Engenharia de Software) · processo de revisão da engenharia de software....

Preview:

Citation preview

ManutençãoManutençãode Softwarede Software

SCE 186 - Engenharia de Software

Profs. José Carlos Maldonado e Elisa Yumi Nakagawa

2o semestre de 2002

2

Ciclo de Vida de SoftwareCiclo de Vida de Software

3

Manutenção de SoftwareManutenção de Software

n AlteraçõesAlteraçõ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.

4

Categorias de ManutençãoCategorias de Manutenção

1) Identificar e Corrigir Erros

Manutenção CorretivaManutenção Corretiva

5

Categorias de ManutençãoCategorias de Manutenção

2) Adaptar o Software ao Ambiente

Manutenção AdaptativaManutenção Adaptativa

6

Categorias de ManutençãoCategorias de Manutenção

3) Atender Pedidos do Usuário para Modificar Funções Existentes, Incluir Novas Funções e Efetuar Melhoramentos Gerais

Manutenção PerfectivaManutenção Perfectiva

7

Categorias de ManutençãoCategorias de Manutenção

4) Melhorar a manutenibilidade ou

confiabilidade futuras e fornecer

uma base melhor para futuros

melhoramentos

Manutenção PreventivaManutenção Preventiva

8

A Fase de Manutenção deA Fase de Manutenção deSoftwareSoftware

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

9

A Fase de Manutenção deA Fase de Manutenção deSoftwareSoftware

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

10

A Fase de Manutenção deA Fase de Manutenção deSoftwareSoftware

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

11

Manutenção Estruturada xManutenção Estruturada xNão-EstruturadaNão-Estruturada

12

Custo de ManutençãoCusto de Manutençã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 %

13

Custo de ManutençãoCusto de Manutençã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

14

Custo de ManutençãoCusto de Manutençã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

15

Custo de ManutençãoCusto de Manutençã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)

16

Custo de ManutençãoCusto de Manutenção

MODELO DE ESFORÇO DE MANUTENÇÃO [Belady72]MODELO DE ESFORÇO DE MANUTENÇÃO [Belady72]

no qual,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

M � p ke

c � d

Crescimento exponencial….

17

Problemas da ManutençãoProblemas 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

18

Problemas da ManutençãoProblemas da Manutenção

PROBLEMAS CLÁSSICOSPROBLEMAS 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.

19

Problemas da ManutençãoProblemas 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üente-mente não estão presentes para explicar.

20

Problemas da ManutençãoProblemas 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”.

21

ManutenibilidadeManutenibilidade

n A Manutenibilidade pode ser

definida qualitativamente como a

facilidade com que o software pode

ser entendido, corrigido, adaptado e

ou melhorado

22

ManutenibilidadeManutenibilidade

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

23

ManutenibilidadeManutenibilidade

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

24

ManutenibilidadeManutenibilidade

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 manutenibilidadeo planejamento para manutenibilidade

(fator mais importante que afeta a manutenibilidade)

25

Medidas Quantitativas de Medidas Quantitativas de

ManutenibilidadeManutenibilidade n Difícil de quantificar

n Pode-se determinar a manutenibilidade indiretamente considerando-se atributos das atividades de manutenção que podem ser medidos

26

Medidas Quantitativas de Medidas Quantitativas de

ManutenibilidadeManutenibilidade 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

27

Medidas Quantitativas de Medidas Quantitativas de

ManutenibilidadeManutenibilidade n A manutenibilidade pode ser

medida indiretamente considerando

medidas da estrutura do projeto e

medidas da complexidade do

software

28

Revisões de Revisões de

Manutenibilidade Manutenibilidade

n A manutenibilidade deve ser considerada em cada nível do

processo de revisão da engenharia de software.

29

Revisões de Revisões de

Manutenibilidade Manutenibilidade

ETAPA DE REVISÃO DE REQUISITOSETAPA 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

30

Revisões de Revisões de

Manutenibilidade Manutenibilidade

ETAPA DE REVISÃO DE PROJETOETAPA 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.

31

Revisões de Revisões de

Manutenibilidade Manutenibilidade

ETAPA DE REVISÃO DE CÓDIGOETAPA DE REVISÃO DE CÓDIGO

dar ênfase:

u ao estilo

u à documentação interna

32

Revisões de Revisões de

Manutenibilidade Manutenibilidade

ETAPA DE REVISÃO DE TESTEETAPA DE REVISÃO DE TESTE

n Cada passo do teste pode fornecer indícios sobre partes do software que poderiam exigir manutenção preventiva

33

Fatores de Qualidade de Fatores de Qualidade de Software Software

(Norma ISO 9126)

n Os fatores de qualidade de software focalizam três aspectos importantes do software produto

34

Tarefas de ManutençãoTarefas de Manutenção

1) Estabelecer uma organização para a

manutenção (“de fato" ou formal)

35

Tarefas de ManutençãoTarefas 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)

36

Seqüência de Eventos

37

Tarefas de ManutençãoTarefas de Manutenção

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

38

Exemplo de Dados que podem ser Exemplo de Dados que podem ser

ArmazenadosArmazenados (Swanson) (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

39

Tarefas de ManutençãoTarefas de Manutenção

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

40

MEDIDAS de DESEMPENHO e MANUTENÇÃOMEDIDAS 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

41

Tarefas de ManutençãoTarefas de Manutenção

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

Arcabouço Quantitativo

Técnicas de Desenvolvimento,

Linguagens,

Esforço de Manutenção,

Alocação de Recursos40

MEDIDAS de DESEMPENHO e MANUTENÇÃOMEDIDAS de DESEMPENHO e MANUTENÇÃO(Swanson)� número médio de falhas de processamento por

execução do programa�pessoas-horas despendido em cada categoriade manutenção�número médio de pessoas-horas despendidopor comando fonte adicionado ou deletado

devido a manutenção�tempo médio de processamento para umpedido de manutenção�porcentagem de pedidos de manutenção por

tipo

42

Manutenção de Código Manutenção de Código AlienígenaAliení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

43

Manutenção de Código Manutenção de Código AlienígenaAliení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

44

Manutenção de Código Manutenção de Código AlienígenaAliení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

ruinsF Documentação e registro histórico das

alterações incompletos

45

Manutenção de Código Manutenção de Código AlienígenaAlienígena

O QUE PODE SER FEITO COM CÓDIGO O QUE PODE SER FEITO COM CÓDIGO

"ALIENÍGENA" ?"ALIENÍGENA" ?

Engenharia Reversa e Engenharia Reversa e

ReengenhariaReengenharia

46

Engenharia ReversaEngenharia Reversa

ENGENHARIA REVERSAENGENHARIA REVERSA

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

47

ReengenhariaReengenharia

REENGENHARIA REENGENHARIA

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

48

Engenharia Reversa e Engenharia Reversa e ReengenhariaReengenharia

49

Elementos da Engenharia Elementos da Engenharia ReversaReversa

1) NÍVEL DE ABSTRAÇÃO1) NÍVEL DE ABSTRAÇÃOn conforme o nível de abstração

aumenta, mais compreensíveis se tornam as informações.

50

Elementos da Engenharia Elementos da Engenharia ReversaReversa

2) COMPLETITUDE DO PROCESSO2) COMPLETITUDE DO PROCESSO

n refere-se ao nível de detalhes que é fornecido em cada nível de abstração.

51

Elementos da Engenharia Elementos da Engenharia ReversaReversa

3) INTERATIVIDADE3) INTERATIVIDADEn 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

52

Elementos da Engenharia Elementos da Engenharia ReversaReversa

3) DIRECIONALIDADE3) DIRECIONALIDADEn 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.

Recommended