Then, we hybridize SA with a data mining algorithm which is Kmeans clustering algorithm (KSA). Hence, the first step is to apply one search-based algorithm to the sequence diagram refactoring problem. To the authors’ knowledge, there are no articles that discuss the implementation of search-based or data mining algorithms to refactor sequence diagram models. RQ3: To what extent the search-based algorithm can be effective in a large case study with hundreds of refactoring opportunities? The aim of this paper is to answer the following three research questions: Hence, refactoring the sequence diagram helps designers in producing better code. This results in having methods with high number of parameters and methods that communicate with different classes. Improper design of coupling and cohesion in sequence diagrams will propagate to the source code. Sequence diagrams depict the communication between different program components. This paper tends to provide an automatic refactoring of sequence diagram using SA and also introduces a hybridized algorithm composed of search-based algorithm combined with a data-mining algorithm. To overcome the limitations exist in deterministic data mining algorithms when applied to software refactoring, researchers proposed hybridized techniques. Deterministic data mining techniques have also been considered in software refactoring. Since the introduction of the search-based algorithm in software engineering, many papers have investigated the use of search-based algorithms in software refactoring. Fig 1 shows an example of a sequence diagram. Usually, a sequence diagram is not large and it should correspond to one scenario only. A sequence diagram can be considered as a protocol definition of certain tasks. Nevertheless, it is useful for developers because it increases the level of understanding of how different objects are implemented in the system. A sequence diagram is not intended to depict complex systems due to their extensive detail. It represents objects as vertical lines and messages as arrows with labels. A sequence diagram shows how different objects of the system interact over time via messages. A sequence diagram is a dynamic UML diagram that shows the interaction between the components of the system. In particular, it shows the objects participating in an interaction and the sequence of messages exchanged”. Ī sequence diagram is defined by the UML Reference Manual as “a diagram that shows object interactions arranged in time sequence. Similar to code refactoring, software model refactoring, especially UML, has increasingly captured the interest of researchers to identify ill-structured components and refactor them. This is usually accomplished via different approaches but the principle one in the literature is software metrics. To perform refactoring, a mechanism should be devised to detect an anomaly or ill-structured piece in the software in order to improve it. Refactoring is the process that shows how software can be improved without altering its behavior. Software organizations strive to improve their code or adjust it for a new platform, technology or structure. Changes and modifications to software are inevitable.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |