=Paper=
{{Paper
|id=Vol-2075/DS-paper2
|storemode=property
|title=Environment Modeling for Complex, Dynamic and Distributed Systems
|pdfUrl=https://ceur-ws.org/Vol-2075/DS-paper2.pdf
|volume=Vol-2075
|authors=Fabian Kneer
|dblpUrl=https://dblp.org/rec/conf/refsq/Kneer18
}}
==Environment Modeling for Complex, Dynamic and Distributed Systems==
Environment Modeling for Complex, Dynamic and Distributed Systems Fabian Kneer Dortmund University of Applied Sciences and Arts, Emil-Figge-Str. 42, 44227 Dortmund, Germany fabian.kneer@fh-dortmund.de Abstract. [Context and Motivation:] Complex, dynamic, and dis- tributed systems confront requirements engineers with new challenges. The systems operate in dynamic environments with an increasing com- plexity. Modeling the context for understanding, developing and validate the requirements becomes a difficult task. [Question/ problem:] Cur- rent requirements engineering techniques for gathering information are not sufficient to capture the system behavior and the environment for this class of systems. [Principal ideas/ results:] A new approach is needed to support the development of an environment model, the idea is to use runtime information (e.g., from executing early prototypes of the system) to gather additional facts about the environment. [Contri- bution:] In this paper I present the motivation and challenges for the environment modeling for complex, dynamic, and distributed systems and an overview of the progress of my thesis. For this purpose I present my previous work on this field and discuss the proposed work for my thesis. Keywords: Dynamic and distributed systems, environment models, run- time information 1 Introduction The part of the real world that is relevant to understand a system is usually called its (operational) environment (we consider this term as synonymous to context in this paper). A proper understanding of the environment is a prerequisite to write requirements for a system. There are characteristics of a system that complicate the gathering of infor- mation on the environment and its requirements. These characteristics are: – Complexity: there is a constant trend that systems’ complexity is increasing. One reason is the increasing amount of user requirements , while new legal regulations is one other. Besides the system, also the environment gets more complex, too. The trend towards more connectivity between systems is one reason. Copyright c 2018 for this paper by its authors. Copying permitted for private and academic purposes.” – Dynamic: the behavior of a dynamic system is affected by changing users’ needs and uncertainties in their operational environment. These systems of- ten have a considerable lifetime and operate in different situations, which leads to evolving or changing requirements. A system needs feedback mech- anisms to analyze the different environment situations and adapt to satisfy the requirements. – Distribution: a distributed system consists of components located on net- worked computers, which communicate and coordinate their actions. They share different resources and capabilities to reach a common goal or collab- orate to reach individual goals. Examples for these characteristics can be found in the mobility area. A future car for instance will be connected with other cars or with parts of the traffic infrastructure, like intelligent traffic lights. Theses connected entities leads to a dynamic environment for the car with services and information that are not always available. If we look at autonomous driving, the complexity of the en- vironment and the resulting requirements is immense. The mobility domain is just one example for systems with these characteristics. Other examples can be found in the Internet of Things (IoT) domain. Problem. The classic RE techniques for gathering information are not fully sufficient to capture the environment and the requirements of such a system characterized above. One reason is that the information about environment and system behavior available from stakeholders is a priori incomplete. The missing information leads to incomplete specifications and incorrect software. Due to the dynamic nature of such systems, requirements evolve during run- time and are a priori not completely available or not fully understood to elicit them with techniques like interviews. Newer approaches to requirements engineering, e.g., from the field of self- adaptive systems [1], address the dynamic nature of the environment. However, the results of a systematical literature review that I performed, indicate that approaches mainly focus on modeling and not on gathering requirements or environment information (see Section 2 for details). Goal. The goal of my thesis is to provide a better understanding of environ- ment modeling for complex, dynamic and distributed systems. This includes (1) the identification of missing concepts of environment models and (2) the adop- tion of techniques to collect this information. The idea is to adopt techniques beyond the RE phase, more precisely from downstream software development: e.g., prototyping, simulation, and field test. An implementation of a RE tool to support the improved modeling process will be provided as a proof of concept. The proposed work will address the following research questions: [RQ1] What are the core concepts for dynamic and distributed systems to be- come represented in environment models and how to represent them? [RQ2] What methods are useful to identify the relevant information for envi- ronment models beyond the RE phase? [RQ3] What kind of information are needed by an requirements engineer to improve the development process and the adaption process? Sufficient in- formation about the environment of a system are needed to develop, under- stand, and validate requirements. An adaptive system uses the environment information for a better decision space and to improve the overall adaption process. Solution. Our first approach towards this goal was to weave runtime informa- tion about the requirements and variable parameters of a dynamic system back into the requirements specification, see [2]. The goal was to produce a better understanding of (1) the system behavior and (2) the evolution of the require- ments and parameters. This information is useful to maintain and update a system and to increase the trust of the user in the adaptation, because he or she can understand the runtime decisions. Based on this approach we consider an iterative, tool-supported process for gaining runtime information about the environment and the requirements, which is depicted in Figure 1. First, the requirements are gathered and an environ- ment model will be modeled by a requirements engineer. Then, a prototyping and evaluation framework is used to support the development of a system. The frameworks can be used to generate probes for an application and the whole adaption mechanism (with integrated MAPE loop) out of a specification. It in- cludes an instrumentation for simulation and field test, which collects runtime data on environmental entities. Fig. 1. Iterative Enhancement of Environment Model and Requirements We are convinced that an early field test can help to find missing environ- ment data and to improve the general knowledge about the system behavior. Simulations can be used as an alternative to the field test, if the environment model contains sufficient information. Based on the information gathered during a field test or simulation - the requirements and the environment model enhanced in the next iteration. The before-mentioned information is gathered by tracing components inside of the prototype and by observations and feedback from the requirements engineer. In my thesis I focus on the environment model as it is the most important ar- tifact in the process. It is used for the generation of the prototype, to describe the environment for simulation, and to collect the environment information gathered during simulation and early field test. The remainder of the paper is structured as follows. Sec. 2 represent a short summary of a systematic literature review on environment modeling. Sec. 3 describes the process of my PhD thesis with an overview on previous work, Sec. 3.1, and a discussion on the proposed work, Sec. 3.2. 2 Related Work We performed a systematic literature review (SLR) on environment modeling for adaptive systems. The SLR provides first results for the research question [RQ1] und [RQ2]. The search strings are based on three main facets: research object - environment model, qualification - adaptive and restriction - requirements engi- neering and the alternative terms. We have chosen IEEE Xplore Digital Library, Springer Link and Google Scholar as databases for identifying the publications. At the start of the selection process we gathered 455 publications, which were tested by predefined selection and exclusion criteria. This process resulted in 58 relevant publications. In the SLR, we considered elicitation and validation of the environment. Unexpected for us are the few results for these activities. Elicitation is addressed mostly with a few sentences that refer to interviews and meetings. Only one paper compares different elicitation methods like brainstorming, 6-3-5 method, six thinking hats, field observation, apprenticing and interviews. We expected more focus on field observation, because the information about the environment is a priori often not available as mentioned previously. In conclusion, we argue that we need a systematic process for eliciting, mod- eling, and validating the environment: an environmental model provides a refer- ence for requirements, it provides a basis to anticipate changes in the environ- ment, it allows to derive test scenarios, and it helps to monitor the environment at runtime. We identified four major modeling approaches: goal-based, agent-based, rule- based, and state machine modeling. As an example for an approach to model the environment we discuss the goal-oriented approach. A goal-oriented approach fo- cuses on modeling the goals of an actor and how a goal can be achieved over alternative ways. The modeling process trying to find actors and models the rela- tionship between them. There are no opportunities to model a system boundary. It is not relevant for the modeling approach if an actor is part of the system or not, it is important what parts belong to a specific actor and how the actors depend on each other. Additional elements or annotations are used to identify context elements. Figure 2 shows two different ways to represent the environment (i* Example). First, it is a physical or virtual element in the environment of an actor, which is needed to achieve a goal of this actor. The element is represented as a resource element [3]. To handle the complexity and dynamic of an environment, the ap- proaches focusing on specification and specialization of the resource element by adding attributes, annotations, or new siblings. For example, an annotation as a clear label for an element that lies in the environment, or a specialization into monitored resources, which only provide information, or controlled resources, which can be changed from a system. Fig. 2. Views on Environment (i* Example) Second, the environment is represented as actor itself [4]. This leads to a more specific representation of the environment with detailed view of the goals in the environment and how it can achieve them. This also helps to work against the missing environment information, because the environment is not only seen as an interface which provides information or services - instead a more detailed representation of the environment element is presented. This indicates increasing need for more environment information. 3 Research Progress The starting point of the thesis is the iterative enhancement process (shown in Figure 1) tailored for complex, dynamic, and distributed systems. Two empirical studies are planned to analyze and compare the identified approaches for envi- ronment modeling. Based on the results a new integrating environment model will be developed and integrated in a RE tool. The tool and the process will be analyze and validated with empirical studies. In the remainder of this section the previous performed work will be presented and the plans for the rest of the thesis will be discussed. 3.1 Previous Work As mentioned previously, our first approach in this area was a feedback-aware requirements document in [2]. The approach tries to bridge the gap between development time and runtime representations of requirements in order to keep them consistent and to facilitate better understanding. We propose to weave the feedback from the runtime system into requirements documents using a domain- specific language that largely retains the informal nature of requirements. An annotated requirements document helps to get a better understanding of the system’s actual behavior in a given environment. The approach is implemented using mbeddr, a novel set of domain-specific languages for developing embedded systems, and illustrated using a running example. Next we suggested a prototyping and evaluation framework for self- adaptive systems in [5]. The goal of the framework is to ease the prototyping (and possibly development) of adaptive systems. For this purpose, the frame- work offers implementations of selected approaches to adaptive systems based on the MAPE loop. Another goal of the framework is to ease the evaluation of self-configuring systems, to allow for instance benchmarks between different approaches. The framework is able to collect data on a subset of the metrics at runtime about overall quality, effort, and cost. For bench-marking we propose a case from the IoT domain, smart cities in particular, which comprises of hardware and software components, see [6]. Starting point is a smart street lighting system with communication between the lamps and passing cars. Our initial results of running a case study with a model-based prototyping framework on the smart street light are in [6]. The framework includes a software simulation of street lights and the events from the passing cars. The case can be used as a benchmark to compare several approaches in order to make a more informed decision which approach to choose. A systematic literature review on environment modeling for adap- tive systems was performed, in particular from a requirements perspective. We addressed the goals, the modeling concepts as well as the methodological as- pects of environment modeling in our survey. As major results of our survey, we provide an ontology of typical goals of environment models in adaptive system research and a meta-model of existing environment modeling concepts. As a neg- ative finding – and a research opportunity – we find that so far methodological aspects of environmental modeling for requirements engineering have received very little attention. 3.2 Proposed Work Currently, I’m working on a more specific conception of the environment. This includes my view on relevant and irrelevant parts or information that should be included in an environment model - given the extended ways of using it. I am planing to enlarge the case study on IoT as a base for empirical studies to evaluate the identified approaches for environment modeling from our survey. The advantages and disadvantages will be determined. Based on the gathered information a general meta-model for environment modeling will be developed. As a result of my PhD thesis, I will develop a prototype RE tool based on the meta model that includes supporting mechanisms to create environmental models and to enrich this model by prototyping, simulation, and field test. The resulting RE tool will be validated using the IoT case mentioned above and if possible at that time in cooperation with a local company. 4 Acknowledgment This research was supported by graduate school of University of Applied Sciences and Arts, Dortmund. References [1] M. Morandini, L. Penserini, A. Perini, and A. Marchetto. “Engineering re- quirements for adaptive systems”. In: Requirements Engineering 22.1 (2015), pp. 77–103. [2] E. Kamsties, F. Kneer, M. Voelter, B. Igel, and B. Kolb. “Feedback-Aware Requirements Documents for Smart Devices”. In: Requirements Engineer- ing: Foundation for Software Quality - 20th International Working Confer- ence, REFSQ 2014, Essen, Germany, April 7-10, 2014. Proceedings. Ed. by C. Salinesi and I. van de Weerd. Vol. 8396. Lecture Notes in Computer Science. Springer, 2014, pp. 119–134. [3] N. A. Qureshi, I. J. Jureta, and A. Perini. “Towards a Requirements Model- ing Language for Self-adaptive Systems”. In: Proceedings of the 18th Inter- national Conference on Requirements Engineering: Foundation for Software Quality. REFSQ’12. Essen, Germany, 2012, pp. 263–279. [4] J. P. Carvallo and X. Franch. “On the Use of i* for Architecting Hybrid Systems: A Method and an Evaluation Report”. In: The Practice of En- terprise Modeling: Second IFIP WG 8.1 Working Conference, PoEM 2009, Stockholm, Sweden, November 18-19, 2009. Proceedings. Ed. by A. Persson and J. Stirna. Berlin, Heidelberg: Springer Berlin Heidelberg, 2009, pp. 38– 53. [5] F. Kneer and E. Kamsties. “A Framework for Prototyping and Evaluat- ing Self-adaptive Systems - A Research Preview”. In: Joint Proceedings of REFSQ-2016 Workshops, Doctoral Symposium, Research Method Track, and Poster Track co-located with the 22nd International Conference on Re- quirements Engineering: Foundation for Software Quality (REFSQ 2016), Gothenburg, Sweden, March 14, 2016. Ed. by E. Bjarnason et al. Vol. 1564. CEUR Workshop Proceedings. CEUR-WS.org, 2016. [6] F. Kneer and E. Kamsties. “A Case Study on Self-configuring Systems in IoT Based on a Model-Driven Prototyping Approach”. In: Information and Software Technologies - 22nd International Conference, ICIST 2016, Druskininkai, Lithuania, October 13-15, 2016, Proceedings. Ed. by G. Dreg- vaite and R. Damasevicius. Vol. 639. Communications in Computer and Information Science. 2016, pp. 732–741.