To effectively evaluate a system that performs operations on UML class diagrams, it is essential to cover a large variety of different types of diagrams. The coverage of the diagram space can be attained by grouping them into a finite number of disjoint equivalence classes, each containing diagrams that are structurally equivalent, and analyzing at least one diagram from each class. Currently, no formal method exists to implement this approach. In this paper, we describe an approach that implements this idea by mapping class diagrams into an appropriate UML category using category theory and defining isomorphism classes containing diagrams that are isomorphic. The main idea of our approach to partitioning the space of class diagrams is to consider that any UML class diagram is an instance of the UML metamodel, then identify a small number of basic template diagrams, carefully selected simple class diagrams with parameters/variables, and combine them into complex template diagrams using an operation based on the colimit from category theory. We demonstrate through experiments that almost all of a large set of class diagrams randomly generated from the UML metamodel can be classified as instances of the isomorphism classes generated through this combination operation.
Awodey, A. (2010) Category Theory. Oxford University Press.
Leśniewski, S. (1992) A General Theory of Manifolds, Collected Works. Kluwer.
Hovda, P. (2008) What Is Classical Mereology? Journal of Philosophical Logic , 38, 55-82. https://doi.org/10.1007/s10992-008-9092-4
Tazin, A. and Kokar, M.M. (2022) Composition of UML Class Diagrams Using Category Theory and External Constraints. Journal of Software Engineering and Applications , 15, 436-468. https://doi.org/10.4236/jsea.2022.1512025
Tazin, A. (2022) Composition of UML Class Diagrams Using Category Theory and External Constraints. Ph.D. Dissertation, Northeastern University.
Mangaroliya, K. and Patel, H. (2020) Classification of Reverse-Engineered Class Diagram and Forward-Engineered Class Diagram Using Machine Learning.
Maneerat, N. and Muenchaisri, P. (2011) Bad-Smell Prediction from Software Design Model Using Machine Learning Techniques. 2011 8 th International Joint Conference on Computer Science and Software Engineering ( JCSSE ), Nakhonpathom, 11-13 May 2011, 331-336. https://doi.org/10.1109/jcsse.2011.5930143
Halim, A. (2013) Predict Fault-Prone Classes Using the Complexity of UML Class Diagram. 2013 International Conference on Computer , Control , Informatics and Its Applications ( IC 3 INA ), Jakarta, 19-21 November 2013, 289-294. https://doi.org/10.1109/ic3ina.2013.6819188
Al-Khiaty, M.A. and Ahmed, M. (2016) UML Class Diagrams: Similarity Aspects and Matching. Lecture Notes on Software Engineering , 4, 41-47. https://doi.org/10.7763/lnse.2016.v4.221
Pedersen, T., Patwardhan, S. and Michelizzi, J. (2004) WordNet: Similarity: Measuring the Relatedness of Concepts. HLT - NAACL — Demonstrations ‘04: Demonstration Papers at HLT - NAACL , Boston, 2-7 May 2004, 38-41. https://doi.org/10.3115/1614025.1614037
Chechik, M., Nejati, S. and Sabetzadeh, M. (2011) A Relationship-Based Approach to Model Integration. Innovations in Systems and Software Engineering , 8, 3-18. https://doi.org/10.1007/s11334-011-0155-2
Costa, V. (2014) Detecting Semantic Equivalence in UML Class Diagrams, SEKE.
Elasri, H., Elabbassi, E., Abderrahim, S. and Fahad, M. (2018) Semantic Integration of UML Class Diagram with Semantic Validation on Segments of Mappings.
Rao, R.S. and Gupta, M. (2013) Design Pattern Detection by Greedy Algorithm Using Inexact Graph Matching. International Journal of Engineering Research and Technology , 2, 3658-3664.
Rao, R.S. and Gupta, M. (2013) Design Pattern Detection by Sub Graph Isomorphism Technique. International Journal of Engineering and Computer Science , 2, 3101-3105.
Pradhan, P., Dwivedi, A.K. and Rath, S.K. (2015). Detection of Design Pattern Using Graph Isomorphism and Normalized Cross Correlation. 2015 8 th International Conference on Contemporary Computing ( IC 3), Noida, 20-22 August 2015, 208-213. https://doi.org/10.1109/ic3.2015.7346680
Chartrand, G. (1985) Isomorphic Graphs. Dover Books.
Rao, R.S. and Gupta, M. (2013) Design Pattern Detection by a Heuristic Graph Comparison Algorithm. International Journal of Advanced Research in Computer Science and Software Engineering , 3, 251-255.
de Lara, J., Bardohl, R., Ehrig, H., Ehrig, K., Prange, U. and Taentzer, G. (2007) Attributed Graph Transformation with Node Type Inheritance. Theoretical Computer Science , 376, 139-163. https://doi.org/10.1016/j.tcs.2007.02.001
Golas, U., Lambers, L., Ehrig, H. and Orejas, F. (2012) Attributed Graph Transformation with Inheritance: Efficient Conflict Detection and Local Confluence Analysis Using Abstract Critical Pairs. Theoretical Computer Science , 424, 46-68. https://doi.org/10.1016/j.tcs.2012.01.032
Tazin, A. (2024) Class Diagram Classifier. https://github.com/alextazin/DiagramClassifier
Michail, D., Kinable, J., Naveh, B. and Sichi, J.V. (2020) JGraphT—A Java Library for Graph Data Structures and Algorithms. ACM Transactions on Mathematical Software , 46, 1-29. https://doi.org/10.1145/3381449
Cordella, L.P., Foggia, P., Sansone, C. and Vento, M. (2004) A (Sub)Graph Isomorphism Algorithm for Matching Large Graphs. IEEE Transactions on Pattern Analysis and Machine Intelligence , 26, 1367-1372. https://doi.org/10.1109/tpami.2004.75
Elseidy, M., Abdelhamid, E., Skiadopoulos, S. and Kalnis, P. (2014) GRAMI: Frequent Subgraph and Pattern Mining in a Single Large Graph. Proceedings of the VLDB Endowment , 7, 517-528. https://doi.org/10.14778/2732286.2732289
Peixoto, T.P. (2025) The Graph-Tool Python Library. https://graph-tool.skewed.de/
Helsinki University of Technology (2021) Bliss: A Tool for Computing Automorphism Groups and Canonical Labelings of Graphs. http://www.tcs.hut.fi/Software/bliss/
Junttila, T. and Kaski, P. (2007) Engineering an Efficient Canonical Labeling Tool for Large and Sparse Graphs. In: 2007 Proceedings of the 9 th Workshop on Algorithm Engineering and Experiments ( ALENEX ), Society for Industrial and Applied Mathematics, 135-149. https://doi.org/10.1137/1.9781611972870.13
Junttila, T. and Kaski, P. (2011) Conflict Propagation and Component Recursion for Canonical Labeling. In: Marchetti-Spaccamela, A. and Segal, M., Eds., Theory and Practice o f Algorithms in ( Computer ) Systems , Springer, 151-162. https://doi.org/10.1007/978-3-642-19754-3_16
Evans, E. (2003) Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley Professional.
Bennett, S., McRobb, S. and Farmer, R. (2010) Object Oriented Systems Analysis and Design Using UML. McGraw-Hill Higher Education.
Cohen, D.M., Dalal, S.R., Fredman, M.L. and Patton, G.C. (1997) The AETG System: An Approach to Testing Based on Combinatorial Design. IEEE Transactions on Software Engineering , 23, 437-444. https://doi.org/10.1109/32.605761
Sen, S., Mottu, J., Tisi, M. and Cabot, J. (2012) Using Models of Partial Knowledge to Test Model Transformations. In: Hu, Z.J. and Lara, J., Eds., Theory and Practice of Model Transformations , Springer, 24-39. https://doi.org/10.1007/978-3-642-30476-7_2
Dadeau, F., Fourneret, E. and Bouchelaghem, A. (2017) Temporal Property Patterns for Model-Based Testing from UML/OCL. Software & Systems Modeling , 18, 865-888. https://doi.org/10.1007/s10270-017-0635-4
Northeastern University (2024) Discovery Cluster. https://rc.northeastern.edu/compute/
Tazin, A., Lu, S., Chen, Y., Kokar, M.M. and Smith, J. (2022) Modeling Concretizations in Software Design. In: Lee, R., Ed., Software Engineering Research , Management and Applications , Springer International Publishing, 47-65. https://doi.org/10.1007/978-3-031-09145-2_4