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