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.
[1]
David Garlan.
A 10-year perspective on software engineering self-adaptive systems (keynote)
,
2013,
SEAMS '13.
[2]
Tomasz Haupt,et al.
Towards mediation-based self-healing of data-driven business processes
,
2012,
2012 7th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS).
[3]
Jeffrey O. Kephart,et al.
The Vision of Autonomic Computing
,
2003,
Computer.
[4]
Mary Shaw,et al.
Engineering Self-Adaptive Systems through Feedback Loops
,
2009,
Software Engineering for Self-Adaptive Systems.
[5]
David Sinreich,et al.
An architectural blueprint for autonomic computing
,
2006
.
[6]
Hausi A. Müller,et al.
Quality Criteria and an Analysis Framework for Self-Healing Systems
,
2007,
International Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS '07).