DEVELOPMENT OF DESIGN SMELL DETECTION TOOLS WITH UML CLASS DIAGRAM - Widodo, Sigit
Software quality is one of the most important issues in software engineering that attracts attention from both practitioners and researchers. Efforts to ensure good software quality need to be carried out from the beginning of the development cycle, one of which has a major influence on the quality is how developers design software. But carelessness and inexperience can make a design bad. The bad design can be interpreted as a design smell. Design smells can have a negative impact on software quality. The tools available for detecting design smells are generally found in the program code. While detecting a design smell as early as possible is something that needs to be done, detection usually occurs very late, and then the solution is very complex. Therefore we need a tool that can detect the design smell at the design stage. UML class diagram artifacts at the design stage can be used to detect design smells because they have class information and the relationship between classes on the system. In the development of tools, it is necessary to identify the characteristics of the design smell based on the UML class diagram. Identification is done based on the definition that has been put forward by previous researchers which is then analyzed according to the information available on the UML class diagram. The results of the analysis are then validated by software experts consisting of practitioners and academics. As a result, design smells can be identified by utilizing available software metrics, rules and thresholds that are determined based on the characteristics of each type of design smell. Of the 25 types of design smells, the detection in the UML class diagram can be classified into three, 12 smells that can be detected automatically, 7 smells that are detected automatically in part of their manifestations, and 6 smells that need to be detected by direct review or require program code information. The results of the design smell detection in the UML class diagram are still suspect, so it is still necessary to re-examine whether the smell should be avoided or not in certain circumstances. The design smell detection tool with class diagram (DECLAD) was developed by utilizing the XML file from the UML class diagram as input to the tool, to be further processed according to the characteristics obtained. DECLAD can detect 19 design smells which are classified as auto-detectable and some of their manifestations can be detected automatically, namely missing abstraction, imperative abstraction, multifaceted abstraction, unnecessary abstraction, unutilized abstraction, duplicate abstraction, deficient encapsulation, leaky encapsulation, broken modularization, insufficient modularization. , cyclically-dependent modularization, hub-like modularization, unnecessary hierarchy, unfactored hierarchy, wide hierarchy, speculative hierarchy, deep hierarchy, multipath hierarchy and cyclic hierarchy. DECLAD can speed up the detection process carried out by software developers at the design stage based on UML class diagrams and can detect design smells earlier.