From Software Systems to Complex Software Ecosystems: Model- and Constraint-Based Engineering of Ecosystems

Software is not self-supporting. It is executed by hardware and interacts with its environment. So-called software systems are complicated hierarchical systems. They are carefully engineered by competent engineers. In contrast, complex systems, like biological ecosystems, railway systems and the Internet itself, have never been developed and tested as a whole by a team of engineers. Nevertheless, those complex systems have the ability to evolve without explicit control by anyone, and they are more robust to dealing with problems at the level of their constituent elements than classical engineered systems. Consequently, in this article we introduce the concept of complex software ecosystems comprised of interacting adaptive software systems and human beings. Ecosystems achieve the demanded flexibility and dependability by means of a kind of higher-level regulatory system. Their equilibrium is continuously preserved through the appropriate balance between the self-adaptation and the self-control capabilities of an ecosystem’s participants.

[1]  N. F. Noy,et al.  Ontology Development 101: A Guide to Creating Your First Ontology , 2001 .

[2]  Jörg P. Müller,et al.  IT ecosystems: A new paradigm for engineering complex adaptive software systems , 2012, 2012 6th IEEE International Conference on Digital Ecosystems and Technologies (DEST).

[3]  Sarah A. Sheard,et al.  Principles of complex systems for systems engineering , 2009 .

[4]  Sebastian Herold Architectural Compliance in Component-Based Systems. Foundations, Specification, and Checking of Architectural Rules , 2011 .

[5]  Kurt Schneider,et al.  Towards integrated rule-driven software development for IT ecosystems , 2012, 2012 6th IEEE International Conference on Digital Ecosystems and Technologies (DEST).

[6]  Christian Bartelt Kollaborative Modellierung im Software Engineering , 2011 .

[7]  Pearl Brereton,et al.  Service-based software: the future for flexible software , 2000, Proceedings Seventh Asia-Pacific Software Engeering Conference. APSEC 2000.

[8]  Sebastian Herold,et al.  Checking architectural compliance in component-based systems , 2010, SAC '10.

[9]  Hermann Kopetz,et al.  Dependability: Basic Concepts and Terminology , 1992 .

[10]  Raymond Reiter,et al.  A Logic for Default Reasoning , 1987, Artif. Intell..

[11]  Gregor Engels,et al.  Design for Future – Legacy-Probleme von morgen vermeidbar? , 2009, Informatik-Spektrum.

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

[13]  Hartmut Schmeck,et al.  Organic Computing - A Paradigm Shift for Complex Systems , 2011, Organic Computing.

[14]  D. Braha,et al.  Complex Engineered Systems: A New Paradigm , 2006 .

[15]  Douglas C. Schmidt,et al.  Ultra-Large-Scale Systems: The Software Challenge of the Future , 2006 .

[16]  Dirk Niebuhr,et al.  Dependable Dynamic Adaptive Systems - Approach, Model, and Infrastructure , 2010 .

[17]  John A. McDermid,et al.  The Art and Science of Software Architecture , 2007, Int. J. Cooperative Inf. Syst..