Identification of smells in UML diagrams based on textual representation

Technical debt (TD) within a software system can impede the ease of implementing changes or adding new features. Smells are indicators of TD, and their identification and removal can lead to a more manageable code-base. While numerous tools exist to identify smells at the code level, few tools focus on architecture-level identification without delving into the code. UML (Unified Modeling Language) diagrams offer a valuable abstraction for both creating new systems and comprehending and modifying existing ones. The smells that can be detected using UML diagrams are identified in this thesis, and a tool for verifying the presence of these smells in a system is developed. A Rule Definition Language (RDL) is proposed, offering a structured syntax for defining rules, many of which correspond to the identified smells. The tool takes one or more UML diagrams as input and checks for user-defined rules or predefined smells stored in a file. It then identifies rule violations and smells in the provided UML diagrams and presents the results, including visual indications of the detected smells on the UML diagrams. This research provides a valuable contribution to the field of software engineering, offering a systematic approach to identifying and addressing technical debt at an architecture / design level, ultimately facilitating more efficient software development and maintenance.

Project information



Thesis for degree:



Deepak Sateesh