<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>The Slingshot Simulator: An Extensible Event-Driven PCM Simulator</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Julijan Katić</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Floriment Klinaku</string-name>
          <email>floriment.klinaku@iste.uni-stuttgart.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Stefen</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Becker</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Workshop Proceedings</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Software Quality and Architecture, University of Stuttgart</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Context</title>
      <p>
        and EventSim [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. Objective</title>
      <p>
        Architects can use the Palladio Component Model (PCM) to model and evaluate the performance
of software systems at design-time [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. One way of conducting the evaluation is by interpreting
the models by so-called performance simulators. Notable PCM simulators are the SimuLizar [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]
      </p>
      <p>
        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 dificult
to extend and maintain. Although SimuLizar, for example, provides many (explicit) extension
points for diferent 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) [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] called Slingshot.
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.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Method</title>
      <p>
        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
metaevents 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
Lackof-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) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>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.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Results</title>
      <p>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 sufered by the scenario. The results, therefore, suggest that extensibility
is afected if the right software architecture was chosen, and that it can be improved by using
EDA.</p>
      <p>
        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 [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. In the future, a case study should be conducted to
improve the analysis. Thus, the results only suggest that Slingshot is currently more extensible.
      </p>
      <p>At the moment, Slingshot is still under development. As of now, only the standard
interpretation is featured. Later, it will also be able to monitor and simulate self-adaptive systems.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusion</title>
      <p>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 sufers in areas
where SimuLizar and EventSim are providing extension points. Also, other metrics such as
performance and validity are still being investigated.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>R.</given-names>
            <surname>Reussner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Becker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Burger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Happe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Hauck</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Koziolek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Koziolek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Krogmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kuperberg</surname>
          </string-name>
          , The Palladio Component Model,
          <source>Technical Report 14, Karlsruher Institut für Technologie (KIT)</source>
          ,
          <year>2011</year>
          .
          <source>doi:1 0 . 5 4 4 5 / I R / 1</source>
          <volume>0 0 0 0 2 2 5 0 3 .</volume>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Becker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Becker</surname>
          </string-name>
          , J. Meyer, Simulizar:
          <article-title>Desing-time modeling and performance analysis of self-adaptive systems</article-title>
          , in: S. Kowalewski,
          <string-name>
            <surname>B.</surname>
          </string-name>
          Rumpe (Eds.),
          <source>Software Engineering</source>
          <year>2013</year>
          ,
          <article-title>Gesellschaft für Informatik e</article-title>
          .V.,
          <string-name>
            <surname>Bonn</surname>
          </string-name>
          ,
          <year>2013</year>
          , pp.
          <fpage>71</fpage>
          -
          <lpage>84</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>P.</given-names>
            <surname>Merkle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Henß</surname>
          </string-name>
          ,
          <article-title>Eventsim - an event-driven palladio software architecture simulator</article-title>
          ,
          <source>in: Palladio Days 2011. Proceedings, 17-18 November</source>
          <year>2011</year>
          , FZI Forschungszentrum Informatik, Karlsruhe, Germany. Ed.: S. Becker,
          <article-title>number 32 in Karlsruhe Reports in Informatics (früher: Interner Bericht</article-title>
          .
          <source>Fakultät für Informatik</source>
          ,
          <source>Karlsruher Institut für Technologie)</source>
          ,
          <year>2011</year>
          , pp.
          <fpage>15</fpage>
          -
          <lpage>22</lpage>
          .
          <source>doi:1 0 . 5 4 4 5 / I R / 1</source>
          <volume>0 0 0 0 2 5 1 8 8 .</volume>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>R.</given-names>
            <surname>Bruns</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Dunkel</surname>
          </string-name>
          ,
          <string-name>
            <surname>Event-Driven</surname>
            <given-names>Architecture</given-names>
          </string-name>
          , Springer,
          <year>2010</year>
          .
          <source>doi:1 0 . 1 0</source>
          <volume>0 7 / 9 7 8 - 3 - 6 4 2 - 0 2 4 3 9 - 9</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>T.</given-names>
            <surname>Vernezza</surname>
          </string-name>
          , G. Granatella,
          <string-name>
            <given-names>G.</given-names>
            <surname>Succi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Benedicenti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mintchev</surname>
          </string-name>
          ,
          <article-title>Defining metrics for software components</article-title>
          ,
          <source>Proceedings of. World Multi-conference on Systematics, Cubernetics and Informatics</source>
          <volume>11</volume>
          (
          <year>2000</year>
          )
          <fpage>16</fpage>
          -
          <lpage>23</lpage>
          . URL: http://citeseerx.ist.psu.edu/viewdoc/download?doi
          <source>= 10.1.1.205.8052&amp;rep=rep1&amp;type=pdf.</source>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Kelly</surname>
          </string-name>
          ,
          <article-title>The philosophy of extensible software, The Internet's Coming Silent Spring (</article-title>
          <year>2002</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>