A new method based on formal concept analysis and metaheuristics to solve class responsibility assignment problem

  • PDF / 3,328,858 Bytes
  • 20 Pages / 595.276 x 790.866 pts Page_size
  • 86 Downloads / 178 Views

DOWNLOAD

REPORT


ORIGINAL ARTICLE

A new method based on formal concept analysis and metaheuristics to solve class responsibility assignment problem Zeinab Javidi1 · Reza Akbari1

· Omid Bushehrian1

Received: 3 January 2020 / Accepted: 28 September 2020 © Springer Nature Switzerland AG 2020

Abstract The high-quality design has a significant impact on the extensibility and maintainability of a software system. Automatic techniques help designers to design high-quality software in a shorter time. Among different approaches for software design, automated search-based methods are very efficient when the problem’s search space is huge and finding the optimal solution is hard. In this paper, we present an automatic three-phase method for generating the class diagram of a software system. In the first phase, we use formal concept analysis for generating the initial solutions. Subsequently, in the second phase, we apply four meta-heuristic methods to improve the quality of the initial solutions. Finally, the third phase creates the relationships among classes. We design eight versions of the method using four meta-heuristic techniques in the second phase with and without using the first phase. The performance of the proposed method on the four case studies for generating efficient class diagrams in terms of design metrics is studied. We analyze the effect of formal concept analysis in the first phase for generating the initial solutions. Also, we compare the results of the four meta-heuristic techniques. The results show that Genetic Algorithm-Formal Concept Analysis (GA-FCA) and Imperialist Competitive Algorithm-Formal Concept Analysis (ICA-FCA) methods that use the first phase for generating initial solutions outperformed the other six methods presented in this paper. Keywords Software design · Search-based software engineering · Meta-heuristic algorithms · Formal concept analysis

1 Introduction Software design is one of the important steps in the software development process (SDP). Traditional and modern software development processes such as Extreme Programming (XP), Dynamic systems development method (DSDM), and Scrum need high-quality design in a reasonable time. In traditional SDPs such as waterfall, there is a distinct design phase whereas processes such as Agile Unified Process (Agile UP) recommend no separate design phase. Hence, agile developers do high-level architectural modeling in the warm-up

B

Reza Akbari [email protected] Zeinab Javidi [email protected] Omid Bushehrian [email protected]

1

Software Engineering Lab, Department of Computer Engineering and IT, Shiraz University of Technology, Shiraz, Iran

phase and then they provide the detailed design during the development phase [1]. Usually, designers based on their previous experiences produce the design model manually. It seems that automatic methods for software design may help designers to sketch a better map for the elements of the software in a faster way [1]. Software design includes different steps such as architecture design, component design, e