{"title":"Model- and constraint-based engineering of complex software ecosystems","authors":"A. Rausch, S. Bergner, Daning Wang","doi":"10.1109/ICITEC.2014.7105576","DOIUrl":null,"url":null,"abstract":"No software is an island. It is executed by hardware and interacts with its environment. So-called software systems are complicated hierarchical systems. Competent engineers carefully engineer them. 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 deal with problems at the level of its constituent elements compared to classical engineered systems. Consequently in this article we introduce the concept of complex software ecosystems comprising 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. Thereby equilibrium is continuously preserved through the appropriate balance between self-adaption and self-control capabilities of ecosystem's participants. We will outline a methodology to support engineering of ecosystems by integrating a model- and constraint-based engineering approach and applying it during design and run time. The open-world semantics of constraints set up a frame for the behavior of participants and the ecosystem itself. Violations of constraints can be identified during design time, but also provide a knowledge transfer to run time. Constraints are additionally monitored and enforced during run time. Thus, we propose an evolutionary engineering approach covering the whole life-cycle for forever active complex software ecosystems.","PeriodicalId":293382,"journal":{"name":"Proceedings of 2nd International Conference on Information Technology and Electronic Commerce","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2014-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of 2nd International Conference on Information Technology and Electronic Commerce","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICITEC.2014.7105576","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
No software is an island. It is executed by hardware and interacts with its environment. So-called software systems are complicated hierarchical systems. Competent engineers carefully engineer them. 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 deal with problems at the level of its constituent elements compared to classical engineered systems. Consequently in this article we introduce the concept of complex software ecosystems comprising 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. Thereby equilibrium is continuously preserved through the appropriate balance between self-adaption and self-control capabilities of ecosystem's participants. We will outline a methodology to support engineering of ecosystems by integrating a model- and constraint-based engineering approach and applying it during design and run time. The open-world semantics of constraints set up a frame for the behavior of participants and the ecosystem itself. Violations of constraints can be identified during design time, but also provide a knowledge transfer to run time. Constraints are additionally monitored and enforced during run time. Thus, we propose an evolutionary engineering approach covering the whole life-cycle for forever active complex software ecosystems.