Teaching Basic Class Diagram Notation with UMLGrader
Robert W. Hasker, Yan Shi · 2020
Abstract Teaching Basic Class Diagram Notation with UMLGrader UMLGrader is a tool designed to help students learn the basics of drawingUnified Modeling Language (UML) class diagrams. In our experience, studentsstruggle with using the appropriate notation for generalization and association aswell as with assigning association roles and multiplicities. The classic solution isto assign problems and grade the resulting diagrams, but grading such diagrams islabor intensive and so students may not get feedback in a timely manner. UML-Grader attempts to automate the grading process so that students can receive moretimely feedback on how to use the notation. To set up an assignment with UMLGrader, the instructor writes up a sys-tem description using relatively tight constraints such as “a library contains manybooks, where books can be either novels or reference works.” The instructor alsogenerates a target class diagram using expected class and role names reflecting theproblem description. Alternative names for certain entities may be provided to al-low for slight variations. The student then uses a tool such as Rational Rose orRhapsody to create a domain model and submits it to UMLGrader. UMLGraderthen compares the student’s diagram against the target, giving the student feed-back on missing or extra classes, attributes, methods, and relationships in a formthat points the student at how to fix the model without specifically telling the stu-dent what needs to be changed. The student then corrects the errors, iterating untilthere are no significant differences between the submitted and target diagrams. The authors have used UMLGrader for several semesters to teach UML classdiagram notation to software engineering and computer science students at thesophomore and junior levels. This paper describes UMLGrader in more detailand presents experimental results from using the tool in two classes. After re-ceiving instruction on UML class notation, students were given a quiz in whichthey modeled a simple domain. The students were then exposed to UMLGrader,and a similar modeling problem was placed on an exam. We document significantimprovements in performance, suggesting that UMLGrader does help studentslearn UML class notation. We then discuss possible additional studies which tocompare this method of teaching UML notation against alternatives.