<!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>UML profiles for non-functional properties at work: analyzing reliability, availability and performance ?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Luca Berardinelliy</string-name>
          <email>luca.berardinelli@univaq.it</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Simona Bernardix</string-name>
          <email>bernardi@di.unito.it</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vittorio Cortellessay</string-name>
          <email>vittorio.cortellessa@univaq.it</email>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jose´ Merseguerz</string-name>
        </contrib>
      </contrib-group>
      <abstract>
        <p>The modeling and validation of Non-Functional Properties (NFPs) is a crucial task for software systems to satisfy user expectations then for software projects to succeed. Nevertheless this research field still suffers the heterogeneity of hermetic approaches aiming to the modeling and validation of one single non-functional property without sharing information among them and loosing the view of the system as a whole. In this paper we present preliminary results on modeling and analysis of different NFPs starting from a single UML model, suitably extended with profiles like MARTE and DAM. To support the validity of modeling we show how the approach allows the derivation of Petri Net, Queuing Network and Fault Tree models for analyzing, respectively, availability, performance and reliability indices of a software system under development.</p>
      </abstract>
      <kwd-group>
        <kwd>UML</kwd>
        <kwd>Availability</kwd>
        <kwd>Performance</kwd>
        <kwd>Reliability</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Although it is acknowledged that the importance of non-functional properties (NFPs)
is at least the same as the functional ones, there is nonetheless a large path to walk for
NFPs modeling and analysis to gain the maturity of the functional ones. In this path,
it has been identified that the integration of various non-functional system properties
into a unified representation would be an asset and likely a must. Such representation
would not only favor the NFP modeling but also support further reasoning about such
properties. This paper tries to be one step ahead in this direction by showing that it is
feasible to model and analyze different NFPs within the same framework. In particular
we focus on dependability [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and performance [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] properties.
      </p>
      <p>
        The standard profile for Modeling and Analysis of Real Time and Embedded
systems (MARTE) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] has enabled UML to the specification and analysis of NFPs in terms
of performance attributes. Later, the non-standard profile for Dependability Analysis
and Modeling (DAM) [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] accomplished the same tasks for dependability attributes.
Indeed, being DAM a MARTE specialization, these profiles can be together used to
annotate NFPs in UML models to jointly describe their performance and dependability
properties, metrics and input parameters.
      </p>
      <p>
        In particular, DAM follows the proposal in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and allows one to express different
dependability properties: reliability, availability, maintainability and safety. MARTE
and DAM were jointly used in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] for the modeling of fault tolerance mechanisms
such as replication, where it has also been shown how to analyze availability system
properties.
      </p>
      <p>
        In this paper, we introduce a case study in the eHealth domain that needs to be
assessed for availability, reliability and performance. We work on this case study to
produce, with the support of MARTE and DAM together, a unified design that accounts for
all these properties. Moreover, once the design is obtained, we describe how to extract
analyzable non-functional models from it. Concretely, Petri Nets [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] for availability,
Fault Trees [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] for reliability and Queuing Networks [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] for performance.
      </p>
      <p>In the remainder of this section we recall some important aspects of MARTE and
DAM which are necessary to understand the rest of the work. Section 2 will present
the UML design of the eHealth system. Sections 3, 4 and 5 will respectively describe
each domain (reliability, availability and performance), some of the MARTE and DAM
modeling peculiarities and the analysis of the model generated from the annotated UML
model of the case study. Finally in Section 6 we discuss the existing literature and we
conclude the paper.
1.1</p>
      <p>Background on MARTE and DAM
MARTE is a UML lightweight extension (i.e., through the use of UML stereotypes and
tagged-values) to support the modeling and analysis of systems that need to verify
timing constraints. In particular, MARTE allows one to specify non-functional properties
(NFPs) according to a well-defined Value Specification Language (VSL) syntax. DAM
is a MARTE specialization. Hence a MARTE/DAM annotation stereotypes a design
model element in the way UML proposes, i.e. by extending its semantics.</p>
      <p>The DAM profile supports the specification of dependability properties and
requirements, such as reliability, availability, maintainability and safety. It can be used also
to characterize the threats affecting the system components and services (i.e., faults,
errors, failures and hazards) and their relationships (e.g., error propagation and
causeeffect relationship between threats) and, for repairable systems, the recovery strategies.
Both qualitative and quantitative information can be specified with the use of
taggedvalues, for example, regarding the threats characterization, the component/service
failure modes and the probability of error propagation between two interacting
components, respectively 1.</p>
      <p>
        The entire set of MARTE stereotypes can be found in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], while the DAM
stereotypes, as well as the set of UML meta-classes that the stereotypes can be applied to, can
be found in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
1 Concerning the latter, i.e. error propagation, we note that currently DAM allows the
specification of a very basic model, however we are investigating how to represent more complex
ones.
      </p>
      <p>&lt;&lt;stereotype&gt;&gt;</p>
      <p>GaStep
hostDemand: NFP_Duration
prob: NFP_Real
....</p>
      <p>&lt;&lt;stereotype&gt;&gt;</p>
      <p>GaWorkloadEvent
pattern: ArrivalPattern
....</p>
      <p>(a)
&lt;&lt;stereotype&gt;&gt;</p>
      <p>DAM::DaStep
kind: StepKind
recovery: DaRecovery
failure: DaFailure
.....</p>
      <p>&lt;&lt;stereotype&gt;&gt;</p>
      <p>DAM::DaVariant
multiplicity: NFP_Integer</p>
      <p>&lt;&lt;stereotype&gt;&gt;
DAM::DaComponent
fault: DaFault
....</p>
      <p>&lt;&lt;stereotype&gt;&gt;</p>
      <p>DAM::DaService
ssAvail:NFP_Percentage
execProb:NFP_Real
....</p>
      <p>(b)
&lt;&lt;stereotype&gt;&gt;
DAM::DaConnector
fault: DaFault
....</p>
      <p>&lt;&lt;stereotype&gt;&gt;</p>
      <p>DAM::DaSpare
dormancyFactor: NFP_Real
....</p>
      <p>&lt;&lt;tupleType&gt;&gt;
DAM_Library:ComplexDA_Type::</p>
      <p>DaFault
occurrenceRate: DaFrequency
occurrenceProb: NFP_Real
persistency: Persistency
duration: NFP_Duration
.....</p>
      <p>&lt;&lt;tupleType&gt;&gt;
DAM_Library::ComplexDA_Types::</p>
      <p>DaFailure
occurenceRate: DaFrequency
.....</p>
      <p>(c)
We present in this section a case study in the context of an eHealth system that will be
a leading example of this paper.</p>
      <p>
        The system was developed in [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] and now is equipped with a Message
Redundancy Service (MRS) taken from [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. The goal of MRS is to provide availability and
reliability capabilities to the original eHealth system.
      </p>
      <p>The eHealth system aims to support doctor’s everyday activities, and the Use Case
Diagram (UCD) in Figure 2(a) summarizes these activities.</p>
      <p>For instance, the dynamics of Make Prescription use case is modeled by the
Sequence Diagram (SD) in Figure 2(d). It considers that, after visiting the patient, the
doctor can make a prescription to be sent to the hospital (pharmacy) where eventually
the patient will take (buy) the medicines. The doctor uses the component Client
installed in his/her PDA to effectively fill and send the prescription.</p>
      <p>The Client component encrypts the prescription since it has to arrive to the target
receiver free of viruses and malicious attacks. At this point, the MRS comes into play:
it provides a Message Replicator (MR) component that can receive encrypted
files to be scanned and delivered in trust.</p>
      <p>For each file, MR creates a Redundancy Manager (RM) that replicates the
messages and assigns each one to a Payload component for the actual scanning.
Indeed, each RM creates $N Payloads that will vote for the file integrity. The RM will
need at least ($N=2) + 1 results or votes from the Payloads to decide if the file has to
be sent. In positive case, the RM decrypts the file and sends the prescription through a
secure LAN (see Fig. 2(b)), otherwise the file is discarded.</p>
      <p>The SD in Figure 2(e) models the dynamics of the RequestPatientInfoPages
use case. The service allows the doctor to retrieve mixed media information on his/her
patients that combines text with or without different kinds of images that refer to their
personal data, their medical histories and patient-related diseases. The patient’s related
pages are finally available on the doctor’s PDA.</p>
      <p>Finally, the Deployment Diagram (DD) in Figure 2(b) depicts for each system
component its actual location (e.g., the Client component deployed on the Doctor’s
PDA).</p>
      <p>It is interesting to remark some aspects. The database is linked to a secured LAN
(Figure 2(b)), so to protect its records. However the image server is linked to the WAN
which is not secured. The components that make up the MRS (i.e. MR, RM and
Payloads) are also deployed in nodes linked to the secured LAN. Moreover node0, the
one hosting MR and RM, is backed up with a spare node1 to increase the system
availability. Indeed MR and RM move to node1 whenever node0 fails.</p>
      <p>Another aspect of interest is how the hardware Fault ($ft rateNode) attached
to node0 is propagated as a software Failure (see the Failure annotation in the MR
statechart): we keep the variable name $ft rateNode in both annotations to match
the propagation. The rationale behind it is that when node0 is faulty then the software
allocated on it (i.e. MR and RM) will get failing, as represented in case of MR by the
Down state in its statechart.</p>
      <p>Finally, note that in Figure 2(b) some components are replicated, for example the
nodes hosting Payloads. We model this characteristic with the resMult tag, that in
this case accounts for $M * $N nodes. The default value for resMult is 1, so nodes
without this tag will not be replicated.
3</p>
    </sec>
    <sec id="sec-2">
      <title>Reliability Modeling and Analysis</title>
      <p>In this section we show how to build a reliability model starting from the eHealth UML
model illustrated in Section 2.</p>
      <p>
        As a target reliability model we have considered the one presented in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], that is a
model that expresses the reliability on demand of a component-based system as a
function of: (i) the reliability of software components and connectors, (ii) the operational
      </p>
      <p>Fig. 2. UML models of eHealth case study.
profile. In the latter the probability of invocation of use cases (each corresponding to a
SD) and the number of invocations of components and connectors are included 2.</p>
      <p>The probability of failure on demand in the original model is expressed as follows:
µS = 1 ¡</p>
      <p>K N
X pk(Y(1 ¡ µi)bpik ¢ Y (1 ¡ Ãij )interact(i;j;k))
k=1 i=1 (i;j)
(1)
where:
– K is the number of system scenarios;
– pk is the probability of execution of scenario k;
– µS is the failure probability on demand of the whole system;
– µi is the failure probability on demand of a software component i;
– bpik is the number of busy periods (i.e. invocations) of component i within scenario
k;
– N is the number of software components;
– Ãij is the failure probability on demand of a software connector between
components i and j;
– interact(i; j; k) is the number of interactions between components i and j within
scenario k (i.e. the number of times the connector between these two components
is used);</p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] it has been illustrated how such model can be straightforwardly obtained
from annotated UML diagrams. However, in order to make more explicit the
transformation, and also to produce a model based on a well-known reliability notation,
equation (1) has been reformulated here as a Fault Tree [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
      </p>
      <p>A Fault Tree is a tree whose nodes are events and logical operators (i.e. AND, OR,
NOT), and where the root contains an undesired effect. Each event that could cause
this effect is added to the tree as a series of logic expressions. When fault trees are
labeled with failure probabilities (i.e. the probabilities of these causes to occur), the
failure probability of the root effect or any other intermediate event can be evaluated by
solving the fault tree.</p>
      <p>
        Figure 3 shows the Fault Tree that has been obtained for the eHealth example and
that we use to illustrate the transformation step. Round boxes represent basic events that
cannot be split, whereas square boxes represent composite events. The remaining nodes
represent logical operators.
2 In the original model [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] the reliability on demand can be intended either as a probability
distribution function (over the number of invocations) or as its expected value. For sake of
simplicity, in this paper we only work with expected values.
      </p>
      <p>eHealth System
&lt;&lt;DaService&gt;&gt;
RequestPatientInfo
&lt;&lt;DaService&gt;&gt;
MakePrescription
&lt;&lt;DaService&gt;&gt;
RequestDoctorInfo
&lt;&lt;DaService&gt;&gt;
execProb=0.56</p>
      <p>Components and
connectors
&lt;&lt;DaService&gt;&gt;
execProb=0.26</p>
      <p>Components and
connectors
&lt;&lt;DaService&gt;&gt;
execProb=0.18</p>
      <p>Components and</p>
      <p>connectors
&lt;&lt;DaConnector&gt;&gt; &lt;&lt;DaComponent&gt;&gt;</p>
      <p>WAN Client
&lt;&lt;DaComponent&gt;&gt;</p>
      <p>MsgReplicator
&lt;&lt;DaComponent&gt;&gt;</p>
      <p>RedundancyMgr
…
interact = 2
…
bp = 2
…
bp = 4
…
bp = f(N)</p>
      <p>
        The effect in the root of Figure 3 is the failure of the whole eHealth system. Such
failure can be caused by a failure in any software component or connector under the
hypothesis that component/connector failures are non-maskable and unrepairable. This
hypothesis undergoes the original model and has been simply inherited here. More
complex reliability models can be considered, for example analytical models that take into
account error propagation, such as the one in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. However, in order to deal with a
more complex reliability model our approach might only need to extend the DAM
profile with the missing parameters (if any), so to make UML models ready to embed those
annotations to produce more complex reliability models (see footnote in Section 1.1).
      </p>
      <p>The second layer of the tree (from the top) includes all possible eHealth use cases,
as modeled in the Use Case Diagram of Figure 2(a). Each (square) node at this layer
represents the correct execution of the corresponding SD (i.e. the execution without
failures). The root is connected to the three nodes through a NOR operator because the
system fails if some use case has not been correctly completed.</p>
      <p>In the third layer of the tree, for sake of modeling the correct execution of each use
case two events are joined (through an AND operator) that are: (i) the invocation of the
use case and (ii) the correct execution of all components and connectors within the use
case. A round box in this layer represents the former event labeled with its probability
(i.e. the probability of use case execution, as reported in the Use Case Diagram of Figure
2(a)), whereas a square box represents the latter event as follows.</p>
      <p>As illustrated in equation (1), the probability of correct execution of a use case
is the probability that none of components and connectors fails within the SD that
represents its dynamics. Therefore the three bottommost layers of Figure 3 represent
the combination of correct executions of software components and correct interactions
over software connectors. Such further layers have been illustrated only for the Make
Prescription use case, that is the one on which we have focused our analysis.</p>
      <p>Note, however, that only components and connectors subject to failures have been
reported in the Fault Tree, because the remaining ones do not contribute to the use
case reliability. In particular, as illustrated in Figure 2(d), we assume that Payload and
HospRec cannot fail, and also the user is not subject to failures while entering inputs.
Besides, we have assumed that interactions among co-deployed components (such as
Message Replicator and Redundancy Manager) cannot fail because they are based on
reliable shared memory, whereas remote interactions passing through the WAN are
subject to failures (see Figure 2(b)).</p>
      <p>
        Finally, at the bottommost layer each component/connector is replicated for the
number of times it is used within the SD, and such number is annotated (for sake of
readability) under the corresponding element. Following equation (1), such number is
called bp for components and interact for connectors. Such values are evaluated by
processing the SD and simply counting the number of activations along the lifeline
of each component (for bp), and the number of messages exchanged among pairs of
components (for interact) 3 [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>Once labeled all bottommost leaves with their failure probabilities (i.e. µi for the
components and Ãij for the connectors), it is straightforward that the tree evaluation
brings in the root the failure probability of the whole system given by equation (1) 4.</p>
      <p>In what follows, for sake of illustration, we show the analysis of the reliability of the
Make Prescription use case, that is the probability associated to the square box
Components and connectors corresponding to this use case. For tree construction, the
probability associated to this node is the reliability of this use case, which corresponds
to the following expression</p>
      <p>N
Y(1 ¡ µi)bpik ¢ Y (1 ¡ Ãij )interact(i;j;k)
i=1 (i;j)
(2)
opportunely instantiated on the components and connectors shown in Figure 3. In
particular, the expression that we obtain here is:
(1¡µClient)2¢(1¡µMsgReplicator)4¢(1¡µRedundancyMgr)f(N)¢(1¡ÃClient¡MsgReplicator)2
(3)
where bp and interact values have been obtained by parsing the SD in Figure 2(d).
The failure probabilities of components and connectors in expression (3) have been all
annotated in the UML diagrams of Figure 2, therefore the transformation is completed
by this last step of porting these annotations as parameters of the model. In detail, we
obtain the following expression 5:
3 Note that the number of invocations of the Redundancy Manager has been expressed as a
function of N that is the loop parameter in the Make Prescription SD of Figure 2(d).
4 In order to maintain a tree structure, a single component/connector may appear multiple times
as a tree leave because it may be involved in multiple SDs. In this case its reliability value must
be replicated overall instances.
5 The amount of busy periods have been calculated on the basis of loop iterations in the scenario.
(1¡f t probP DA)2¢(1¡f t probN ode)4¢(1¡f t probN ode)5N=2+2:8¢(1¡f t probW AN )2
(4)</p>
      <p>For sake of consistency with the other types of analysis performed in this paper, we
have solved expression (4) for the following set of values: N = 3, f t probP DA =
0:001, f t probN ode = 0:00001. We have assigned three values to f t probW AN for
analyzing the sensitivity of the use case reliability to the failure probability of the WAN.
The results are summarized in the following table:</p>
      <p>WAN failure probability (f t probW AN ) Make Prescription reliability</p>
      <p>The first row of Table 1 is an obvious result due to the assumption that each failure
is unmaskable and unrepairable, therefore if the WAN certainly fails then the whole use
case certainly fails. The second and third row provide an idea of use case reliability
growth while growing the reliability of the WAN.</p>
      <p>This provides a proof of concept that annotations introduced in the UML diagrams
of Figure 2 are rich enough to generate a Fault Tree model and make a reliability
analysis of the system.
4</p>
    </sec>
    <sec id="sec-3">
      <title>Availability Modeling and Analysis</title>
      <p>One of the non-functional requirements of the eHealth system is related to the
availability. In particular, considering the ssAvail tagged-value associated to the
MakePrescription use case in Figure 2(a), the MakePrescription service should be available at least
99% of the time.</p>
      <p>
        We use the Generalized Stochastic Petri Nets (GSPN) [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] to assess the availability
requirement. A GSPN is a Stochastic Petri Net, where the set of transitions include
immediate and timed transitions. Immediate transitions are depicted as black thin bars,
timed ones are shown as white thick bars. The former fire in zero time and model
logic conditions, the latter are characterized by a firing rate (parameter of the negative
exponential distribution) and are used to model timed activities. Priority levels are also
assigned to transitions (by default timed transitions have priority equal to zero) that
are used to solve the conflicts among immediate transitions. Transition weights are
used to solve, probabilistically, the conflicts among immediate transitions with the same
priority.
      </p>
      <p>
        The GSPN model of the eHealth system has been obtained by customizing the
UML-to-GSPN transformation approach in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] to the dependability analysis domain
and by considering the fault assumption specification in the Deployment Diagram
(Figure 2(b)). Currently, the derivation process has been manual but, as future work, we
plan to make it automatic. The work [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] provides a formal semantics of UML state
machines (SMs) in terms of GSPNs and proposes a method to get a GSPN model from
a set of performance-annotated UML SMs. The proposed semantics is compositional:
the GSPN model of the system is obtained by composing the GSPN sub-models of
the single SMs, by using standard Petri net operators. In the following, we focus on
the mapping of the DAM annotated SM, Figure 2(c), and Deployment Diagram,
Figure 2(b), onto the GSPN input parameters.
      </p>
      <p>(c)</p>
      <p>Client
e_failClient
e_failClient
e_reClient</p>
      <p>π=2</p>
      <p>ClientDown
(a)
e_reClient</p>
      <p>dwnPDA
recPDA
upPDA</p>
      <p>ftPDA</p>
      <p>PDA fault-failure
propagation and recovery
Message Replicator</p>
      <p>e_failMR
π=2
e_failMR
e_failMR
up_node</p>
      <p>MRDown
e_recMR
e_recMR</p>
      <p>(b)
ft_node</p>
      <p>rec_node
dwn_node</p>
      <p>Node fault-failure
propagation and recovery
Idle
think
Wait4ack
e_ack
ftprop_SP2MR
e_ack
e_failClient
trOK2</p>
      <p>trKO2
(e) WAN communication
transient fault - SP2MR
WANDown1 ftDuration1
trKO1
trOK1
(d)
Wait4Msg
e_SP2MR
e_SP2MR result
ftprop_ack
ftDuration2 WANDown2
(f) WAN communication</p>
      <p>transient fault - ack</p>
      <p>Legend (parameter specification)</p>
      <p>Transition Type Rate/Weight
rttrtrffferheretttsKiPOND_PuOnDKounDl1kA1droAt,,eadttterriKOoOKn221,ftDuration2 EEEIEIEEEXXXMXMXXXPPPMPMPPP 111fff-//trrttf1(f_ee__t/0tr__pr_(._arrrap35dtaaotrs8uettbeo.3rNeeWPb)4Wo21ADWsAdNAA)NeN</p>
      <p>The GSPN model derived from the UML specification is shown in Figure 4: it
consists of six subnets that communicate via interface places (striped places). The subnets
(a,b) model the up/down states of the PDA and node0, respectively, due to the crash fault
occurrences affecting the nodes and the corresponding recovery actions. The firing rates
of the timed transitions ftPDA, subnet (a) and ft node, subnet (b), correspond to the
input parameters specified in the fault.occurrenceRate tagged-values associated to the
DaComponent nodes (deployment diagram of Figure 2(b)). The transitions recPDA
and rec node model the recovery actions undertaken in case of node crash. In
particular, the firing rate of the latter is set to the input parameter of the recovery.rate
tagged-value specified in the DaStep transition of the MR state machine (Figure 2(c)).</p>
      <p>The fault-failure propagation from the hw component node0 to the sw component
MR (failure.Fcause tag of the DaStep failure transition, in the MR state machine) as
well as the effect of the reallocation of the latter onto the spare node1 (map,onto tags
of the DaStep reallocation transition, in the MR state machine), are modeled by the
interaction between the subnets (b) and (d), respectively. Similar considerations can be
done for the fault-failure propagation from the PDA node to the Client component and
the effect of recovery actions.</p>
      <p>
        The subnets (c,d) have been derived from the UML statecharts of the Client and
the MR components by using the transformation approach in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. The client, after a
thinking time (transition think), sends a SP2MR request to the MR and waits for an
ack by the latter, which processes the request (transition result). The firing rate of
the think transition, subnet (c), is set to the inverse of the extDelay tagged value,
which has been associated to the GaWorkloadEvent message in the SD of Figure 2(d)).
On the other hand, the interaction between the MR and the RMs has been abstracted
and modeled by the transition result, subnet (d). Its firing rate is set to the inverse
of the mean time to process the client’s request. The latter is a performance result that
has been derived from the QN model discussed in Section 5, when only one doctor is
considered (i.e., the population parameter pop, in the SD of Figure 2(d), set to one).
      </p>
      <p>Finally, the two subnets (e,f) model the communication, via WAN, that may be
affected by faults. In particular, a fault may affect the SP2MR request sent by the client to
the MR, transition trKO1 subnet (e), with a probability which is set to the input
parameter of the fault.occurrenceProb tagged-value associated to the WAN. Since the fault
is transient (fault.persistency tagged-value of the WAN), once occurred, it affects the
communication for a time period which is modeled by the transition ftDuration1.
The firing rate of the latter is set to the inverse of ft durWAN, where the latter is the
input parameter of the fault.duration tagged-value associated to the WAN. The transient
fault may affect also the ack sent by the MR to the client, subnet (f).</p>
      <p>
        The GSPN model of Figure 4 is used to compute the availability of the
MakePrescription use case, that is defined as the probability that the places modeling the down
states of the system (grey places) are all empty. We used the GreatSPN [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] steady
state numerical solver to estimate the availability metric for different values of the
ft probWAN input parameter, then analyzing the impact of the failure probability of
the communication via WAN on the Make Prescription service availability.
      </p>
      <p>The values assigned to the other input parameters have been fixed to the following
values: approx. 30 crash faults per year affecting the hardware components (i.e., ftPDA
= ft node = 1e-6 ft/s), 60s of recovery mean duration (i.e., recPDA = recNode =
1.6667e2 rec/s), and one hour of WAN communication mean down-time (i.e., ft durWAN=
3.600s.). The computed availability is equal to 99.98% (ft probWAN=0.01), 99.88%
(ft probWAN=0.1) and 99.39% (ft probWAN=1), respectively. The analysis shows that
such parameter does not affect, in a sensitive manner, the service availability and that
also in the worst case (ft probWAN=1) the availability requirement defined for the Make
Prescription use case is satisfied.
5</p>
    </sec>
    <sec id="sec-4">
      <title>Performance Modeling and Analysis</title>
      <p>In this section we describe how from the eHealth UML design model with
embedded performance annotations we can obtain (exploiting model to model transformation
rules) a Queuing Network (QN) for performance analysis purposes.</p>
      <p>
        The adopted approach (Software Architecture Performance analysis, SAP²one [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ])
for the performance modeling of a software system consists essentially in the generation
of a QN model from an UML architectural one. SAP²one has been conceived to be
applied in the first phases of the software process to reveal architectural flaws as soon
as possible, so the developer will be able to modify the system architecture.
      </p>
      <p>
        The eHealth UML (sub-)model used for performance analysis consists of a static
and dynamic view given by the Component Diagram (CD, Figure 2(f)) and Sequence
Diagram (SD, Figure 2(d)), respectively. These diagrams are enriched with additional
information about the system performance using the MARTE [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] profile (note that in
this case DAM annotations [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] are not necessary because MARTE was conceived for
performance purposes) as follows:
– The response time (the respT tag of the GaScenario stereotype) for SD of
interest, see Figure 2(d);
– The scheduling policies for components (the schedPolicy tag of the GaExecHost
stereotype) and service times for their operations (hostDemand tag of the PaStep
stereotype), see Figure 2(f);
– The workload for the SD (the pattern tag of the GaWorkloadEvent
stereotype) and the probability to execute the optional fragments (prob tag of the PaStep
stereotype), see Figure 2(d).
      </p>
      <p>The peculiarity of this approach is that the service centers of the QN do not
represent hardware resources (such as disks or processors), but they represent the software
components of the system architecture. The (sub-)model made of CD and SD, then,
represents a platform-independent model, and the performance indices that can be
obtained do not underlie assumptions in the platform architecture. The only assumption is
that every software component will be placed on a logical device, and that all the
devices will have the same processing rate but they can manage requests through queues
of different capacity and different scheduling policy. In practice, the SAP²one
analysis is comparative, in that the obtained performance values are useful to reveal bad
architectural choices.</p>
      <p>The fundamental rule for transforming the UML design model into the QN
analysis model defines one or more service centers (it depends on the resMult tag value)
for each software component (CD, Figure 2(f)). The possible transitions among service
centers (i.e. the QN topology) are obtained from the assembly connector between
required/provided interfaces of components. Finally the paths followed by entities across
the service centers (a distinct one for each SD) are derived from the order of
messages exchanged between lifelines in the SD (Figure 2(d,e)). The resulting QN model
is shown in Fig.5.</p>
      <p>It is worth noting that the entity named (a) in the QN represents in the UML model
the Doctor’s requests. The entities (b) and (c) represent the votes of the Payload and the
prescription sent to the Hospital by the Redundancy Manager, respectively. Regarding
the number of Payloads, we have considered three in this model, which is enough for a
voting algorithm to work.</p>
      <p>
        The QN has been simulated using the Java Modeling Tools (JMT) [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], it was not
possible to carry out Mean Value Analysis (MVA) [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] due to the existence of forks
and joins. The simulation parameters were established with a confidence level of 0:9
and an error equal to 0:1. Then we computed the response time ($RT variable in the
model) that the system needed to process a Doctor’s request for prescription. We set
different values for the population ($pop variable of stereotype GaWorkloadEvent
in Fig.2(d)), thus interpreting multiple requests from one or more Doctors. Table 5
reports the results obtained.
      </p>
    </sec>
    <sec id="sec-5">
      <title>Discussion and conclusions</title>
      <p>In this paper we have shown the adequacy of existing UML profiles to perform different
analysis on the same case study. During this last decade, one of the major challenges
of the researchers working on modeling and evaluation of computer-based systems has
been to produce, more or less automatically and systematically, formal models from
ADL- and UML- based system descriptions to support the assessment of NFPs.</p>
      <p>
        ADL-based approaches include, among all, AADL [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and EAST-ADL [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. AADL
allows the derivation of different formal models (e.g. GSPN [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], Fault Trees, Markov
Chains) from an extended AADL Dependability Model [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. EAST-ADL instead is
instead a Domain Specific Language for the automotive systems domain that allows
one to define concepts and tools for system analysis. Then one of the goal of the
ATESST project [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is the integration between MARTE and EAST-ADL concepts that
has already lead to the definition of an UML profile, similarly to what it was done for
AADL[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>In this work we are interested to UML-based approaches because, even after the
standardization of MARTE, they address either qualitative or quantitative evaluation.
Moreover, most of them use a unique target formalism for the system assessment, hence
they only partially support the software engineers during the V&amp;V activities.</p>
      <p>
        Performance assessment approaches can be found in the survey [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], where it emerges
that only few efforts have been addressed to the exploitation of the information at the
early stages of the software lifecycle (i.e., requirements specification).
      </p>
      <p>
        With regard to dependability assessment, the work in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] classifies the different
approaches according to a check-list of requirements that a dependability UML profile
should satisfy. Most of the surveyed works propose UML extensions to specify either
reliability or safety properties, while less efforts have been devoted to availability [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]
and maintainability [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>However, almost all works propose transformation techniques from UML design to
dependability formal models such as: Stochastic Petri Nets, Fault Trees, probabilistic
timed automata, Markov processes, or simple mathematical models.</p>
      <p>
        All the previous approaches face the modeling and validation of one single
nonfunctional property of the system in isolation. Our experiment has been instead aimed at
showing the integration of NFPs within a unique modeling language that is UML. With
these preliminary results we have demonstrated that rich and opportunely integrated
model annotations, i.e. the ones provided by DAM and MARTE together, are
sufficient to separately derive different non-functional models. At the moment, the results
provided by our model solutions have not been related each other within the original
UML model, although relationships between the analysis models have been exploited.
For example, the output index of the QN model (i.e. mean response time of the Make
Prescription scenario) has been used as an input parameter of the GSPN model
(i.e. mean time for MR component to process the request). However the UML models
that we propose here contain non-functional parameters (i.e. inputs to the analysis
models) and indices (i.e. outputs of the analysis models), and the latter work as placeholder
to embed the analysis results within the original model. We devise such embedding
mechanism as a fundamental step to allow in future cross-indices observations finalized
to detect inconsistencies (or only relationships) between the results of different
analysis. As a short-term result in this direction, we intend to introduce transformations that
lead to composite indices, such as performability ones [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Besides, we intend to apply
such approach to more complex (failure) scenarios to check its real applicability.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>ATESST</given-names>
            <surname>Project Web</surname>
          </string-name>
          <string-name>
            <surname>Site</surname>
          </string-name>
          , http://www.atesst.org/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>SAE-</surname>
          </string-name>
          <article-title>AS5506: SAE Architecture Analysis and Design Language AADL</article-title>
          , international Society of Automotive Engineers, Warrendale, PA, USA (November
          <year>2004</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>UML</given-names>
            <surname>Profile for</surname>
          </string-name>
          <string-name>
            <surname>MARTE</surname>
          </string-name>
          ,
          <source>OMG document ptc/08-06-09</source>
          , Object Management Group, Inc. (
          <year>2008</year>
          ), http://www.omgmarte.org/Documents/Specifications/08-06-09.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>N.</given-names>
            <surname>Addouche</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Antoine</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Montmain</surname>
          </string-name>
          .
          <article-title>Methodology for UML modeling and formal verification of real-time systems</article-title>
          .
          <source>In International Conference on Computational Intelligence for Modelling Control and Automation (CIMCA</source>
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>M.</given-names>
            <surname>Ajmone Marsan</surname>
          </string-name>
          , G. Balbo, G. Conte,
          <string-name>
            <given-names>S.</given-names>
            <surname>Donatelli</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Franceschinis</surname>
          </string-name>
          .
          <article-title>Modelling with Generalized Stochastic Petri Nets</article-title>
          . J. Wiley,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Algirdas</given-names>
            <surname>Avizienis</surname>
          </string-name>
          ,
          <string-name>
            <surname>Jean-Claude</surname>
            <given-names>Laprie</given-names>
          </string-name>
          , Brian Randell, and
          <string-name>
            <given-names>Carl</given-names>
            <surname>Landwehr</surname>
          </string-name>
          .
          <article-title>Basic concepts and taxonomy of dependable and secure computing</article-title>
          .
          <source>IEEE Transactions on Dependable and Secure Computing</source>
          ,
          <volume>01</volume>
          (
          <issue>1</issue>
          ):
          <fpage>11</fpage>
          -
          <lpage>33</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>S.</given-names>
            <surname>Balsamo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. Di</given-names>
            <surname>Marco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Inverardi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Simeoni</surname>
          </string-name>
          .
          <article-title>Model-based performance prediction in software development: a survey</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <volume>30</volume>
          (
          <issue>5</issue>
          ):
          <fpage>295</fpage>
          -
          <lpage>310</lpage>
          , May
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>S.</given-names>
            <surname>Bernardi</surname>
          </string-name>
          and
          <string-name>
            <surname>J. Merseguer.</surname>
          </string-name>
          <article-title>QoS Assessment via Stochastic Analysis</article-title>
          .
          <source>IEEE Internet Computing</source>
          , pages
          <fpage>32</fpage>
          -
          <lpage>42</lpage>
          , May-June
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>S.</given-names>
            <surname>Bernardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Merseguer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Petriu</surname>
          </string-name>
          .
          <article-title>An UML profile for Dependability Analysis Modeling</article-title>
          .
          <source>Technical report</source>
          , University of Torino, Dipartimento di Informatica,
          <source>Torino (Italy)</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>S.</given-names>
            <surname>Bernardi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Merseguer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.C.</given-names>
            <surname>Petriu</surname>
          </string-name>
          .
          <article-title>A Dependability Profile within MARTE</article-title>
          .
          <source>Journal of Software and Systems Modeling</source>
          ,
          <year>2009</year>
          . DOI:
          <volume>10</volume>
          .1007/s10270-009-0128-1.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>Vittorio</given-names>
            <surname>Cortellessa</surname>
          </string-name>
          and
          <string-name>
            <given-names>Vincenzo</given-names>
            <surname>Grassi</surname>
          </string-name>
          .
          <article-title>A modeling approach to analyze the impact of error propagation on reliability of component-based systems</article-title>
          .
          <source>In CBSE</source>
          , pages
          <fpage>140</fpage>
          -
          <lpage>156</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Vittorio</surname>
            <given-names>Cortellessa</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Harshinder</given-names>
            <surname>Singh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>and Bojan</given-names>
            <surname>Cukic</surname>
          </string-name>
          .
          <article-title>Early reliability assessment of UML based software models</article-title>
          .
          <source>In Workshop on Software and Performance</source>
          , pages
          <fpage>302</fpage>
          -
          <lpage>309</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>13. GreatSPN. http://www.di.unito.it/»greatspn. University of Torino.</mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>Raj</given-names>
            <surname>Jain</surname>
          </string-name>
          .
          <source>The Art of Computer Systems Performance Analysis. Wiley</source>
          ,
          <year>1991</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>E.D.</given-names>
            <surname>Lazowska</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Zahorjan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Scott Graham</surname>
          </string-name>
          , and
          <string-name>
            <surname>K.C.</surname>
          </string-name>
          <article-title>Sevcik. Quantitative System Performance - Computer System Analysis Using Queueing Network Models</article-title>
          .
          <source>Prentice Hall</source>
          ,
          <year>1984</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. I.
          <string-name>
            <surname>Majzik</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Pataricza</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Bondavalli</surname>
          </string-name>
          .
          <source>Stochastic Dependability Analysis of System Architecture Based on UML Models. In Architecting Dependable Systems, LNCS 2677</source>
          , pages
          <fpage>219</fpage>
          -
          <lpage>244</lpage>
          . Springer-Verlag,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17. Antinisca Di Marco and
          <string-name>
            <given-names>Paola</given-names>
            <surname>Inverardi</surname>
          </string-name>
          .
          <article-title>Compositional Generation of Software Architecture Performance QN Models</article-title>
          .
          <source>In WICSA</source>
          , pages
          <fpage>37</fpage>
          -
          <lpage>46</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>J. Merseguer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Bernardi</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Campos</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Donatelli</surname>
          </string-name>
          .
          <article-title>A compositional semantics for UML State Machines aimed at performance evaluation</article-title>
          . In Silva M.,
          <string-name>
            <surname>Giua</surname>
            <given-names>A.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Colom</surname>
            <given-names>J.M.</given-names>
          </string-name>
          , editor,
          <source>WODES02: 6th International Workshop on Discrete Event Systems</source>
          , pages
          <fpage>295</fpage>
          -
          <lpage>302</lpage>
          , Zaragoza, Spain,
          <year>October 2002</year>
          . IEEE Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>PLASTIC IST STREP</surname>
          </string-name>
          <article-title>Project</article-title>
          .
          <source>Deliverable D2</source>
          .
          <article-title>2: Graphical design language and tools for resource-aware adaptable components</article-title>
          and services,
          <year>2007</year>
          . http://www-c.inria.fr/plastic/.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>C. V.</given-names>
            <surname>Ramamoorthy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. S.</given-names>
            <surname>Ho</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y. W.</given-names>
            <surname>Han</surname>
          </string-name>
          .
          <article-title>Fault tree analysis of computer systems</article-title>
          .
          <source>In AFIPS '77: Proceedings of the June 13-16</source>
          ,
          <year>1977</year>
          , national computer conference, pages
          <fpage>13</fpage>
          -
          <lpage>17</lpage>
          , New York, NY, USA,
          <year>1977</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Ana-Elena</surname>
            <given-names>Rugina</given-names>
          </string-name>
          , Karama Kanoun, and
          <article-title>Mohamed Kaaˆniche. A system dependability modeling framework using aadl and gspns</article-title>
          .
          <source>In WADS</source>
          , pages
          <fpage>14</fpage>
          -
          <lpage>38</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <article-title>An Open Source</article-title>
          .
          <article-title>Java modelling tools</article-title>
          . http://jmt.sourceforge.net/.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>