• Nenhum resultado encontrado

Aula 3 - Manutenção do Software

N/A
N/A
Protected

Academic year: 2021

Share "Aula 3 - Manutenção do Software"

Copied!
45
0
0

Texto

(1)

ESW - Manutenção de Software

 Prof. Samuel Lemes

 (Fesurv – Universidade de Rio Verde)

(2)

 Qualquer trabalho realizado para alterar o sistema depois que ele já se encontra em operação é considerado manutenção

 Ele não pode ser visto da mesma forma que a manutenção de hardware (apenas o conserto ou prevenção de peças quebradas ou impróprias)

 Diferentes tipos de sistemas, diferentes tipos de problemas

 Formalmente sistemas definidos x sistemas aproximados x mundo real embarcado

 Todos os sistemas precisarão de manutenção, independente do processo de desenvolvimento de software, técnicas ou tecnologia utilizado para construí-lo

 Quantas mudanças nós podemos esperar para um sistema?

 Nós podemos considerar a fase de manutenção como uma fase de evolução?

(3)

 Modificação;

 Acréscimos;

 Refinamentos;

 Remoção de defeitos;

 Adições no sistema;

 Remendos e correções;

 Suporte;

 Evoluções;

SINÓNIMOS DE MANUTENÇÃO

 Ajustes;

 Extensão;

 Expansão;

 Revisão;

 Atualização;

 Re-programação;

 Re-desenvolvimento;

 Melhorias;

 Alterações.

Manutenção do Software

(4)

Manutenção Estruturada

Quando o processo de desenvolvimento do software

foi feito de forma estruturada, seguindo os métodos e

técnicas

definidos

pela

engenharia

de

software,

a

manutenção é facilitada e consiste dos seguintes passos:

(5)

Manutenção Estruturada

 Avaliação da documentação de projeto

 Análise da arquitetura do programa

 Avaliação do impacto das modificações

 Modificação do projeto original

 Implementação das mudanças

 Testes de regressão (refazer os mesmos testes

feitos anteriormente, verificando se os mesmos

resultados são obtidos)

Porém, se no processo de desenvolvimento não foram utilizadas

técnicas estruturadas e gerados documentos, a manutenção é bem

mais complicada.

(6)

Manutenção Estruturada

 Se no processo de desenvolvimento não fora utilizadas técnicas estruturadas e gerados documentos, a manutenção é bem mais complicada.

 É preciso inicialmente avaliar o código, procurando entender sua estrutura, interface e relacionamento entre módulos.

 Não se pode projetar modificações de forma segura, pois não foi feito um projeto.

 É difícil prever os impactos das mudanças e se novos erros serão introduzidos.

 Não há como fazer teste de regressão, pois não há registros de que testes foram feitos quando o software foi desenvolvido.

(7)

Atividade da qual as mudançiciais resultam

Artefatos que requerem mudanças constantes

Análise de Requisitos Especificação de Requisitos (descrição de casos de uso)

Projeto do Sistema Diagramas de Projeto

Especificação do Projeto Arquitetural Especificação do Projeto Técnico Projeto do Programa Diagramas de Projeto

Especificação do projeto do Programa Implementação do

Programa

Código do Programa

Documentação do Programa Teste de Unidade Planos de Testes

Roteiros de Teste Teste do Sistema Planos de Teste

Roteiros de Teste

Entrega do Sistema Documentação do Usuário Guia do sistema

Guia do Programador Aulas de treinamento

Fases da Manutenção do Software

(8)

 Tempo de Desenvolvimento X Tempo de Manutenção

 Pesquisa de opinião recente: 20% do esforço em

desenvolvimento e 80% em manutenção

(9)

 Evolução X Declínio do sistema

 O Custo de manutenção é muito alto?  A confiabilidade do sistema é inaceitável?

 O sistema não pode mais se adaptar a mudanças adicionais dentro de um período de tempo razoável?

 O desempenho do sistema ainda está fora das restrições prescritas?  As funções do sistema têm utilidade limitada?

 Outros sistemas fazem o mesmo trabalho melhor, mais rápido ou gerando menos custos?

 O custo de manutenção do hardware é muito caro, a ponto de justificar sua substituição por um hardware mais novo e mais barato?

(10)

Manutenção do Software

 Fatores que afetam o esforço da manutenção

 Tipo de aplicação  Novidade do sistema

 Rotatividade e disponibilidade do pessoal de manutenção  Duração da vida útil do sistema

 Dependência de um ambiente que se modifica  Característica de hardware

 Qualidade do projeto  Qualidade do código

 Qualidade da documentação  Qualidade dos testes

(11)

Manutenção do Software

 Produto

 Tamanho: afeta o número de pessoas e a organização da equipe de manutenção

 Domínio da aplicação (tipo): afeta produtividade  Idade tecnologia x produto

 Maturidade

 Composição: projeto desde o início x reutilização (COTS)  Qualidade dos artefatos

(12)

Atividade da qual as mudanças iniciais resultam

Artefatos que requerem mudanças constantes

Análise de Requisitos Especificação de Requisitos (descrição de casos de uso) Projeto do Sistema Diagramas de Projeto

Especificação do Projeto Arquitetural Especificação do Projeto Técnico Projeto do Programa Diagramas de Projeto

Especificação do projeto do Programa Implementação do Programa Código do Programa

Documentação do Programa Teste de Unidade Planos de Testes

Roteiros de Teste Teste do Sistema Planos de Teste

Roteiros de Teste

Entrega do Sistema Documentação do Usuário Guia do sistema

Guia do Programador Aulas de treinamento

Manutenção do Software

(13)

Manutenção do Software

 Terminologia

A existência de divergências no estabelecimento das fronteiras

entre Manutenção Preventiva e Corretiva, é fundamental para o

desenvolvimento do Controle de Manutenção, para que cada

Empresa faça a opção por uma terminologia adequada, de

preferência igual à usada pela maioria das indústrias do mesmo

ramo, que seja divulgada internamente e seja criada

dificuldades a mudanças, a fim de evitar deterioração do

Sistema.

(14)

Manutenção do Software

 Atividades

 Correções:

 Corrige um defeito – i.e. uma discrepância entre o comportamento requerido para um produto/aplicação e o comportamento

observado

 Melhorias:

 Implementam uma mudança para o sistema que modifica seu comportamento ou implementação

 Melhorias podem ser:

 Troca de requisitos(manutenção Perfectiva)

 Adicionando um novo requisito ao sistema (Manutenção Adaptativa)  Trocar a implementação mas não o requisito (Manutenção Preventiva)

(15)

Manutenção do Software

 Como subsídio, relacionamos terminologia recomendada pela

Associação Brasileira de Normas Técnicas - ABNT.

Manutenção, são todas as ações necessárias para que um item seja conservado ou restaurado de modo a poder permanecer de acordo

com uma condição especificada.

Defeito, ocorrência no equipamento que não impede seu funcionamento, todavia pode, a curto ou longo prazo, acarretar sua

indisponibilidade.

Falha, são ocorrências nos equipamentos que impedem seu funcionamento.

(16)

Manutenção do Software

Manutenção Corretiva,

Deficiência

Manutenção Preventiva, é aquela responsável pela continuidade

do

serviço

de

um

equipamento,

englobando

inspeções

sistemáticas de acompanhamento de suas condições operativas,

ajustes, conservação e eliminação de defeitos.

Manutenção Adaptativa

Mudança de Ambiente

Manutenção Aperfeiçoadora

(17)

Manutenção do Software

Prioridade, é o intervalo de tempo que deve decorrer entre a

constatação da necessidade de manutenção e o início dessa

atividade. É um assunto polêmico, sendo seu conceito genérico

“qualidade do que está em primeiro lugar ou do que aparece

primeiro”.

(18)

Manutenção do Software

Prioridade 1 - Emergência, manutenção que deve ser feita

imediatamente depois de detectada sua necessidade.

Prioridade 2 - Urgência, manutenção que deve ser feita o mais breve

possível, de preferência sem ultrapassar 24 horas, depois de detectada sua necessidade.

Prioridade 3 - Necessária, manutenção que pode ser adiada por alguns

dias, porém sua execução não deve ultrapassar uma semana.

Prioridade 4 - Desejável, manutenção que pode ser adiada por algumas

semanas, porém não deve ser omitida.

Prioridade 5 - Prorrogável, manutenção que pode deixar de ser

(19)

Manutenção do Software

Órgão de Operação

Prioridade 1 - Equipamento prioritário fora de serviço com perda de

produção.

Prioridade 2 - Equipamento prioritário em condição deficiente de operação. Prioridade 3 - Equipamento prioritário fora de serviço, sem perda de

produção por período limitado.

Prioridade 4 - Equipamento não prioritário. Órgão de Segurança Industrial

Prioridade 1 - Risco de vida comum. Prioridade 2 - Risco de vida restrita.

Prioridade 3 - Risco de acidente não fatal. Prioridade 4 - Sem risco de acidente.

(20)

Manutenção do Software

Como em algumas Empresas surgem impasses entre os

órgãos de Manutenção, Operação e Segurança Industrial pela

divergência de opiniões quanto à caracterização desses

níveis, criou-se a Prioridade Combinada, para justamente

evitar que as discordâncias prejudicassem o desenvolvimento

do trabalho da equipe de execução da manutenção.

(21)

Manutenção do Software

 Estudar especificações e projetos do sistema;

 Interagir com os usuários;

 Examinar programas e sua documentação;

 Descobrir erros e deficiências nos programas fontes;

 Projetar uma alteração em programa;

 Modificar um programa;

 Revalidar um programa;

 Atualizar a documentação do programa.

(22)

Manutenção do Software

 Entender o software e a mudança a ser feita (50%);

 Modificar o software para incorporar a mudança (25%);

 Revalidar o software (25%).

(23)

Manutenção do Software

 Desenvolvimento ... 30 - 40 %

 Manutenção ... 70 - 60 %

(24)

Manutenção do Software

 Não fazer nada. Apenas continuar como está;

 Adicionar mais pessoal para o desenvolvimento e manutenção para reduzir BackLog;

 Planejar a manutenção de software focalizando novas tecnologias para construir sistemas mais fáceis de se manter e gradativamente substituir os atuais;

 Adotar um plano agressivo para reescrever sistemas atuais o quanto possível;

 Adotar ferramentas automatizadas para melhorar a manutenção e tecnologia dos sistemas atuais.

(25)

Manutenção do Software

 CONTROLE DAS REQUISIÇÕES

 CONTROLE DAS MUDANÇAS

 CONTROLE DE VERSÕES

(26)

Manutenção do Software

 Coletar informações sobre cada requisição;

 Definir mecanismos para categorização das requisições;

 Utilizar análise de impacto para avaliar requisições em termos de custos X benefícios;

 Determinar grau de prioridade para cada requisição.

Modelo de Manutenção

(27)

Manutenção do Software

 Selecionar uma atividade de mudança necessária da lista de prioridades;

 Reproduzir o problema;

 Analisar a especificação e o código-fonte;

 Projetar as mudanças e testes;

 Realizar atividades de garantia de qualidade (revisões e inspeções).

Modelo de Manutenção

(28)

Manutenção do Software

 Determinação da Versão;

 Construção de uma nova versão (gerência de configuração)

 Testes completos;

 Distribuição do programa;

 Teste de Aceitação.

Modelo de Manutenção

(29)

Manutenção do Software

 Tempo utilizado para resolver uma mudança;

 Programas mais afetados;

 Requisições atendidas e em aberto;

 Usuários mais atendidos;

 Estimativa de tempo e complexidade da manutenção (FPA).

(30)

 Sistemas existentes são uma vantagem valiosa da qual a corporação

depende e portanto deveriam ser apropriadamente gerenciados;

 A manutenção de software poderá ser mais efetiva e

eficientemente realizada com ajuda de ferramentas poderosas;

 É uma manutenção automatizada;

Fundamentos da Reengenharia

Manutenção do Software

(31)

 Envolve a melhoria dos processos de manutenção de software e melhoria dos

sistemas atuais pela aplicação de novas tecnologias e ferramentas para a manutenção de software;

 Sugere um estratégia de manutenção a longo prazo ao invés de simplesmente

procurar por uma imediata mudança na manutenção de Software;

 Oferece uma maneira de organizar o software e mantê-lo organizado.

Fundamentos da Reengenharia

Manutenção do Software

(32)

é o processo de examinar software existente e/ou modificá-lo

com ajuda de ferramentas automatizadas para:

 Melhorar sua futura manutenção;  Atualizar sua tecnologia;

 Estender sua expectativa de vida;

 Aumentar a produtividade da manutenção.

Fundamentos da Reengenharia

Manutenção do Software

Reengenharia

(33)

 “É o estudo e alteração de um determinado sistema para reconstruí-lo numa

nova forma e subsequente implementação dessa nova forma”;

 “Modificação em código e estrutura de dados existentes usando os princípios

de engenharia de software atuais para aumentar a capacidade de manutenção e capacidade de adaptação do sistema”.

 “Combinação de técnicas e ferramentas que facilitam a análise, melhoria,

redesenho e reutilização de sistemas existentes para suportar as necessidades de informação”;

Fundamentos da Reengenharia

Manutenção do Software

(34)

Outros Conceitos

 “Meio para melhorar sistemas existentes sem causar impactos na sua

funcionalidade atual, plataforma ou arquitetura técnica”;

 “Conjunto de técnicas e ferramentas orientadas à avaliação,

reposicionamento e transformação de sistemas existentes, com o objetivo de estender-lhes a vida útil e ao mesmo tempo, proporcionar-lhes uma melhor qualidade técnica e funcionalidade” (Furlan);

Fundamentos da Reengenharia

(35)

Objetivos da Reengenharia

 Criar um inventário dos sistemas existentes;

 Fornecer assistência automatizada para a manutenção;  Reduzir custos e erros de manutenção;

 Tornar o sistema mais fácil de compreender, modificar e

testar.

Fundamentos da Reengenharia

(36)

Objetivos da Reengenharia

 Facilitar a conversão e migração do sistema;  Reforçar a aderência a padrões;

 Melhorar a resposta às solicitações de manutenção;  Melhorar o ânimo do pessoal de manutenção;

 Proteger e estender a vida do sistema;

 Utilizar CASE para suportar sistemas atuais;  Reutilizar componentes de sistemas existentes.

Fundamentos da Reengenharia

(37)

Razões para Reengenharia

 Frequentes falhas de produção;  Problemas de desempenho;  Tecnologia obsoleta;

 Problemas de integração de sistemas;  Qualidade técnica ruim;

 Dificuldades para testar e caro para manter;  Problemas crescentes no sistema.

Fundamentos da Reengenharia

(38)

Razões para se refazer o sistema (Engenharia)

 Não confiável;

 Algoritmos ruins ou incorretos;

 Não atende as necessidades dos usuários.

Fundamentos da Reengenharia

(39)

Sistemas Candidatos à Reengenharia

 São de importância crítica da empresa;

 São alvo de manutenção frequente e requerem um grande percentual

de recursos de manutenção;

 São compreensíveis e podem seguramente ser modificados por poucos

membros da equipe de software;

 Contém erros que ninguém pode encontrar;

 Requerem uma melhoria considerável.

Fundamentos da Reengenharia

(40)

Áreas de Atuação da Reengenharia  Análise;  Reestruturação;  Engenharia Reversa;  Migração;  Reutilização. Fundamentos da Reengenharia

Manutenção do Software

(41)

Análise

É o processo de examinar os sistemas atuais a fim de compreender os componentes do sistema e como seus programas funcionam.

O propósito principal é identificar programas prioritários para Reengenharia e medir sua qualidade.

Fundamentos da Reengenharia

(42)

Reestruturação

É o processo de alterar a forma do software (Ex: definição e nomes de dados e código do programa) sem alterar sua funcionalidade.

O propósito principal é tornar o programa mais fácil de ser compreendido.

Fundamentos da Reengenharia

(43)

Engenharia Reversa

É o processo de analisar o software para reconstruir uma descrição de seus componentes e seus relacionamentos. Uma descrição de alto nível do programa é obtida a partir do programa físico.

O propósito é redocumentar o sistema e descobrir informações do projeto com o auxílio na melhoria da compreensão do programa.

Fundamentos da Reengenharia

(44)

Migração

É o processo de converter um software de uma linguagem para outra, mover de um ambiente operacional para outro ou atualizar sua tecnologia.

O propósito principal é amenizar o impacto de adoção de novos ambientes e tecnologias.

Fundamentos da Reengenharia

(45)

Reutilização

É o processo de sistematicamente reaproveitar os diversos elementos criados durante o desenvolvimento de software (código, projeto, especificações, documentação).

O propósito principal é acelerar o desenvolvimento de novos sistemas e melhorar sua qualidade.

Fundamentos da Reengenharia

Referências

Documentos relacionados

de aproximadamente 0,5 mm (10) e como o comprimento da fibra de vidro picada utilizada neste trabalho é bastante inferior, as fibras picadas não poderão se equiparar, em termos

Sincronizar o conteúdo da biblioteca do Windows Media com o leitor Aquando da ligação do leitor ao computador pela primeira vez, o Windows Media Player irá iniciar o Device Setup

De acordo com o manual, a manutenção preventiva na lubrificação acontece da seguinte forma: no redutor do yaw deve ser feita a inspeção visual do nível

Manutenção e Suporte em Hardware II [3A-MSI] 16/05/2017 Placa-mãe.. MANUTENÇÃO

• Pode-se gerencia com maior eficiência e eficácia os serviços executados, entendo melhor onde estão sendo gastos os homens hora, e se os planos de manutenção

• Envolve a melhoria dos processos de manutenção de software e melhoria dos sistemas atuais pela aplicação de novas tecnologias e ferramentas para a manutenção de software;..

Para priorizar riscos em manutenção de sistemas foram utilizadas as ferramentas de identificação e análise considerando que essas atividades são úteis na gerência de risco

OBJETIVO DO ESTUDO: Verificar o estado nutricional e a qualidade de vida de pacientes atendidos no ambulatório do Hospital Universitário de Teresina - Piauí.