全部 标题 作者
关键词 摘要

OALib Journal期刊
ISSN: 2333-9721
费用:99美元

查看量下载量

相关文章

更多...

UML Class Diagram Classification Using Category Theory

DOI: 10.4236/jsea.2025.187014, PP. 217-248

Keywords: UML, Category Theory, Class Diagram Classification, Class Diagram Composition, Graph Isomorphism

Full-Text   Cite this paper   Add to My Lib

Abstract:

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.

References

[1]  Awodey, A. (2010) Category Theory. Oxford University Press.
[2]  Leśniewski, S. (1992) A General Theory of Manifolds, Collected Works. Kluwer.
[3]  Hovda, P. (2008) What Is Classical Mereology? Journal of Philosophical Logic, 38, 55-82.
https://doi.org/10.1007/s10992-008-9092-4
[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
[5]  Tazin, A. (2022) Composition of UML Class Diagrams Using Category Theory and External Constraints. Ph.D. Dissertation, Northeastern University.
[6]  Mangaroliya, K. and Patel, H. (2020) Classification of Reverse-Engineered Class Diagram and Forward-Engineered Class Diagram Using Machine Learning.
[7]  Maneerat, N. and Muenchaisri, P. (2011) Bad-Smell Prediction from Software Design Model Using Machine Learning Techniques. 2011 8th 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
[8]  Halim, A. (2013) Predict Fault-Prone Classes Using the Complexity of UML Class Diagram. 2013 International Conference on Computer, Control, Informatics and Its Applications (IC3INA), Jakarta, 19-21 November 2013, 289-294.
https://doi.org/10.1109/ic3ina.2013.6819188
[9]  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
[10]  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
[11]  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
[12]  Costa, V. (2014) Detecting Semantic Equivalence in UML Class Diagrams, SEKE.
[13]  Elasri, H., Elabbassi, E., Abderrahim, S. and Fahad, M. (2018) Semantic Integration of UML Class Diagram with Semantic Validation on Segments of Mappings.
[14]  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.
[15]  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.
[16]  Pradhan, P., Dwivedi, A.K. and Rath, S.K. (2015). Detection of Design Pattern Using Graph Isomorphism and Normalized Cross Correlation. 2015 8th International Conference on Contemporary Computing (IC3), Noida, 20-22 August 2015, 208-213.
https://doi.org/10.1109/ic3.2015.7346680
[17]  Chartrand, G. (1985) Isomorphic Graphs. Dover Books.
[18]  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.
[19]  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
[20]  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
[21]  Tazin, A. (2024) Class Diagram Classifier.
https://github.com/alextazin/DiagramClassifier
[22]  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
[23]  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
[24]  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
[25]  NetworkX Developers (2024) NetworkX.
https://networkx.org/
[26]  Peixoto, T.P. (2025) The Graph-Tool Python Library.
https://graph-tool.skewed.de/
[27]  Helsinki University of Technology (2021) Bliss: A Tool for Computing Automorphism Groups and Canonical Labelings of Graphs.
http://www.tcs.hut.fi/Software/bliss/
[28]  Junttila, T. and Kaski, P. (2007) Engineering an Efficient Canonical Labeling Tool for Large and Sparse Graphs. In: 2007 Proceedings of the 9th Workshop on Algorithm Engineering and Experiments (ALENEX), Society for Industrial and Applied Mathematics, 135-149.
https://doi.org/10.1137/1.9781611972870.13
[29]  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 of Algorithms in (Computer) Systems, Springer, 151-162.
https://doi.org/10.1007/978-3-642-19754-3_16
[30]  Evans, E. (2003) Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley Professional.
[31]  Bennett, S., McRobb, S. and Farmer, R. (2010) Object Oriented Systems Analysis and Design Using UML. McGraw-Hill Higher Education.
[32]  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
[33]  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
[34]  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
[35]  OMG (2011) UML Superstructure.
http://www.omg.org/spec/UML/2.4.1/
[36]  OMG (2024) SysML.
https://www.omg.org/spec/SysML/2.0/Beta2/About-SysML
[37]  Northeastern University (2024) Discovery Cluster.
https://rc.northeastern.edu/compute/
[38]  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

Full-Text

Contact Us

service@oalib.com

QQ:3279437679

WhatsApp +8615387084133