Daniel C. Weeks, “Process modeling language design and model verification,” Master’s thesis, Santa Clara University, Department of Computer Engineering, June 2004.

Abstract

Process oriented activities are present in many daily activities in that everything from getting prepared for work in the morning to baking a cake has a series of steps that are completed to accomplish some goal. While these processes are trivial, many that are involved in daily life are far more complicated. For example, the steps needed to complete a loan application are not readily known or understood to many because of the complexity of the process. Banks and agencies must collaborate and use a specific criteria to determine who is approved. As processes become more complex and people are added to the equation, the exact workings of the process become difficult to understand. At some point, the complexity of the process requires formalization to eliminate confusion.

To formalize a process, the important aspects must be extracted and described in an unambiguous manner. In order to achieve this level of specification, there must be some form of notation to which the description adheres. In addition, many of these processes, such as applying for a loan, are used repeatedly and the ability to automate the process would be advantageous. A notation for clearly describing processes that can also be used for both a better understanding and automation of the process would be an ideal solution.

There are two common approaches to conjoin notation and automation. The first method is to start with notations that already exist, such as programming languages, and extend them to describe processes. This method introduces a number of problems, the first being the complexity of the notation. For someone to model a process, they must first understand the intricacies of the language on which the modeling language is built. Another concern is that the strict interpretation of most programming languages can make some process-related concepts difficult to express. We propose an alternative solution that addresses these issues.

By looking at the conceptual aspects of modeling a process and deriving a language based on these concepts, we have developed a language that is specifically designed for describing processes. There are a number of advantages to this approach in that complexities introduced by combining programming languages with modeling languages are alleviated which results in a more concise language specification. Finally, there is significantly less of a learning curve. Despite the many benefits, there are some disadvantages to this method such as the lack of tool support. In order to provide this functionality, we have developed a static analyzer that examines process models in order to identify possible errors based on concepts that are specifically attuned to processes.

This thesis explores the concept of process modeling in conjunction with the design, development, and implementation of the process modeling language, PML, and the static analyzer, pmlcheck. Our examples demonstrate how these tools can be applied to describe and minimize errors in a process model. The objective of this thesis is to illustrate the advantages of process modeling and how it can be achieved through the use of PML and pmlcheck.

[Full text in PDF]