Reengineering autonomic components in legacy software systems: A case study

Modern enterprise-scale software systems in the retail industry are often implemented as systems of systems that are composed of one or more legacy software components making up parts of a supply chain that deliver products to both in-person and online customers. The systems are often one-off complex implementations tailored to the needs of that particular stakeholder. System components may communicate with other internal legacy components like accounting and warehousing systems or external third-party components that handle order processing, security screening, or shipping-related tasks. From time to time, stakeholders may need to adapt their systems by replacing or modifying one or more of the sub-system components to operate on new hardware, communicate with other components using different data communication techniques, or to interact with new external third-party solutions. It is therefore useful for solutions for the individual components to be designed with an architecture that lend themselves to be easily reengineered or replaced without disturbing the other system components, and without adding significant complexity to the overall system of systems. In prior works, the authors of this paper introduced in a series of case studies a repeatable architectural design pattern that implemented self-adaptive autonomic interaction managers (AIMs) that not only reduced or eliminated the need for human operators to monitor, tune, or troubleshoot the implemented components, but could be easily modified or reengineered in the future to adapt to new operating environments. The contribution of this paper is the testing of the efficacy of the AIM design introduced in prior works by the authors, by simulating the reengineering of a set of AIMs tasked with handling web-based order traffic between the stakeholder system and Amazon.com. In this effort, the AIMs were re-implemented on a different operating system, coded in a different programming language than the original implementation, using a different data communication protocol to communicate with other systems. The authors simulated web-based order traffic to test the resulting implementation. The effort demonstrated that using the original autonomic design patter, AIMs could be rapidly adapted to a new environment, while maintaining original behavior and without adding complexity to the stakeholder's system.

[1]  Ladan Tahvildari,et al.  Self-adaptive software: Landscape and research challenges , 2009, TAAS.

[2]  Grace A. Lewis,et al.  Modernizing Legacy Systems - Software Technologies, Engineering Processes, and Business Practices , 2003, SEI series in software engineering.

[3]  Mary Shaw,et al.  Engineering Self-Adaptive Systems through Feedback Loops , 2009, Software Engineering for Self-Adaptive Systems.

[4]  Shihong Huang,et al.  Leveraging service-oriented architecture to extend a legacy commerce system , 2010, 2010 IEEE International Systems Conference.

[5]  Michael Rosemann,et al.  What is ERP? , 2000, Inf. Syst. Frontiers.

[6]  Meir M. Lehman,et al.  On understanding laws, evolution, and conservation in the large-program life cycle , 1984, J. Syst. Softw..

[7]  Nafiseh Hajrahimi,et al.  Which Factors Affect Software Projects Maintenance Cost More? , 2013, Acta informatica medica : AIM : journal of the Society for Medical Informatics of Bosnia & Herzegovina : casopis Drustva za medicinsku informatiku BiH.

[8]  Shihong Huang,et al.  An autonomic approach to extend the business value of a legacy order fulfillment system , 2015, 2015 Annual IEEE Systems Conference (SysCon) Proceedings.

[9]  David Sinreich,et al.  An architectural blueprint for autonomic computing , 2006 .

[10]  Shihong Huang,et al.  Autonomic Software Systems: Developing for Self-Managing Legacy Systems , 2014, 2014 IEEE International Conference on Software Maintenance and Evolution.