Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

6/17/19
1
z
Manutenção e Reengenharia
Pressman e Maxim Cap 36
z
Ciclo de Vida de Software
6/17/19
2
z
Sinônimo de Manutenção
■ Modificação;
■ Acréscimos;
■ Refinamentos;
■ Remoção de defeitos;
■ Adições no sistema;
■ Remendos e correções;
■ Suporte;
■ Evoluções;
■ Ajustes;
§ Extensão;
§ Expansão;
§ Revisão;
§ Atualização;
§ Re-programação;
§ Re-desenvolvimento;
§ Melhorias;
§ Alterações.
z
Categorias de Manutenção
Corretiva
Evolutiva
Preventiva
6/17/19
3
z
Categorias de Manutenção
1) Identificar e Corrigir Erros
ð Manutenção Corretiva
z
Categorias de Manutenção
2) Atender Pedidos do Usuário para Modificar
Funções Existentes, Incluir Novas Funções e
Efetuar Melhoramentos Gerais
ð Manutenção Evolutiva
6/17/19
4
z
Categorias de Manutenção
3) Melhorar a manutenibilidade ou
confiabilidade futuras e fornecer uma base
melhor para futuros melhoramentos
ð Manutenção Preventiva
z
A Fase de Manutenção de Software
§ Fase mais problemática do Ciclo de Vida de
Software
§ Pode despender mais de 70% de todo esforço
de uma Organização
§ Esses sistemas devem continuar rodando e
as alterações são inevitáveis
6/17/19
5
z
A Fase de Manutenção de Software
§ Por que é exigida tanta Manutenção e por que é
despendido tanto Esforço nessa atividade?
§ Idade Média dos sistemas são de 10 a 15 anos
§ Quando foram implementados, o tamanho do
programa e espaço de armazenamento eram o
principal interesse
§ Migração Para Novas Plataformas
§ Sistemas mal estruturados
z
Custo de Manutenção
§ Custos não Monetários
§ Adiamento de oportunidades de
desenvolvimento
§ Redução da qualidade global do software
§ Insatisfação do cliente
§ Insatisfação do pessoal de manutenção
6/17/19
6
z
Custo de Manutenção
§ O Custo Operacional de manutenção pode ser
dividido em:
§ tentar entender o que o software faz
§ interpretar as estruturas de dados, as
características de interface e limites de
desempenho
§ analisar, avaliar, projetar, codificar e testar as
modificações
z
Problemas de Manutenção
§ A maioria dos problemas com a manutenção
do software é causada por deficiências na
maneira como o software foi planejado e
desenvolvido
6/17/19
7
z
Problemas de Manutenção
PROBLEMAS CLÁSSICOS
§ É 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
§ É difícil ou impossível traçar o processo através do qual o
software foi criado.
§ É muito difícil entender programas "de outras pessoas".
§ "As outras pessoas" freqüentemente não estão presentes
para explicar.
z
Problemas de Manutenção
PROBLEMAS CLÁSSICOS (cont.)
§ A documentação não existe, é
incompreensível ou está desatualizada.
§ A maioria dos processos de construção de
softwares não foi projetado para suportar
alterações.
§ A manutenção não é vista como um trabalho
“glamouroso”.
6/17/19
8
z
Manutenibilidade
§ A Manutenibilidade pode ser definida
qualitativamente como a facilidade com que o
software pode ser entendido, corrigido, adaptado e
ou melhorado
§ A manutenibilidade é afetada por muitos fatores:
§ cuidado inadequado com o projeto, codificação e
teste
§ disponibilidade de pessoal qualificado de
software
z
Manutenibilidade
§ A manutenibilidade é afetada por muitos
fatores: (cont)
§ disponibilidade de um computador próprio para a
manutenção
§ disponibilidade da pessoa ou grupo que
desenvolveu o software
§ o planejamento para manutenibilidade
(fator mais importante que afeta a 
manutenibilidade)
6/17/19
9
z
Tarefas de Manutenção
1) Descrever procedimentos de avaliação e de comunicação
2) Estabelecer uma organização para a manutenção (“de
fato" ou formal
3) Definir seqüências padronizadas de eventos (para os
pedidos de manutenção)
4) Estabelecer procedimentos para registrar a história das
atividades de manutenção
5) Definir critérios de revisão e avaliação
z
Atividades Típicas do Mantenedor
■ 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.
6/17/19
10
z Funções Básicas na Alteração de 
Software
a) Entender o software e a mudança a ser feita
(50%);
b) Modificar o software para incorporar a
mudança (25%);
c) Revalidar o software (25%).
z
Custos do Software
■ Desenvolvimento ................ 30 - 40 %
■ Manutenção ........................ 70 - 60 %
6/17/19
11
z Alternativas para Reduzir a 
Manutenção de Software
■ Não fazer nada. Apenas continuar como está;
■ Adicionar mais pessoal para o desenvolvimento e
manutenção;
■ 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.
Manutenção de Software
z
Reengenharia
Pressman e Maxim Cap 36
6/17/19
12
z
Engenharia Reversa
ENGENHARIA REVERSA
§ processo de análise de um software,
partindo-se inicialmente da implementação
para um nível mais alto de abstração
z
Reengenharia
REENGENHARIA 
§ implica no exame e na alteração do software
para reconstruí-lo em uma nova forma.
6/17/19
13
z Engenharia Reversa e Reengenharia
z
Premissas da Reengenharia
§ 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;
6/17/19
14
z
Premissas da Reengenharia
§ 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.
z Conceito
“Reengenharia é 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.
6/17/19
15
z Outros Conceitos
■ “É o estudo e alteração de um determinado sistema para
reconstruí-lo numa nova forma e subseqüente
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”;
z 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);
6/17/19
16
zObjetivos 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.
zObjetivos 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 componentesde sistemas existentes.
6/17/19
17
z Razões para Reengenharia
■ Freqüentes 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.
z
Razões para se refazer o sistema 
(Engenharia)
■ Não confiável;
■ Algoritmos ruins ou incorretos;
■ Não atende as necessidades dos
usuários.
6/17/19
18
z
Sistemas Candidatos à 
Reengenharia
■ São de importância crítica da empresa;
■ São alvo de manutenção freqüente 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.
z Exercício 2
■ Que sistemas poderiam ser alvo de
reengenharia? Justifique.
■ Quais as principais razões para
Reengenharia ou Engenharia?
Manutenção de Software
6/17/19
19
z Áreas de Atuação da 
Reengenharia
■Análise;
■Reestruturação;
■Engenharia Reversa;
■Migração;
■Reutilização.
z 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.
6/17/19
20
z 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.
z 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.
6/17/19
21
z 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.
z 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.

Mais conteúdos dessa disciplina