/ classes.puml
classes.puml
1 @startuml 2 ' mimick visual style of UML @ Classroom <10.1007/978-3-319-12742-2> 3 skinparam packageStyle file 4 hide circle 5 skinparam classAttributeIconSize 0 6 7 package Person { 8 9 abstract Person <<abstract>> { 10 + name: String 11 } 12 13 class ResearchAssociate extends Person { 14 + field: String 15 } 16 17 class Student extends Person 18 19 } 20 21 package Activity { 22 23 abstract Activity <<abstract>> { 24 + name: String 25 } 26 27 class Course extends Activity { 28 + {static} id: int 29 + lecturer: ResearchAssociate 30 + ects: int 31 } 32 Course "1..*" *-- Person.ResearchAssociate 33 34 class StudentProject extends Activity { 35 + supervisor: ResearchAssociate 36 + ects: int 37 } 38 StudentProject "1" *-- Person.ResearchAssociate 39 40 } 41 42 package Bachelorizer { 43 44 class Programme { 45 + student: Student 46 + activities: Activity[] 47 + addActivity(): void 48 + valid() 49 } 50 Programme o-- Activity.Course 51 Programme o-- Activity.StudentProject 52 Programme "1" *-- Person.Student 53 54 class Bachelorizer { 55 + programme: Programme 56 } 57 Bachelorizer -- Programme 58 59 } 60 61 @enduml