aboutsummaryrefslogtreecommitdiff
path: root/classes.puml
blob: 3fcc25e2fd5ac8f9b0a798834c1f1d07580f7ef0 (plain)
  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. package Person {
  7. abstract Person {
  8. + name
  9. }
  10. abstract Employee extends Person {
  11. + ssn
  12. + email
  13. }
  14. class Tap extends Employee
  15. class Vip extends Employee
  16. class Dean extends Vip
  17. class ResearchAssociate extends Vip {
  18. + field
  19. }
  20. class Supervisor extends ResearchAssociate
  21. class Lecturer extends ResearchAssociate
  22. class Student extends Person
  23. }
  24. package Org {
  25. abstract Org {
  26. + name
  27. }
  28. interface Place {
  29. + address
  30. }
  31. class University implements Place
  32. class University extends Org
  33. class Faculty extends Org
  34. Faculty --* University
  35. Faculty "1" *- Person.Dean
  36. class Institute implements Place
  37. class Institute extends Org
  38. Institute --* Faculty
  39. Institute *- Person.ResearchAssociate
  40. }
  41. package Activity {
  42. abstract Activity {
  43. + name
  44. }
  45. abstract Project extends Activity {
  46. + dateBegin
  47. + dateEnd
  48. + hours[]
  49. }
  50. Project *- Person.ResearchAssociate
  51. (Project, Person.ResearchAssociate) .. Hours
  52. class Hours {
  53. + person
  54. + hours
  55. }
  56. class Course extends Project {
  57. + id
  58. + lecturer
  59. + ects
  60. }
  61. Course *-- Person.Lecturer
  62. class StudentProject extends Project {
  63. + supervisor
  64. + ects
  65. }
  66. StudentProject *-- Person.Supervisor
  67. class Programme {
  68. + student
  69. + activity[]
  70. + addActivity()
  71. + valid()
  72. }
  73. Programme *- Course
  74. Programme *- StudentProject
  75. Programme "1" *-- Person.Student
  76. }
  77. package Bachelorizer {
  78. class Bachelorizer {
  79. + programme[]
  80. + addProgramme(student,activity...)
  81. }
  82. Activity.Programme --* Bachelorizer
  83. }
  84. @enduml