Open Access
Refine
Document Type
- Article (146)
- Conference Proceeding (104)
- Report (19)
- Doctoral Thesis (10)
- Patent (1)
Is part of the Bibliography
- yes (280) (remove)
Keywords
- virtual reality (9)
- Business Process Management Systems (4)
- Fuzzy Logic (4)
- visualization (4)
- Assignment Automation (2)
- Augmented Reality (2)
- Business Process Modeling Notation (2)
- Git (2)
- Systems Modeling Language (SysML) (2)
- artificial neural networks (2)
- machine learning (2)
- software configuration management (2)
- software design pattern detection (2)
- software engineering (2)
- systems engineering (2)
- systems modeling (2)
- version control systems (2)
- Business Process Modelling (1)
- DDC 620 (1)
- Einfluss mechanischer Spannungen (1)
- Eisenverlust (1)
- Elektroband (1)
- Elektroblech (1)
- Engineering & allied operations (1)
- Ethik (1)
- KI (1)
- Magnetismus (1)
- Mechanische Spannung (1)
- Re- source Assignment Automation (1)
- Resource Allocation Algorithms (1)
- Resource Assignment Automation (1)
- Rule Engines (1)
- Schnittkanteneinfluss (1)
- Staff Assignment Algorithms (1)
- Technikfolgenabschätzung (1)
- artificial consciousness (1)
- augmented virtuality (1)
- business process management (1)
- business process mining (1)
- code coverage (1)
- data pipelines (1)
- data stream processing (1)
- event stream processing (1)
- event-driven architecture (1)
- graph analysis (1)
- graph embeddings (1)
- integrated development environments (1)
- mixed reality (1)
- process analysis (1)
- process mining (1)
- requirements traceability (1)
- rule-based expert system (1)
- software requirements traceability (1)
- software test coverage (1)
- software test traceability (1)
- software testing (1)
- software verification and validation (1)
Institute
The volume of program source code created, reused, and maintained worldwide is rapidly increasing, yet code comprehension remains a limiting productivity factor. For developers and maintainers, well known common software design patterns and the abstractions they offer can help support program comprehension. However, manual pattern documentation techniques in code and code-related assets such as comments, documents, or models are not necessarily consistent or dependable and are cost-prohibitive. To address this situation, we propose the Hybrid Design Pattern Detection (HyDPD), a generalized approach for detecting patterns that is programming-language-agnostic and combines graph analysis (GA) and Machine Learning (ML) to automate the detection of design patterns via source code analysis. Our realization demonstrates its feasibility. An evaluation compared each technique and their combination for three common patterns across a set of 75 single pattern Java and C# public sample pattern projects. The GA component was also used to detect the 23 Gang of Four design patterns across 258 sample C# and Java projects as well as in a large Java project. Performance and scalability were measured. The results show the advantages and potential of a hybrid approach for combining GA with artificial neural networks (ANN) for automated design pattern detection, providing compensating advantages such as reduced false negatives and improved F1 scores.
As the amount of software source code increases, manual approaches for documentation or detection of software design patterns in source code become inefficient relative to the value. Furthermore, typical automatic pattern detection tools are limited to a single programming language. To address this, our Design Pattern Detection using Machine Learning (DPDML) offers a generalized and programming language agnostic approach for automated design pattern detection based on machine learning (ML). The focus of our evaluation was on ensuring DPDML can reasonably detect one design pattern in the structural, creational, and behavioral category for two popular programming languages (Java and C#). 60 unique Java and C# code projects were used to train the artificial neural network (ANN) and 15 projects were then used to test pattern detection. The results show the feasibility and potential for pursuing an ANN approach for automated design pattern detection.