Modernização de software
# Modernização de software

A modernização de software ou de aplicações é uma prática corrente nas organizações, mas que nem sempre é assumida como tal. Os sistemas legados, ou legacy systems em Inglês, não têm que rodar em sistemas antigos, como o mainframe, isso é apenas uma parte do problema..

## Estratégias

Os projectos de modernização de aplicacional são geralmente projectos grandes e plurianuais. Por fazerem parte de sistemas críticos das empresas, a execução deste tipo de projecto tem um conjunto de riscos que têm impacto nas operações do negócio. A abordagem aparentemente mais comum é fazer modernizações incrementais. Em primeiro lugar, é frequente fazer apenas a substituição do sistema operativo (e do hardware), mantendo o código da aplicação inalterado. Após esta migração, pode dar-se continuidade à modernização de forma faseada, reduzindo progressivamente o código legado a favor do código convertido para a nova linguagem de programação. No final, o sistema estará totalmente convertido para a nova tecnologia, não devendo restar software com dependências de tecnologias legadas. A estratégia da migração é fundamental para determinar como é que o sistema continuará a suportar o negócio durante todo o esforço de migração e modernização.
A tomada de decisões neste domínio é um processo que ocorre num contexto organizacionl. As tomadas de decisão no "mundo real" das organizações comerciais têm que ser normalmente baseadas em "racionalidade limitada" (em Inglês Bounded_rationality). O princípio deste conceito é o balanceamenteo entre a informação disponível dentro e fora da organização, a capacidade cognitiva dos decisores e o tempo limite para a tomada de decisão.

## Migração

A migração e/ou modernização das aplicações tem mais que ver com a actualização do software que é propriedade da organização, muitas vezes desenvolvido dentro de portas ao longo de vários anos e por diferentes programadores.
Podemos distinguir os seguintes casos:
* A migração por mudança de plataforma (sistema operativo)
* A conversão de uma linguagem de programação para outra
* A desactivação de uma aplicação, mantendo imperativos de acesso aos dados
* Reprogramação parcial ou total
A migração de software acontece frequentemente quando é preciso mudar de equipamento e de sistema operativo. Também se pode confundir com o acto de portar o código, que é a designação usada em ciências de computação para o processo de converter o código de um sistema operativo para outro. Acontece que, na generalidade dos projectos de migração, é necessário construir na nova plataforma as funcionalidades que a aplicação usava na antiga, como, por exemplo o sub-sistema de impressão ou o acesso à base de dados.
No caso das migrações de mainframe, VMS e Wang, continua a ser escolhida a opção de emulação. Há produtos no mercado que permitem que as aplicações acreditem que têm o mesmo sistema funcional do mainframe, como sejam as chamadas CICS e o processamento por lotes em JCL. É o caso do produto da empresa Clerity e haverá outros.