1 Introduction
Any developer of computer or communication systems knows that the most important quality of a system is
that it be functionally correct, i.e. that it exhibits certain behavioral, or qualitative properties. Once assured
that the system behaves correctly, it is also important to ensure that the system meets certain performance-
related (or quantitative) objectives. Indeed, while system users often take behavioral correctness for granted,
it is the latter quantitative properties which often determine the success of one system over another [8].
Petri nets are a popular graphical modeling formalism that can help system designers ensure correctness and
performance at design time. While they were originally developed for the study of qualitative properties
of systems exhibiting concurrency and synchronization, temporal specifications were introduced about two
decades ago in various forms to Petri Nets in order to also allow for quantitative analysis.
The fo cus of the present paper is on the Petri net tool PIPE (Platform Independent Petri Net Editor). PIPE
is an op en source, platform-independent tool for creating and analyzing Generalized Stochastic Petri Nets
(GSPNs) – one type of Petri net that allows for temporal specification using immediate and exponential
delays. PIPE is implemented entirely in Java to secure the platform independence and provides an elegant,
easy-to-use graphical user interface that allows for the creation, saving, loading and analysis of Petri nets.
PIPE was initially built at Imperial College London by means of different student projects. A new version
with considerable improvements on different aspects of the tool functionality has now been implemented at
the Universitat de les Illes Balears.
The rest of the paper is organized as follows: we begin with a review of Petri nets in section 2. Section 3
describes three tools available in the Petri Nets Tool Database [3] and compares them with PIPE. Section 4
outlines the PIPE while section 5 describes the additional features that have been added. Section 6 describes
a case study showing how models can be built using PIPE and its new features. Finally, section 7 reports
conclusions and intended future work.
2 Petri Nets Review
Petri Nets were introduced by Carl Adam Petri in the early 1960s [17]. One of its main attractions as a
modeling formalism is how the basic aspects of concurrent systems are identified both conceptually and
mathematically.
Structurally, a Petri Net (PN) is a directed bipartite graph comprising places and transitions [5]. Places,
drawn as circles, model conditions or objects. Inside the places are tokens, drawn as black dots, which
represent the specific value of a condition or object. A particular arrangement of the tokens across all the
places is known as a marking or state. The system begins in some initial configuration known as the initial
marking. Transitions, drawn as rectangles, are used to describe events that may modify the system state.
Directed arcs specify the relation between local states and events in two ways: they indicate the conditions
under which the event can occur, as well as the local state transformations induced by the event.
The arcs of the graph are classified (with respect to transitions) as input arcs (arrow-headed arcs from places
to transitions), output arcs (arrow-headed arcs from transitions to places) and inhibitor arcs (circle-headed
arcs from places to transitions). Multiple (input, output, or inhibitor) arcs between places and transitions
are permitted and annotated with a number specifying their multiplicities.
Figure 1: Firing of a transition
2