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:

  • The team wanted to analyze the productive behavior of the users in order to see the system failures, bottlenecks, and to gather statistics.

  • Several critical performance challenges appeared with an increasing number of users, they had to be identified and solved.

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.

Anne Rozinat

Anne Rozinat

Market, customers, and everything else

Anne knows how to mine a process like no other. She has conducted a large number of process mining projects with companies such as Philips Healthcare, Océ, ASML, Philips Consumer Lifestyle, and many others.