Webinar - Por que usar um software especialista em manutenção?
Manutenção de Software
Transcript of Manutenção de Software
![Page 1: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/1.jpg)
Manutenção de Software
Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015
![Page 2: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/2.jpg)
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
![Page 3: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/3.jpg)
3
n PROCESSOS DE AQUISIÇÃO n Preparação da Aquisição n Seleção do Fornecedor n Contrato n Monitoramento do Fornecedor n Aceitação do Cliente
n PROCESSOS DE FORNECIMENTO n Proposta do Fornecedor n Liberação do Produto n Apoio a Aceitação do Produto
n PROCESSOS DE DESENVOLVIMENTO n Elicitação de Requisitos n Análise dos Requisitos do Sistema n Projeto Arquitetural do Sistema n Análise dos Requisitos de Software n Projeto do Software n Construção do Software n Integração do Software n Teste do Software n Integração do Sistema n Teste do Sistema n Instalação do Software n Manutenção do Software e do Sistema
n PROCESSOS DE OPERAÇÃO n Uso Operacional n Apoio ao Cliente
PR
OC
ES
SO
S FU
ND
AM
EN
TA
IS
n PROCESSOS DE CONTROLE DA CONFIGURAÇÃO n Documentação n Gerenciamento da Configuração n Gerenciamento da resolução de problemas n Gerenciamento dos Pedidos de Alteração
n PROCESSOS DE GARANTIA DE QUALIDADE n Garantia da Qualidade n Verificação n Validação n Revisão Conjunta n Auditoria n Avaliação do produto
PR
OC
ES
SO
S
DE
AP
OIO
n PROCESSOS DE GERÊNCIA n Alinhamento Organizacional n Gerenciamento da Organização n Gerenciamento do Projeto n Gerenciamento da Qualidade n Gerenciamento de Risco n Medições
n PROCESSOS DE MELHORIA DE PROCESSO n Estabelecimento do Processo n Avaliação do Processo n Melhoria do Processo
n PROCESSOS DE RECURSOS E INFRAESTRUTURA n Gerenciamento de Recursos Humanos n Treinamento n Gerenciamento do Conhecimento n Infraestrutura
n PROCESSOS DE REUSO n Gerencia dos Ativos n Gerencia do Programa de Reuso n Engenharia de Domínio
PR
OC
ES
SO
S O
RG
AN
IZA
CIO
NA
IS
Norma ISO 12207
n PROCESSOS DE DESENVOLVIMENTOn Elicitação de Requisitosn Análise dos Requisitos do Sisteman Projeto Arquitetural do Sisteman Análise dos Requisitos de Softwaren Projeto do Softwaren Construção do Softwaren Integração do Softwaren Teste do Softwaren Integração do Sisteman Teste do Sisteman Instalação do Softwaren Manutenção do Software e do Sisteman Manutenção do Software
![Page 4: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/4.jpg)
4
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.
![Page 5: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/5.jpg)
5
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.
![Page 6: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/6.jpg)
6
Manutenção de Software
n As alterações ocorrem por diversas razões. n As razões para as alterações determinam a
categoria de manutenção.
![Page 7: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/7.jpg)
7
Categorias de Manutenção
1) Identificar e Corrigir Erros ð Manutenção Corretiva
![Page 8: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/8.jpg)
8
Categorias de Manutenção
2) Adaptar o Software ao Ambiente ð Manutenção Adaptativa
![Page 9: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/9.jpg)
9
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
![Page 10: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/10.jpg)
10
Categorias de Manutenção
4) Melhorar a manutenibilidade ou confiabilidade futuras e fornecer uma base melhor para futuros melhoramentos
ð Manutenção Preventiva
![Page 11: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/11.jpg)
11
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 Esses sistemas devem continuar rodando e as alterações são inevitáveis
![Page 12: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/12.jpg)
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 Idade Média de 10 a 15 anos q Principal Interesse: Tamanho do Programa e
Espaço de Armazenamento q Migração Para Novas Plataformas q Sistemas mal estruturados
![Page 13: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/13.jpg)
13
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
![Page 14: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/14.jpg)
14
Manutenção Estruturada x Não-Estruturada
![Page 15: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/15.jpg)
15
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 %
![Page 16: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/16.jpg)
16
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
![Page 17: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/17.jpg)
17
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
![Page 18: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/18.jpg)
18
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)
![Page 19: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/19.jpg)
19
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
![Page 20: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/20.jpg)
20
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.
![Page 21: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/21.jpg)
21
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.
![Page 22: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/22.jpg)
22
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
![Page 23: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/23.jpg)
23
Manutenibilidade
n A Manutenibilidade pode ser definida qualitativamente como a facilidade com que o software pode ser entendido, corrigido, adaptado e ou melhorado
![Page 24: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/24.jpg)
24
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
![Page 25: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/25.jpg)
25
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)
![Page 26: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/26.jpg)
26
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
![Page 27: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/27.jpg)
27
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
![Page 28: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/28.jpg)
28
Revisões de Manutenibilidade
n A manutenibilidade deve ser considerada em cada nível do processo de revisão da engenharia de software
![Page 29: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/29.jpg)
29
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
![Page 30: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/30.jpg)
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
30
![Page 31: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/31.jpg)
Revisões de Manutenibilidade
ETAPA DE REVISÃO DE CÓDIGO Dar ênfase: n ao estilo n à documentação interna
31
![Page 32: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/32.jpg)
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
32
![Page 33: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/33.jpg)
33
Fatores de Qualidade de Software
(Norma ISO 9126) n Os fatores de
qualidade de software focalizam três aspectos importantes do software produto
![Page 34: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/34.jpg)
34
Tarefas de Manutenção
1) Estabelecer uma organização para a manutenção (“de fato" ou formal)
![Page 35: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/35.jpg)
35
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)
![Page 36: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/36.jpg)
36
Sequência de Eventos
![Page 37: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/37.jpg)
37
Tarefas de Manutenção
4) Estabelecer procedimentos para registrar a história das atividades de manutenção
![Page 38: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/38.jpg)
38
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
![Page 39: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/39.jpg)
39
Tarefas de Manutenção
5) Definir critérios de revisão e avaliação
![Page 40: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/40.jpg)
40
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
![Page 41: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/41.jpg)
41
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
![Page 42: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/42.jpg)
42
Conclusão
n A implementação de um processo de Manutenção de Sistema/Software é considerada com sucesso se:
![Page 43: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/43.jpg)
43
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
![Page 44: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/44.jpg)
44
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
![Page 45: Manutenção de Software](https://reader031.fdocumentos.tips/reader031/viewer/2022012020/61688f32d394e9041f7096c0/html5/thumbnails/45.jpg)
45
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