4. SYSTEM SPEC

4.1 Use Case Diagrams (UCD)

Level 1 UCD 1

The arrows mean that the actor initiated the action. Therefore, unidirectional arrows were used.

Level 2 UC1 Configure System Refinements

Level 2 UC4 Manipulate Test Data Refinement

Level 2 UC6 Manipulate Tutorial Data Refinement

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 SystemSD 1

Configure ClassSD 2

LoginSD 3

Add TestSD 4.1

Add Test Data SD 4.2

Delete TestSD 4.3

Delete Test Data SD 4.4

Update Test Data SD 4.5

Take Adaptive TestSD 5.1

Take Traditional TestSD 5.2

Add Tutorial SD 6.1

Add Tutorial Data SD 6.2

Delete Tutorial SD 6.3

Delete Tutorial Data SD 6.4

Update Tutorial Data SD 6.5

Taking Customized Tutorials SD 7.1

Taking Traditional Tutorials SD 7.2

Student View GradeSD 8.1

Teacher View GradeSD 8.2

Adjust GradeSD 9

Student View ReportSD 10.1

Teacher View ReportSD 10.2

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: True

Post: 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 thecourse 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 questionsare 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.
  4. If the student answers correctly, then a more difficult question will be given. The more difficult questions will earn the student more points.
  5. If the student answers incorrectly, then an easier question will be given.
  6. 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:
  7. Grade the test by comparing student’s answer with the correct answer in the Test DP.
  8. 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
  5. Stores the user response
  6. Evaluates the test
  7. Save the test results to the user profile.
  8. 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.