570 likes | 1.12k Views
Modernization of Legacy Systems. To start, we need a working definition of ‘legacy system’. An existing system that is deeply engrained in the organization. Of course…. it doesn’t have to be technology. Testify!. Any legacy system horror stories? How could they be improved?
E N D
To start, we need a working definition of ‘legacy system’. • An existing system that is deeply engrained in the organization Of course…. it doesn’t have to be technology
Testify! • Any legacy system horror stories? • How could they be improved? • How would you envision the improvements coming to fruition?
A good read. Note: No Nicholas Carr.
There are four main reasons to change. Corrective Adaptive Reparation of defects Changes made to keep pace with changing run-time environments Perfective Preventative Improvement of usability or performance Enabling future maintainability or reliability
The more systems are changed the more they need to be maintained. Martin and McClure, Software Maintenance: The Problems and Its Solutions
There are different approaches, which we can view as a spectrum, to evolving a legacy system. Legacy System Preservation Maintain Modernize Replace Little bit of both Working directly on the system Build a new system from scratch What are the risks of each?
Forms of Modernization : Retargeting • Migration • Gain benefits in new advances • Examples • Improved management utilities • Performance enhancements
Forms of Modernization : Revamping • Revamping • Modernizing the UI • Example : Screen scraping • Web-enabling “green screens”
Forms of Modernization - Revamping “Green Screen”
Forms of Modernization - Revamping Web-Enabled
Forms of Modernization - Commercial Components • I think we understand this…
Forms of Modernization – Source Code Translation • Moving from an old language to a new • Tools exist • Do bare minimum conversion • Not always 100% complete
Forms of Modernization – Source Code Translation SEI COBOL to C++ Tool Observations • Generated code looks like COBOL’d C++ • Resulting architecture is poor • Class hierarchy not well organized or designed • All class attributes and methods are public • Constructors are unreadable • Most methods use a “global variable” approach rather than accept parameters • GOTO’s in COBOL are carried over • Generated class/variable names not useful • Generated code has few comments Seacord, Plakosh and Lewis, Modernizing Legacy Systems
Forms of Modernization : Refactoring • Code reduction • “Throw stuff out before you move” • Functional Transformations • Repackage in various ways
Which do you choose? • Deciding to maintain, modernize or replace is not trivial • Good deal of investigation has to occur • Business case has to be made
Example Assessment Technique Ransom, Sommerville and Warren “A Method for Assessing Legacy Systems for Evolution” Proceedings of the 2ndEuromicro Conference on Software Maintenance and Reengineering, 1998 Assess Business Value Instantiate Method Assess External Environment Interpret Results Assess Application
Example Assessment Technique High QualityLow Value High Quality High Value Technical Quality Low QualityLow Value Low Quality High Value Business Value
Example Assessment Technique Maintain Maintain with SomeLow-PriorityModernization Technical Quality Replace with Commercial Components Modernize Business Value
Modernization Planning consists of three phases. • Decision Phase • Research Phase • Planning Phase
Decision Phase Identify Stakeholders Understand Requirements Create the Business Case Business case satisfactory? Scrap no yes Phase 2
Research Phase Phase 2 Understand Legacy System Understand TargetTechnology Phase 3
Planning Phase Evaluate Technology Define target architecture Define Modernization Strategy Reconcile Strategy w/Stakeholders Estimate Resources Strategy feasible? no yes
Phased Modernization - Example • IBMiSeries • Evolved from mainframes • Many companies still run the original application architecture • IBM has defined a suggest modernization system
Phased Modernization – iSeries Roadmap Traditional 5250 RPG/COBOL PDM
Phased Modernization – iSeries Roadmap Traditional BetterTools 5250 5250 RPG/COBOL RPG/COBOL PDM Remote Sys Explorer
Phased Modernization – iSeries Roadmap Traditional BetterTools BetterUser Interface 5250 5250 5250 Web Portlets RPG/COBOL RPG/COBOL RPG/COBOL PDM Remote Sys Explorer Remote Sys Explorer IBM WebFacing Tool IBM WebSphere HATS iSeriesAccess for Web WebSphere Portal – Express and WebSphere Portal – Express Plus WebSphere Application Server Express
Phased Modernization – iSeries Roadmap Traditional BetterTools BetterUser Interface BetterArchitecture 5250 5250 5250 Web Web Portlets Portlets RPG/COBOL RPG/COBOL RPG/COBOL RPG/COBOL DB2 / SQL PDM Remote Sys Explorer Remote Sys Explorer Remote Sys Explorer IBM WebFacing Tool iSeries Web Tools IBM WebSphere HATS iSeriesAccess for Web WebSphere Portal – Express and WebSphere Portal – Express Plus WebSphere Application Server Express WebSphere Application Server
Phased Modernization – iSeries Roadmap Traditional BetterTools BetterUser Interface BetterArchitecture BetterPortability 5250 5250 5250 Web Web Web Portlets Portlets Portlets RPG/COBOL RPG/COBOL RPG/COBOL RPG/COBOL Java DB2 / SQL DB2 / SQL PDM Remote Sys Explorer Remote Sys Explorer Remote Sys Explorer Remote Sys Explorer IBM WebFacing Tool iSeries Web Tools iSeries Web Tools IBM WebSphere HATS iSeries Java Tools iSeriesAccess for Web WebSphere Portal – Express and WebSphere Portal – Express Plus WebSphere Application Server Express WebSphere Application Server WebSphere Application Server Network Deployment
Phased Modernization – iSeries Roadmap Traditional BetterTools BetterUser Interface BetterArchitecture BetterPortability BetterScalability 5250 5250 5250 Web Web Web Web Portlets Portlets Portlets Portlets RPG/COBOL RPG/COBOL RPG/COBOL RPG/COBOL Java EJB DB2 / SQL DB2 / SQL DB2 / SQL PDM Remote Sys Explorer Remote Sys Explorer Remote Sys Explorer Remote Sys Explorer Remote Sys Explorer IBM WebFacing Tool iSeries Web Tools iSeries Web Tools iSeries Web Tools IBM WebSphere HATS iSeries Java Tools iSeries Java Tools iSeriesAccess for Web EJB, J2EE Tools WebSphere Portal – Express and WebSphere Portal – Express Plus WebSphere Application Server Express WebSphere Application Server WebSphere Application Server Network Deployment
IBM Roadmap • For the most part, it’s about evolving a single system • What about a global, heterogeneous system?