ICT340: Application Analysis and Design |
Answer all questions.
Read the negotiated statement of requirements (NSR) for the S-Academy system and answer the questions that follow.
S-Academy is a private educational institution that offers courses aligned to the government’s UpSkills framework. It currently has a Course Management System which is used by its administrators. However, it wishes to have an online information system that allows students to browse through its various courses and enrol for courses to enjoy subsidies offered.
S-Academy employs several administrators who are in charge of scheduling courses. The course needs to be approved by the government body, UpSkills Authority, before subsidies can be offered to students. Once approved, an administrator can log into the system to create a course, which includes course name and description, course type and area of speciality, minimum class size, start date, duration, venue and course fee. The course will be confirmed by the administrators when the number of students who registers for the course meets the minimum class size. One professor will then be assigned to teach the course.
The course is canceled if the minimum class size is not attained four weeks before the course’s start date. Each professor can teach one or more courses in the area of their expertise and they can print their teaching schedule from the system. A professor may have one or more areas of expertise.
Students can use the system to browse the various courses, which can be filtered by course type, start date, and area of study. They can register their interest in a course and when a course is confirmed, the system will contact the student via email and/or SMS to enrol for the course.
After the student has enrolled for the course, he can apply for an UpSkills subsidy towards the course fee. Once approved, the student will be informed via email and/or SMS about the amount of subsidy and the course fee payable (if any). The system allows him to pay fees using a credit card. If a student decides to withdraw from the course, he can be reimbursed 50% of the course fee if the withdrawal is two weeks before course commencement.
When a course is completed, students may choose to print a transcript of the course attended. One month after the course ends (either because it is cancelled or completed), its details are archived and removed from the online system.
The S-Academy System (SAS) will support the institution’s operations with the following data:
• Information about each course, including (unique) course id, course name and
description, course type, area of speciality, start date, duration, venue and course fee;
• Information about students, including their (unique) user id, password, name, address, email, phone number, credit card information, list of courses registered, and list of courses enrolled;
• Information about each professor, including their (unique) user id, password, name, email, phone number, list of expertise; list of courses taught;
• Information about each venue, including its name, location, and seating capacity;
• Information about the course schedule, including the courses, students, professors, and venue.
In addition, the system shall also provide the following major functions, among others:
(a) Allow an administrator to create a new course, confirm a course and cancel a course;
(b) Allow a professor to view and print his teaching schedule;
(c) Allow a student to browse courses using various filters such as course type, start date and area of study; and register interest in a course;
(d) Allow a student to apply for subsidy towards a course;
(e) Allow a student to view a list of courses attended and print the transcript for a course.
Question 1
(a) Formulate a use case diagram to depict the SAS system design. Identify the use cases and their relationships in your use case diagram.
(b) The following is an extract of the requirements documentation of the SAS system: “The system offers the student a convenient way to browse and enroll for courses to enjoy subsidies. Students can apply for subsidies when they enroll in a course.
Students are to pay the full course fee and he/they will be reimbursed the amount of subsidy once the subsidy is approved. Students can withdraw from a course at any time.”
Analyze the above requirements and identify and explain any TWO (2) ambiguous, incorrect, incomplete, or inconsistent inadequacies for system design. Note that in your answers, you are not supposed to use imagination to add anything not mentioned in the requirements. Further, do not include general commentaries in your answer.
Question 2
Develop a structural model for the SAS system design, by submitting your answers to the following:
(a) The following classes have be identified:
Class: User, the abstract superclass of Professor and Student
Attributes: userId,the unique user identification number password, the password for the user name, the name of the user email, the email address of the user phoneNumber, the phone number of the user
Class: Professor, the subclass of User
Attributes: (refer to the superclass)
Class: Student, the subclass of User
Attributes: address,the address of the student
creditCardNumber, the credit card number of the student
creditCardExpiry, the expiry date of the credit card number
Complete the class description by identifying other classes, their attributes and any hierarchical relationship(s) that would be required for the application.
(b) Appraise the associations among the classes and hierarchical relationship(s) that would be required for the application. Construct the class association diagram in UML as youranswer. Ensure that you do not include any derived or redundant association in your diagram.
Question 3
Further analyses, as well as a few walkthroughs give rise to an updated class diagram, part of which is shown in Figure Q3 below. Note that this may not be applicable to Question 2 above.
(a) Write an invariant that specifies a professor teaches in a course that he has expertise in
(b) Consider the following walkthrough:
Objective: To add a professor to a course.
Given: a course id and a professor name.
1. Locate the instance, aCourse, of Course with the given course id, linked to
the orchestrating object via hasCourses.
2. Retrieve the specialty area of the aCourse object.
3. Locate the instance aProfessor, of Professor with the given professor name, linked to the orchestrating object via hasProfessors.
4. Retrieve the list of expertise of the aProfessor object.
5. If the specialty area of the Course matches one of the expertise in the list of expertise, create the association between the Course and the Professor.
(i) Develop the dynamic model for the application function, by drawing the sequence diagram for the walkthrough to assign a professor to a course.
(ii) Implement the method in the orchestrating class that is responsible for assigning the professor to the course.
Question 4
Construct a component of the SAS system in UML, by drawing the state diagram for a course as it passes through the system.
Question 5
Demonstrate the application of the observer pattern in the SAS system by submitting your answers to the following:
(a) Develop a structural model of the system that uses the observer pattern by constructing the class association diagram that allows students to register interest in a course and as soon as the administrator confirms a course, those students who registered interest will be informed to enroll.
(b) Implement the concrete classes for the structural model in Q5(a).