Businesses and their supporting software evolve to accommodate the constant revision and re-negotiation of commercial goals, and to intercept the potential of new technology. We have adopted the term co-evolution to describe the concept of the business and the software evolving sympathetically, but at potentially different rates. More generally, we extend co-evolution to accommodate wide-informatics systems, that are assembled from parts that co-evolve with each other and their environment, and whose behavior is potentially emergent. Typically these are long-lived systems in which dynamic co-evolution, whereby a system evolves as part of its own execution in reaction to both expected and unexpected events, is the only feasible 262 Autom Softw Eng (2007) 14: option for change. Examples of such systems include continuously running business process models, sensor nets, grid applications, self-adapting/tuning systems, peer-topeer routing systems, control systems, autonomic systems, and pervasive computing applications.The contribution of this paper comprises: a study of the intrinsic nature of dynamic co-evolving systems; the derivation of a set of intrinsic requirements; a description of a model and a set of technologies, new and extant, to meet these intrinsic requirements; and illustrations of how these technologies may be implemented within an architecture description language (ArchWare ADL) and a conventional programming language (Java). The model and technologies address three topics: structuring for dynamic co-evolution, incremental design, and adapting dynamic co-evolving systems. The combination yields a framework that can describe the system's specification, the executing software and the reflective evolutionary mechanisms within a single computational domain in which all three may evolve in tandem.
0 I E E E S O F T W A R E P u b l i s h e d b y t h e I E E E C o m p u t e r S o c i e t y0 7 4 0 -7 4 5 9 / 0 5 / $ 2 0 . 0 0 © 2 0 0 5 I E E E The inherent contradiction between using long-lived, general-purpose COTS components and the demand for highly adaptable information systems creates a challenging problem.Flexible information systems use COTS components because they cost-effectively supply required component functionality. A software architecture can capture a system design as a set of interacting components and capture the role of COTS software in "implementing" certain components. However, as we move toward a world in which programmable devices greatly outnumber people, information systems will increasingly need to address this ubiquitous-computing context, or ambient intelligent environment. Such dynamic environments require coping with anticipated change, such as the release of new COTS versions. However, they also require coping with emergent behavior, which arises from interactions between a system's components (including its environment) and thus can't always be anticipated.Classical software engineering has for the most part adopted a reductionist component-engineering style toward COTS-based systems (see the "Related COTS-Based Approaches" sidebar). This style results in developers either disregarding or inadequately dealing with dynamic environments, implying that such environments-and in particular emergent behaviorare traits to suppress. However, because a large class of software systems (including many constructed with COTS components) must exploit their dynamic environments, emergent behavior is not only inevitable, it should be recognized and exploited. The architecture of such flexible systems must not only reflect the components' initial static configuration but also the ongoing reconfiguration of components, capturing the system's evolution at an architectural level.focus An Active-Architecture Approach to COTS Integration C OTS software products are increasingly becoming standard components for building integrated information systems. At the same time, the growth of electronic trading, turbulent market conditions, and a project-style approach to business have created a demand for information systems that can be rapidly adapted to changing business process demands. However, the ongoing development of COTS products is unpredictable as their developers and source code are rarely available.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.