QSO Technologies Paying attention to details
Software Migration QSO Technologies
QSO Technologies Paying attention to details
Presentation Plan
QSO Technologies Paying attention to details
Introduction • In today’s world technologies are changing at rapid speed • New technologies which are far better than previous technologies are there in market now days • Today we find that most of the work or application are build on legacy code only few are written from scratch • we also find that mergers and takeovers are taking place • Motivations – Migration of application need to be done to keep the pace with new world of technologies – Migration is always done for a reason , without reason there is no question of migration of a application. The reasons can be performance issue ,compatibility, features, supports etc
QSO Technologies Paying attention to details
Motivation – Legacy languages are hard to support. The legacy languages and development tools needed to support the legacy system are increasingly difficult or expensive to obtain – Re-implementing applications on new platforms in this way can reduce operational costs, and the additional capabilities of new technologies can provide access to functions such as web services and integrated development environments – People are scarce. People that know the legacy languages are becoming difficult to find and retain. Younger staff are reluctant to learn "legacy" languages because it does not appear to advance their long-term career – The underlying platform is hard to support. Many legacy systems run on legacy hardware systems. Such hardware systems are becoming more expensive to maintain, and personnel that know these systems are also more difficult to find
QSO Technologies Paying attention to details
Motivation – Legacy software does not integrate well with other IT systems The architecture of legacy languages often does not lend itself to building bridges to other IT systems that have grown up around it – The recent development of new technologies by software modernization enterprises have made the legacy transformation process a cost-effective and accurate way to preserve legacy investments and thereby avoid the costs and business impact of migration to entirely new software – As there are mergers and take over there might be question of having compatibility issue between the IT department of two different companies which may need only one system to prevail among the parent and child company
QSO Technologies Paying attention to details
Examples • The Central Bank of Costa Rica (BCCR) is responsible for mediating payments between local financial institutions. The Interbank Negotiation and Electronic Payment System (SINPE) permits the liquidation of payments between member entities (banks, finance companies, cooperatives, mutual funds, the ATH automatic teller network, the Ministry of Finance, the National Insurance Institute and the Costa Rican Social Security Fund) or against the Central Bank. The System requires a fast and reliable platform to handle 175 billion colons (US$500 million) worth of daily transactions. The original SINPE system, written in Microsoft Visual Basic and SQL Server, was upgraded to Visual Basic .NET using the Visual Basic upgrade wizard. The new system is faster, more stable, and easier to maintain than the original. The cost of the upgrade was only 7% of the original development. •
http://www.artinsoft.com/whitepapers/BCCR_Case_Study.pdf
QSO Technologies Paying attention to details
Examples • Air traffic control software migrated successfully • http://findarticles.com/p/articles/mi_m0ISJ/is_n4_v29/ai_9680873
• migration of business processes from Oracle to SAP global instance • Banamex, a leading Mexican bank, part of Citigroup, was able to migrate over 5 million lines of code from VB6 and ASP to C# and ASP.NET using the Visual Basic Upgrade Companion, in compliance with all corporate policies set for quality assurance and information security. • Using ArtinSoft’s Visual Basic Upgrade Companion and consulting services, HSI was able to save about 12 months of development time and $160,000, while getting a massively improved product out to market earlier than anticipated puts them back in the driver seat. • http://www.artinsoft.com/hsi-latnav-vb-to-net-migration-case-study.aspx
QSO Technologies Paying attention to details
Examples • eZway is Freeway Development Corporation's main product. eZway is a development tool that speeds up the process of generating distributed applications based on a three tier architecture. It functions through a spiral development methodology, iterative and incremental • Initially, eZway was developed in VB 6.0 to generate Visual Basic 6.0 and ASP codes. Then Freeway saw in Microsoft's new .NET platform an opportunity to provide new functionality, security and flexibility both for its eZway product as well as for the product's users. • http://www.artinsoft.com/cs_freeway.aspx
QSO Technologies Paying attention to details
Keywords & Definitions
QSO Technologies Paying attention to details
Approaches • There are different approaches which can be followed for migration procedure • First of all we need to know the reason behind the decision for migration and than we need to have the design of the original application – The reason and the design of the application can helps in deciding what to do to achieve the desired goal
• Suppose we want some additional features to our application but present programming language doesn’t gives us that facility or other way to say it makes the code for application more complex
QSO Technologies Paying attention to details
Approaches • Now in such case do we really need to reengineer our application – Now to answer we need to look at design and programming language used in building that application – Because reengineering is not needed such case we can use wrapper concept and get it done or else we can use refactoring
• Now suppose the reason could be of performance. That we need higher performance – In such case there may be or there may not be need of reengineering – We need to look at the design of the application. It could be such that making some modification in design of the application we can achieve the desired performance. The design of the application is crucial at this moment of decision to go for what
QSO Technologies Paying attention to details
Approaches • There can be issue that support for the application may not be available in future. So it can lead to decision of reengineering of the applications – But exceptions are always there you may decide not to go for reengineering for example the telecom software was written in machine language and is still in use because it is still working fine were as no one understand the design now days as those who designed are not there – Second example I can give of Indian railway reservation system which is written in Fortran and still is in use and is working fine
• So I would say that reason and the design of the application plays an important role is deciding the next step
QSO Technologies Paying attention to details
Reengineering Approach • There can be different approaches which a developer can take but I would like to discuss some general approach • Objective of reengineering – – – –
Preparation for functional enhancement Improve maintainability Migration Improve reliability
• Design of the application plays important role • With the help of application we see different components which original application is using than according to target system we can find out reusable components
QSO Technologies Paying attention to details
Reengineering Approach • Those reusable components can be left untouched so there will be no need to rewrite them from scratch hence saves the cost • Similarly thinking from architectural point of view we can modify the design acc to target system and can compare that with standard design available which are working fine • After all these work we can think planning migration. We should not move with migration without having proper plan • I would give a example of migration plan in later part of presentation
QSO Technologies Paying attention to details
Reengineering Approach • General model for reengineering
QSO Technologies Paying attention to details
Reengineering Approach • This general model uses three principle of reengineering – Abstraction – Alteration – Refinement
• There are different approaches to reengineering – Big Bang Approach
QSO Technologies Paying attention to details
Reengineering Approach – Incremental approach
QSO Technologies Paying attention to details
Reengineering Approach – Evolutionary approach
.
QSO Technologies Paying attention to details
Reengineering Functional Information Technology Systems • This methodology--REFITS--was developed by Unisys Government Systems Group at Virginia Beach, Va. •
http://www.stsc.hill.af.mil/crosstalk/1994/09/xt94d09h.asp
• REFITS consists of various processes that migrates a existing application to target system • Different processes in REFITS are as following: – – – – –
Design Recovery BPR (Business Process Reengineering) Modularization Transformation or Translation Optimization or Enhancement
QSO Technologies Paying attention to details
REFITS
QSO Technologies Paying attention to details
REFITS • Design recovery is a reverse engineering process • BPR, another reverse engineering process, provides an environment that fosters improvement in an organization's practices and policies and assists in determining better ways to achieve the organization's objectives • The REFITS forward engineering processes include modularization, transformation or translation, and optimization or enhancement • Modularization involves the splitting of processes into appropriate data, application, and presentation layers--an action that facilitates development and execution in the client/server architecture
QSO Technologies Paying attention to details
REFITS - this process involves grouping common functions to promote reuse and to reduce code redundancy
• The transformation or translation process converts application code from one dialect to another or from one language to another. Development is done to open systems standards producing code that is more portable and works across multiple platforms • Optimization or enhancement includes updating character-based interfaces to GUIs and converting the existing database to an enterprise-wide database. Additionally, this process incorporates development of new functionality as identified through BPR
QSO Technologies Paying attention to details
Migration Planning
QSO Technologies Paying attention to details
Migration Planning • Review inputs: – Basically in this part of module we take input which provides the current state of legacy system – A review of these artifacts provides an initial understanding of the degree of compatibility between the new and legacy systems • organization’s goals and objectives • customer priorities and user needs • technical approach
• Describe migration management approaches: – It is important to determine how ongoing enhancements to legacy systems will be managed while the target system is being developed • Track progress on milestones • Identify and monitor open issues
QSO Technologies Paying attention to details
Migration Planning • Identify migration prototyping need: – Prototypes can effectively test the potential solution, especially in cases where current systems are complex and involve many users
• Identify migration piloting needs: – Because of the large number of factors in the legacy environment and the number of users who are potentially affected, pilot implementations on a small scale may be recommended to provide help in the migration effort
• Describe rollout for migration: – describing phasing system builds – determining support needs
QSO Technologies Paying attention to details
Manual V/s Automated • Till now we have seen reengineering and migration planning. Now when during code migration you have choice on manual and automated conversion of code
QSO Technologies Paying attention to details
Manual V/s Automated
QSO Technologies Paying attention to details
Manual V/s Automated
QSO Technologies Paying attention to details
Manual V/s Automated
QSO Technologies Paying attention to details
Manual V/s Automated
QSO Technologies Paying attention to details
Migration Tools • There are various migration tools available in market which converts code from one programming language to other • Examples: – Instant C# converts VB code to C# – Instant VB converts C# code to VB – C++ to C# Converter converts C++ code to C# – C++ to VB Converter converts C++ code to VB – C++ to Java Converter converts C++ code to Java – Instant C++ (C# Edition) converts C# code to C++ – Instant C++ (VB Edition) converts VB code to C++ – Instant C++ (Java Edition) converts Java code to C++ – Instant Python (C# Edition) converts C# code to Python – Instant Python (VB Edition) converts VB code to Python
QSO Technologies Paying attention to details
Migration Tools – Java to VB & C# Converter converts Java code to VB or C# – VB & C# to Java Converter converts VB and C# code to Java – Clear VB formats and standardizes VB (.NET) source code
• Apart from these programming language tools there are many other tools – – – – –
Data migration tools Active directory migration tools Auto CAD migration tools .NET database migration tools Database migration tools
• Nowadays there migration tools available for every field but these tools are not free and doesn’t provide 100 % conversion
QSO Technologies Paying attention to details
Migration Tools • Migration tools are basically consists of a parser and mapping the programming construct from one language to other – For example from c to java conversion suppose a structure is found by parsing c code through parser than mapping tool according to the rules of java should be able to map it class and the variable defined for structure to variables in java and methods using structure should be placed inside the class and so on
• For this I would like to discuss a tool developed for migration by pro et con (program and conversion) • http://www.proetcon.de/en/company_e.html
• The migration tools should be developed with compiler technology theories and that a integrated parser is necessary
QSO Technologies Paying attention to details
Pro et Con
QSO Technologies Paying attention to details
Pro et Con • The base of all solutions is a software reengineering architecture (SRA) designed by pro et con • SRA is a toolset (Meta tools), which contains amongst others the following tools: – BTRACC: proprietary parser generator on the base of the backtracking technology – CTree: a tool for the declarative specification of syntax tree models – CBack: a tool for the generation of structured code from syntax trees
QSO Technologies Paying attention to details
Some comments on automated system • We wanted to use the newest technology instead of just being able to run Visual Basic 6 style code inside the .NET Environment. Using the Visual Basic Upgrade Companion represented an estimated saving for the project of US$300,000. --- MDA property system
• http://www.artinsoft.com/license-artinsofts-automated-software-migration-techn
• Not only were we able to complete the project with impressive speed; the quality of Java produced by the service was so high that we were able to deploy the new system very easily. A project we would have expected to take us at least 18 months only took several weeks" Kelvin Burton - CTO, Mercy Ships • http://www.artinsoft.com/cs_mercy.aspx
QSO Technologies Paying attention to details
Recap • Before starting the process of reengineering we always have to focus on to things – Reason or factors behind the decision of reengineering – Design of the application under consideration
• After it has been decided for reengineering we need to follow some basic steps so that end target product is as per desired discussed all through presentation • We need stable migration plan which will ultimately pave path for the stable end target application after migration process is complete • We should decide on automated or manual conversion
QSO Technologies Paying attention to details
References •
http://www.sei.cmu.edu/reengineering/index.html
•
http://en.wikipedia.org
•
http://en.wikipedia.org/wiki/Software_migration
•
http://searchsoa.techtarget.com/
•
http://wiki.postgresql.org/wiki/Migrating_from_one_database_to_another_with_Pentaho_ETL
•
http://software.intel.com/en-us/articles/migrating-java-applications-to-c-on-the-net-platform/
•
http://tangiblesoftwaresolutions.com/Demo.htm
•
http://www.sciencedirect.com/science?_ob=ArticleURL&_udi=B6V0N-4P2S8WV-2&_user=10&
•
http://www.semdesigns.com/Products/Services/LegacyMigration.html
•
http://www.greatmigrations.com/
•
http://wiki.answers.com/Q/Differnce_between_reverse_engineering_and_re_engineering