<!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>Towards Extensible Structural Analysis of Petri Net Product Lines</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Elena Gómez-Martínez</string-name>
          <email>mariaelena.gomez@uam.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Juan de Lara</string-name>
          <email>Juan.deLara@uam.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Esther Guerra</string-name>
          <email>esther.guerra@uam.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Universidad Autónoma de Madrid, Escuela Politécnica Superior, Departamento de Ingeniería Informática</institution>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <fpage>37</fpage>
      <lpage>46</lpage>
      <abstract>
        <p>In order to represent the behaviour of a (potentially large) set of concurrent systems, we propose a notion of product line of Petri nets, where presence conditions can be flexibly attached to places, transitions and arcs. To enable an efficient analysis of the whole set of nets, we have lifted several structural analysis methods for Petri nets, to the product line level. This avoids analysing each particular net in isolation. Finally, we propose an extensible tool infrastructure, based on Eclipse and on top of FeatureIDE, which supports the approach and permits adding new analysis methods in a non-intrusive way.</p>
      </abstract>
      <kwd-group>
        <kwd>Petri nets</kwd>
        <kwd>Product lines</kwd>
        <kwd>Model-driven engineering</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Petri nets is a popular formalism to model concurrent systems [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. It is widely used due
to its rich body of theoretical results enabling analysis, and the plethora of existing
supporting tools. However, in scenarios that require modelling families of similar systems
(e.g., variants of machine controllers with different characteristics, or design variants of
flexible assembly lines), one needs to build many variations of a base Petri net. If the
set of nets is large, then it becomes challenging to build, maintain and analyse.
      </p>
      <p>
        To facilitate this task, we combine Petri nets with software product lines (SPLs) [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]
to define a notion of Petri net product line (PNPL). This allows modelling the
variability space using a feature model, and automatically producing specific Petri nets from
given feature configurations. As the main contribution of this paper, we propose lifting
structural analysis of Petri nets to the product line level. This means that we do not
need to analyse each Petri net that can be produced from a PNPL separately, but our
analysis works on the whole set of Petri nets directly. In this paper, we explain how to
lift the analysis of the marked graph property to the PNPL, but other structural analysis
techniques [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] can be lifted in a similar way. As a second contribution, we present
extensible prototype tool support to model and analyse PNPLs. Our tool is based on
Eclipse, and has an extension point to enable contributing further analysis.
      </p>
      <p>In the following, Section 2 introduces PNPLs, Section 3 proposes lifting the analysis
of structural properties to the PNPLs and lifts the marked graph property analysis as an
example, Section 4 presents tool support, Section 5 compares with related research, and
Section 6 concludes the paper and presents lines of future work.</p>
      <p>FlexibleAssemblyLine
InParts</p>
      <p>Process</p>
      <p>OutProducts</p>
      <p>Legend
mandatory optional
This section defines PNPLs, and derivation of concrete Petri nets via feature
configurations. We consider a simple notion of Petri net, but the approach can be easily
adapted to other more complex versions. In particular, we assume that a Petri net is
a tuple P N = (P, T , A) where P and T are disjoint sets of places and transitions, and
A ✓ (P ⇥ T ) [ (T ⇥ P ) is the set of arcs connecting either places to transitions or vice
versa. Given an arc a 2 A, we use a0 to refer to its source, and a1 to refer to its target.</p>
      <p>PNPLs build on the notion of a feature model that defines the variability space of
possible configurations.</p>
      <sec id="sec-1-1">
        <title>Definition 1 (Feature model). A feature model F M</title>
        <p>
          features F = {f1, ..., fn} and a propositional formula
configurations.
= (F, ) consists of a set of
fixing the allowed feature
Example. As an illustration, we will be using a family of Petri nets describing the
behaviour of a flexible assembly line. Figure 1(a) shows the feature model using a
diagrammatic notation [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], and Figure 1(b) using Def. 1. Our assembly line can be
configured to accept one or two kinds of input parts (PartA, PartB), can optionally have
a quality control process (QualityControl) and a parallel conveyor (Parallel), and can
produce one or two kinds of products (Prod1, Prod2).
        </p>
        <p>A PNPL is a Petri net whose elements can be annotated with boolean formulae over
the features of the feature model.</p>
        <p>Definition 2 (Petri net product line). A PNPL P N L = (F M, P N, ) is made of
a feature model F M , a Petri net P N (called the 150% Petri net), and a tuple =
( P , T , A) of mappings. Each mapping X (for X 2 { P, T , A}) consists of pairs
hx, xi mapping an element (a place, a transition, an arc) x 2 X to a propositional
formula x (called the presence condition (PC) of x) over the features in F M .</p>
        <p>P N L is well-formed if 8 a 2 A • a ) a0 ^ a ) a1 .</p>
        <p>
          As noticed, we use an annotative approach to facilitate the analysis. The approach
relies on the definition of a 150% Petri net that contains all variants of the PNPL, and
the assignment of PCs to its elements, so that a particular Petri net can be obtained
by removing the elements with false PC (so-called negative variability). Instead, other
approaches to SPLs use positive variability [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]. Our method can also be applied to
them as long as they permit building a 150% Petri net.
        </p>
        <p>In Def. 2, the well-formedness condition requires the PC of an arc to be stronger
than the PC of its source and target elements. This ensures that, if the arc is present in a
product Petri net, its source and target elements will be present as well.
Example. Figure 1 shows the PNPL of the flexible assembly line. The 150% Petri net
in Figure 1(c) uses dashed regions as a shortcut to assign the same formula to all the
elements in the region. For example, formula PartB is attached to transition genB, to
place cnvB, and to the arcs from/to place cnvB.</p>
        <p>The way to obtain a particular Petri net from a PNPL is by selecting a subset of the
features in its feature model. This is called a feature configuration.</p>
      </sec>
      <sec id="sec-1-2">
        <title>Definition 3 (Feature configuration). A valid feature configuration ⇢ of a PNPL P N L</title>
        <p>with feature model F M = (F, ) is a subset of its features satisfying , i.e., evaluates
to true when each variable f 2 is substituted by true when f 2 ⇢ , and by false
otherwise. We use P (F M ) = {⇢ i}i2 I for the set of all valid configurations of P N L.</p>
        <p>Given a feature configuration, we obtain the corresponding Petri net by removing
from the 150% Petri net those elements whose PC is false.</p>
      </sec>
      <sec id="sec-1-3">
        <title>Definition 4 (Petri net derivation). A Petri net P N⇢ is derived from a PNPL P N L</title>
        <p>with feature model F M using configuration ⇢ 2 P (F M ) if P N⇢ contains exactly those
elements (places, transitions, arcs) from the 150% Petri net whose PCs are satisfied for
the features in ⇢ .</p>
        <p>We write Prod(PNL) for the set of all derivable Petri nets from the PNPL P N L.
Example. Figure 1 admits 36 configurations, each one producing a different Petri net.</p>
        <p>Analysing each derivable Petri net of a PNPL one by one can be time-consuming, as
the number of Petri nets can be exponential in the number of features in the worst case.
Hence, the next section proposes a method to lift the analysis of structural properties to
the product line level.
3</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Structural Analysis of Petri Net Product Lines</title>
      <p>
        In this paper, we focus on the analysis of structural properties of the set of nets that can
be derived from a PNPL P N L. Structural properties depend only on the net topology
and are independent of the initial marking [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. These properties include connectedness,
state machine, marked graph, free-choice and place invariants, among others.
      </p>
      <p>
        As an example, next we provide the definition of the marked graph (MG) property.
In a MG Petri net, each place has exactly one input transition and one output transition,
whereas each transition may have multiple input and output places. Therefore, a MG
allows concurrent and synchronization structures with no conflict.
Definition 5 (Marked graph, from [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]). A Petri net P N = (P, T , A) is a marked
graph iff 8 pi 2 P • |•p| = |p•| = 1, being •p and p• the sets of input and output
transitions of the place p, respectively.
      </p>
      <p>This definition permits analysing a Petri net, but we have a product line of them.
To improve the efficiency of their analysis, we do not examine each derivable Petri net
in P rod(P N L) separately. Instead, we work at the product line level by analysing the
PCs in the 150% Petri net to determine if a particular element (place, transition or arc)
is in P rod(P N L). For this purpose, first we lift the definition of the MG property to
the product line level. A PNPL is a MG if all its derivable nets are MGs.
Definition 6 (MG product line). A Petri net product line P N L is a marked graph iff
8 P N⇢ 2 P rod(P N L) • P N⇢ is a marked graph.</p>
      <p>In other words, if we can derive from the product line P N L a net that is not a MG,
then P N L is not a MG product line. In particular, given a feature configuration ⇢ , a Petri
net derivation P N⇢ is not a MG if it has a place p with more than one input transition
or more than one output transition. To analyse this without explicitly generating P N⇢ ,
we extend the elements of the pre- and post-sets of each place p with the PCs of its
incoming and outgoing arcs.</p>
      <p>Definition 7 (Lifted pre-/post-sets of a place). Given a PNPL P N L = (F M, P N =
(P, T , A), ), and a place p 2 P , the lifted pre-set of p is p = {(t, (t,p)) | (t, p) 2 A},
while its lifted post-set is p = {(t, (p,t)) | (p, t) 2 A}.</p>
      <p>Remark. In the previous definition, we can use the PC of the arc a instead of the
PC of the transition a1 because, according to Def. 2, in a well-formed PNPL, a )
a0 ^ a ) a1 , and so, a ^ a0 ⌘ a ⌘ a ^ a1 .</p>
      <p>The size of the lifted pre-set p = {(t0, (t0,p)), ..., (tn, (tn,p))} of a place p will
depend on the feature configuration ⇢ . To analyse the MG product line property, we
require that its size is one for every possible configuration. This is the case if the following
formula is true:
p , ( (t0,p) ^ ¬
(¬ (t0,p) ^
...
(¬ (t0,p) ^ ¬
(t1,p) ^ ... ^ ¬
(t1,p) ^ ... ^ ¬
(t1,p) ^ ... ^
(tn,p)) _
(tn,p)) _
(tn,p))
(1)</p>
      <p>The formula is made of a disjunction of conjunctions, where only one term in each
conjunction can be true. This ensures that, regardless of the configuration, the pre-set
of the place will have size one. The lifted post-set of a place p is defined similarly.</p>
      <p>This way, a PNPL includes some Petri net that is a MG if there is a feature
configuration ⇢ such that for every place p in the PNPL P N L:
– p is not in P N⇢ , therefore
– p is in P N⇢ , and therefore
p is false; or</p>
      <p>p and p need to be true.
FEATUREIDE</p>
      <p>Composer
Feature Feature
model configuration
Property</p>
      <p>Analysis</p>
      <p>PETRINETS VAR
We can express these conditions as the logical formula = (^ p2 P [¬ p _ ( p ^
p ^ p )]. This way, if SAT ( ^ ) (with SAT a predicate that holds if the formula
is satisfiable, and the formula of the feature model), then some Petri net in the PNPL
is a MG. We can use a constraint solver to obtain a feature configuration that
satisfies the formula, if such a configuration exists. The Petri net derived using this feature
configuration is ensured to be a MG.</p>
      <p>Conversely, the feature configurations that yield nets which are not MGs are those
making the formula = (^ p2 P [¬ p _ ( p ^ (¬ p _ ¬ p ))] true.</p>
      <p>Example. In the PNPL of Figure 1, the interesting cases are those for places in and ctrl.
In the latter case, any Petri net that contains either both transitions inc1 and inc2, or both
transitions prod and fix, is not a MG because place ctrl would have either two incoming
or two outgoing arcs. This is the case for the Petri nets derived from configurations that
select the features Parallel or QualityControl. Similarly, place in will have two incoming
arcs for configurations that select the feature QualityControl, and two outgoing arcs for
configurations that select the feature Parallel, resulting in nets that are not MGs.</p>
      <p>The analysis of other structural properties, like state-machine, free-choice or
asymmetric choice, can be lifted in a very similar way.
4</p>
    </sec>
    <sec id="sec-3">
      <title>Tool Support and Assessment</title>
      <p>In this section we present a prototype realization of our approach (Section 4.1), and
assess the efficiency gain of our analysis w.r.t. an enumerative approach (Section 4.2).
4.1</p>
      <sec id="sec-3-1">
        <title>Architecture and tool support</title>
        <p>
          We have implemented an Eclipse plugin, called Petrinets var, which supports the
presented approach. Figure 2 shows its architecture. Our tool provides two dedicated
editors: one to specify the 150% Petri net, and another to assign PCs to its elements in a
socalled variability mapping model. We use the Eclipse Modeling Framework (EMF) [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]
as the underlying modelling technology, and therefore, both models are EMF-based and
conform to their respective Ecore meta-models.
1
2
        </p>
        <p>3</p>
        <p>
          We rely on FeatureIDE [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] to specify the feature model and feature
configurations. FeatureIDE provides an extension point Composer that our tool instantiates to
automate the derivation of specific Petri nets from the 150% Petri net given a feature
configuration. In its turn, our tool defines an extension point, called Property
Analysis, that allows extending the tool with new analysis methods. Our framework provides
facilities to transform the conjunction of the analysis formula and the formula of the
feature model into Conjunctive Normal Form (CNF) as the Sat4J solver requires. These
facilities can be used by any analysis. We currently provide two instances of this
extension point to analyse whether some/all Petri nets in a PNPL are state machines or
marked graphs.
        </p>
        <p>Figure 3 shows a screenshot of our tool. The Eclipse project explorer (label 1)
contains the FeatureIDE project with the definition of the PNPL used as a running
example. This project is configured with our composer and declares the 150% Petri net (file
150mm.petrinets), the feature model (file model.xml that is being edited in the window
labelled 2), and the variability model (file annotation.vrb that is being edited in the
window labelled 3). As the figure shows, there are dedicated editors for each kind of file. A
popup menu on the variability model allows selecting the lifted analysis to perform.</p>
        <p>
          Note that, as a proof of concept, our current implementation uses its own EMF
meta-model to represent 150% Petri nets. This meta-model supports a simple notion
of net like the one we have used in the paper. However, we are planning to use the
standard Petri Net Markup Language (PNML) [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] instead, for which there is an EMF
implementation available.
4.2
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>Efficiency assessment</title>
        <p>Next, we report on a small-scale experiment to assess the efficiency gain of our lifted
analyses, compared to generating all derivable nets in a PNPL and analysing each net
separately. In particular, we measure the time for analysing the MG and state-machine
(SM) properties.</p>
        <p>The experiment uses the example of Structural Lifted analysis Analysis of
Figure 1, for which the analyses report analysis of PNPL all products
that some Petri nets in the PNPL are nei- Marked graph 38 3356
ther MGs nor SMs. Table 1 shows the State machine 41 4603
average analysis time in milliseconds of
running 10 times each analysis, where we Table 1. Analysis time (ms) for MG and SM.
discarded the first execution to avoid warmup effects. As it can be observed, both lifted
analyses are two orders of magnitude faster than the time to generate and analyse each
net in isolation. We expect further efficiency gains with bigger PNPLs (with more
features), but performing more experiments is up to future work.
5</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Related Work</title>
      <p>
        The main analysis techniques for Petri nets can be classified into three groups [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]: i)
enumeration, ii) transformation (mainly reduction), and iii) structural. Enumeration
methods are based on the construction of a reachability/coverability graph, but they
suffer the state explosion problem. Transformation methods obtain a slice of a Petri net
that is easier to analyse but preserves the properties under study [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Structural analysis
techniques are based on the net structure and its initial marking, and can be divided
into two subgroups: linear programming techniques based on the state equation, and
graph-based techniques based on “ad hoc” reasoning frequently derived from the firing
rule. A survey on Petri nets models and their analysis techniques can be found at [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
      <p>
        There are several mechanisms to model variability for SPL. Most of them can be
classified into annotation-based and composition-based techniques [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. In
annotationbased approaches, parts of a model are annotated with information about their mapping
to products of the product line. They are widely used since they are easy to implement.
Nevertheless, they work under the closed world assumption, i.e., the set of features is
fixed. In composition-based modelling, the product line is decomposed into separate
modules representing features that can be composed to derive products. They support
positive variability, that is, composition units are added on demand. Surveys on SPL
modelling techniques can be found in [
        <xref ref-type="bibr" rid="ref2 ref21 ref4">2, 4, 21</xref>
        ].
      </p>
      <p>
        Just like us, some works have added variability to Petri nets using SPL techniques.
Feature Petri nets(FN) [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] extend Petri nets to allow modelling the behaviour of an
entire SPL. A FN transition is activated if its input places are marked and its
application condition (a logical constraint over features) is true under the current configuration
state. Dynamic feature Petri nets (DFPN) [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] extend FN to control feature bindings at
runtime, and allow the evaluation of some dynamic properties using model checking.
These works lift the analysis based on the reachability graph to the product line level, by
adding presence conditions to this graph. They follow an annotative approach to model
variability. Similarly, some works have used variability in Petri nets with the purpose
of expressing variability in higher-level languages – like activity diagrams – and use a
variable reachability graph for analysis [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. This work is also an annotative approach
for SPL. With respect to these works, our variability model is more general: [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] only
supports variability in edges, [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] supports variability just in arcs and transitions, while
our approach supports presence conditions in arcs, places and transitions. With respect
to analysis, while they focus on the reachability graph, we lift structural analysis
techniques.
      </p>
      <p>
        In addition to SPL methods, other techniques to handle variability in Petri nets have
been proposed. Conditional Petri nets [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] associate to each transition a condition
defined with the family of L languages. Therefore, a transition is conditioned by the
transition sequence previously applied. Likewise, logical Petri nets [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] limit transition firing
by means of constraints on first-order logic. Reconfigurable nets [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] can change the
net topology at runtime by means of rewriting rules. Instead, PNPLs are static: a
configuration needs to be provided to derive a Petri net. Regarding analysis of model-based
product lines, Czarnecki and Pietroszek [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] proposed an approach to check whether all
possible derivable models satisfy the OCL constraints of their meta-model. We may
have encoded the MG property in OCL and used that technique. However, our solution
permits generating specific constraints for the analysed PNML (instead of relying on
one generic OCL constraint), which therefore can be solved using simpler and
potentially more efficient standard SAT-solving techniques. Instead, Czarnecki’s approach
requires extending an existing OCL-based checker to consider presence conditions.
      </p>
      <p>
        Concerning SPL analysis of temporal properties, Legay et al. [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] represent the
behaviour of variability-intensive systems by means of an extension of transition systems,
called Feature Transition System. These authors also propose in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] model checking
algorithms to verify of all products of a SPL. Unlike this approach, we only focus on
static properties, but we would plan to explore behavioural properties in further works.
      </p>
      <p>Altogether, to the best of our knowledge, there are no previous works on the analysis
of structural properties of PNPLs. Our work is a first step in this direction, which we
have realized in practice through extensible tooling.
6</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusions and Future Work</title>
      <p>In this paper, we propose the notion of Petri net product line, show how to analyse
structural properties (specifically the marked graph property) at the product line level,
and presented an extensible prototype on top of FeatureIDE.</p>
      <p>
        In the future, we plan to support more types of static analysis techniques, exploit
compositionality of Petri nets in these analyses, and perform more thorough
experiments. Moreover, our idea is to develop a domain-specific language to express such
analyses, which then can be compiled into standard SAT solving procedures. At the
technical level, we will use the PNML meta-model, to ease the connection of our
approach with Petri net tools like CPN Tools [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. Finally, we are also planning to explore
the lifting of dynamic analyses, and also the consideration of variability of the Petri net
language itself.
      </p>
    </sec>
    <sec id="sec-6">
      <title>Acknowledgments</title>
      <p>Work funded by the Spanish Ministry of Science (project MASSIVE,
RTI2018-095255B-I00) and the R&amp;D programme of Madrid (project FORTE, P2018/TCS-4314). We
thank the anonymous referees for their useful comments.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Sven</given-names>
            <surname>Apel</surname>
          </string-name>
          , Don S. Batory,
          <string-name>
            <given-names>Christian</given-names>
            <surname>Kästner</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Gunter</given-names>
            <surname>Saake</surname>
          </string-name>
          .
          <source>Feature-Oriented Software Product Lines - Concepts and Implementation</source>
          . Springer,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>Fabian</given-names>
            <surname>Benduhn</surname>
          </string-name>
          , Thomas Thüm, Malte Lochau, Thomas Leich, and
          <string-name>
            <given-names>Gunter</given-names>
            <surname>Saake</surname>
          </string-name>
          .
          <article-title>A Survey on Modeling Techniques for Formal Behavioral Verification of Software Product Lines</article-title>
          .
          <source>In Proceedings of the 9th International Workshop on Variability Modelling of Softwareintensive Systems, VaMoS '15</source>
          , pages
          <fpage>80</fpage>
          :
          <fpage>80</fpage>
          -
          <lpage>80</lpage>
          :
          <fpage>87</fpage>
          , New York, NY, USA,
          <year>2015</year>
          . ACM.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Gérard</given-names>
            <surname>Berthelot</surname>
          </string-name>
          .
          <article-title>Transformations and decompositions of nets</article-title>
          .
          <source>In Advances in Petri nets</source>
          , volume
          <volume>254</volume>
          <source>of LNCS</source>
          , pages
          <fpage>359</fpage>
          -
          <lpage>376</lpage>
          . Springer,
          <year>1987</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>Andreas</given-names>
            <surname>Classen</surname>
          </string-name>
          , Maxime Cordy,
          <string-name>
            <surname>Pierre-Yves</surname>
            <given-names>Schobbens</given-names>
          </string-name>
          , Patrick Heymans, Axel Legay, and
          <string-name>
            <surname>Jean-François Raskin</surname>
          </string-name>
          .
          <article-title>Featured Transition Systems: Foundations for Verifying Variability-Intensive Systems and Their Application to LTL Model Checking</article-title>
          .
          <source>IEEE Trans. Software Eng.</source>
          ,
          <volume>39</volume>
          (
          <issue>8</issue>
          ):
          <fpage>1069</fpage>
          -
          <lpage>1089</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>José</given-names>
            <surname>Manuel</surname>
          </string-name>
          <string-name>
            <surname>Colom</surname>
          </string-name>
          , Enrique Teruel, and
          <string-name>
            <given-names>Manuel</given-names>
            <surname>Silva</surname>
          </string-name>
          .
          <article-title>Performance models for discrete event systems with synchronisations: Formalisms and analysis techniques</article-title>
          .
          <source>Editorial KRONOS</source>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Krzysztof</given-names>
            <surname>Czarnecki</surname>
          </string-name>
          and
          <string-name>
            <given-names>Krzysztof</given-names>
            <surname>Pietroszek</surname>
          </string-name>
          .
          <article-title>Verifying feature-based model templates against well-formedness OCL constraints</article-title>
          .
          <source>In Proc. GPCE</source>
          , pages
          <fpage>211</fpage>
          -
          <lpage>220</lpage>
          . ACM,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>André</given-names>
            <surname>Heuer</surname>
          </string-name>
          , Vanessa Stricker,
          <string-name>
            <given-names>Christof J.</given-names>
            <surname>Budnik</surname>
          </string-name>
          , Sascha Konrad, Kim Lauenroth, and
          <string-name>
            <given-names>Klaus</given-names>
            <surname>Pohl</surname>
          </string-name>
          .
          <article-title>Defining variability in activity diagrams and petri nets</article-title>
          .
          <source>Sci. Comput</source>
          . Program.,
          <volume>78</volume>
          (
          <issue>12</issue>
          ):
          <fpage>2414</fpage>
          -
          <lpage>2432</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Kyo</given-names>
            <surname>Kang</surname>
          </string-name>
          , Sholom Cohen, James Hess,
          <string-name>
            <given-names>William</given-names>
            <surname>Novak</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Peterson</surname>
          </string-name>
          .
          <article-title>Feature-oriented domain analysis (FODA) feasibility study</article-title>
          .
          <source>Technical Report CMU/SEI-90-TR-021</source>
          , Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA,
          <year>1990</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Axel</given-names>
            <surname>Legay</surname>
          </string-name>
          , Gilles Perrouin, Xavier Devroey, Maxime Cordy,
          <string-name>
            <surname>Pierre-Yves Schobbens</surname>
            , and
            <given-names>Patrick</given-names>
          </string-name>
          <string-name>
            <surname>Heymans</surname>
          </string-name>
          .
          <article-title>On Featured Transition Systems</article-title>
          .
          <source>In Proceedings of Theory and Practice of Computer Science - 43rd International Conference on Current Trends in Theory and Practice of Computer Science (SOFSEM</source>
          <year>2017</year>
          ), volume
          <volume>10139</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>453</fpage>
          -
          <lpage>463</lpage>
          . Springer,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Wei</surname>
            <given-names>Liu</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pin</surname>
            <given-names>Wang</given-names>
          </string-name>
          , Yuyue Du,
          <string-name>
            <surname>Mengchu Zhou</surname>
            , and
            <given-names>Chun</given-names>
          </string-name>
          <string-name>
            <surname>Yan</surname>
          </string-name>
          .
          <article-title>Extended logical Petri netsbased modeling and analysis of business processes</article-title>
          .
          <source>IEEE Access</source>
          ,
          <volume>5</volume>
          :
          <fpage>16829</fpage>
          -
          <lpage>16839</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>Marisa</given-names>
            <surname>Llorens</surname>
          </string-name>
          and
          <string-name>
            <given-names>Javier</given-names>
            <surname>Oliver</surname>
          </string-name>
          .
          <article-title>Structural and dynamic changes in concurrent systems: Reconfigurable Petri nets</article-title>
          .
          <source>IEEE Trans. Computers</source>
          ,
          <volume>53</volume>
          (
          <issue>9</issue>
          ):
          <fpage>1147</fpage>
          -
          <lpage>1158</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Jens</surname>
            <given-names>Meinicke</given-names>
          </string-name>
          , Thomas Thüm, Reimar Schröter, Fabian Benduhn, Thomas Leich, and
          <string-name>
            <given-names>Gunter</given-names>
            <surname>Saake</surname>
          </string-name>
          .
          <source>Mastering software variability with FeatureIDE</source>
          . Springer,
          <year>2017</year>
          . See also https://featureide.github.io/.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>Tadao</given-names>
            <surname>Murata</surname>
          </string-name>
          .
          <article-title>Petri Nets: Properties, Analysis and Applications</article-title>
          .
          <source>Proc. IEEE</source>
          ,
          <volume>77</volume>
          (
          <issue>4</issue>
          ):
          <fpage>541</fpage>
          -
          <lpage>580</lpage>
          ,
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Radu</surname>
            <given-names>Muschevici</given-names>
          </string-name>
          , Dave Clarke, and
          <string-name>
            <given-names>José</given-names>
            <surname>Proença</surname>
          </string-name>
          .
          <article-title>Feature Petri nets</article-title>
          .
          <source>In SPLC Workshops</source>
          , pages
          <fpage>99</fpage>
          -
          <lpage>106</lpage>
          . Lancaster University,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Radu</surname>
            <given-names>Muschevici</given-names>
          </string-name>
          , José Proença, and
          <string-name>
            <given-names>Dave</given-names>
            <surname>Clarke</surname>
          </string-name>
          .
          <article-title>Feature nets: behavioural modelling of software product lines</article-title>
          .
          <source>Software &amp; Systems Modeling</source>
          ,
          <volume>15</volume>
          (
          <issue>4</issue>
          ):
          <fpage>1181</fpage>
          -
          <lpage>1206</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Petri</surname>
          </string-name>
          <article-title>Net Markup Language</article-title>
          . www.pnml.org.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Klaus</surname>
            <given-names>Pohl</given-names>
          </string-name>
          , Günter Böckle, and Frank J. van der Linden.
          <source>Software Product Line Engineering. Foundations, Principles and Techniques</source>
          . Springer-Verlag Berlin Heidelberg,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Christoph</surname>
            <given-names>Seidl</given-names>
          </string-name>
          , Ina Schaefer, and
          <string-name>
            <given-names>Uwe</given-names>
            <surname>Aßmann. DeltaEcore - A Model-Based Delta Language Generation</surname>
          </string-name>
          <article-title>Framework</article-title>
          . In Modellierung, volume
          <volume>225</volume>
          <source>of LNI</source>
          , pages
          <fpage>81</fpage>
          -
          <lpage>96</lpage>
          , Bonn,
          <year>2014</year>
          . GI.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>Manuel</given-names>
            <surname>Silva</surname>
          </string-name>
          .
          <article-title>Half a century after Carl Adam Petri's Ph.D. thesis: A perspective on the field</article-title>
          .
          <source>Annual Reviews in Control</source>
          ,
          <volume>37</volume>
          (
          <issue>2</issue>
          ):
          <fpage>191</fpage>
          -
          <lpage>219</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20. David Steinberg, Frank Budinsky, Marcelo Paternostro, and Ed Merks.
          <source>EMF: Eclipse Modeling Framework</source>
          <volume>2</volume>
          .0.
          <string-name>
            <surname>Addison-Wesley</surname>
            <given-names>Professional</given-names>
          </string-name>
          ,
          <source>2nd edition</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Thomas</surname>
            <given-names>Thüm</given-names>
          </string-name>
          , Sven Apel, Christian Kästner, Ina Schaefer, and
          <string-name>
            <given-names>Gunter</given-names>
            <surname>Saake</surname>
          </string-name>
          .
          <article-title>A Classification and Survey of Analysis Strategies for Software Product Lines</article-title>
          .
          <source>ACM Comput. Surv.</source>
          ,
          <volume>47</volume>
          (
          <issue>1</issue>
          ):6:
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          :
          <fpage>45</fpage>
          ,
          <year>June 2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22. Ferucio Laurentiu Tiplea, Toader Jucan, and
          <string-name>
            <given-names>Cristian</given-names>
            <surname>Masalagiu</surname>
          </string-name>
          .
          <article-title>Conditional Petri net languages</article-title>
          .
          <source>Elektronische Informationsverarbeitung und Kybernetik</source>
          ,
          <volume>27</volume>
          (
          <issue>1</issue>
          ):
          <fpage>55</fpage>
          -
          <lpage>66</lpage>
          ,
          <year>1991</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>Michael</given-names>
            <surname>Westergaard</surname>
          </string-name>
          and
          <article-title>Lars Michael Kristensen. The Access/CPN framework: A tool for interacting with the CPN tools simulator</article-title>
          .
          <source>In Proc. PETRI NETS</source>
          , volume
          <volume>5606</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>313</fpage>
          -
          <lpage>322</lpage>
          . Springer,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>