=Paper=
{{Paper
|id=Vol-1796/poster-paper-7
|storemode=property
|title=COVER: Change-based Goal Verifier and Reasoner
|pdfUrl=https://ceur-ws.org/Vol-1796/poster-paper-7.pdf
|volume=Vol-1796
|authors=Claudio Menghi,Paola Spoletini,Carlo Ghezzi
|dblpUrl=https://dblp.org/rec/conf/refsq/MenghiSG17a
}}
==COVER: Change-based Goal Verifier and Reasoner==
COVER: Change-based Goal Verifier and Reasoner Claudio Menghi1 , Paola Spoletini2 , and Carlo Ghezzi1 1 Politecnico di Milano, Milano, Italy {claudio.menghi, carlo.ghezzi}@polimi.it 2 Kennesaw State University, Marietta, USA pspoleti@kennesaw.edu? Abstract. COVER is a unified framework that supports the interplay between requirements analysts and software developers. It contracts a bridge between the requirements analyst’s and the software developer’s artifacts by enabling goal model analysis during software design. The goal model produced by the requirements analyst is kept alive and updated while the system is designed. Whenever the design of the system changes, COVER verifies the new design against the requirements of interest. The verification results are used to trigger a goal model analysis procedure. The results of this analysis can be used by the requirements analyst and the software developer to update the goal model or the design of the system. In this paper, we present the tool support developed for COVER. Keywords: iterative design, goal model analysis, partial models. 1 Introduction and Motivation Software development is a complex activity which relies on a sequence of de- velopment steps. It usually starts with the requirements analyst collecting the requirements of the system. The identified requirements are used by the software developer as guidelines in the system design, in which a model of the system is produced. The system design is not a straightforward activity. It usually includes a set of development rounds, in which a partial and incomplete model of the system is iteratively refined. In order to satisfy the customer needs, the software developer must ensure that the final, fully specified, version of the system satisfies the requirements of interest. Researchers’ interest has been mainly focused on two separate aspects. On the one hand, researchers have been working on developing techniques and frame- works to help the requirements analyst in collecting and analyzing requirements. KAOS [2], TROPOS [1] and i∗ [12] are examples of modeling formalisms used to collect and represent requirements. Over the years many techniques have been proposed to analyze them (e.g., [5]). On the other hand, several algorithms and ? Copyright 2017 for this paper by its authors. Copying permitted for private and academic purposes. Claudio Menghi, Paola Spoletini, and Carlo Ghezzi tools to help software developers in the specification of the system behavior and in checking whether the specification satisfies the requirements of the system [8, 7, 10] have been proposed. One of the main problems of current software development techniques is the lack of integration between these two set of tools, and, consequently, the lack of a bridge between requirements analysts’ and the software developers’ work. This mismatch particularly affects modern development life cycles which 1. are heavily based on iterative and incremental development processes and 2. require a strong interaction between the requirements analyst and the software developer. COVER (Change-based gOal VErifier and Reasoner) [11] is a unified frame- work that enables goal model analysis during software design. Its goal is to integrate models used by the requirements analyst and the software developer to support a continuous interaction between these two actors. This would allow requirements and design to evolve together. COVER enables the continuous verification of the requirements of the system through design iterations and triggers the analysis of the verification results over the goal model. It is a general framework that can applied independently of the chosen goal model and the design formalisms. This paper presents the tool support (hereafter called either COVERTool or just COVER) used in a specific instantiation of the framework, where the variation of the TROPOS modeling language presented in [9], Modal Transition Systems (MTS) [8], and Fluent Linear Temporal Logic (FLTL) [4] are chosen as a goal model framework, model for the design of the system, and specification language for functional requirements, respectively. The generic approach and a discussion on the limits of the current instantiation can be found in [11]. The rest of the paper is organized as follows. Section 2 gives an overview of COVERTool. Section 3 describes the user experience in using COVERTool. Finally, Section 4 concludes the paper. 2 Overview COVER3 is a framework that supports the interplay between requirements analysis and design. It can be used to verify which goals of the goal models are satisfied by the new design every time the developer changes the design of the system, and to verify how the current design satisfies the goals of the goal model, when the requirements analyst modifies the goal model. The overall tool support for COVER is a Java 8 application that uses the Goal Reasoning Tool (Gr-tool) [6] as a design framework of goal models and for the label propagation and the Modal Transition System Analyzer (MTSA) [3] for supporting the developer in the system design. An high-level representation of COVER is presented in Fig. 1. Additional details on the framework can be found in [11]. The framework consists mainly of three main parts: the goal model design and requirements specification, the system design, and the design verification, which enables the goal model analysis. 3 The tool is available at https://github.com/claudiomenghi/COVER. COVER: Change-based Goal Verifier and Reasoner Goal Model Design G1 → ⊤ G1 G2 → ? G2 G3 G3 → ⊥ … … ….. … … Goal Model Analysis t1 t2 … … … … Requirements Specification G(P(F1 → ◇(F2)) → F(Q)) G(P → F(Q)) MTSA Analyst System Design MTSA ⊤/?/⊥ ⊤/?/⊥ Design Verification ⊤/?/⊥ e1 e2 Developer FEEDBACK INPUT OUTPUT USAGE Fig. 1. An high-level overview of the COVER. Goal model design and requirements specification. The requirements analyst develops a TROPOS goal model for the system using Gr-tool. Goals are refined into requirements, which, in turn, are decomposed into tasks, i.e., the functionalities the system has to provide. The completion of a task is indicated by the developer with an event: the system generates the event if and only if the task of interest has been accomplished. The analyst uses these events to provide a formal description of some of the goals of the system. The analyst chooses the set of requirements to be formally specified in FLTL depending on the system under development. Note that events and FLTL formulae are not part of TROPOS; they are used to link the requirements analyst and developers models. System design. The software developer produces a high-level model of the system to be in MTSs. Then, she/he iteratively decomposes the system until the behaviors of all of its components are specified. Design verification and goal model analysis. COVER verifies the new (incomplete/partial) design of the system. It relies on MTSA as a verification tool for MTSs. Since the model is incomplete, the verification procedure may return three different values: > if the property is satisfied by the current design, no matter how the undefined parts of the system will be later refined; ⊥ if the property is not satisfied; ? whether its satisfaction depends on the parts which still have to be refined. The values obtained from the verification of the system design are used to trigger the analysis of the goal model. Each goal of the goal model is associated with an initial value, which specifies whether it is satisfied, possibly satisfied, Claudio Menghi, Paola Spoletini, and Carlo Ghezzi or not satisfied by the current design. The goals that have not been formalized are considered as not satisfied. A label propagation algorithm is then used to propagate the initial values. The label propagation algorithm in [6] is modified according to the three valued semantic used in the verification of the goal model. The results are used by the requirements analyst and the software developer to change the goal model and the design of the system, respectively. Further details can be found in [11]. 3 User experience We describe how COVER can be used by requirements analysts and software developers. Requirements analyst perspective. The analyst identifies the requirements of the system in TROPOS, using the Gr-Tool. We assume that the developer specifies each goal by means of an identifier followed by the goal name, i.e., the textual description of each goal matches the following pattern: IDENTIFIER: GOAL NAME. When the final version of the goal model is produced, the requirements analyst formally specifies the requirements of interest. The analyst provides the specification of the requirements in a file with extension .lts. This file contains a set of FLTL formulae that formally specify the goals of the system. Each goal starts with an identifier followed by a semi column (e.g., G1 :) which is preceded by the keyword assert. When the formalization of the requirements ends, the requirements analyst forwards the produced file to the software developer. 1 java - jar COVER . jar initGoalModel . goal design . lts PROC finalGoalModel . goal Listing 1.1. Running COVER When the software developer produces a new (partial) model of the system, a modified version of the file .lts, containing also a behavioral model of the system, is delivered to the requirements analyst. The analyst runs COVERTool by executing the command in Listing 1.1, where: – initGoalModel.goal is the original goal model to be considered; – design.lts is the design to be verified; – PROC is the identifier of the process specified by the MTS contained in the file design.lts to be considered by the verification procedure; – finalGoalModel.goal is a file that will contain the goal model updated with the results of the label propagation. An example of the tool’s output is shown in Fig. 2a. COVERTool loads the goal model and iteratively analyzes its goals. When a goal is analyzed, COVERTool extracts the identifier of the goal and checks if the file design.lts contains an FLTL property associated with the goal. If a property is specified, it is verified w.r.t. the process PROC specified as parameter in the COVER Tool invocation. When all the properties are verified, the label propagation algorithm is executed. COVER: Change-based Goal Verifier and Reasoner (a) An example of COVER output. (b) Inspecting the output using the Gr-Tool. Fig. 2. An example of interaction with COVER. The requirements analyst can graphically inspect the results obtained by COVERTool and contained in the file finalGoalModel.goal using the Gr-Tool. For example, Fig. 2b shows an example of results obtained using COVER. The column Input SAT contains the results of the verification procedure, where the values T and P specify that the property is satisfied and possibly satisfied, respectively. When a goal is associated with no value, it is either violated or not associated with an FLTL formula. The column Output SAT contains the results obtained by running the label propagation algorithm. The requirements analyst can use these results to improve its goal model. Additional details on how these results are used to change the goal model can be found in [11]. The analyst executes the previously described procedure also when she/he already possesses a design of the system and she/he changes its goal model. This allows her/him to verify which goals of the new goal model are satisfied by design. Software developer perspective. The software developer receives from the requirements analyst the file containing the requirements that the system has to satisfy. The developer produces a behavioral model of the system basing his/her decision on the received requirements and then uses MTSA to verify if the produced model satisfies/possibly satisfies the requirements of interest. MTSA per se does not provide any feedback about the impact of the design decision over the goal satisfaction, but COVERTool in which MTSA is integrated provides this functionality and propagates the results obtained with MTSA back to the goal model. This allows the software developer to analyze the consequences of her/his design choices over the goal satisfaction. Claudio Menghi, Paola Spoletini, and Carlo Ghezzi COVERTool is executed using the command specified in Listing 1.1. The obtained results are inspected using the Gr-Tool. The software developer can use the results of the label propagation algorithm to improve its design. Additional details can be found in [11]. 4 Conclusion This paper presented the tool support for COVER, a unified framework that enables goal model analysis during the software development. The goal model produced by the requirements analyst is kept alive during the design of the system. At each refinement round, i.e., whenever the developer produces a new increment or changes something in the model, the new (incomplete) design of the system is verified. The verification results are used to analyze the set of goals of the goal model that are currently satisfied, possibly satisfied and not satisfied. References 1. P. Bresciani, A. Perini, P. Giorgini, F. Giunchiglia, and J. Mylopoulos. Tropos: An agent-oriented software development methodology. Autonomous Agents and Multi-Agent Systems, 8(3):203–236, 2004. 2. A. Dardenne, A. Van Lamsweerde, and S. Fickas. Goal-directed requirements acquisition. Science of computer programming, 20(1):3–50, 1993. 3. N. D’Ippolito, D. Fischbein, M. Chechik, and S. Uchitel. MTSA: The Modal Transition System Analyser. In International Conference on Automated Software Engineering, pages 475–476. IEEE, 2008. 4. D. Giannakopoulou and J. Magee. Fluent Model Checking for Event-Based Systems. In Symposium on Foundations of Software Engineering, pages 257–266, 2003. 5. P. Giorgini, J. Mylopoulos, E. Nicchiarelli, and R. Sebastiani. Formal reasoning techniques for goal models. In Journal on Data Semantics I. Springer, 2003. 6. P. Giorgini, J. Mylopoulos, and R. Sebastiani. Goal-oriented requirements analysis and reasoning in the tropos methodology. Engineering Applications of Artificial Intelligence, 18(2):159–171, Mar. 2005. 7. M. Huth, R. Jagadeesan, and D. Schmidt. Modal transition systems: A foundation for three-valued program analysis. In Programming Languages and Systems, pages 155–169. Springer, 2001. 8. K. G. Larsen and B. Thomsen. A modal process logic. In Logic in Computer Science, pages 203–210. IEEE, 1988. 9. S. Liaskos, S. A. McIlraith, S. Sohrabi, and J. Mylopoulos. Integrating prefer- ences into goal models for requirements engineering. In Requirements Engineering Conference, pages 135–144. IEEE, 2010. 10. C. Menghi, P. Spoletini, and C. Ghezzi. Dealing with incompleteness in automata- based model checking. In Formal Methods, volume 9995, pages 531–550, 2016. 11. C. Menghi, P. Spoletini, and C. Ghezzi. To appear in: Requirements engineering: Foundation for software quality, REFSQ. Lecture Notes in Computer Science. Springer, 2017. 12. E. S. Yu. Towards modelling and reasoning support for early-phase requirements engineering. In Requirements Engineering Conference, pages 226–235. IEEE, 1997.