Professional Documents
Culture Documents
Course Management
Course Management
Case : Requirements
For our case study, we will be the architects assigned the task of constructing the design elements for a system that can be used to manage courses/classes for an organization that specializes in providing training. Let us name the system that we will be designing as the Courseware Management System. The organization offers a variety of courses in a variety of areas such as learning management techniques and understanding different software languages and technologies. Each course is made up of a set of topics. Tutors in the organization are assigned courses to teach according to the area that they specialize in and their availability. The organization publishes and maintains a calendar of the different courses and the assigned tutors every year. There is a group of course administrators in the organization who manage the courses including course content, assign courses to tutors, and dene the course schedule. The training organization aims to use the Courseware Management System to get a better control and visibility to the management of courses as also to streamline the process of generating and managing the schedule of the different courses. Students can view and take courses.
3
What are the actors? What are their relations (if any)? What are the use cases? Associate actors and use cases
Finding actors
From the problem statement we can nd the following terms and entities specic to the system:
Courses and Topics that make up a course Tutors who teach courses Course administrators who manage the assignment of the courses to tutors Calendar or Course Schedule is generated as a result of the course management system Students who refer to the Course schedule or Calendar to decide which courses they wish to take up for study
5
the course administrator is the primary actor students and tutors are secondary actors
Managing courses
We can nd the following processes for managing courses:
View course calendar View tutors Manage tutor information Assign courses to tutors
So..
We found one primary actor: course administrators And the following use cases:
View courses Manage topics for a course Manage course information View course calendar View tutors Manage tutor information Assign courses to tutors
Course Administrator
11
how does the system accomplishes its goal? Can use responsibility-driven design
Find responsibilities from requirements, and distribute them over classes
Identifying classes
Actors are primary entities in the system
13
Identifying methods
CourseAdministrator is the primary actor
CourseAdministrator
Topic
Classes
CourseAdministrator +viewCourses() +manageCourse() +manageTopic() +viewCourseCalendar() +viewTutors() +manageTutorInformation() +assignTutorToCourse() Tutor +viewTutorInformation() +createTutor() +modifyTutor() +removeTutor() Student +viewAllStudents() +viewStudentInformation()
16
Finding relations
Lets highlight the actors in our original description: The organization offers a variety of courses in a variety of areas such as learning management techniques and understanding different software languages and technologies. Each course is made up of a set of topics. Tutors in the organization are assigned courses to teach according to the area that they specialize in and their availability. The organization publishes and maintains a calendar of the different courses and the assigned tutors every year. There is a group of course administrators in the organization who manage the courses including course content, assign courses to tutors, and dene the course schedule. The training organization aims to use the Courseware Management System to get a better control and visibility to the management of courses as also to streamline the process of generating and managing the schedule of the different courses.
17
Finding relations
Now lets nd relations between the classes: The organization offers a variety of courses in a variety of areas such as learning management techniques and understanding different software languages and technologies. Each course is made up of a set of topics. Tutors in the organization are assigned courses to teach according to the area that they specialize in and their availability. The organization publishes and maintains a calendar of the different courses and the assigned tutors every year. There is a group of course administrators in the organization who manage the courses including course content, assign courses to tutors, and dene the course schedule. The training organization aims to use the Courseware Management System to get a better control and visibility to the management of courses as also to streamline the process of generating and managing the schedule of the different courses.
18
Finding relations
Each course is made up of a set of topics
Topic +viewAllTopics() +viewTopicInformation() +createTopic() +modifyTopic() +removeTopic() consists of Course +viewAllCourses() +viewCourseInformation() +createCourse() +modifyCourse() +removeCourse()
Can mean different things (does the tutor knows its assigned courses?)
... administrators ... who manage the courses ... ... calendar of the different courses ... The organization publishes and maintains a calendar ... and ... tutors ...
Roel Wuyts - ULB - Analyse et Mthodologie Informatiques - 2005/2006 19
Class Diagram
CourseAdministrator +viewCourses() +manageCourse() +manageTopic() +viewCourseCalendar() +viewTutors() +manageTutorInformation() +assignTutorToCourse() Tutor manages +viewTutorInformation() +createTutor() +modifyTutor() +removeTutor() Student +viewAllStudents() +viewStudentInformation()
manages
manages
teaches
views
views
20
Adding interactions
Lets add some interactions to complement the (static) class diagrams
21
A user who is a course administrator invokes the manage course functionality. The manage course functionality of the course administrator invokes either the course creation or course modication functionality of a course. After the course is either created or modied, the manage topic functionality of the course administrator calls the topic creation or modication functionality of a topic. Finally, the user invokes the assign tutor to course functionality of the course administrator to assign a tutor to the selected course.
22
23
user
1 : manageCourse()
24
Wrap-up
Sequential approach example using OO
25
References
Took the example from: http://www.developer.com/design/article.php/1593811 But adapted it because there are errors in the solution on the website...
26