4. SYSTEM SPEC 4.1 Use Case Diagrams (UCD) Level 1 UCD 1 ALCA System UC 1 Configure System System Administrator UC 2 User Login UC 3 Configure Pesonal Information <<extends>> UC 5 Take T est <<extends>> UC 4 Manipulate T est Data Teaching Assistant UC 5.1 Take Adaptive T est UC 5.2 Take T raditional Test <<extends>> UC 7 Take T utorial UC 6 Manipulate T utorial Data UC 7.1 Take Customized T utorial Student <<extends>> Teacher UC 7.2 Take T raditional Tutorial <<extends>> UC 8 View Grade <<extends>> UC 8.1 Student View UC 8.2 Teacher View UC 9 Adjust Grade UC 11 Get Study Suggestion UC 10 Track Performance The arrows mean that the actor initiated the action. Therefore, unidirectional arrows were used. Level 2 UC1 Configure System Refinements UC 1.1 Administrator Login System Administrator UC 1.2 Initialize Class Teacher UC 1.3 Configure Class Level 2 UC4 Manipulate Test Data Refinement UC 4.1 Add Test UC 4.2 Add Test Data Teacher UC 4.3 Delete Test Teaching Assistant UC 4.4 Delete Test Data UC 4.5 Update Test Level 2 UC6 Manipulate Tutorial Data Refinement UC 6.1 Add Tutorial UC 6.2 Add Tutorial Data Teacher UC 6.3 Delete Tutorial Student UC 6.4 Delete Tutorial Data UC 6.5 Update Tutorial Data ALCA has four potential types of users: System Administrator, Teacher, and Student, and Teaching Assistant (TA). System Administrator: The System Administrator’s role is to take care of technical details such as set up the initial system on the web server and create the teacher’s profile for the class. Teacher: Teacher has read-and-write access privilege that allows him/her to add students to class, create tests and tutorials and adjust students’ grades. Teacher can also be a Teaching Assistant. Student: Students have limited privilege in ALCA. They only can view their own grades, reports, and take tests and tutorials. Teaching Assistant: Teaching Assistant has the privilege to add, delete, and update test and tutorial related data. We have grouped all of the use cases into seven use case categories: System Initialization Operations, Authentication Operations, Profile Operations, Tutorial Operations, Testing Operations, Grade Book Operations, and Report Operations. System Initialization Operations In the system initialization operations, The System Administrator logs in using a unique administrator password and initializes the ALCA system. Once this is done, the System Administrator then adds the Teacher’s profile. The teacher then can initialize the class, configure and add materials for the class. The system administrator can create multiple classes in ALCA. Therefore, students and teachers can select from different classes that they belong to. Authentication Operations The users enter login information at the login prompt. Their information will be verified with the University’s Single Sign-On System to make sure that they are students. The Profile System will use the Authentication System to verify that the student is registered for this class. This is done by checking student’s login ID with the login ID in a profile database. Authentication System also allows a user to log out. Profile Operations Teacher can use the Profile system configure personal information such as adding a student to the profile database. Students can configure simple settings such as preferred nickname to be used in the class. Testing Operations Students can only take the adaptive and traditional tests. Teacher and TA can configure test contents. Grade Book System will get the test scores from the Adaptive Testing System. Tutorial Operations Students can only take the adaptive and traditional tutorials. Teacher and TA can configure tutorial contents. Grade Book Operations The Grade Book System provides two types of views: Teacher View and Student View, where the Teacher View allows the Teacher to view all students’ grade in the class. The Student View allows the students to view their individual grades. Teacher can adjust a student’s grade. Report Operations The Report System provides two types of views: Teacher View and Student View, where the Teacher View allows the Teacher to view the overall class report such as analysis about tests and tutorial contents, class performance and feed back. The Student View allows the students to get individual reports such as performance in class and feedback on tests. Teacher can adjust a student’s grade. 4.2 Sequence Diagram (SD) (Note: The DB’s mentioned in the sequence diagrams are tables in a single database system.) Configure System SD 1 : System Administrator Administrator Login System Management Course Profile DB User Profile DB 1: Login in with administrator ID and password 2: Login verified 3: Create new course 4: Save course 5: Success 6: Success 7: Create teacher's profile for course 8: Save teacher's profile 9: Success 10: Success 11: Assign teacher to course 12: Save profile 13: Success 14: Update teacher profile 15: Success 16: Success 17: Modify teacher profile 18: Save change 19: Success 20: Success Configure Class SD 2 User Login : Teacher 1. Login Single Sign-On System Course Profile DB 1.1. Validate user 1.1.1. Success 1.2. Authenticate for the course 1.2.1. Success 1.3. Success 2. Add student 2.1. Store in DB 2.1.1. Success 2.2. Success Login SD 3 User Login : User 1. Login Single Sign-On System 1.1. Validate user 1.1.1. Success 1.2. Authenticate for course 1.2.1. Success 1.3. Success 2. Access course 2.1. Success Profile DB Course Add Test SD 4.1 : Teacher/TA Test Processor 1. Add new test Test DB 1.1. Save 1.1.1. Success 1.2. Success Add Test Data SD 4.2 : Teacher/TA Test Processor 1. Add test data Test DB 1.1. Save 1.1.1. Success 1.2. Success Delete Test SD 4.3 : Teacher/TA Test Processor 1. Delete entire test Test DB 1.1. Save change 1.1.1. Success 1.2. Success Delete Test Data SD 4.4 : Teacher/TA Test Processor Test DB 1. Delete test question 1.1. Save changes 1.1.1. Success 1.2. Success Update Test Data SD 4.5 Test Processor : Teacher/TA 1. Update test data Test DB 1.1. Save changes 1.1.1. Success 1.2. Success Take Adaptive Test SD 5.1 Test Processor : Student Test DB 1. Request test. 1.1. OK 1.2. Generate test question. Loop for duration of test 1.2.1. Test question 1.3. Format and display to user 2. User response 2.1. Evaluate user's answer 2.2. Generate next question based on user response 2.2.1. Test question 2.3. Format and display to user 2.4. Save test results to user profile Profile DB Take Traditional Test SD 5.2 Test Processor : Student Test DB 1. Request test. 1.1. OK 1.2. Generate test 1.2.1. Transmit test 1.3. Format and display to user 2. User response 2.1. Store user reponse 2.2. Evaluate test 2.3. Save test results to user profile 2.3.1. Success 2.4. Display results to user Add Tutorial SD 6.1 : Teacher/TA Tutorial Generator 1. Add new tutorial Tutorial DB 1.1. Save 1.1.1. Success 1.2. Success Profile DB Add Tutorial Data SD 6.2 : Teacher/TA Tutorial Generator 1. Add tutorial data Tutorial DB 1.1. Save 1.1.1. Success 1.2. Success Delete Tutorial SD 6.3 : Teacher/TA Tutorial Generator 1. Delete tutorial Tutorial DB 1.1. Save change 1.1.1. Success 1.2. Success Delete Tutorial Data SD 6.4 Tutorial Generator : Teacher/TA 1. Delete tutorial data Tutorial DB 1.1. Save changes 1.1.1. Success 1.2. Success Update Tutorial Data SD 6.5 : Teacher/TA Test Processor 1. Update test data Test DB 1.1. Save changes 1.1.1. Success 1.2. Success Taking Customized Tutorials SD 7.1 : Student Tutorial Generator 1. Request tutorial Profile DB Tutorial DB 1.1. Get pre-test results 1.1.1. Success 1.2. Generate customized tutorial 1.2.1. Success 1.3. Format and display tutorial Taking Traditional Tutorials SD 7.2 : Student Tutorial Generator Profile DB 1. Request tutorial 1.2. Retrieve tutorial 1.2.1. Success 1.3. Format and display tutorial Tutorial DB Student View Grade SD 8.1 Student GradeBook GradeBookTemplate 1. View grade Profile DB 1.1. Get grades 1.1.1. Return grades 1.2. Get student display template 1.2.1. Return template 1.3. Format and display Teacher View Grade SD 8.2 Teacher GradeBook 1. View grades GradeBookTemplate 1.1. Get grades 1.1.1. Return grades 1.2. Get teacher's display template 1.2.1. Return template 1.3. Format and display Profile DB Adjust Grade SD 9 Teacher GradeBook 1. Select student GradeBookTemplate 1.1. Get score for the selected test 1.1.1. Return student's score 1.2. Test display template 1.2.1. Return template 1.3. Format and display scores 2. Adjust score(s) 2.1. Save change 2.1.1. Success 2.1.1.1. Success Profile DB Student View Report SD 10.1 Reporter : Student ReportTemplate 1: View report 2: Get test results 3: Return test results 4: Get test data 5: Return test data 6: Get student's display template 7: Return template 8: Generate report 9: Format and display Teacher View Report SD 10.2 Profile DB Test DB Reporter : Student ReportTemplate 1. View report Profile DB Test DB 1.1. Get test results 1.1.1. Return test results 1.2. Get test data 1.2.1. Return test data 1.3. Get teacher's display template 1.3.1. Return template 1.4. Generate report 1.5. Format and display 4.3 Operation Specification Action ALCA : : AddCourse(courseID: CID, courseName: CourseName, teacherID: TRID) Pre: True Post: Initialize the other attributes of the course as default. A link created for the course with courseID Action ALCA : : DeleteCourse(courseID: CID) Pre: The course has been created in ALCA system Post: All the course content spread in tutorial, testing, grade book and report is deleted; the framework (configuration for tutorial, testing, grade book and report) for the course is deleted. Action ALCA : : AddTeacher (teacherID: TRID, firstName: FirstName, lastName: LastName) Pre: True Post: The teacher information is added into teacher profile. Action ALCA : : DeleteTeacher(teacher ID: TRID) Pre: The teacher information exists in ALCA Post: Delete teacher’s profile. Action ALCA : : AssignTeacher(teacherIDPrev: TRID, teacherIDSubs: TRID, courseID: CID) Pre: The previous teacherID and courseID exists in ALCA Post: Teacher with teacherID is added to class profile for the course with courseID. Action ALCA : : AddStudentCourseAssociation(studentID: UID, courseID: CID, student: Type, firstName: FirstName, lastName: LastName) Pre: The courseID exists in ALCA Post: The student information is added into the class profile Action ALCA : : DeleteStudentClassAssociation(studentID: StudentID, courseID: CourseID) Pre: The courseID and studentID exist in ALCA Post: The corresponding courseID is assigned to default value for the student with studentID Action ALCA : : DeleteStudent(studentID: StudentID) Pre: The studentID exists in ALCA Post: The student profile is deleted. Action ALCA : : TakeTraditionalTest(studentID: StudentID, date: Date, courseID: CID, status: Status, testType: TestType) Inv: testType must be traditional Pre: Provided that test has been active indicated by status Post: Total score, fail questionID, and students’ answers are recorded. Action ALCA : : TakeAaptiveTest(studentID: CID, date: Date, courseID: CID, testID: TID, testType: TestTyoe) Inv: testType must be adaptive Pre: Provided that test questions have been added. Post: Based on each answer the student reply, create next question. Total score, fail questionID, and students’ answers are recorded. Action ALCA : : ViewTraditionalTutorial(studentID: UID, courseID: CID, tutorialID: TUTID, tutorialType: TutorialType, status: Status) Inv: tutorialType must be traditional Pre: Provided that tutorial status is active. Post: Display the tutorial with tutorialID of the course for the student Action ALCA : : ViewCustomizedTutorial(studentID: UID, courseID: CourseID, tutorialID: TUTID, tutorialType: TutorialType) Inv: tutorialType must be customized tutorial Pre: Provided that at least one test has been taken by the student for this course and tutorial status is active Post: Display the tutorial with tutorialID for the student Action ALCA : : AddTutorial(couseID: CID, tutorialID: TUTID, tutorialType: TutorialType, tutorialStatus: Status) Pre: The tutorial is active. Post: A tutorial frame for courseID has been created. Action ALCA : : DeleteTutorial(couseID: CID, tutorialID: TUTID, tutorialType: TutorialType, tutorialStatus: Status) Pre: The tutorial has been created. Post: A tutorial frame is deleted. Action ALCA : : AddTutorialData(couseID: CID, tutorialID: TUTID, tutorialType: tutorialType, content: Content, subjectID: SID, tutorialStatus: Status) Pre: The tutorial framework has been created Post: A tutorial item for courseID has been added. Action ALCA : : DeleteTutorialData(couseID: CID, tutorialID: TUTID, tutorialType: tutorialType, content: Content, subjectID: SID, tutorialStatus: Status) Pre: The tutorial item has been created Post: A tutorial item for is deleted. Action ALCA : : UpdateTutorialData(couseID: CID, tutorialID: TUTID, tutorialType: tutorialType, content: Content, subjectID: SID, tutorialStatus: Status) Pre: The tutorial item has been created Post: A tutorial item is modified. Action ALCA : : AddTest(couseID: CID, testID: TID, testType: TestType, testStatus: Status) Pre: The test with test status is active. Post: A test frame for courseID has been created. Action ALCA : : DeleteTest(couseID: CID, testID: TID, testType: TestType, testStatus: Status) Pre: The test has been created Post: A test frame for courseID is deleted. Action ALCA : : AddTestData(teacherID: TRID, courseID: CourseID, questionID: qname: Qname, questionID: QID, format: Format; sujectID: SID, rank: Rank, question: text, answer: Answer, possiblepoint: Ppoint, explanation: Explanation) Pre: The test with testID has been configured Post: A new test question with all its information is added. Action ALCA : : DeleteTestData(teacherID: TRID, courseID: CourseID, questionID: qname: Qname, questionID: QID, format: Format; sujectID: SID, rank: Rank, question: text, answer: Answer, possiblepoint: Ppoint, explanation: Explanation) Pre: The test question with questionID has been created. Teacher doesn’t delete a question during a test. Post: The test question with questionID is deleted. Action ALCA : : UpdateTestData(teacherID: TRID, courseID: CourseID, questionID: qname: Qname, questionID: QID, format: Format; sujectID: SID, rank: Rank, question: text, answer: Answer, possiblepoint: Ppoint, explanation: Explanation) Pre: The test question with questionID has been created. Teacher doesn’t delete a question during a test. Post: One or more attributes of a test question have been updated. For example: format : Format; rank: Rank, question: Text, answer: Answer, possiblepoint: Ppoint, explanation: Explanation Action ALCA : : StudentViewGrade(studentID: UID, courseID: CID, testID: TID) Pre: True Post: Display the test grade of the class for the student with studentID Action ALCA : : TeacherViewGrade(teacherID: TRID, courseID: CourseID, testID: TID) Pre: Post: True Display the test grades of the all the students Action ALCA : : AdjustGradingMechanism(teacherID: TRID, courseID: CID, testID: TID, gradingMech: GradingMech) Pre: True Post: new grading mechanisms applied to future tests. Action ALCA : : StudentViewReport(studentID: UID, courseID: CID) Pre: True Post: Display all the test grades of the course and suggestions for the student with studentID Action ALCA : : TeacherViewReport(teacherID: TRID, courseID: CID) Pre: True Post: Display the analysis report of the class for the teacher 4.4 Some Concrete Scenarios Suppose the CS201 class is going to use ALCA for the class. The following scenarios will occur. (Note: The DB’s mentioned in the scenarios are tables in a single database system.) Configure System Before ALCA can be used for the class, the system administrator has to create an instance of ALCA in the schools server system. The school server can have many instances of ALCA, one for each class that uses it. 1. System administrator logs into ALCA using a special administrator login. 2. The Administrator Login validates the username and password. 3. Once the login is validated, the administrator will go to the UI for System Management to create a new class profile for the CS201 class. 4. The newly created class is saved in the Course Profile DB. 5. The administrator creates the teacher’s profile. 6. This profile is saved in to the User Profile DB. 7. The administrator assigns this teacher to the specific class. 8. The update is saved in the Course Profile DB and User Profile DB. 9. The administrator can also modify the teacher profile, and the changes are saved in the User Profile DB. Configure Class Once the above actions are done, the teacher can log into ALCA to configure the CS201 class in ALCA. 1. The teacher goes to the course login website and enter the login information such as the his/her university username and password. 2. The User Login sends these information to the university’s Single Sign-On System to validate if this teacher is associated with the university. 3. If the teacher is associated with the university, then User Login check with the Profile DB to see if this teacher is teaching this course. 4. Login result is shown to the teacher. 5. If login was successful, then the teacher can access the teacher view of the course content to use the configuration features to create new student accounts. Here, the teacher must add the students’ user names. TA’s account is the same as the Student account except he/she can add tutorial and test related data to the course. So, TA can be added here, too. 6. The account information for each student is saved in the Profile DB. Login Log in is used by students, teachers, and TAs. 1. The user goes to the course login website and enter the login information such as the his/her university username and password. 2. The User Login sends this information to the university’s Single Sign-On System to validate if this student is associated with the university. 3. If the user is associated with the university, then User Login check with the Profile DB to see if this user is associated with this class. 4. Login result is shown to the user. 5. If login was successful, then the user can access his/her profile-oriented course features. For example, the access rights to the ALCA features are different for students, teacher, and TA. Add Test This assumes that the Teacher/TA has already successfully logged in. 1. Teacher/TA can add a test. 2. The Test Processor will save the test in Test DB. Add Test Data This assumes that the Teacher/TA has already successfully logged in. 1. Teacher/TA can add test questions to the question pool for use in tests. 2. The questions are saved in the Test DB. Delete Test This assumes that the Teacher/TA has already successfully logged in. 1. Teacher/TA chooses to delete an entire test. 2. The test is deleted from the Test DB. Delete Test Data This assumes that the Teacher/TA has already successfully logged in. 1. Teacher/TA can delete a test question. 2. The question is deleted from the Test DB. Update Test Data This assumes that the Teacher/TA has already successfully logged in. 1. Teacher/TA can make changes to specific test questions. 2. The change is saved in the Test DB. Add Tutorial This assumes that the Teacher/TA has already successfully logged in. 1. Teacher/TA adds a tutorial, which consists of many tutorial items. 2. The tutorial is saved in the Tutorial DB. Add Tutorial Data This assumes that the Teacher/TA has already successfully logged in. 1. Teacher/TA adds a tutorial item, which combined with other tutorial items can make a tutorial. 2. The tutorial item is saved in the Tutorial DB. Delete Tutorial This assumes that the Teacher/TA has already successfully logged in. 1. Teacher/TA deletes an entire tutorial. 2. The tutorial is deleted from the Tutorial DB. Delete Tutorial Data This assumes that the Teacher/TA has already successfully logged in. 1. Teacher/TA deletes a specific tutorial item. 2. The tutorial item is deleted from the Tutorial DB. Update Tutorial Data This assumes that the Teacher/TA has already successfully logged in. 1. Teacher/TA makes changes to tutorial items in a particular tutorial. 2. The change is saved in the Tutorial DB. Taking Adaptive Tests Adaptive test questions are composed of questions of varying difficulties. Each question has a unique question ID (QID) and rank of difficulty. The question is also related to a subject area with a subject ID (SID). These questions are stored in a database 1. The Testing System gives the student a few standard questions to learn about how much the student understands about the basic concepts. 2. After the benchmark questions, the Test Processor will analyze the score and calculates what should be the difficulty of the next question. 3. The question is then presented to the student. a. If the student answers correctly, then a more difficult question will be given. The more difficult questions will earn the student more points. b. If the student answers incorrectly, then an easier question will be given. 4. Step 3 will be repeated until the number of questions that was expected to be on the exam is given. When the test is complete, the Test Process will: a. Grade the test by comparing student’s answer with the correct answer in the Test DP. b. Save the detailed test results and score in the student’s profile. Taking Traditional Tests Traditional test shows to the student the entire test all at once. 1. Once the student selects to take the traditional test, the Test Processor will generate the test from the questions from the Test DB. 2. The entire test is shown to the student. 3. Student answers all of the questions and submit the test. 4. Test Processor a. Stores the user response b. Evaluates the test c. Save the test results to the user profile. 5. Result is displayed to the student. Taking Customized Tutorials The customized tutorials can be thought of as “adaptive” because it is recommended to the student based on the student’s test results. 1. The student request for the recommended tutorials from the Tutorial UI. 2. The Tutorial Generator a. Checks in the Profile DB for the student’s pre-test results. b. Generates the customized tutorial recommendation based on the test results c. Get the tutorial from the Tutorial DB. d. Format and display the tutorial to the student. Taking Traditional Tutorials Traditional tutorials are the complete set of tutorials. 1. The student selects a traditional tutorial topic to view. 2. The Tutorial Generator gets the all the related tutorial item of that topic from the Tutorial DB, format and display it to the student. Student View Grade 1. Student can select to view test grade. 2. The Grade Book will: a. Get the grade from the student’s profile. b. Get the student display template. c. Format and display grade to the student. Teacher View Grade 1. Teacher can select to view the students’ grades. 2. The Grade Book will send: a. Get the grades from the Profile DB. b. Get the teacher display template. c. Format and display the grades to the teacher. Adjust Grade 1. Teacher selects to adjust a particular grade of a student. 2. The Grade Book will: a. Get the specified score from the Profile DB. b. Get the teacher display template. c. Show the grade to the teacher by using the specific display template. 3. Teacher adjusts the score. 4. The Grade Book will save the change to the Profile DB. Student View Report The report for student includes information such as what area that he/she is weak in, study suggestions, and performance tracking. 1. Student chooses to view his/her report. 2. Report UI forwards the request to the Reporter. 3. Reporter will: a. Get the test results for the student from the Profile DB. b. Get the test data from the Test DB. c. Get the student’s display template d. Generate and display the report to the student. Teacher View Report Report for teacher includes information such as feedback about test questions and class performance. 1. Teacher chooses to view report. 2. Reporter will: e. f. g. h. Get the test results for all students from the Profile DB. Get the test data from the Test DB. Get the teacher’s display template. Generate and display the report to the teacher