Abstract
Software design patterns are solutions to common software problems that are proven to work adequately in particular scenarios. Deciding which design pattern to use for a given software problem often requires practical knowledge acquired with experience in a similar domain and can be highly subjective and error-prone. Further, for novice programmers, an automated approach would be of tremendous help as it would provide practical knowledge required for deciding which design pattern to use for a particular software problem the majority of research in software design pattern prediction involves using software structure and features in determining which design pattern to implement. However, there are circumstances where software engineers would prefer to know which design pattern to be used by looking at the design problem during or before the implementation phase. Existing design pattern prediction tools cannot be utilized in this scenario due to the absence of code and class structures. To address this issue, this paper proposes a new approach that analyzes the context of the software problem from text and predicts a suitable design pattern for the given problem context using feature learning, neural embedding, and classification. We evaluate our approach on a case study from Stack Overflow with more than 66,000 questions that discuss problems and consequences related to 23 design patterns. Results show that our approach can predict design patterns from the text with 82% overall accuracy.
| Original language | English |
|---|---|
| Title of host publication | Proceedings - 2020 35th IEEE/ACM International Conference on Automated Software Engineering Workshops, ASEW 2020 |
| Editors | Claire Le Goues , David Lo |
| Place of Publication | New York NY USA |
| Publisher | IEEE, Institute of Electrical and Electronics Engineers |
| Pages | 105-111 |
| Number of pages | 7 |
| ISBN (Electronic) | 9781450381284 |
| DOIs | |
| Publication status | Published - 2020 |
| Event | International Workshop on Software Engineering Automation: A Natural Language Perspective 2020 - Melbourne, Australia Duration: 22 Sept 2020 → 25 Sept 2020 Conference number: 1st https://dl.acm.org/doi/proceedings/10.1145/3417113 (Proceedings) https://conf.researchr.org/track/ase-2020/ase-2020--workshop--nlp-sea (Website) |
Conference
| Conference | International Workshop on Software Engineering Automation: A Natural Language Perspective 2020 |
|---|---|
| Abbreviated title | NLP-SEA 2020 |
| Country/Territory | Australia |
| City | Melbourne |
| Period | 22/09/20 → 25/09/20 |
| Internet address |
Keywords
- Classification
- Feature learning
- Neural Embedding
- Software Design Patterns