Abstract:
In today's context, growth of software industry is very rapid and the complexity of the software systems is increasingly high. To cope with the growing complexity, enhancement in the existing system is required. Design patterns offer effective ways of developing high quality products by providing best practices, design knowledge and reusable implementations. For a novice developer it is a hard task to select a proper design pattern to the knowledge he has. There are research studies carried out to suggest design patterns for a given problem scenario, but they are not focused on how the design pattern is to be selected. In this paper the researcher proposes a user interactive component based design pattern recommendation tool, to learn concepts behind selecting and suggesting design patterns for a given problem. A proof of concept is developed to evaluate the suggested tool which supports 23 design patterns described by the Gang of Four (GoF). For each pattern a set of weighted design pattern selection criteria has been defined. The user is responsible for identifying the components in the problem scenario and selecting suitable design pattern criteria and relationships for each identified component. Also user is asked to state the problem scenario and it is evaluated in Watson Assistant. Based on the selected criteria weightages and confidence received from the Watson assistant, appropriate design pattern is suggested with generated simplified class diagrams and the design reasoning. The tool will suggest only one design pattern. With the results of the survey conducted for novice developer, 84.8% of users were able to learn something related to design patterns by using the tool and for the test scenario tested the recommendations were 83.3% accurate. Further improvements can be suggested in the usability, accuracy, design reasoning and support, for more design patterns to reach the production level and additionally can also add more user interactions by introducing a virtual teacher as in the form of chat bot.
Citation:
Gunasekara, U.D.N.D. (2019). A Component based user interactive design pattern recommendation tool [Master’s theses, University of Moratuwa]. Institutional Repository University of Moratuwa. http://dl.lib.mrt.ac.lk/handle/123/16026