-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuml.wsd
75 lines (59 loc) · 1.33 KB
/
uml.wsd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
@startuml
class Person {
-id: int
-name: str
}
class Student {
-plans: List[StudentPlan]
+add_plan(plan: StudentPlan)
}
class Teacher {
-teacher_id: int
}
class Course {
-course_id: str
-course_name: str
}
class PlannedCourse {
-year: int
-semester: str
}
class ScheduledClass {
-time: Time
-instructor: Instructor
-timeslot: TimeSlot
-capacity: int
-year: int
-section: int
-semester: str
}
class CourseSchedule {
-courses: List[ScheduledClass]
+add_course(course: ScheduledClass)
+remove_course(course: ScheduledClass)
+get_courses_by_student(student: Student): List[ScheduledClass]
+get_courses_by_teacher(teacher: Teacher): List[ScheduledClass]
}
class Time {
-start_time: datetime
-end_time: datetime
}
class TimeSlot {
-days: str
-time: Time
}
class StudentPlan {
-plans: List[PlannedCourse]
-student: Student
+add_planned_class(planned_class: PlannedCourse)
}
Person <|-- Student : is a
Person <|-- Teacher : is a
Course <|-- PlannedCourse : is a
Student "1" *--> "1..*" StudentPlan : has
StudentPlan "1" *--> "1..*" PlannedCourse : has
CourseSchedule "1" o--> "1..*" Course : has
CourseSchedule "1" o--> "1..*" ScheduledClass : has
Course "1" *--> "1..*" PlannedCourse : has
Course "1" *--> "1..*" ScheduledClass : has
@enduml