26
GERENCIAMENTO DE MANUTENÇÃO

GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

Embed Size (px)

Citation preview

Page 1: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

GERENCIAMENTO DE MANUTENÇÃO

Page 2: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

GERENCIAMENTO DE MANUTENÇÃO

Manutenção de SoftwareProcesso geral de modificação de um sistema depois que ele foi colocado em uso.

Tipos de Modificações1. Manutenção para reparar os defeitos no software.

• Simples Corrigir erros de codificação• Extensas: Corrigir erros de projeto• Significativas: Corrigir erros de especificação(Reprojeto)

2. Manutenção para adaptar o software a um ambiente operacional diferente.• Mudanças devido a algum aspecto do ambiente de sistema.

(Hardware, Sistema Operacional, Navegador, etc…)

3. Manutenção para fazer acréscimos à funcionalidade do sistema ou modificá-la.• Requisitos do sistema são modificados. (Novas regras de negócio)

Page 3: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

GERENCIAMENTO DE MANUTENÇÃO

Page 4: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

GERENCIAMENTO DE MANUTENÇÃO

• Reparar defeitos não é a ativiade de manutenção mais dispendiosa.

• Manutenção é portanto uma continuação do processo de desenvolvimento de sistema, com atividades associadas de especificação, projeto, implementação e testes.

Page 5: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

GERENCIAMENTO DE MANUTENÇÃO

Page 6: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

GERENCIAMENTO DE MANUTENÇÃO

• Custos na manutenção de Software representa uma grande proporção do orçamento da maioria das organizações

• Investir esforço ao projetar e implementar um sistema para reduzir os custos de manutenção é uma opção eficaz, em termos de custos.

• É mais caro acrescentar funcionalidades depois da entrega. (Compreender o sitema, analisar impactos das mudanças).

• Boas práticas/técnicas de engenharia e desenvolvimento como documentação, orientação a objetos, padrões de projetos, contribuem para a redução de custos de manutenção. (Pode ser mais caro no desenvolvimento, mas compensa na manutenção).

Page 7: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

GERENCIAMENTO DE MANUTENÇÃO

Principais Fatores que distinguem o desenvolvimento e a manutenção de software e que levam a custos de manutenção mais altos.

• Estabilidade da equipe – Depois que o projeto acaba a equipe se dispersa para trabalhar em novos projetos.

• Responsabilidade Contratual – Contratos separados para desenvolvimento e manutenção, outra empresa pode realizar a manutenção.

• Habilidade da equipe – Normalmente o pessoal que realiza manutenção tem menos experiência, manutenção é vista como processo que requer menos conhecimento.

• Idade e estrutura do programa – Programa mais antigo tende a ser mais difícil de entender e de ser modificado.

Page 8: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

GERENCIAMENTO DE MANUTENÇÃO

PROCESSOS DE MANUTENÇÃO

•Inicia por um conjunto de pedidos de mudança por parte dos usuários do sistema.

•São calculados os custos e o impacto da mudança, se aceitos uma nova versão do sistema é planejada.

•Durante o planejamento, todas as mudanças propostas são consideras e, então, é tomada uma decisão sobre quais mudanças devem ser implementadas para a próxima versão.

•As mudanças são implementadas e validadas e uma nova versão do sistema é liberada. Depois disso o processo se repete com um novo conjunto de mudanças propostas para a nova versão.

Page 9: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

GERENCIAMENTO DE MANUTENÇÃO

Pedidos de alteraçõesPedidos de alterações

Análise de impacto

Análise de impacto

Planejamento de release

Planejamento de release

Implementação da mudança

Implementação da mudança

Release do Sistema

Release do Sistema

Reparo de defeitos

Reparo de defeitos

Adaptação da

plataforma

Adaptação da

plataforma

Incremento de sistemaIncremento de sistema

VISÃO GERAL DO PROCESSO DE MANUTENÇÃO

Figura adaptada de Arthur (1988)

Page 10: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

GERENCIAMENTO DE MANUTENÇÃO

PROCESSOS DE MANUTENÇÃO

•Em um contexto ideal, a implementação de manutenções deve alterar a especificação do projeto a fim de refletir a modificação no sistema, seguindo então o seguinte fluxo:

Mudanças propostasMudanças propostas

Análise de requisitosAnálise de requisitos

Validação de requisitos

Validação de requisitos

Desenvolvimento do Software

Desenvolvimento do Software

Page 11: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

GERENCIAMENTO DE MANUTENÇÃO

PROCESSOS DE MANUTENÇÃO

Porém os pedidos de modificação muitas vezes tratam-se de problemas que precisam ser resolvidos com urgência, essas mudanças urgentes podem surgir por três razões:

•Defeitos no sistema em ambiente de produção, que devem ser reparados para permitir a continuação das operações.

•Mudanças ambientais que tem efeitos inesperados sobre o sistema.

•Mudanças nos negócios, que podem ser devidas a ao surgimento de novos concorrentes ou uma nova legislação.

Page 12: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

GERENCIAMENTO DE MANUTENÇÃO

PROCESSOS DE MANUTENÇÃO

Fazendo então, que seja adotado o seguinte fluxo:

Pedido de AlteraçãoPedido de Alteração

Análise do código-fonte

Análise do código-fonte

Alteração do código-fonteAlteração do código-fonte

Liberação da modificaçãoLiberação da modificação

Fluxo que pode tornar os requisitos o projeto e o código-fonte inconsistentes, fazer com que seja escolhida a solução possível no momento e não a melhor solução. Isso acelera o processo de envelhecimento do software, dificulta futuras mudanças e o custo das manutenções aumentam.

Page 13: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

GERENCIAMENTO DE MANUTENÇÃO

PROCESSOS DE MANUTENÇÃO

Em um contexto ideal, quando existe modificação emergencial de código-fonte, o pedido de manutenção deve permanecer em evidencia e depois que os defeitos tiverem sido corrigidos, eles podem ser implementados novamente, com mais cuidado e serem devidamente documentados no projeto.

Naturalmente o código do reparo pode ser reutilizado, e com uma análise feita com mais tempo, a melhor solução pode ser encontrada. Contudo, na prática não é considerado realista refazer os reparos, o que pode causar os problemas vistos anteriormente.

Page 14: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

FLUXO DE EVENTOS

GERENCIAMENTO DE MANUTENÇÃO

Page 15: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações
Page 16: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

Dada a situação atual, quais aspector de projeto, código ou teste poderiam ter sido diferentemente.

Quais recursos de manutenção deveriam ter estado à disposição, mas não estiveram?

Quais foram os maiores / menores obstáculos para esse esforço?

A manutenção preventiva é indicada pelos tipos de pedidos que são registrados?

Page 17: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

CONSERVAÇÃO DE REGISTROS

GERENCIAMENTO DE MANUTENÇÃO

Page 18: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

1. Identificação do programa

2. Número de instruções-fonte

3. Número de instruções de código

4. Linguagem a ser utilizada

5. Data de instalação do programa

6. Número de execuções do programa desde a instalação

7. Identificação e nível de mudança do programa

8. Número de pessoas-hora empregadas por mudança

9. Identificação do engenheiro de software

10. Identificação do MRF (Formulário de solicitação de manutenção)

11. Tipo de manutenção

Page 19: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

GERENCIAMENTO DE MANUTENÇÃO

Problemas associados a manutenção de software:

- Mudanças não documentadas;

-Rastreamento do processo através do qual o software foi desenvolvido;

- Dificuldade em entender códigos de outras pessoas;

- O desenvolvedor da codificação inicial muitas vezes não esta mais presente na equipe;

- Documentação não existente ou mal escrita;

- Softwares não projetados para receberem mudanças.

Page 20: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

GERENCIAMENTO DE MANUTENÇÃO

Manutenibilidade: Facilidade com que um software pode ser entendido, corrigido, adaptado e/ou aumentado.

Métricas orientadas ao tempo:- Tempo de reconhecimento do problema;- Tempo de demora administrativa;- Tempo de coleta de ferramentas de manutenção;- Tempo de análise do problema;- Tempo de especificação da alteração;- Tempo de correção ou modificação;- Tempo de teste local e global;- Tempo de revisão da manutenção;- Tempo de recuperação total.

Page 21: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

AVALIAÇÃO

1.Número médio de falhas de processamento por execução do programa.

2.Total de pessoas/hora empregadas em cada categoria de manutenção.

3.Número médio de mudanças de programa feitas por programa, por linguagem e por tipo de manutenção.

4.Número médio de pessoas /hora empregadas por instruções-fonte adicionadas ou suprimidas devido à manutenção.

5.Número médio de pessoas/hora empregadas por linguagem.6.Tempo médio de renovação do MRF.7.Porcentagem de pedidos de manutenção por tipo.

Page 22: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

EFEITOS COLATERAIS DA MANUTENÇÃO

• Na codificação.

• Nos dados.

• Na documentação.

Page 23: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

DEFEITOS COLATERAIS NA CODIFICAÇÃO

1. Um subprograma é apagado ou mudado2. Um label de instrução é apagado ou modificado.3. Um identificador é apagado ou modificado.4. Mudanças são feitas para melhorar o desempenho da

execução.5. A abertura ou fechamento de arquivos é modificada.6. Operadores lógicos são modificados.7. Mudanças de projeto são convertidas em grandes

mudanças de código.8. Mudanças são feitas nos testes lógicos de condições de

fronteira.

Page 24: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

EFEITOS COLATERAIS NOS DADOS

1. Redefinição de constantes locais e globais.2. Redefinição de formatos de registros ou arquivos.3. Aumento ou diminuição no tamanho de um array

ou de uma estrutura de dados de nível mais alto.4. Modificação em dados globais.5. Reinicialização de sinais de controle ou

indicadores (pointers).6. Rearranjo de argumentos para E/S ou

subprogramas.

Page 25: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

EFEITOS COLATERAIS NA DOCUMENTAÇÃO

A manutenção deve concentrar-se em toda a configuração do software não somente nas modificações do código fonte. Os efeitos colaterais na documentação acontecem quando as mudanças no código fonte não são refletidas na documentação do projeto ou nos manuais destinados ao usuário.

Page 26: GERENCIAMENTO DE MANUTENÇÃO. Manutenção de Software Processo geral de modificação de um sistema depois que ele foi colocado em uso. Tipos de Modificações

EQUIPE

• DIEGUES• GIOVANI• IGOR• LEANDRO• MICHEL