=Paper=
{{Paper
|id=Vol-3043/poster7
|storemode=property
|title=The Slingshot Simulator: An Extensible Event-Driven PCM Simulator (Poster)
|pdfUrl=https://ceur-ws.org/Vol-3043/poster7.pdf
|volume=Vol-3043
|authors=Julijan Katic,Floriment Klinaku,Steffen Becker
|dblpUrl=https://dblp.org/rec/conf/kpdays/KaticK021
}}
==The Slingshot Simulator: An Extensible Event-Driven PCM Simulator (Poster)==
The Slingshot Simulator: An Extensible Event-Driven PCM Simulator Julijan Katić, Floriment Klinaku and Steffen Becker Software Quality and Architecture, University of Stuttgart, Germany Keywords Palladio Component Model, performance simulator, event-driven architecture, extensibility 1. Context Architects can use the Palladio Component Model (PCM) to model and evaluate the performance of software systems at design-time [1]. One way of conducting the evaluation is by interpreting the models by so-called performance simulators. Notable PCM simulators are the SimuLizar [2] and EventSim [3]. However, over the years both software performance simulators together with the PCM language itself were enhanced with new features, resulting in large code base that is difficult to extend and maintain. Although SimuLizar, for example, provides many (explicit) extension points for different purposes, the monolithic architecture is resistant against changes, making it complex to introduce new extension points. All in all, we introduce a new simulator for PCM models that bases on the Event-Driven Architecture (EDA) [4] called Slingshot. 2. Objective The Slingshot simulator is also a PCM simulator and is created with extensibility in mind. We found that an appropriate architecture - in this case the Event-Driven Architecture - can allow us to easily add and remove features into the system . The main objective is to know whether EDA improves extensibility for PCM simulators. For understanding this we compare the current prototypical implementation of Slingshot with the state-of-the-art PCM simulators with respect to extensibility. Each extension should furthermore be able to contribute their own events, making them inherently extensible as well. This work introduces the architecture of the Slingshot simulator that follows the EDA paradigm, the results on extensibility and the current state of development. SSP 2021: 12th Symposium on Software Performance 2021 Envelope-Open st154933@stud.uni-stuttgart.de (J. Katić); floriment.klinaku@iste.uni-stuttgart.de (F. Klinaku); steffen.becker@iste.uni-stuttgart.de (S. Becker) © 2021 Copyright for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0). CEUR Workshop Proceedings http://ceur-ws.org ISSN 1613-0073 CEUR Workshop Proceedings (CEUR-WS.org) 3. Method First, we developed the core module of Slingshot after several architecture reviews. This module contains one extension point in which new features can be plugged-in. Furthermore, core meta- events are defined to describe the run-time state of the system, on which extensions can react and behave accordingly. This allows for implementing specific simulation behaviors directly afterwards, such as the standard interpreters (usage model, system and resource interpretation). Finally, the implementation is compared to the other simulators by using specific software metrics. Typically, the software metrics for analyzing extensibility are cohesion (such as Lack- of-Cohesion-in-Methods (LCOM)) and coupling (such as Coupling-Between-Objects (CBO)), since highly cohesive, loosely coupled and modular systems tend to be extensible. Furthermore, changeability also factors into extensibility. However, these software metrics are defined on a class-level. Because modularity is more important for extensibility, we needed metrics such as EXTCBO (external coupling between object classes) and CC (component cohesion) [5]. For changeability, we counted the number of lines that needed to be changed in the existing code base when adding a certain interpretation behavior in the simulators. For SimuLizar and EventSim, we hypothetically removed the lines responsible for that behavior and looked at what changes were needed. 4. Results The results show that EDA does improve extensibility without creating further explicit extension points. On one hand, Slingshot requires less configuration when adding new extensions. Furthermore, as long as the modules remain highly cohesive, Slingshot has looser coupling and is highly changeable. On the other hand, even though SimuLizar has rather low EXTCBO, it is hardly adaptable to new features since it provides only a finite set of extension points. Its changeability also suffered by the scenario. The results, therefore, suggest that extensibility is affected if the right software architecture was chosen, and that it can be improved by using EDA. It is important to note that the current results only show the aspect of adding another interpreter into the system. However, extensibility is subjective to the developers and their skill-set, as well as documentation [6]. In the future, a case study should be conducted to improve the analysis. Thus, the results only suggest that Slingshot is currently more extensible. At the moment, Slingshot is still under development. As of now, only the standard interpre- tation is featured. Later, it will also be able to monitor and simulate self-adaptive systems. 5. Conclusion We create a new PCM simulator named Slingshot to achieve high extensibility. The results suggest that Slingshot is extensible regarding adding of new simulation capabilities by simply listening to existing events and contributing new events. However, further analysis is needed to check whether extensibility is achieved in all aspects, and whether Slingshot suffers in areas where SimuLizar and EventSim are providing extension points. Also, other metrics such as performance and validity are still being investigated. References [1] R. Reussner, S. Becker, E. Burger, J. Happe, M. Hauck, A. Koziolek, H. Koziolek, K. Krogmann, M. Kuperberg, The Palladio Component Model, Technical Report 14, Karlsruher Institut für Technologie (KIT), 2011. doi:1 0 . 5 4 4 5 / I R / 1 0 0 0 0 2 2 5 0 3 . [2] M. Becker, S. Becker, J. Meyer, Simulizar: Desing-time modeling and performance analysis of self-adaptive systems, in: S. Kowalewski, B. Rumpe (Eds.), Software Engineering 2013, Gesellschaft für Informatik e.V., Bonn, 2013, pp. 71–84. [3] P. Merkle, J. Henß, Eventsim - an event-driven palladio software architecture simulator, in: Palladio Days 2011. Proceedings, 17-18 November 2011, FZI Forschungszentrum Informatik, Karlsruhe, Germany. Ed.: S. Becker, number 32 in Karlsruhe Reports in Informatics (früher: Interner Bericht. Fakultät für Informatik, Karlsruher Institut für Technologie), 2011, pp. 15–22. doi:1 0 . 5 4 4 5 / I R / 1 0 0 0 0 2 5 1 8 8 . [4] R. Bruns, J. Dunkel, Event-Driven Architecture, Springer, 2010. doi:1 0 . 1 0 0 7 / 978- 3- 642- 02439- 9. [5] T. Vernezza, G. Granatella, G. Succi, L. Benedicenti, M. Mintchev, Defining metrics for software components, Proceedings of. World Multi-conference on Systematics, Cubernetics and Informatics 11 (2000) 16–23. URL: http://citeseerx.ist.psu.edu/viewdoc/download?doi= 10.1.1.205.8052&rep=rep1&type=pdf. [6] A. Kelly, The philosophy of extensible software, The Internet’s Coming Silent Spring (2002).