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