Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 9
Atividades do Processo de Desenvolvimento –
Implantação e Manutenção
l.bertholdo@ifsp.edu.br
Conteúdo
• Implantação de Software
• Projeto de Implantação
• Manutenção de Software
• Previsão de Manutenção
• Reengenharia de Software
• Manutenção Preventiva por Refatoração
l.bertholdo@ifsp.edu.br
Implantação de Software
• Na fase de implantação, o software é instalado no ambiente de
produção do cliente, ficando disponível para operação dos usuários.
l.bertholdo@ifsp.edu.br
Implantação de Software
• Muitas vezes, os problemas encontrados durante os testes de
aceitação não impedem a implantação de um sistema.
l.bertholdo@ifsp.edu.br
Implantação de Software
• Embora, a princípio, pareça uma etapa simples, muitas dificuldades
podem surgir durante a implantação.
Os dados existentes O ambiente do cliente pode não ser tão As interfaces com
podem exigir limpezas uniforme como havia sido previsto pelos outros sistemas
extensas e partes dos desenvolvedores do sistema. E adaptar podem estar mal
dados podem estar o sistema para lidar com diversos documentadas, ou
faltando. ambientes de usuário pode ser difícil. sem documentação.
l.bertholdo@ifsp.edu.br
Projeto de Implantação
• A implantação envolve configurar o software para funcionar em um
ambiente operacional, instalar o sistema nos computadores deste
ambiente e configurar o sistema para cada computador específico.
Durante a instalação, o sistema é configurado com uma lista de usuários permitidos, que pode conter
logins de administrador genéricos, como “admin” e uma senha padrão, como “senha”. Nesse caso, um
invasor que conheça o login padrão pode ter acesso privilegiado ao sistema. Para evitar essa situação,
muitos sistemas exigem a configuração de novos nome de login e senha no primeiro acesso.
l.bertholdo@ifsp.edu.br
Projeto de Implantação
• Recomendações para incorporar o suporte de implantação em um
sistema:
l.bertholdo@ifsp.edu.br
Manutenção de Software
• O desenvolvimento de software não é interrompido quando o sistema
é entregue, mas continua por toda a vida útil do sistema.
Sistemas de software muitas vezes têm uma vida útil muito longa. Por exemplo, sistemas
militares ou de infraestrutura de grande porte, como sistemas de controle de tráfego
aéreo, podem ficar em operação por 30 anos ou mais. Sistemas de gestão de negócios
com mais de dez anos de idade são comuns. Como os softwares custam muito dinheiro,
uma empresa pode usar um sistema por muitos anos para ter retorno de seu investimento.
l.bertholdo@ifsp.edu.br
Manutenção de Software
• A manutenção de software é o processo
de mudança em um sistema depois que
ele é implantado. Existem três diferentes
tipos de manutenção: Distribuição
geral dos custos
de manutenção
Correção de defeitos: Erros de codificação são os mais baratos para serem corrigidos. Erros de projeto
são mais caros, pois podem implicar reescrever vários componentes de software. Erros de requisitos
são os mais caros para se corrigir devido ao extenso reprojeto de sistema que pode ser necessário.
Adaptação de ambiente: Esse tipo de manutenção é necessário quando algum aspecto do ambiente
do sistema, como o hardware, a plataforma do sistema operacional ou outro software de apoio sofre
mudança. Nesse caso, o sistema deve ser modificado para se adaptar a essas mudanças de ambiente.
l.bertholdo@ifsp.edu.br
Manutenção de Software
• O uso de boas técnicas de engenharia de software e o investimento
de esforços durante o projeto e a implementação do sistema
reduzem os custos gerais durante a vida útil do sistema.
Para o Sistema 1, o custo extra de desenvolvimento de 25 mil dólares
é investido para tornar o sistema mais manutenível. Em comparação
com o Sistema 2, isso resulta em uma economia de cem mil dólares
em custos de manutenção durante a vida útil do sistema.
US$ 25.000 US$ 100.000
l.bertholdo@ifsp.edu.br
Previsão de Manutenção
• Após implantar um software, deve-se tentar prever várias questões
relacionadas à manutenção.
l.bertholdo@ifsp.edu.br
Previsão de Manutenção
• Para acompanhar a manutenibilidade de um sistema implantado,
pode-se usar dados do software em produção. Exemplos de métricas
que podem ser usadas para indicar queda na manutenibilidade:
l.bertholdo@ifsp.edu.br
Reengenharia de Software
• Sistemas legados mais velhos, muitas vezes, são difíceis de serem
compreendidos e modificados. Para torná-los mais fáceis de serem
mantidos, é preciso aplicar uma reengenharia nesses sistemas.
• A reengenharia pode envolver a redocumentação do sistema, a
refatoração da arquitetura de sistema, a mudança de linguagem de
programação e modificações na estrutura e nos dados do sistema,
sendo que as funcionalidades do software não são alteradas.
l.bertholdo@ifsp.edu.br
Reengenharia de Software
O código do software é analisado e as Partes relacionadas do software são
informações são extraídas a partir dele. agrupadas e, quando possível, redundâncias
Isso ajuda a documentar sua estrutura são eliminadas. Diferentes repositórios de
e funcionalidades. Esse processo dados podem ser centralizados em um único
também pode ser automatizado. repositório. Esse é um processo manual.
Processo genérico
de reengenharia
de software
Os dados processados
pelo software são
alterados para refletir as
mudanças. Isso pode
incluir a reestruturação do
banco de dados existente.
Ferramentas podem dar
Usando uma ferramenta de suporte a esta tarefa.
tradução, o software é
convertido de uma linguagem A estrutura do software é analisada e modificada
de programação antiga para para que se torne mais fácil de ler e entender. Isso
uma versão mais moderna da normalmente exige intervenção manual.
mesma ou de outra linguagem.
l.bertholdo@ifsp.edu.br
Manutenção Preventiva por Refatoração
• Refatoração é o processo de melhorar a estrutura de um software,
reduzir sua complexidade e torná-lo mais compreensível, visando
diminuir a degradação resultante das mudanças no sistema.
• Ao refatorar um software, não se deve adicionar funcionalidades, mas
sim concentrar-se na melhoria dele. Portanto, pode-se pensar em
refatoração como uma manutenção preventiva.
• Conceitualmente, reengenharia e refatoração são diferentes. A
reengenharia ocorre em sistemas legados, cujos custos de manutenção
aumentaram. Já a refatoração é um processo contínuo de melhoria ao
longo do processo de desenvolvimento e da evolução do sistema.
Métodos longos: Se um método contiver muito código, ele deve ser dividido em
métodos menores.
l.bertholdo@ifsp.edu.br
Referências
• PRESSMAN, Roger S.; MAXIM, Bruce R. Engenharia de software: uma
abordagem profissional. 8. ed. Porto Alegre: AMGH, 2016.
l.bertholdo@ifsp.edu.br