IDARE—a reference architecture for integrated software environments. (11th June 2013) - Tajalli, Hossein
SUMMARY Traditionally, software development environments have tended to treat a system's development‐time activities separately from its run‐time. After a system is in operation, it frequently needs to be maintained and evolved. In traditional environments, this results in frequent relocations of a system between the disjoint development and run‐time environments, which is undesirable for several reasons. A more effective solution is to couple the development and run‐time environments to directly monitor and adapt running systems. Given the growing need for interaction between development‐time and run‐time aspects of modern software systems, it is important to understand development and run‐time environments, and their relationship. To this end, we study and classify a wide range of software development environments on the basis of their level of interaction with the corresponding run‐time environments. Particularly, we identify, study, and characterize Self‐Adaptive Life‐cycle Environments (SALEs), an emerging class of modern development environments that are tightly integrated with run‐time environments. We reify our study of the development environments into a novel reference architecture, iDARE, that captures and differentiates the architectures of software environments – from those, such as traditional development environments, that have no interaction with the run‐time environments, to the ones, such as SALEs, that are tightly integrated with the run‐time environments. We use iDARE to highlight several shortcomings of existing SALEs. Adherence to iDARE has the potential to improve certain quality properties of the integrated development and run‐time environments, such as adaptability, fault‐tolerance, robustness, availability, and resource consumption. We identify a number of opportunities for future research. Copyright © 2013 John Wiley & Sons, Ltd.