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