A framework for supporting dynamic systems co-evolution

Abstract 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 option for change. Examples of such systems include continuously running business process models, sensor nets, grid applications, self-adapting/tuning systems, peer-to-peer 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.

[1]  Munindar P. Singh,et al.  Service-Oriented Computing: Semantics, Processes, Agents , 2010 .

[2]  Rod M. Burstall,et al.  Programming in POP-2 , 1971 .

[3]  Bradley R. Schmerl,et al.  Exploiting architectural design knowledge to support self-repairing systems , 2002, SEKE '02.

[4]  Shigeru Chiba,et al.  Load-Time Structural Reflection in Java , 2000, ECOOP.

[5]  David Garlan,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004 .

[6]  Simon M. Kaplan,et al.  The viable system architecture , 2001, Proceedings of the 34th Annual Hawaii International Conference on System Sciences.

[7]  M. Mitchell Waldrop,et al.  Complexity : the emerging science and the edge of order and chaos , 1992 .

[8]  Subrata Dasgupta,et al.  Design Theory and Computer Science , 1992, IEEE Expert.

[9]  Ronald Morrison,et al.  Support for feedback and change in self-adaptive systems , 2004, WOSS '04.

[10]  Richard C. H. Connor,et al.  Type-Safe Linguistic Reflection: A Generator Technology , 2000 .

[11]  Michael M. Gorlick,et al.  Using weaves for software construction and analysis , 1991, [1991 Proceedings] 13th International Conference on Software Engineering.

[12]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[13]  Ronald Morrison,et al.  An active-architecture approach to COTS integration , 2005, IEEE Software.

[14]  M. Topolnik,et al.  An improved XML syntax for the java programming language , 2005, Proceedings of the 8th International Conference on Telecommunications, 2005. ConTEL 2005..

[15]  Eve Mitleton-Kelly,et al.  IT Legacy Systems: Enabling Environments that Reduce the Legacy Problem: A Complexity Perspective , 2006 .

[16]  Walter F. Tichy,et al.  Proceedings 25th International Conference on Software Engineering , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[17]  Peyman Oreizy,et al.  An architecture-based approach to self-adaptive software , 1999, IEEE Intell. Syst..

[18]  Peter Kawalek,et al.  Business Information Systems: a process approach , 1999 .

[19]  Mary Shaw,et al.  Beyond objects: a software design paradigm based on process control , 1995, SOEN.

[20]  Subrata Dasgupta,et al.  Design theory and computer science: processes and methodology of computer systems design , 1991 .

[21]  Tran Cao Son,et al.  Semantic Web Services , 2001, IEEE Intell. Syst..

[22]  Jun Han,et al.  Coordination Systems in Role-Based Adaptive Software , 2005, COORDINATION.

[23]  David S. Munro,et al.  The Napier88 Persistent Programming Language and Environment , 2000 .

[24]  Richard C. H. Connor,et al.  Persistent Hyper-Programs , 1992, POS.

[25]  Kathleen Steinhöfel,et al.  International Congress on Computer Assisted Radiology and Surgery , 2001 .

[26]  S. Beer The Brain of the Firm , 1972 .

[27]  Flávio Oquendo,et al.  Support for evolving software architectures in the ArchWare ADL , 2004, Proceedings. Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004).

[28]  Ronald Morrison,et al.  A software architecture approach for structuring autonomic systems , 2005, ACM SIGSOFT Softw. Eng. Notes.

[29]  B. Thirion,et al.  A framework for fuzzy knowledge based control , 2000, Softw. Pract. Exp..

[30]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[31]  Michael W. Godfrey,et al.  Evolution in open source software: a case study , 2000, Proceedings 2000 International Conference on Software Maintenance.

[32]  J. Herbsleb,et al.  Two case studies of open source software development: Apache and Mozilla , 2002, TSEM.

[33]  Jeff Magee,et al.  Analysing dynamic change in software architectures: a case study , 1998, Proceedings. Fourth International Conference on Configurable Distributed Systems (Cat. No.98EX159).

[34]  Jeff Magee,et al.  The Evolving Philosophers Problem: Dynamic Change Management , 1990, IEEE Trans. Software Eng..

[35]  Meir M. Lehman,et al.  Laws of Software Evolution Revisited , 1996, EWSPT.

[36]  B. Randell,et al.  Software Engineering: Report of a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7-11 Oct. 1968, Brussels, Scientific Affairs Division, NATO , 1969 .

[37]  Luc Steels,et al.  Beyond Objects , 1994, ECOOP.

[38]  Jürgen Dingel,et al.  A survey of self-management in dynamic software architecture specifications , 2004, WOSS '04.

[39]  Betty H. C. Cheng,et al.  Model-based development of dynamically adaptive software , 2006, ICSE.

[40]  Malcolm P. Atkinson,et al.  Fully Integrated Data Environments , 2000, Esprit Basic Research Series.

[41]  Dewayne E. Perry,et al.  Software Evolution and Feedback: Theory and Practice , 2006 .

[42]  Niklaus Wirth,et al.  Program development by stepwise refinement , 1971, CACM.

[43]  Ronald Morrison,et al.  Linguistic reflection in Java , 1998, Softw. Pract. Exp..

[44]  Flávio Oquendo π-ADL: an Architecture Description Language based on the higher-order typed π-calculus for specifying dynamic and mobile software architectures , 2004, SOEN.

[45]  Subrata Dasgupta Design Theory and Computer Science: Design Paradigms , 1991 .

[46]  David S. Munro,et al.  A compliant persistent architecture , 2000, Softw. Pract. Exp..

[47]  Peyman Oreizy,et al.  Architecture-based runtime software evolution , 1998, Proceedings of the 20th International Conference on Software Engineering.

[48]  Bradley R. Schmerl,et al.  Rainbow: Architecture-Based Self-Adaptation with Reusable Infrastructure , 2004, Computer.

[49]  Erik P. de Vink,et al.  Evolution On-the-Fly with Paradigm , 2006, COORDINATION.

[50]  K. Beck,et al.  Extreme Programming Explained , 2002 .

[51]  D HerbslebJames,et al.  Two case studies of open source software development , 2002 .

[52]  Babu Joseph,et al.  Techniques of Model-Based Control , 2002 .

[53]  Brian Randell,et al.  Software engineering : report on a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7th to 11th October 1968 , 1969 .

[54]  Brian Warboys The Software Paradigm , 1995 .