aboutsummaryrefslogtreecommitdiff
path: root/classes.puml
blob: 87b764c79c8852ab0ee5c7a8b95ccf14838be341 (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 --o Vip
  65. StudentProject -- Supervisor
  66. class Programme {
  67. addActivity()
  68. valid()
  69. }
  70. Programme o- Course
  71. Programme o- StudentProject
  72. Programme --* Student
  73. class Bachelorizer {
  74. }
  75. Bachelorizer --> Programme
  76. @enduml