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