Blog Posts

Process Mining for Analyzing Software Processes

Touristic Process

This is a guest post by Vladimir Rubin. Vladimir shares his experience from applying process mining to software processes for a tourism company.

If you have a process mining case study that you would like to share as well, please contact us at anne@fluxicon.com.

Why Software Process Mining?

Building flexible, adaptive software systems is becoming more and more important, because businesses need to be able to change rapidly. Especially agile methods and processes are becoming extremely popular, since they naturally deal with business change by decreasing the length of iteration lifecycles and getting quicker responses from the end-users. Additionally, concepts such as continuous integration and delivery support the dynamic rollout of software to customers and enable short user feedback loops.

By using these agile approaches, the end-user becomes a part of the software development life-cycle. His experience and his way of working with the software become accessible and essential for subsequent iterations of software development. This is the point where process mining comes into play.

We have successfully applied process mining, which is normally used more for the analysis of traditional business processes, to the area of software development. Both user interaction and systems internal behavior can be analyzed with the help of process mining. The results of this analysis can significantly influence the architecture, design, testing, and development of the software system.

In this blog article, we discuss two main use cases:

  1. The interaction of the end-user (or of a Beta-Tester) with the software system can be logged and, therefore, analyzed with the help of mining tools. Then, the analysis results are given to the business analysts, testers, architects, and developers in order to improve the usability, reliability, efficiency, and other properties of the software system.

  2. The sequence of services calls (calls of interfaces between components) is usually traced in order to provide developers information about system behavior and failures. This information can be imported in the process mining tool, which helps deriving the view of the software processes from a technical perspective by analyzing the performance and frequency of calls.

Both use cases were inspired by concrete requirements coming from a big European enterprise touristic project:

To address these problems, we have written the user logs and the traces of the system. Then, we have imported them in the Disco tool for process mining.

Here is a short overview of the results. The data has been anonymized to protect the confidentiality of the client.

Case 1: User Activity Analysis

In Figure 1 we show the positive behavior of the user the cases which were successfully finished in the production system. It is a convenient possibility to track the production state and to identify the frequency of the paths taken through the system by the user.


Figure 1: User positive behavior (Frequency View)

Figure 1: User positive behavior (Frequency View)

In Figure 2 we show the performance view of the negative behavior, i.e. the cases containing failures, and the time wasted.

Figure 2: User negative behavior (Performance View)

Figure 2: User negative behavior (Performance View)

In Figure 3 the cases are clustered per variant and the typical behavior is shown. It is helpful for analyzing the individual user behavior patterns and the variety of the business processes.

Figure 3: Variety of Cases (Types of Behavior)

Figure 3: Variety of Cases (Types of Behavior)

Case 2: System Performance Analysis

For the second case, we have taken the trace of system calls in order to analyze the system behavior. We could identify the most frequent service calls, the spreading of calls, and also the loops, as you can see in Figure 4.


Figure 4: Frequency Analysis

Figure 4: Frequency Analysis

Moreover, we could also see the detailed statistics of calls and, thus, the most critical services from the performance point of view, as shown in Figure 5.


Figure 5: Frequency Statistics

Figure 5: Frequency Statistics

After switching to the performance view of Disco and looking at the total time statistics, we could effectively identify the most time consuming calls in the system. Identifying these delays and increasing the performance had a high priority for the developer team, because a slow service would cause users to abandon the website and potentially leave to a competitor.


Figure 6: Performance Analysis

Figure 6: Performance Analysis

Summary

In this article, we have shown two successful applications of process mining in a concrete enterprise software project.

From our point of view, this is a very fruitful application domain, because productive software systems provide a big amount of data in form of logs and traces. This data can and should be analyzed in order to improve the software quality.

Leave a Comment

Get the BPI Web Feed

Using the HTML code below, you can display this Business Process Incubator page content with the current filter and sorting inside your web site for FREE.

Copy/Paste this code in your website html code:

<iframe src="https://www.businessprocessincubator.com/content/process-mining-for-analyzing-software-processes/?feed=html" frameborder="0" scrolling="auto" width="100%" height="700">

Customizing your BPI Web Feed

You can click on the Get the BPI Web Feed link on any of our page to create the best possible feed for your site. Here are a few tips to customize your BPI Web Feed.

Customizing the Content Filter
On any page, you can add filter criteria using the MORE FILTERS interface:

Customizing the Content Filter

Customizing the Content Sorting
Clicking on the sorting options will also change the way your BPI Web Feed will be ordered on your site:

Get the BPI Web Feed

Some integration examples

BPMN.org

XPDL.org

×