Softwaremigratie
Softwaremigratie heeft tot doel verouderde softwaresystemen te vervangen door al dan niet nieuwe systemen die beter onderhoudbaar zijn en voldoen aan de wensen en eisen van de gebruikers. Tegenwoordig worden veel migraties geautomatiseerd (door middel van een migratietool) uitgevoerd.

Wanneer migreren?
Migratie van software komt in beeld wanneer het systeembeheer steeds vaker signaleert dat het niet meer (eenvoudig, met beperkte kosten) aan de steeds verder gaande wensen en eisen van de gebruikersorganisatie kan voldoen. Maar ook het operationeel houden van het huidige systeem wordt steeds moeizamer en duurder, omdat er steeds minder experts zijn die nog voldoende kennis van het verouderde systeem hebben en de verouderde hardware-infrastructuur steeds moeilijker te verkrijgen is.

Welke systemen kunnen migreren?
In principe kunnen alle software-systemen migreren naar moderne omgevingen. Maar migratie komt het meest van pas bij oude COBOL-systemen en oude VB6-systemen, omdat dit vaak bedrijfskritische systemen zijn en problemen hiermee grote impact op de organisatie hebben. De meeste migraties worden uitgevoerd naar een .NET-variant. Zo kunnen COBOL-systemen worden gemigreerd naar COBOL.NET en VB6-systemen naar VB.NET of ASP.NET.

Waarom migreren?
Het aanschaffen van standaardpakketten is vaak niet afdoende omdat de meeste standaardpakketten maar een deel van de benodigde functionaliteit afdekken. De organisatie moet zich aanpassen aan de software, als dit al kan. De meeste bedrijven kunnen dan ook niet uit de voeten met standaardpakketten en kijken naar maatwerk.
Maatwerk kan alle benodigde functionaliteit leveren, maar is vaak duur, vergt een langdurig ontwikkel- en testtraject en heeft een grote impact op de organisatie.

Hoe migreren?
De meeste migraties worden met behulp van een migratietool uitgevoerd. Dit heeft aanzienlijk minder impact op de organisatie dan nieuwbouw en is aanzienlijk goedkoper.
Een nadeel van migratie is echter, vooral ten opzichte van nieuwbouw, dat meestal niet van alle moderne functionaliteit van de nieuwe omgeving gebruikgemaakt wordt.

COBOL-programmatuur wordt met een tool (bijvoorbeeld ADF (Application Development Framework) van COSS-Solutions) gemigreerd naar .NET. De COBOL-programma's worden hierbij ontdaan van alle ballast als schermbehandeling, toetsafhandeling, bestands- en databasebenadering, etc. Deze zaken worden overgenomen door .NET. De businesslogica, die veelal door de eigen mensen nog onderhouden kan worden, blijft over en wordt in .NET-klassen ondergebracht.

Bij VB6-migraties wordt ook gebruikgemaakt van een migratietool. Mobilize.Net (formerly ArtinSoft) en NewCode leveren tools die VB6 kunnen migreren naar VB.NET, ASP.NET, C#.NET en C++. Deze tools kunnen als add-ins worden toegevoegd aan Visual Studio 2008. Zij bevatten onder meer een GUI-generator, error-handler, modules-naar-klassen convertor, goto-remover, etc. De migratietools dwingen programmeerstandaards af, en migratie naar .NET houdt tevens in, dat de programmatuur wordt omgezet naar een object-georiënteerde structuur.

De voordelen van migreren
Bij de migratie van COBOL-systemen valt direct op dat de businesslogica (het hart van een COBOL-programma) nog steeds onderhoudbaar is door de oude "cobelaars" binnen de organisatie. Binnen een week hebben zij meestal het gebruik van Visual Studio onder de knie en kunnen hun werk voortzetten. Gebruikers zijn verlost van de ouderwetse, karaktergeoriënteerde groene schermen en krijgen schermen en menu's zoals in Windows. Ze kunnen de muis gebruiken wat het scherm een stuk gebruiksvriendelijker maakt. Autorisaties worden nu standaard geregeld (binnen .NET) en verwijderd uit de COBOL-software. Dit vereenvoudigt het beheer aanzienlijk en verhoogt de betrouwbaarheid. De software vindt nu aansluiting bij moderne ontwikkelingen zoals intranet en internet.

De ondersteuning van VB6 is in maart 2008 definitief gestopt. Er vinden geen nieuwe ontwikkelingen meer plaats. Tevens is de structuur van VB6-programmatuur niet object-oriënted en is VB6 niet echt "web-based": dit kan alleen bereikt worden met ActiveX-controls. Migreren naar VB.NET of ASP.NET lost dit probleem definitief op.

Software engineering