Autonomic Software Systems: Developing for Self-Managing Legacy Systems
James J. Mulcahy, Shihong Huang · 2014
Modern software systems have grown in complexity and expense, even while the cost for supporting hardware has decreased over time. Humans have a lot to do with why software is expensive, and they contribute to its cost in at least three significant areas: the maintenance and evolution of existing software, the run-time monitoring and configuration of executing software, and errors made during data entry and system configuration tasks. Software engineers seek to mitigate these costs by minimizing or removing expensive human participation in these areas where possible by adopting software and hardware approaches aimed at doing so. In this paper, we describe a commercial software engineering project where code reuse, service-oriented architecture, and self-autonomic approaches were employed to extend the legacy enterprise system of a multi-channel vendor of musical equipment. In adopting these approaches, the developers were able to produce a highly-automated extension to an existing system that increased the number of orders places by customers, extending the business value of that system.