Enhancing Software-Design Learning by Combining UML and LLM-Assisted Feedback in a Learning Platform
Abstract
Software design is an important part of software engineering. In contrast to some parts of software engineering that are dominated by mathematical logic and analytical thinking, software design is based on judgment and there is rarely a single right software design. Instead, software design involves selecting one out of a number of “reasonable” solutions, all of which satisfy the functional requirements but vary in structure and thereby affect non-functional properties such as maintainability. To account for this “it-depends” situation, software-design education must focus on training students to evaluate decisions with respect to design concepts and their trade-offs. In this paper, we present our work on a web-based learning platform that helps students learn about this diversity of software design. Our platform offers a series of software-design assignments that focus on understanding and applying design concepts. The assignments are supported by interactively editable UML diagrams. We use Large Language Models (LLMs) to provide automated formative feedback on students’ designs, aiming to automatically generate detailed and actionable first guidance. By combining a level-based learning approach, interactive UML editors, and LLM-powered feedback, we aim to help students understand software-design concepts and improve their design decisions. To evaluate the ideas of our platform, we conducted a user study with 15 students. The results show strong engagement and underpin the usability of our platform across all learning-experience dimensions. In our evaluation, we found that LLM-generated feedback explaining why a design decision violates a concept correlates with self-reported improvements on successive attempts. Thus, our contributions and insights can help improve students’ learning experiences.