Abstract
Modern runtime environments, standard libraries, and other frameworks provide many ways of diagnostics for software engineers. One form of such diagnostics is logging low-level events which characterize internal processes during program execution like garbage collection, assembly loading, just-in-time compilation, etc. Low-level program execution event logs contain a large number of events and event classes, which makes it impossible to discover meaningful process models straight from the event log, so extraction of high-level activities is a necessary step for further processing of such logs. In this paper, .NET applications execution logs are considered and an approach based on an unsupervised technique is extended with the domain-driven hierarchy built with the knowledge of a structure of logged events. The proposed approach allows treating events on different levels of abstraction, thus extending the number of patterns and activities found with the unsupervised technique. Experiments with real-life .NET programs execution event logs are conducted to demonstrate the proposed approach’s capability.

























Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
.NET Platform. https://github.com/dotnet. Accessed 04 March 2023
Acampora, G., Vitiello, A., Stefano, B.N.D., van der Aalst, W.M.P., Günther, C.W., Verbeek, E.: IEEE 1849: The XES standard: The second IEEE standard sponsored by IEEE computational intelligence society [society briefs]. IEEE Comput. Intell. Mag. 12(2), 4–8 (2017)
Alharbi, A., Bulpitt, A., Johnson, O.: Towards unsupervised detection of process models in healthcare. Stud. Health Technol. Inf. 247, 381–385 (2018)
Begicheva, A., Lomazova, I.: Discovering high-level process models from event logs. Model. Anal. Inf. Syst. 24, 125–140 (2017). https://doi.org/10.18255/1818-1015-2017-2-125-140
Bose, R.P.J.C., van der Aalst, W.M.P.: Discovering signature patterns from event logs. In: 2013 IEEE symposium on computational intelligence and data mining (CIDM), pp. 111–118 (2013). https://doi.org/10.1109/CIDM.2013.6597225
Bose, R.J.C, Mans, R.S., van der Aalst, W.M.: Wanna improve process mining results?, pp. 127–134 (2013). https://doi.org/10.1109/CIDM.2013.6597227
Bottrighi, A., Guazzone, M., Leonardi, G., Montani, S., Striani, M., Terenziani, P.: Integrating ISA and part-of domain knowledge into process model discovery. Futur. Internet 14, 357 (2022). https://doi.org/10.3390/fi14120357
C# Language Repository. https://github.com/dotnet/csharplang. Accessed 04 March 2023
CLR events documentation. https://github.com/PM-IDE/Procfiler/blob/master/docs/CLREvents.md. Accessed 04 March 2023
Eck, M.L., Lu, X., Leemans, S.J.J., van der Aalst, W.M.P.: PM 2: A process mining project methodology. In: Zdravkovic, J., Kirikova, M., Johannesson, P. (eds.) Advanced information systems engineering, pp. 297–313. Springer, Cham (2015)
Entity Framework. https://github.com/dotnet/efcore. Accessed 04 June 2023
Fazzinga, B., Flesca, S., Furfaro, F., Masciari, E., Pontieri, L.: Efficiently interpreting traces of low level events in business process logs. Inf. Syst. 73, 1–24 (2018)
Federico, G., Burattin, A.: Cvamos-event abstraction using contextual information. Futur. Internet 15, 113 (2023). https://doi.org/10.3390/fi15030113
Feng, Y., Dreef, K., Jones, J.A., Deursen, A.: Hierarchical abstraction of execution traces for program comprehension. In: 2018 IEEE/ACM 26th international conference on program comprehension (ICPC), 86–8610 (2018)
Ferreira, D., Szimanski, F., Ralha, C.: Mining the low-level behavior of agents in high-level business processes. Int. J. Bus. Process Integr. Manag. 6, 146–166 (2013). https://doi.org/10.1504/IJBPIM.2013.054678
Folino, F., Guarascio, M., Pontieri, L.: Mining multi-variant process models from low-level logs. In: Abramowicz, W. (ed.) Business information systems, pp. 165–177. Springer, Cham (2015)
Fraenkel, A.S., Simpson, J.: How many squares can a string contain? J. Comb. Theory Ser. A 82(1), 112–120 (1998). https://doi.org/10.1006/jcta.1997.2843
Gusfield, D.: Algorithms on stings, trees, and sequences: computer science and computational biology. ACM SIGACT News 28(4), 143–149 (1997)
Gusfield, D., Stoye, J.: Linear time algorithms for finding and representing all the tandem repeats in a string. J. Comput. Syst. Sci. 69(4), 525–546 (2004). https://doi.org/10.1016/j.jcss.2004.03.004
Günther, C.W., Rozinat, A., van der Aalst, W.M.P.: Activity mining by global trace segmentation. In: Rinderle-Ma, S., Sadiq, S., Leymann, F. (eds.) Business process management workshops, pp. 128–139. Springer, Berlin (2010)
Hidalgo, L., Munoz-Gama, J.: A domain-driven framework to analyze learning dynamics in MOOCs through event abstraction. Appl. Sci. 13, 3039 (2023). https://doi.org/10.3390/app13053039
Hojaji, F., Zamani, B., Hamou-Lhadj, A., Mayerhofer, T., Bousse, E.: Lossless compaction of model execution traces. Softw. Syst. Model. (2020). https://doi.org/10.1007/s10270-019-00737-w
Islam, M.R., Maruf, A., Černý, T.: Code smell prioritization with business process mining and static code analysis: a case study. Electronics 11, 1880 (2022). https://doi.org/10.3390/electronics11121880
Jagadeesh Chandra Bose, R.P., van der Aalst, W.M.P.: Abstractions in process mining: a taxonomy of patterns. In: Dayal, U., Eder, J., Koehler, J., Reijers, H.A. (eds.) Business process management, pp. 159–175. Springer, Berlin (2009)
Kolpakov, R., Kucherov, G.: Finding maximal repetitions in a word in linear time. In: 40th annual symposium on foundations of computer science (Cat. No.99CB37039), pp. 596–604 (1999). https://doi.org/10.1109/SFFCS.1999.814634
Leemans, M., van der Aalst, W.: Process mining in software systems: Discovering real-life business transactions and process models from distributed systems, pp. 44–53 (2015). https://doi.org/10.1109/MODELS.2015.7338234
Leemans, M., van der Aalst, W., Brand, M.: The statechart workbench: enabling scalable software event log analysis using process mining, pp. 502–506 (2018). https://doi.org/10.1109/SANER.2018.8330248
Leemans, M., van der Aalst, W., Brand, M.: Recursion aware modeling and discovery for hierarchical software event log analysis, pp. 185–196 (2018). https://doi.org/10.1109/SANER.2018.8330208
Leonardi, G., Striani, M., Quaglini, S., Cavallini, A., Montani, S.: Towards semantic process mining through knowledge-based trace abstraction. In: Ceravolo, P., Keulen, M., Stoffel, K. (eds.) Data-driven process discovery and analysis, pp. 45–64. Springer, Cham (2019)
Li, C.-Y., Zelst, S.J., van der Aalst, W.M.P.: A framework for automated abstraction class detection for event abstraction. In: Abraham, A., Pllana, S., Casalino, G., Ma, K., Bajaj, A. (eds.) Intelligent systems design and applications, pp. 126–136. Springer, Cham (2023)
Liu, C., Zhang, J., LI, G., Gao, S., Zeng, Q.: A two-layered framework for the discovery of software behavior: a case study. IEICE transactions on information and systems E101.D, 2005–2014 (2018) https://doi.org/10.1587/transinf.2017EDP7027
Mannhardt, F., Tax, N.: Unsupervised event abstraction using pattern abstraction and local process models. (2017)
ProM Tools. https://promtools.org/. Accessed: 2023-08-29
Procfiler tool. https://github.com/PM-IDE/Procfiler. Accessed 04 March 2023
Rehse, J.-R., Fettke, P.: Clustering business process activities for identifying reference model components: BPM 2018 International workshops, Sydney, NSW, Australia, September 9-14, 2018, Revised Papers, pp. 5–17 (2019).https://doi.org/10.1007/978-3-030-11641-5_1
Rezunik, L., Perevoznikova, A., Eremina, D., Mitsyuk, A.: Using process mining to leverage the development of a family of mobile applications. In: Proceedings of the institute for system programming of the RAS (Proceedings of ISP RAS) 35(3), 171–186 (2023) https://doi.org/10.15514/10.15514/ISPRAS-2023-35(3)-13
Rubin, V., Lomazova, I., van der Aalst, W.: Agile development with software process mining. (2014). https://doi.org/10.1145/2600821.2600842
Sanchez-Charles, D., Carmona, J., Muntés-Mulero, V., Solé-Simó, M.: Reducing event variability in logs by clustering of word embeddings, pp. 191–203 (2018). https://doi.org/10.1007/978-3-319-74030-0_14
Shershakov, S., Rubin, V.: System runs analysis with process mining. Model. Anal. Inf. Syst. 22(6), 818–833 (2015). https://doi.org/10.18255/1818-1015-2015-6-818-833
Source code of test applications. https://github.com/PM-IDE/Procfiler/tree/master/test_data/source. Accessed 04 March 2023
Source code of experiments. https://github.com/PM-IDE/Ficus/blob/main/examples/paper.ipynb. Accessed 29 Aug 2023
Source code of Ficus python package. https://github.com/PM-IDE/Ficus/tree/main. Accessed 29 Aug 2023
Source code for the array pooling experiment. https://github.com/PM-IDE/Procfiler/tree/master/test_data/source/SystemArrayPooling. Accessed 04 March 2023
TIOBE Index. https://www.tiobe.com/tiobe-index/. Accessed 04 March 2023
Taibi, D., Systä, K.: From monolithic systems to microservices: a decomposition framework based on process mining. (2019). https://doi.org/10.5220/0007755901530164
Tax, N., Sidorova, N., Haakma, R., van der Aalst, W.: Mining local process models. J. Innov. Digit. Ecosyst. 3, 183–196 (2016). https://doi.org/10.1016/j.jides.2016.11.001
Tax, N., Sidorova, N., Haakma, R., van der Aalst, W.: Event abstraction for process mining using supervised learning techniques, pp. 251–269 (2018). https://doi.org/10.1007/978-3-319-56994-9_18
Ukkonen, E.: On-line construction of suffix trees. Algorithmica 14(3), 249–260 (1995)
van der Aalst, W.: Process mining: data science in action (2016). https://doi.org/10.1007/978-3-662-49851-4
van der Aalst, W.M.P., Carmona, J. (eds.): Process mining handbook. Lecture Notes in Business Information Processing, vol. 448. Springer, Cham (2022)
Yazdi., M.A., Farhadi Ghalatia, P., Heinrichs, B.: Event log abstraction in client-server applications. In: Proceedings of the 13th international joint conference on knowledge discovery, knowledge engineering and knowledge management (IC3K 2021) - KDIR, pp. 27–36. SciTePress, Virtual Event (2021).https://doi.org/10.5220/0010652000003064 . INSTICC
Zelst, S., Mannhardt, F., Leoni, M., Koschmider, A.: Event abstraction in process mining-literature review and taxonomy. Granul. Comput. (2021). https://doi.org/10.1007/s41066-020-00226-2
Acknowledgements
This work is an output of a research project implemented as part of the Basic Research Program at the National Research University Higher School of Economics (HSE University).
Author information
Authors and Affiliations
Contributions
E.V. Stepanov and A.A. Mitsyuk wrote the main manuscript, planned and conducted experiments, and E.V. Stepanov developed tools (Procfiler). Both authors reviewed the manuscript.
Corresponding authors
Ethics declarations
Conflict of interest
The authors have no Conflict of interest to declare that are relevant to the content of this article.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Appendix A: CLR events considered in this paper
Appendix A: CLR events considered in this paper
See Tables 3, 4, 5, 6, 7, 8, 9, 10, 11, 12.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Stepanov, E.V., Mitsyuk, A.A. Extracting high-level activities from low-level program execution logs. Autom Softw Eng 31, 41 (2024). https://doi.org/10.1007/s10515-024-00441-0
Received:
Accepted:
Published:
DOI: https://doi.org/10.1007/s10515-024-00441-0