<!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>Model-based Power Consumption Analysis of Smartphone Applications</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Shin NAKAJIMA</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>National Institute of Informatics</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Unexpected power consumption of smartphone applications is a nuisance because the battery capacity is limited. Such energy bugs (ebugs) are currently detected only at runtime. Some ebugs, however, are desirable to detect at the early stage of the development because they are design faults. This paper proposes a formal model, the power consumption automaton, to account for the power consumption, and discusses how the tool-assisted analysis is conducted.</p>
      </abstract>
      <kwd-group>
        <kwd>Android</kwd>
        <kwd>Energy Bugs</kwd>
        <kwd>Stopwatch Automaton</kwd>
        <kwd>UPPAAL</kwd>
        <kwd>Realtime Maude</kwd>
        <kwd>Sampling Abstraction</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Smartphones are compact and small, but are a complex system to consist of
many components. All of them have impact on the power consumption of the
battery, but their causal relationships are not clear owing to the complexity of
the multi-layered architecture [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. A functionally correct application may suffer
from unexpected power consumption, which is called energy bugs (ebugs) [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
Detecting such ebugs currently uses energy profilers (cf. [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]), which monitor the
program execution at runtime to see whether power drains exist.
      </p>
      <p>
        Smartphones adapt an aggressive power saving strategy to reduce the battery
power consumption. Some applications, however, keep the smartphone awake
even during the inactivity periods. To meet this demand, the Android framework
provides application interfaces (API) for the power management [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. The API
is a two-edged sword; it is usable while it may introduce further ebugs due to
improper uses of the API. These ebugs are desirable to detect at the early stage
of the development because they are design faults.
      </p>
      <p>This paper proposes a new model-based approach to the representation and
analysis of the asynchronous power consumption of Android applications. We
introduce a formal model, the power consumption automaton (PCA), show how
the PCA is analyzed with existing tools and present some discussions based on
our experience.</p>
      <p>Android Framework / Linux
LCD</p>
      <p>CPU(DVFS)</p>
      <p>Network</p>
      <p>Peripheral</p>
      <p>Ba!ery</p>
    </sec>
    <sec id="sec-2">
      <title>Power Consumption in Android</title>
      <sec id="sec-2-1">
        <title>Power Management</title>
        <p>
          This paper uses the Wi-Fi component as a concrete example to discuss the
motivation and technical details of the proposal. Figure 2 is an example measured
energy profile of a Wi-Fi client in Nexus One operating in the power save mode
(PSM) [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. It is taken from [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] to be modified a little for illustrative purposes.
        </p>
        <p>The Wi-Fi client, or station (STA), is in the passive scan mode. The access
point (AP) periodically sends beacon signals to notify the STA to start
transferring data. Figure 2 shows that the STA is first in the Deep Sleep state, and
Power
(mW)
500</p>
        <p>Beacon
then goes to the High Power state to exchange various frames. The STA stays in
the Idle Listen state to see if there are further frames to come. The STA moves
down to the Light Sleep state when it recognizes a no-more-data flag in the
data frame. The STA stays in this state for a while to be ready for further data
transfer occurring soon. The STA returns to the Deep Sleep state by a time-out
event of the inactivity timer.</p>
        <p>
          The Wi-Fi subsystem also adapts the notion of wake locks for the power
management. WifiManager provides a method to control over WifiLock [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. It
allows an application to keep the Wi-Fi radio awake. The STA, while a lock is
active, stays in the Light Sleep, but does not go to the Deep Sleep state .
If the graph in Figure 2 is represented as a function F (t), the total power
consumption (P (T )) from 0 to a time T is obtained by the accumulation, or integral
of F (t); P (T ) = ∫0T F (t)dt. As the above explanation with Figure 2 suggests,
the states of the STA are changed in either event-trigger (signal or frame) or
time-trigger (periodic or timeout) manners. Such changes can be represented
by state-transition system consisting of power states. Figure 3 is an example
state-transition system of Wi-Fi STA operating in PSM.
        </p>
        <p>This paper focuses on the analysis of unexpected power consumption, but
does not try to predict the power consumption behavior in a numerically precise
manner. It is suffice to check whether the whole system stays at some particular
power state in a unexpectedly long time. F (t) can be approximated by a linear
funtion of time. Let P (tS , tE )P S be the consumed power in the state P S from tS
to tE that P (tS , tE )P S =CP S ×(tE − tS ) with a constant CP S . P (T ) becomes a
sum of the power consumptions in all the states that the STA transition system
visits.</p>
        <p>N−1
∑
i=0
P (T ) =</p>
        <p>P (ti, ti+1)P S
where t0 = 0 and tN = T . P (tS , tE )P S can be written as P (t)P S , equal to
CP S ×t, with t = tE − tS . For example, P (t)DeepSleep refers to the sum of the
power consumed as the drain currents of the radio circuits and that needed to
process the beacon signals (see Figure 2). A state, DeepSleep for example, is
visited many times while the Wi-Fi subsystem is enabled.</p>
        <p>Model-Based Analysis of Power Consumption</p>
      </sec>
      <sec id="sec-2-2">
        <title>Power Consumption Automaton</title>
        <p>
          We introduce a state transition system, power consumption automaton1, to be a
formal representation. Power consumption automaton (PCA) is a 6-tuple, whose
definition follows the presentation in [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], ⟨ Loc, V ar, Lab, Edg, Act, Inv ⟩. The
components are explained below.
1. Loc is a finite set of locations to represent power states.
2. V ar is a finite set of real-valued variables, A valuation v for the variables is a
function to assign a real-value v(x)∈R to each variable x∈V ar. V represents
the set of valuations (v).
3. Lab is a finite set of synchronization labels to contain the stutter label τ ∈Lab.
4. Edg is a finite set of transitions. Each transition e is a tuple ⟨l, a, µ, l′⟩ where
l, l′∈Loc are a source and a target, a∈Lab is a synchronization label, and µ
is an action defined by a guarded set of assignments (updates)
        </p>
        <p>ψ ⇒ { x := αx | x∈V ar }.
where the guard ψ is a linear formula over the variables, and αx is a linear
term.
5. Act is a mapping from locations in Loc to a set of activities to represent the
flow dynamics. Act(l) is a differential equation of the form dP/dt = K with
K∈Z. K is Cl for the case of power consumption and 1 for clock such as the
inactivity timer.
6. Inv is a mapping from locations in Loc to invariants Inv(l)⊆V . Inv(l) is
defined by a linear formula ϕ over V ar.</p>
        <sec id="sec-2-2-1">
          <title>1 It was introduced first in an oral presentation [12].</title>
          <p>Two PCAs synchronize on the common set of labels Lab1∩Lab2. Whenever
P CA1 makes a discrete transition with a synchronization label a∈(Lab1∩Lab2),
P CA2 also performs a discrete transition. Therefore, concurrency is naturally
represented; an example is found in Figure 4.</p>
          <p>
            PCA is a strict subclass of linear hybrid automaton (LHA) [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ]. LHA is a
hybrid automaton whose guards (ψ), updates (µ), and invariants (ϕ) are only
linear expressions, and the dynamics are specified using differential inequalities
that are linear constraints over first-order derivatives (C1 ≤ dx/dt ≤ C2). The
dynamics of PCA are differential equalities of the form, dP/dt = Cl for the
power consumption, and dX/dt = 1 for the clock variable X, which are linear
equality constraints over first-order derivatives. PCA is a subclass of LHA.
3.2
          </p>
        </sec>
      </sec>
      <sec id="sec-2-3">
        <title>Reachability Problem</title>
        <p>
          The algorithmic analysis methods were studied for linear hybrid automaton
(LHA), specifically the reachability analysis over infinite state spaces generated
by the labeled transition system (LTS) associated with the LHA [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
        </p>
        <p>LHA has several special cases such as a timed automaton (TA), a multirate
timed system (MTS), n-rate timed system (nRTS), and a stopwatch automaton
(SWA). An LHA is simple if the location invariants (ϕ) and transition guards
(ψ) are of the form x≤k or k≤x for x∈V ar and k∈Z. A variable x is a clock if
Act(l, x) = 1 for each location and µ(e, x)∈{0, x} for each edge. A skewed clock is
a clock to change with time at some rate k∈Z; Act(l, x) = k and µ(e, x)∈{0, x}.</p>
        <p>A TA is a simple linear hybrid automaton with clocks. An MTS is a linear
hybrid automaton whose clocks are skewed. An nRTS is an MTS whose skewed
clocks proceed at n different rates. A SWA is a TA where Act(l, x)∈{0, 1} and
µ(e, x)∈{0, x}. The reachability problem is known decidable for TA and simple
MTS, but undecidable for other cases even if they are simple.
3.3</p>
      </sec>
      <sec id="sec-2-4">
        <title>Analysis of Power Consumption Automaton</title>
        <p>We assume here a PCA with N power states, each of which consumes different
electric power as P (t)j = Cj×t (j = 0. . .N − 1). The property to check may take
a form of 2(P ow≤M ax), which mentions that the total power (P ow) is always
within a given M ax. We consider how PCA is encoded in some subclass of LHA
to see the decidability of the PCA reachability analysis.</p>
        <p>First, a PCA is encoded as an N-rate timed system. A skewed clock P ow
is introduced, which changes at the rate of Cj in the power state j, proceeding
at N different rates. P ow accumulates all the consumed power. Alternatively,
a PCA is represented as an MTS. We regard each P (t)j to be a skewed clock
Xj to change at a fixed rate of Cj. Since Xj changes with time only when the
PCA stays on that state j, Xj must be stopped in all the other states. PCA
is now a multirate stopwatch automaton, where the total power consumption
is calculated such that P ow = ∑jN=−01Xj. PCA is more expressive than either
MTS or SWA. Some over-approximation method is needed in the tool-assisted
analysis.</p>
        <p>
          Init
/ n:=0;
lock:= false
release [ n== 1]
/ n--; lock := false
release
[n&gt; 1]
/ n--;
release
Unlock
Lock
excep!on
This section presents two methods of representing and analyzing the PCA with
two automatic tools, UPPAAL [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ][
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] and Readltime Maude [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ][
          <xref ref-type="bibr" rid="ref13">13</xref>
          ].
The Android framework provides WifiLock to allow an application to keep the
Wi-Fi awake [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. Figure 4 shows diagrammatic representations of the PCAs for
a wake lock (the left) and a Wi-Fi STA (the right).
        </p>
        <p>
          The reference-counted WifiLock in Figure 4 shows that the acquire() and
release() must be balanced, which is similar to counting semaphore. The
acquire() method locks the Wi-Fi on until the release() is called to turn
it off. The locked Wi-Fi stays in the Idle Listen state even when the data
transfer ends with the no-more-data flag on2.
This subsection sketches how the PCA is encoded in the stopwatch-extension of
UPPAAL [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ][
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
        </p>
        <p>Let XP S be a clock variable introduced for a power state P S. We add
invariants dXP S/dt = 0 to all the states except in the state P S. XP S must proceed
in the state P S and thus the invariant there is dXP S/dt = 1. Figure 5 shows
four clock variables, for recording how long the Wi-Fi client stays in each state.
The first-order derivative of xIL (written xIL'), for example, is set to 0 in all
the states other than Idle Listen.</p>
        <p>We then use a query expression of the form A2(XP S≤AP S) where AP S is
a constant to refer to the maximum power consumption allowed for this power
state. For example, a counter-example is generated for the case of A2(XIL≤AIL)
when WiFi lock bugs are hidden in the design.</p>
        <sec id="sec-2-4-1">
          <title>2 Comapre Figure 4 with Figure 3 to study the differences.</title>
          <p>
            Realtime Maude Realtime Maude [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ][
            <xref ref-type="bibr" rid="ref13">13</xref>
            ] is an extension of Maude [
            <xref ref-type="bibr" rid="ref8">8</xref>
            ] for the
application of rewriting logic to the executable specifications of realtime and
hybrid systems. Realtime Maude provides two kinds of rewrite rules, the
instantaneous rules and tick rules. Let T (A) be a term. A conditional instantaneous
rule with a label r takes a form below.
          </p>
          <p>r : T (A) −→ T (A′) if C .</p>
          <p>The term on the left-hand side (T (A)) is rewritten to the right-hand side one
(T (A′)), while the rule is fired only when the side condition C is true.</p>
          <p>The tick rules are responsible for time progress. Let T be a set of terms,
a snapshot of the whole system. A tick rule works on { T }
nondeterministically. Time-nondeterministic systems are analyzed under sampling abstractions,
in which the maximum time elapsed (mte) plays an important role.</p>
          <p>l : { T } −→ { δ(T, τl) } in time τl if τl ≤ mte(T )
The rule states that the amount of time τl is passed in rewriting T to δ(T, τl).
mte(T ) is the upper limit of the time progress, and thus it instructs the analysis
method to fire transitions at some time so long as the side condition is satisfied.
The transition is fired at least once in the time interval that mte(T ) specifies.
Two functions, mte and δ, are defined for each term T .</p>
          <p>Realtime Maude supports the timed model-checking of the property
expressed in linear temporal logic (LTL) under the sampling abstraction.
Encoding Wi-Fi PCA in Realtime Maude The Wi-Fi STA in Figure 4
requires a set of rewriting rules, and the below shows some fragments of its
behavior only. First, we introduce a wif iST A term to represent the PCA to have
four components; Loc for power states, P ower for accumulated power
consumption, a Boolean flag Bool for the WifiLock status, and T ime for the inactivity
timer.</p>
          <p>op wif iST A : Loc P ower Bool T ime −→ System
Here are three instantaneous rules; transitions from the High Power state when
wif iST A receives data with flags.</p>
          <p>h1: wif iST A(HighP ower, P, B, X) Data(M ore)</p>
          <p>−→ wif iST A(IdleListen, P, B, X)
h2: wif iST A(HighP ower, P, f alse, X) Data(N oM ore)</p>
          <p>−→ wif iST A(LightSleep, P, f alse, X) Reset
h3: wif iST A(HighP ower, P, true, X) Data(N oM ore)</p>
          <p>−→ wif iST A(IdleListen, P, true, X)
δ calculates the consumed power at each state. The first equation below shows
the case for the High Power state, and the rests describe the two cases for the
Light Sleep state. They select appropriate new states depending on the status
of the inactivity timer. C stands for the timeout constant.</p>
          <p>δ(wif iST A(HighP ower, P, B, X), τ )</p>
          <p>= wif iST A(HighP ower, P + CHP ×τ, B, X)
δ(wif iST A(LightSleep, P, B, X), τ )</p>
          <p>= wif iST A(LightSleep, P + CLS×τ, B, X + τ ) if X &lt; C − τ
δ(wif iST A(LightSleep, P, B, X), τ )</p>
          <p>= wif iST A(DeepSleep, P + CLS×τ, B, X + τ ) if X ≥ C − τ
The inactivity timer is time-dependent component in wif iST A. mte is defined
so that the timer is checked at least once at some critical intervals.
mte(wif iST A(L, P, B, X)) = inf if not(L = LightSleep)
mte(wif iST A(L, P, B, X)) = C − X if (L = LightSleep)
4.4</p>
        </sec>
      </sec>
      <sec id="sec-2-5">
        <title>Discussion</title>
        <p>Section 3.3 presented two of PCA encoding methods with LHA subclasses; (a)
a multirate stopwatch automaton, and (b) an n-rated timed system.</p>
        <p>The approach with the stopwatch-extension of UPPAAL has a slight
restriction of the case (a) above since the clocks are not skewed. Therefore, query
checking is performed separately for each clock. A sum of clock variables does
not make sense due to the symbolic model-checking algorithm. The encoding
with Realtime Maude adapts the approach (b). We introduced a single skewed
clock variable P ow to accumulate the consumed power. P ow proceeds at a
different rate in each power state. Therefore, the total amount of the consumed
power can be analyzed, although the sampling abstraction and time-bounded
search methods have to be employed.</p>
        <p>This paper used the Wi-Fi subsystem as the example PCA, not an Android
application, while the motivation of this work was removing ebugs from the
applications at the design stage. Since an application uses a wide variety of
components, all the power consumers in the system must be represented as
libary PCAs. The Wi-Fi PCA is a first example of such library components.
Furthermore, Android application is implemented as a subclass of Activity.
Its behavior is expressed in terms of state-transition system of the life-cycle
implemented by a set of callback methods. Such behavioral specification can be
captured by PCA. Thus, the model-based analysis with PCA can be useful for
the design-level checking of ebugs in Android applications.</p>
        <p>
          Android smartphones are equipped with ARM core processors to have the
dynamic voltage-frequency scaling (DVFS). The DVFS governor in Android
changes the voltages and frequencies based on the CPU usage, and has
impact on the CPU power consumption and the execution time of a program as
well. The CPU usage is related to the number of active processes, which is not
known beforehand. The power consumption affected by the DVFS may be
considered probabilistic. Therefore, the behavioral analysis of the PCA may need
the stochastic model-checking method [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ].
5
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Related Work</title>
      <p>
        A. Pathak et al recognized the importance of eliminating energy bugs in
smartphones, which they called ebugs [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. They also proposed to use the
statetransition systems for modeling of the power consumption and developed Eprof
[
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Eprof is an energy profiler to monitor the program execution at runtime to
detect potential ebugs.
      </p>
      <p>
        MoVES [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] uses the UPPAAL/SWA for modeling and analyzing embedded
systems such as the schedulability or the power consumption. The power
consumption model, however, is that P (t) = C×t without considering the differences
in power states. C. Thompson et al [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] presented a model-driven approach to
develop smartphone applications. The power consumption analysis was performed
on the generated program codes. The quantitative results reproduced the
implemented programs. They, however, did not discuss the formal analysis at the
design level.
6
      </p>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>The power consumption model (Section 2.3) assumes that P (t) is linear in time.
It is one of the future work to ensure that the approximation can mostly
reproduce the energy profile in Figure 2. It requires a measurement by using the
energy profilers such as Eprof.</p>
      <p>
        We compared two approaches to the representation and analysis of the power
consumption automaton using UPPAAL and Realtime Maude. Further
feasibility study is planned to use HyTech [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Since the power consumption problem
has some aspects that are hard to predict, such as the effects by the DVFS
governor, some stochastic analysis methods would be valuable. It is an important
research topic from both theoretical and practical perspectives (Section 4.4).
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>1. Android. http://developer.android.com.</mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Realtime</given-names>
            <surname>Maude</surname>
          </string-name>
          . http://heim.ifi.uio.no/peterol/RealTimeMaude/.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. IEEE Standard
          <volume>802</volume>
          .11,
          <string-name>
            <surname>Wireless LAN Medium Access</surname>
          </string-name>
          <article-title>Control (MAC) and Physical Layer (PHY) Specifications</article-title>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>R.</given-names>
            <surname>Alur</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Courcoubetis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Halbwachs</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.A.</given-names>
            <surname>Henzinger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.-H.</given-names>
            <surname>Ho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Nicollin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Olivero</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Sifakis</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Yovine</surname>
          </string-name>
          .
          <source>The Algorithmic Analysis of Hybrid Systems</source>
          , Theor, Comp. Sci.,
          <source>No.138</source>
          , pp.
          <fpage>3</fpage>
          -
          <lpage>24</lpage>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>R.</given-names>
            <surname>Alur</surname>
          </string-name>
          ,
          <source>Formal Verification of Hybrid Systems, in Proc. EMSOFT'11</source>
          , pp.
          <fpage>273</fpage>
          -
          <lpage>278</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>A.</given-names>
            <surname>Brekling</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.R.</given-names>
            <surname>Hansen</surname>
          </string-name>
          , and
          <string-name>
            <surname>J. Madsen.</surname>
          </string-name>
          <article-title>MoVES - A Framework for Modeling and Verifying Embedded Systems</article-title>
          ,
          <source>In Proc. ICM2009</source>
          , pp.
          <fpage>149</fpage>
          -
          <lpage>152</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>F.</given-names>
            <surname>Cassez</surname>
          </string-name>
          and
          <string-name>
            <given-names>K.G.</given-names>
            <surname>Larsen.</surname>
          </string-name>
          <article-title>The Impressive Power of Stopwatches</article-title>
          ,
          <source>In Proc. CONCUR</source>
          <year>2000</year>
          , pp.
          <fpage>138</fpage>
          -
          <lpage>152</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>M.</given-names>
            <surname>Clavel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Duran</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Eker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Lincoln</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Marti-Oliet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Meseguer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Talcott. All About Maude - A High-Performance Logical</surname>
          </string-name>
          <string-name>
            <surname>Framework</surname>
          </string-name>
          ,
          <year>Springer 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>A.</given-names>
            <surname>David</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Illum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.G.</given-names>
            <surname>Larsen</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Skou</surname>
          </string-name>
          .
          <article-title>Model-based Framework for Schedulability Analysis Using UPPAAL 4.1</article-title>
          ,
          <string-name>
            <surname>Aalborg</surname>
            <given-names>University</given-names>
          </string-name>
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. T.A.
          <string-name>
            <surname>Henzinger</surname>
            ,
            <given-names>P.-H.</given-names>
          </string-name>
          <string-name>
            <surname>Ho</surname>
          </string-name>
          , H. Wong-Toi.
          <article-title>HyTech: A Model Checker for Hybrid Systems</article-title>
          ,
          <source>Software Tools for Technology Transfer</source>
          ,
          <volume>1</volume>
          :
          <fpage>110</fpage>
          -
          <lpage>122</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>J.</given-names>
            <surname>Manweiler</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.R.</given-names>
            <surname>Choudhury</surname>
          </string-name>
          .
          <article-title>Avoiding the Rush Hours: WiFi Energy Management via Traffic Isolation</article-title>
          ,
          <source>In Proc. MobiSys'11</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>S.</given-names>
            <surname>Nakajima</surname>
          </string-name>
          and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Ueda</surname>
          </string-name>
          .
          <article-title>Power Consumption Analysis of Smartphone Applications using UPPAAL</article-title>
          ,
          <source>In Proc. 1st CPSNA-WIP</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>P.C.</given-names>
            <surname>Olveczky</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Meseguer</surname>
          </string-name>
          .
          <article-title>Semantics and Pragmatics of Real-Time Maude, Higher-Order and Symbolic Computation</article-title>
          , vol.
          <volume>20</volume>
          , no.
          <issue>1-2</issue>
          , pp.
          <fpage>161</fpage>
          -
          <lpage>196</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>A.</given-names>
            <surname>Pathak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.C.</given-names>
            <surname>Hu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Zhang</surname>
          </string-name>
          .
          <article-title>Bootstrapping Energy Debugging on Smartphones: A First Look at Energy Bugs in Mobile Devices</article-title>
          ,
          <source>In Proc. Hotnets'11</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>A.</given-names>
            <surname>Pathak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.C.</given-names>
            <surname>Hu</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Zhang</surname>
          </string-name>
          .
          <article-title>Fine Grained Energy Accoutning on Smartphones with Eprof: Where is the energy spent inside my app?</article-title>
          ,
          <source>In Proc. EuroSys'12</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>C. Thompson</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Schmidt</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Turner</surname>
            , and
            <given-names>J. White. Analyzing</given-names>
          </string-name>
          <string-name>
            <surname>Mobile Application Software Power Consumption via Model-Driven</surname>
            <given-names>Engineering</given-names>
          </string-name>
          ,
          <source>In Proc. PECCS</source>
          <year>2011</year>
          , pp.
          <fpage>101</fpage>
          -
          <lpage>113</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>P.</given-names>
            <surname>Zuliani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Baier</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E.M.</given-names>
            <surname>Clarke</surname>
          </string-name>
          .
          <article-title>Rare-Event Verification for Stochastic Hybrid Systems</article-title>
          ,
          <source>In Proc. HSCC</source>
          <year>2012</year>
          , pp.
          <fpage>217</fpage>
          -
          <lpage>225</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>