Petri Net-based software process Support Environment Design

Source: Internet
Author: User
Tags format definition jboss
Petri Net-based software process Support Environment Design

  1. Petri Net-based software process Support Environment Design
    1. Summary
    2. Chapter 1 Introduction
      1. 1.1 Software Process and Process Modeling
      2. 1.3 Status Quo of software process support environment
      3. 1.3 content and significance of the study
        1. 1.3.1 study content
        2. 1.3.2 meaning
      4. 1.4 introduction to Petri Net
    3. Chapter 4 Software Process Definition Language
      1. 2.1 spdl Overview
      2. 2.2 spdl Meta-Model
        1. 2.2.1 XML Schema
      3. 2.3 model transformation
        1. 2.3.1 transition from the spdl domain to the Java domain
        2. 2.3.2 generate a Petri Net graph for the spdl instance
          1. primitive Block
          2. generate a Petri Net Diagram
      4. 2.4 spdl-Based Software Process Modeling Method
    4. Chapter 4 software process execution control
      1. 3.1 process Lifecycle
      2. 3.2 process execution control
        1. 3.2.1 mark network initialization
        2. 3.2.2 Ignition Control
      3. 3.3 history tracking
    5. Chapter 4 Software Process Support Environment Design
      1. 4.1 beyondtrack Project Overview
      2. 4.2 Architecture Design
    6. Conclusion
    7. Thank you
    8. References
    9. Appendix

In the software life cycle, the software process is the core of the entire software development and implementation. Successful implementation of software projects must be based on a good software process meta-model and the corresponding software process support environment. This thesis proposes
An activity-centered Software Process Definition Language (spdl) defined based on XML schema is designed and implemented based on Petri
Supporting Environment for Software Process Execution Control Based on Network Theory.

Keywords:Petri Net, software process, process model, spdl


Process is the core of development in software life cycle. Successful
Software Project must base on a good software process meta model and
Corresponding support environment. The thesis presents a XML
Schema-based and activity-centric Software Process Definition Language
Spdl, then designs and implements a execution Controlling Support
Environment Based on the Petri net theory.

Keywords:Petri Net, software process, process model, spdl

Chapter 1 Introduction 1st Software Process and Process Modeling

Software processes are a series of related processes involved in the software life cycle. A process is a set of activities, an activity is a set of tasks, and a task is an operation that converts input to output [3]. The software process model is the static description of the software process and the basis for the software process execution. A software process is an execution instance of the software process model. It is a dynamic manifestation of the software process model.
When performing a specific soft module, You need to model it according to L. osterweil puts forward the idea that "software process is software" [3]. It is natural to model software process. Currently, the most common modeling tool for modeling software modules is UML [1], which provides a unified standard for modeling object-oriented software modules.
1.3 Status Quo of software process support environment

For software process modeling, modeling tools similar to UML influence have not yet been formed. OMG proposed the spem (Software Process
Engineering meta-model) [16] used to describe the software process model. In the document [17], the spem-based CMM is proposed.
The software process meta-model lacks an execution supporting environment for Software Process Execution and process evolution.
A software parallel development model and its control model are proposed in [3], and these models are precisely defined based on the Petri net theory, it indicates that the Petri net theory is an effective way to solve Software Process Modeling and execution control.

1.3 content and significance of the study 1.3.1
  1. Software Process and Software Process Model
    A software process is a series of related processes involved in the software life cycle. A software process model is a static description of the software process. Accurately describing software process models is a top priority.
  2. Software Process Control
    To precisely control software process execution, Petri Net-based software process model description and software process control are one of the effective ways to solve this problem.
  3. Software Process Support Environment
    The ultimate goal of software process modeling, Software Process Model Modification (Model Evolution), and software process execution management is to improve software productivity. Therefore, it is inevitable to provide a high-quality supporting environment.
1.3.2 meaning

In recent years, with the increasing demand for software, how to control the software production process and how to continuously improve and evolve the software process has become one of the core issues of software engineering research. I think that a precise
Software Process Definition Language, and implement the software process support environment available for this language is very necessary. In this supporting environment, software developers:

  1. Ability to accurately define various software process models involved in the software life cycle
  2. Ability to accurately complete the corresponding software process according to the defined Software Process Model
  3. Corrected Software Process Model defects in time

In summary, through precise control of software processes and the continuous evolution of models, software developers can think of the best software process to improve their software productivity.

1.4 introduction to Petri Net

Petri Net is a mathematical modeling tool used to describe discrete and distributed systems. In 1962, Carl Adam Petri named his paper"Kommunikation mit automaten"Got a doctorate. In this paper, he formally proposed the Petri net theory. This year was seen as the birth year of Petri net. After 1970, Petri Net developed his network theory into a general network theory. At present, many researchers around the world focus on Petri Net research and hold international conferences on Petri net every year.

Petri Net contains five basic elements:

  • Place)
    Generally, it is represented by a circle and can be described as a place to hold the tag code. It can have a capacity limit or assume that the capacity is infinite.
  • Transition)
    It is usually represented by a rectangle or a short line, describing the changes from one state to another. Changes occur in an atomic manner, that is, they cannot be interrupted.
  • ARC (directed arc)
    It is usually represented by a directed arc, pointing from the database to the database or pointing from the database to the database, which represents a partial order relationship between the two. You can set the weight on the arc, that is, the number of resources consumed at one time.
  • Token)
    That is, resources in the network system, and the number of tags is the number of resources. In a live network system, resources can flow continuously during database changes.
  • Marking)
    The token distribution in the Petri net is recorded, and the status of the Petri net is described.

Chapter 4 Software Process Definition Language

2.1 spdl Overview

Software Process Definition Language-spdl is an activity-centric Model Definition Language for Software Process modelers. It has the following features:

  • Covers the basic elements involved in the software process, and describes the association, functions, and information of these elements.
  • Ability to concurrently describe activities in the software process
  • Ability to uniformly describe the roles involved in the software process and define the permissions of each role
  • XML is used as a process model description carrier, with good readability and interoperability.
2.2 spdl Meta-Model

Meta-model is used to define the construct and rule of a semantic model. It is usually called the language model that defines the expression model [1]. Software
The meta-model of the program Definition Language-spdl is used to describe the relationship between elements and element attributes in the software process model.
The Object Management Organization (OMG) uses meta-Object Facility (MOF) to model the UML metadata [4]. MOF is a model-driven project with a 4-layer architecture [5], for example:
Figure 2.1 MOF model

In the M3 layer, MOF defines the most basic metadata model. In the M2 layer, MOF uses the metadata model defined by MOF to define the UML metadata model. In the M1 layer
The UML meta-model is used for software modeling. On the m0 layer, the modeled software model is instantiated. This instance describes the objects in the real world.

Follow the UML Meta-Model Modeling method to obtain the spdl Meta-Model Modeling architecture, for example:
Figure 2.2 spdl Model

In the M3 layer, XML Schema [15] defines the most basic metadata model. In the M2 layer, the metadata model defined in XML schema defines the spdl metadata model; in the M1 layer, the spdl meta-model is used for software process modeling. In the m0 layer, the modeled software process model is instantiated, this instance Describes software process instances in the real world.
It is the class design of spdl (for the sake of conciseness, all class diagrams have hidden attributes and operations)

Figure 2.3 spdl class diagram 2.2.1 XML Schema

Appendix 1
2.3 model transformation

In 2001, the Object Management Organization (OMG) proposed the concept of MDA [2] development, which mentioned the following two types of models:

  • Pim (platform-independent model, platform independent Model)
    Such models are not related to any specific platform technology. For example, when discussing the spdl concept, we only care about what is process definition, what is activity definition, and what is task definition, instead of worrying about how the supporting environment of spdl implements these concepts.
  • PSM (platform-specific model, platform specific model)
    This type of model places great importance on the particularity of a given platform and platform capabilities, making model transformation and code generation possible. For example, the PIM of a bank application can be modeled using UML, and then the pim uml model can be transformed to the SM Java EJB model and a vast majority of Java code is generated.
The principle of transforming from one model to another is outlined:

Figure 2.4 model transformation principle overview 2.3.1 transition from the spdl domain to the Java domain

An instance of spdl is an XML document that describes a software process model. When a spdl instance is deployed in a supporting environment, it must parse and generate corresponding Java objects for convenient operations, such as generating a Petri Net graph and associating a process model with a process.
Jaxb 2.0 (JSR 222) [7] provides a standard method to implement model transformation from the XML field to the Java field, and provides a brief overview of the Conversion Processing principles:

Figure 2.5 jaxb 2.0 principles overview 2.3.2 generate a Petri Net graph for a spdl instance

Petri Net can be described in two layers: one is a static layer, that is, a Petri Net graph; the other is a dynamic layer, that is, a markup network. This section describes the Petri net graph and its generation.
The following describes the format definition and basic terms of a Petri Net graph.
Definition 1.1[3] If the triples (S, T, W) are called a Petri Net graph

  • S is a finite set of databases.
  • T is a finite set of changes
  • S branch t =phi, and s branch T = Phi
  • W: (S × T) Weight (T × S) → n indicates the multiple duplicates of the arc.

The stream relationship is a set of arcs: F = {(x, y) | W (x, y) & gt; 0 }. In some documents about Petri Net, the arc severity is defined as 1, and F is used to replace w when the Petri net graph is defined.

Definition 1.2[3] set n = (S, T, F) to a Petri Net graph.

  • .X = {y ε s t | (Y, x) ε f}
  • X.= {Y ε s t | (x, y) ε f}
  • .X.=.X bytes X.

Where,.X is the premise of X, and X.A suffix called X,.X.It is called the forward and backward lift of X.

According to definition 1.1, the UML modeling of the Petri net diagram is as follows:

Figure 2.6 Petri Net Diagram

According to the element structure of spdl, the software process model defined by spdl can be divided into the following three basic structures:

  1. Sequential Structure
  2. Select Structure
  3. Parallel structure

In actual software process modeling, it is generally necessary to combine these three basic structures to define a practical software process model. primitive Block

The basic structure of the spdl process model is characterized by Petri net. The basic block has the following types:

  1. Ordered Block
    It depicts that the active EI and ej are sequential ,.

    Figure 2.7 ordered Block

  2. Select Block
    It depicts the selective activities of the activity EI and EJ ,.
    Figure 2.8 select a block

  3. Parallel Block
    It depicts that the activity EI is performed in parallel with the EJ ,.
    Figure 2.9 Parallel Block In the Petri net graph generated based on the spdl instance, the library is used to store the tag code. A tag Code describes a process instance, and a change describes the spdl activity, the completion of the activity will lead to the ignition of change, thus causing the moving of the tag code.
The following figures show the sequence, selection, and parallel structure of the Petri net Graph Generation instance.

  • Sequence Structure Diagram 2.10 generate a Sequence Structure Petri Net Diagram

  • Select structure 2.11 select structure Petri Net Graph Generation

  • Parallel structure
    When a Petri Net graph with a parallel structure is generated, the queue structure of the join database is generated. This structure is an ordered block, where the number of databases and the number of changes are equal to the number of parallel activities-1.

Figure 2.12 generate a Petri Net graph with parallel structure

2.4 spdl-Based Software Process Modeling Method

There are two basic policies for Software Process Modeling Based on spdl:

  1. Top-down
    Start modeling from the process and perform activity modeling and task modeling when the activities required in the process model do not exist.
  2. Bottom-up
    Modeling starts from participants, attributes, and so on, and finally combines these entities into a process.

These two strategies are used alternately During modeling. The top-down policy can be seen as a step-by-step refinement of process modeling; the bottom-up policy can be seen as the reuse of process elements.
The following is a UML example diagram of the spdl-based software process modeling method.
Figure 2.13 modeling method UML use case diagram

It is a UML Activity diagram of the spdl-based software process modeling method.

Figure 2.14 modeling method UML activity diagram

Chapter 4 software process execution control
3.1 process Lifecycle

The process is from scratch. First, after the process modeling, a original process model is obtained. After the process model is deployed, a process instance is generated, monitored during the execution period of the Process instance, and analyzed the data and problems in the process, we can get an improved process model, re-model the original process model, and repeat this process.
In summary, the software process is dynamic. Based on the feedback of the Process execution, the process model is modified as needed to further improve the software productivity. Shows the life cycle of the software process.

Figure 3.1 software process lifecycle 3.2 process execution control

Spdl provides a Software Process Model Definition Language for modelers. The execution of a software process must be precisely controlled after the software process model is developed. The Process Control Based on Petri Net is one of the effective ways to solve this problem.
In the execution process, the completion of the activity will lead to the completion of the process or the creation of the next activity. The execution control is based on the Petri net. After an ignition, the Process status is changed to generate a new activity, as shown in.

Figure 3.2 process execution control overview 3.2.1 mark network initialization

Label net is used to describe the state of a Petri Net graph and to describe the state of the process in the software process support environment.
The following describes the formal definition of the tag network and its basic terms.

Definition 1.3[3] set n = (S, T, F) to a Petri Net graph, where Σ = (S, T, F, m) is called a tag network.

  • M ⊆ S, called a tag of N or a transient state
  • If, and.X m, X.When M = Phi, it is called event X as trigger
  • If event X is triggered (called ignition), the Network Sigma is converted to Σ '= (S, T, F, M'), where M' = (m-.X) bytes X., M' is also a tag of N, and Σ is also a tag Network

When a given process model is used to instantiate a process, a tag network is initialized in the Petri net diagram corresponding to the given process model.
The UML sequence diagram of process instantiation is as follows:

Figure 3.3 process instantiation UML sequence diagram

3.2.2 Ignition Control

When a process is executed, when an activity meets its completion condition, a ignition corresponding to the change of the activity is triggered. If the ignition is completed successfully, the corresponding tag code will be moved successfully, and corresponding activities will be generated or the entire process will be completed.
Based on the primitive block type, ignition control can be divided into the following three types:

  1. Ordered block ignition
  2. Select block ignition
  3. Parallel Block ignition

The following steps are used to control the changing ignition of the three basic structures:

  1. Check whether the changing Ignition conditions are met. If the changing Ignition conditions are met, proceed to step 2. If not, exit ignition.
  2. In the input library, select the corresponding tag based on the process of completing the activity as needed.
  3. From the input database to the output database, ignition is performed.

The following figures show the ignition control instances of the sequence block, selection block, and parallel block respectively.

  • Ordered block ignition

    Figure 3.4 sequence block ignition

  • Select block ignition

    Figure 3.5 select block ignition (1) ignition Activity 1 [choice], indicating Activity 1 is selected during execution.

    Figure 3.6 block ignition (2)

  • Parallel Block ignition
    When the start activity is completed, the associated Petri Net execution will occur: the tag associated with the process of completing the activity moves the tag code associated with the start activity [start] Library to the fork library.

    Figure 3.7 Parallel Block ignition (1)

    When the tag code is moved to the fork database, the fork changes automatically.

    Figure 3.8 Parallel Block ignition (2)

    When one of the parallel activities is completed, the codes in the input library corresponding to the changes will be moved to the join output library. Now, change activity 2
    It cannot be ignited. If activity 2 is completed at this time, the ignition of activity 2 corresponding to the change will be carried out after the change join is automatically ignited.

    Figure 3.9 Parallel Block ignition (3)

    When the tag code is moved to the join database, a join change ignition is automatically performed so that the tag Code enters the queue of the join database. If the number of concurrent activities is N, (n-2) ignition is performed in the queue of the database so that the tag code moves to the end database of the queue (join queue N-1 ).

    Figure 3.10 Parallel Block ignition (4)

    When one of the parallel activities is completed, the codes in the changed input library will be moved to the join output library. In this case, if you cannot change the join ignition, it means that all the parallel activities have been completed, because the queue of the join database is filled with the standard code.
    Figure 3.11 Parallel Block ignition (5)

    After the parallel activity is completed, the tail of the queue in the ignition join database changes and the entire Parallel Block ends.
    Figure 3.12 Parallel Block ignition (6)

3.3 history tracking
The process is dynamic and its status changes with the execution of the process. Therefore, the status changes of each process must be recorded. By tracking history, we can obtain a lot of important data and mine and sort the data to help provide information about the evolution of the process model and provide the necessary data required for project management.
According to the structure of the software process [6], the history is divided into the following three parts:
  1. Process history
    Records the key data of a process when an operation occurs. For example, process creation/completion, activity execution path, and priority change.
  2. Activity history
    Records the key data of activities in the process when an operation occurs. Such as activity creation/completion, activity owner change, etc.
  3. Task history
    Records the key data of an active task when an operation occurs. For example, task creation/completion, participant, and priority change.

Chapter 4 Software Process Support Environment Design
4.1 beyondtrack Project Overview

Byondtrack is
B/S of javaee Platform
Structured Software Process support environment. In this environment, you can:

  • Visual Software Process Modeling
  • Custom Process Variables
  • Process variable granularity permission management
  • Process Task and participant Management
  • Wiki-based document management
  • Tracking process Event History
4.2 Architecture Design

The main technologies involved in the beyondtrack project and their usage are as follows:

  • Use jaxb 2.0 (JSR 222) for spdl Processing)
  • Use the JBoss Seam framework [8] ( in the application framework. This framework is a superset Implementation of Java context and dependency injection (JSR 299) [9 ].
  • For database persistence, use the hibernate [14] Implementation of JPA 1.0 (a part of JSR 220) [10], and use the Entity Management and transaction management managed by seam.
  • The presentation layer selects the richfaces [12] Implementation of JSF 1.2 (JSR 252) [11] and uses facelets [13] As the JSF view definition framework.

Here we will briefly explain the reasons for choosing the JBoss Seam framework:

  • Excellent component scope and component lifecycle management
  • Annotation-based component configuration, framework configuration is very simple
  • Integrates many application functions, such as rule engine, workflow engine, and PDF generation.
  • Is a full-stack application framework that provides an overall solution for the presentation layer, business logic layer, and data persistence layer.
  • Is a quasi-standard for Java enterprise-level application frameworks"

The high-level components are designed as follows:

Figure 4.1 beyondtrack Component Design

The high-level package is designed as follows:

Figure 4.2 beyondtrack Package Design


The component process model is the basic guarantee for controllable implementation of software projects. An excellent software process meta-model suitable for the project scale is a necessary condition for Software Process Model Modeling. Use spdl
Ability to describe a simple (sequential/select/parallel) software process model, and in beyondtrack
The system is fully supported by the full life cycle of Process Modeling, deployment, execution, and optimization, which improves the efficiency of software development to a certain extent. In further work, we will continue to improve the spdl
The meta-model allows you to describe more complex software processes (such as sub-processes), and add the definition of the condition for activity change so that it is based on the Petri Net
The network can be automatically or semi-automatically executed during process execution control.

Thank you

I sincerely thank Dr. Li Tong, my mentor, for his hard work, careful guidance, and strict requirements.
Thanks to Jin Feng's software company, where I learned a lot of software engineering practices and experiences that I couldn't learn in school.
Thanks to the members of the beyondtrack project team for their concerted efforts to successfully complete this project. Here, I would like to express my special thanks to Zhao Yu for studying it. He has given a lot of careful suggestions and made every effort to implement the project.
Finally, I would like to thank my family for your profound teachings and meticulous care. I have achieved my achievements today, and my gratitude to you cannot be expressed in any language!

[1] Rumbaugh J, Jacob bson I, booch G. The uniied Modeling Language Reference Manual. Addison
Wesley Longman, Inc., 1999
[2] OMG. MDA guide version 1.0.1, Document No: OMG/, 2003
[3] parallel software development process, such as Li Tong, Kong Bing, and Wang lixia. Beijing: Science Press, 2003
[6] ISO/IEC 12207, software life cycle processes
[7] JSR 222, javatm architecture for XML binding (jaxb) 2.0
[9] JSR 299, Web beans
[10] JSR 220, enterprise javabeanstm 3.0
[11] JSR 252, JavaServer faces 1.2
Http:// [13]
Http:// [15]
Http:// [16]
[17] spem-based CMM software process meta model, 2005 Journal of software, vol.16, No. 8


1 spdl XML Schema

Status: Draft date: April 22, 2009 Author: Ding Liang

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.