DPS: Design Pattern Summarisation Using Code Features
By: Najam Nazar, Sameer Sikka, Christoph Treude
Potential Business Impact:
Summarizes computer code to explain design ideas.
Automatic summarisation has been used efficiently in recent years to condense texts, conversations, audio, code, and various other artefacts. A range of methods, from simple template-based summaries to complex machine learning techniques -- and more recently, large language models -- have been employed to generate these summaries. Summarising software design patterns is important because it helps developers quickly understand and reuse complex design concepts, thereby improving software maintainability and development efficiency. However, the generation of summaries for software design patterns has not yet been explored. Our approach utilises code features and JavaParser to parse the code and create a JSON representation. Using an NLG library on this JSON representation, we convert it into natural language text that acts as a summary of the code, capturing the contextual information of the design pattern. Our empirical results indicate that the summaries generated by our approach capture the context in which patterns are applied in the codebase. Statistical evaluations demonstrate that our summaries closely align with human-written summaries, as evident from high values in the ROUGE-L, BLEU-4, NIST, and FrugalScore metrics. A follow-up survey further shows that DPS summaries were rated as capturing context better than human-generated summaries.
Similar Papers
Multi-Language Detection of Design Pattern Instances
Software Engineering
Finds computer code patterns in many languages.
Towards Benchmarking Design Pattern Detection Under Obfuscation: Reproducing and Evaluating Attention-Based Detection Method
Software Engineering
Makes computer code checkers understand true meaning.
Progressive Code Integration for Abstractive Bug Report Summarization
Software Engineering
Helps fix computer bugs faster by reading code.