manutenção de software - usp · manutenção de sistema e software n o objetivo do processo de...

Post on 10-Aug-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Manutenção de Software

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

Processos de Ciclo de Vida de Software

Processos Fundamentais Processos de Apoio

Processos Organizacionais

Aquisição

Fornecimento

Desenvolvimento

Operação

Manutenção

Documentação

Garantia de Qualidade

Verificação

Validação

Revisão Conjunta

Auditoria

Resolução de Problemas

Gerência

Melhoria

Infra-estrutura

Treinamento

Ada

ptaç

ão

3

Manutenção de sistema e software

n  O objetivo do processo de Manutenção de sistema e software é modificar o produto de sistema/software depois de liberado, para corrigir falhas, melhorar desempenho ou outros atributos ou adaptar às mudanças do ambiente.

4

Manutenção de sistema e software

n  O objetivo é modificar e/ou aposentar os produtos de software/sistema existentes preservando a integridade das operações da organização.

5

Manutenção de Software

n  Alterações ocorrem por diversas razões. n  Razões para as alterações determinam a

categoria de manutenção.

6

Categorias de Manutenção

1) Identificar e corrigir erros ð Manutenção Corretiva

7

Categorias de Manutenção

2) Adaptar o software ao ambiente ð Manutenção Adaptativa

8

Categorias de Manutenção

3) Atender pedidos do usuário para modificar funções existentes, incluir novas funções e efetuar melhoramentos gerais

ð Manutenção Perfectiva

9

Categorias de Manutenção

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

ð Manutenção Preventiva

10

A Fase de Manutenção de 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  Sistemas devem continuar rodando e as alterações são inevitáveis

11

A Fase de Manutenção de Software

n  Por que é exigida tanta Manutenção e por que é despendido tanto Esforço nessa atividade? q  Idade média de 10 a 15 anos q  Principal interesse:

n  Tamanho do programa n  Espaço de armazenamento

q  Migração para novas plataformas q  Sistemas mal estruturados

12

A Fase de Manutenção de Software

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

13

Manutenção Estruturada x Não-Estruturada

14

Custo 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 %

15

Custo de Manutenção

n  Outros Custos não-monetários q  Adiamento de oportunidades de desenvolvimento q  Insatisfação do cliente q  Redução da qualidade global do software q  Insatisfação do pessoal de manutenção

16

Custo de Manutenção

n  Custo Final da Manutenção q  Diminuição dramática na produtividade

n  (Boehm ) q  Custo do desenvolvimento $250.00 por linha de

código q  Custo da manutenção $1000.00 por linha de

código

17

Custo de Manutenção

n  O Custo de manutenção pode ser dividido em: q  tentar entender o que o software faz q  interpretar as estruturas de dados, as

características de interface e limites de desempenho

q  analisar, avaliar, projetar, codificar e testar as modificações

(Atividades Produtivas)

18

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

19

Problemas da Manutenção

PROBLEMAS CLÁSSICOS n  É 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

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

20

Problemas da Manutenção

PROBLEMAS CLÁSSICOS 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" frequentemente não estão presentes para explicar.

21

Problemas da Manutenção

PROBLEMAS CLÁSSICOS n  A documentação não existe, é

incompreensível ou está desatualizada. n  A maioria dos softwares não foram

projetados para suportar alterações. n  A manutenção não é vista como um trabalho

glamoroso

22

Manutenibilidade

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

23

Manutenibilidade

n  A manutenibilidade é afetada por muitos fatores: q  cuidado inadequado com o projeto, codificação e teste q  configuração de software ruim q  disponibilidade de pessoal qualificado de software q  facilidade de manusear o sistema q  uso de linguagens de programação padronizadas q  uso de sistemas operacionais padronizados q  estruturas padronizadas de documentação

24

Manutenibilidade

n  A manutenibilidade é afetada por muitos fatores: q  disponibilidade de um computador próprio para a

manutenção q  disponibilidade da pessoa ou grupo que

desenvolveu o software q  o planejamento para manutenibilidade

(fator mais importante que afeta a manutenibilidade)

25

Manutenibilidade: Medidas Quantitativas

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

Manutenibilidade: Medidas Quantitativas

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

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

Revisões de Manutenibilidade

ETAPA DE REVISÃO DE PROJETO Avaliar... n  projeto arquitetural n  projeto procedimental n  projeto de interfaces e n  projeto de dados ... quanto à facilidade de manutenção e à

qualidade global

29

Revisões de Manutenibilidade

ETAPA DE REVISÃO DE CÓDIGO Dar ênfase: n  ao estilo n  à documentação interna

30

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

31

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 sequências padronizadas de eventos (para os pedidos de manutenção)

35

Sequê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 (segundo 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 (segundo 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 deletado 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

Arcabouço Quantitativo

Técnicas de Desenvolvimento, Linguagens, Esforço de Manutenção, Alocação de Recursos, ... 43

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 deletado 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

Conclusão

n A implementação de um processo de Manutenção de Sistema/Software é considerada com sucesso se:

42

Processo de Manutenção com Sucesso

1.  está desenvolvida uma estratégia de manutenção para gerenciar modificações, migração e aposentadoria dos produtos

2.  é identificado o impacto das alterações no sistema existente

43

Processo de Manutenção com Sucesso

3.  documentação afetada é atualizada 4.  os produtos modificados são

desenvolvidos com testes que demonstram que os requisitos não estão comprometidos

5.  Os upgrades dos produtos são migrados para o ambiente do cliente

44

Processo de Manutenção com Sucesso

6.  Os produtos são retirados de uso de maneira controlada, de modo a minimizar o distúrbio para o cliente

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

top related