Author:
João Paulo Barros
Affiliation:
Instituto Politecnico de Beja and UNINOVA CTS, Portugal
Keyword(s):
UML, Class Diagrams, Object Diagrams, Introductory Programming, Abstraction, Software Engineering, Design, CS1, Java.
Related
Ontology
Subjects/Areas/Topics:
Cross-Feeding between Data and Software Engineering
;
Model-Driven Engineering
;
Programming Languages
;
Software Engineering
;
Software Engineering Methods and Techniques
Abstract:
Object-oriented programming is frequently taught in the first programming course. The implicit level of indirection, expressed in the name-value duality of objects, demands an additional level of abstraction ability. This brings an additional complication for novice students, which are also fighting with flow control and composition. Graphical languages can help visualise the program structure but only if they are not seen as an additional burden. UML class diagrams are the most widely used structure diagram for object-oriented code, but they are very complex for novices. This paper presents a set of translation rules from code to a UML class diagrams that can be introduced in the first or second programming course. To that end, it discusses how to meaningfully explain the semantics of class and object relations, namely by presenting a minimal subset of the UML class diagram metamodel that supports simple and direct translations from object-oriented code. As most students learn bette
r from concrete to abstract, this minimal subset and the respective code translation provide an intermediate step towards the use of a more complete metamodel in more advanced courses.
(More)