36
Student Curriculum Planning System MSE Project Presentation III Kevin Sung

Student Curriculum Planning System

Embed Size (px)

DESCRIPTION

Student Curriculum Planning System. MSE Project Presentation III Kevin Sung. Overview. Component Design User Manual Assessment Evaluation Project Evaluation Demonstration. Project Overview. Providing curriculum planning service to CIS Advisor and Student. - PowerPoint PPT Presentation

Citation preview

Page 1: Student Curriculum Planning System

Student Curriculum Planning SystemMSE Project Presentation IIIKevin Sung

Page 2: Student Curriculum Planning System

Overview

Component Design User Manual Assessment Evaluation Project Evaluation Demonstration

Page 3: Student Curriculum Planning System

Project Overview

Providing curriculum planning service to CIS Advisor and Student. SCPS provides auto-generated course

plan function for user. SCPS can perform real-time prerequisite

check for user. Three course plans per student Student and Faculty can communicate

through the same system. The system is implemented under the

.NET Framework. ASP.NET, C# and SQL server

Page 4: Student Curriculum Planning System

Component Design

StudentstudentName : StringstudentId : Stringmajor : Stringtrack : String

FacultyfacultyName : StringfacultyId : String

0..*

1

+advisee

0..*

+advisor1

PlanViewddlPlangrdSelectStudent

LoadStudent()LoadFaculty()Search_Click()btnLogout_Click()btnLoadPlan_Click()opname()

SCPSLogin()

UseruserId : Stringpassword : String 0..1

0..1

+thePlanView

0..1+theUser

0..1

0..*

1

+theUser

0..*

+theSCPS

1

CourseContainerbtnAddCourse : ButtionbtnDropCourse : ButtionlistTime : DropDownListlistCourse : DropDownList

checkPrereq()Eval()btnDropCourse_Click()listCourse_SelectedIndexChanged()listTime_SelectedIndexChanged()btnSubmit_Click()PopUp()btnAddCourse_Click()btnSubmit_Click( object sender, System.EventArgs e)()btnDropCourse_Click(object sender, System.EventArgs e)()

PrintView

CourseViewLoadCourse()Back_Click()Save_Click()Clear_Click()Print_Click()

0..1 0..1

+theCourseView

0..1

+theUser

0..1

0..*

0..1

+theContainer0..*

+theCourseView

0..1

ContainerView

Page 5: Student Curriculum Planning System

SCPS Class

-Page_Load(in sender : object, in e : EventArgs)#OnInit(in e : EventArgs)-InitializeComponent()-btnSubmit_Click(in sender : object, in e : EventArgs)

#txtUserId : TextBox#lblUserId : Label#lblPassword : Label#lblTitle : Label#btnSubmit : Button#sqlSelectCommand1 : SqlCommand#sqlInsertCommand1 : SqlCommand#sqlUpdateCommand1 : SqlCommand#sqlDeleteCommand1 : SqlCommand#sqlConnection1 : SqlConnection#sqlDataAdapter1 : SqlDataAdapter#sqlSelectCommand2 : SqlCommand#sqlInsertCommand2 : SqlCommand#sqlUpdateCommand2 : SqlCommand#sqlDeleteCommand2 : SqlCommand#sqlDataAdapter2 : SqlDataAdapter#lblErrorMsg : Label#Image1 : Image#Image2 : Image#sqlSelectCommand3 : SqlCommand#sqlInsertCommand3 : SqlCommand#sqlUpdateCommand3 : SqlCommand#sqlDeleteCommand3 : SqlCommand#sqlDataAdapter3 : SqlDataAdapter#txtPassword : TextBox

SCPS

This class provide interface for user to login to the system.

Page 6: Student Curriculum Planning System

PlanView Class

-Page_Load(in sender : object, in e : EventArgs)-ddlPlan_SelectedIndexChanged(in sender : object, in e : EventArgs)-btnLoadPlan_Click(in sender : object, in e : EventArgs)-LoadFaculty()-Search_Click(in sender : object, in e : EventArgs)-grdSelectStudent_SelectedIndexChanged(in sender : object, in e : EventArgs)-LoadStudent()#OnInit(in e : EventArgs)-InitializeComponent()-btnLogout_Click(in sender : object, in e : EventArgs)

#sqlConnection1 : SqlConnection#sqlDataAdapter1 : SqlDataAdapter#sqlSelectCommand1 : SqlCommand#panMain : Panel#Search : Button#grdSelectStudent : DataGrid#All : Button#txtFirstName : TextBox#txtLastName : TextBox#lblPlan : Label#ddlPlan : DropDownList#btnLoadPlan : Button#btnLogout : Button#txtStudentID : TextBox#panFaculty : Panel

PlanView

This class provide interface for user to elect course plan to be view. Advisors are

provided with extend function of electing which advisee to work with.

Page 7: Student Curriculum Planning System

CourseView Class

-Page_Load(in sender : object, in e : EventArgs)-Load_Course(in dt : DataTable, in ID : string, in i : int, in coursePlan1 : DataTable)#OnInit(in e : EventArgs)-InitializeComponent()-Back_Click(in sender : object, in e : EventArgs)-Save_Click(in sender : object, in e : EventArgs)-Clear_Click(in sender : object, in e : EventArgs)-Print_Click(in sender : object, in e : EventArgs)

#myCSCourseTable : Table#lblUserIdtag : Label#lblUserId : Label#lblNametag : Label#lblName : Label#lblMajortag : Label#lblMajor : Label#Save : Button#sqlConnection1 : SqlConnection#sqlDataAdapter1 : SqlDataAdapter#sqlDataAdapter2 : SqlDataAdapter#sqlDataAdapter3 : SqlDataAdapter#sqlSelectCommand2 : SqlCommand#sqlInsertCommand2 : SqlCommand#Clear : Button#sqlSelectCommand1 : SqlCommand#sqlInsertCommand1 : SqlCommand#sqlDeleteCommand2 : SqlCommand#sqlSelectCommand3 : SqlCommand#sqlInsertCommand3 : SqlCommand#sqlUpdateCommand1 : SqlCommand#sqlDeleteCommand1 : SqlCommand#Back : Button#Print : Button

CourseView

The Course Plan view for CS student or CS advisee

User can start add or drop course from the active course plan by clicking on “Add course” or “Drop Course” button of the individual course

Page 8: Student Curriculum Planning System

CourseViewIS Class

-Page_Load(in sender : object, in e : EventArgs)-Load_Course(in dt : DataTable, in ID : string, in i : int, in coursePlan1 : DataTable)#OnInit(in e : EventArgs)-InitializeComponent()-Back_Click(in sender : object, in e : EventArgs)-Save_Click(in sender : object, in e : EventArgs)-Clear_Click(in sender : object, in e : EventArgs)-Print_Click(in sender : object, in e : EventArgs)

#lblUserIdtag : Label#lblUserId : Label#lblNametag : Label#lblName : Label#lblMajortag : Label#lblMajor : Label#Save : Button#myISCourseTable : Table#sqlConnection1 : SqlConnection#sqlDataAdapter1 : SqlDataAdapter#sqlDataAdapter2 : SqlDataAdapter#sqlDataAdapter3 : SqlDataAdapter#sqlSelectCommand2 : SqlCommand#sqlInsertCommand2 : SqlCommand#Clear : Button#sqlSelectCommand1 : SqlCommand#sqlInsertCommand1 : SqlCommand#sqlDeleteCommand2 : SqlCommand#sqlSelectCommand3 : SqlCommand#sqlInsertCommand3 : SqlCommand#sqlUpdateCommand1 : SqlCommand#sqlDeleteCommand1 : SqlCommand#Back : Button#Print : Button

CourseViewIS

The Course Plan view for CS student or CS advisee

User can start add or drop course from the active course plan by clicking on “Add course” or “Drop Course” button of the individual course

Page 9: Student Curriculum Planning System

CourseContainer Class This is a custom

web control that is use to represent a course in the course plan.

Main logics of adding and dropping courses are coded in the this class

-Page_Load(in sender : object, in e : EventArgs)-checkPrereq(in courseTable : DataTable) : DataTable-Eval(in data : string) : string#OnInit(in e : EventArgs)-InitializeComponent()-btnDropCourse_Click(in sender : object, in e : EventArgs)-checkPrereq1(in data : string, in deleteSelection : int) : bool-btnAddCourse_Click(in sender : object, in e : EventArgs)-listCourse_SelectedIndexChanged(in sender : object, in e : EventArgs)-listTime_SelectedIndexChanged(in sender : object, in e : EventArgs)-btnSubmit_Click(in sender : object, in e : EventArgs)-PopUp(in prereq : string)

#lblCourseID : Label#lblCourseName : Label#lblTimeTaken : Label#btnDropCourse : Button#btnAddCourse : Button#lblType : Label#panCoursePanel : Panel#listTime : DropDownList#btnSubmit : Button#listCourse : DropDownList#lblGradeTag : Label#sqlSelectCommand1 : SqlCommand#sqlInsertCommand1 : SqlCommand#sqlConnection1 : SqlConnection#sqlDataAdapter1 : SqlDataAdapter#lblGrade : Label

CourseContainer

Page 10: Student Curriculum Planning System

ContainerView and PrintView classes

-Page_Load(in sender : object, in e : EventArgs)#OnInit(in e : EventArgs)-InitializeComponent()

#Panel1 : Panel

ContainerView

-Page_Load(in sender : object, in e : EventArgs)#OnInit(in e : EventArgs)-InitializeComponent()

#dgdTable : DataGrid

PrintView

The ContainerView class provides a “zoom in” view of the course when it is selected from the course plan to be added.

The PrintView class provides a printable table view pf the active course plan.

Page 11: Student Curriculum Planning System

User Classes—User, Faculty and Student classes

+User()+User(in theUserId : string, in thePassword : string, in theFacultyId : string, in theFacultyName : string)+User(in theUserId : string, in thePassword : string, in theStudentId : string, in theStudentName : string, in theMajor : string, in theTrack : string)+User(in theUserId : string, in thePassword : string)+SetInfo(in theUserId : string, in thePassword : string)

+userId : string+password : string

User

+Faculty(in theUserId : string, in thePassword : string, in theFacultyId : string, in theFacultyName : string, in theAdvisee : DataTable)

+facultyId : string+facultyName : string+advisee : DataTable

Faculty

The User class is a super class to the Faculty and Student classes.

These classes represent the user of the system—the advisor and the CIS students

+Student(in theUserId : string, in thePassword : string, in theStudentId : string, in theStudentName : string, in theMajor : string, in theTrack : string)

+studentId : string+studentName : string+major : string+track : string

Student

Page 12: Student Curriculum Planning System

Login Sequence Diagram

: User : SCPS

: PlanView

btnSubmit_Click(object sender, System.EventArgs e)

verify

[NotVerified] NotSuccess

[ifVerify]Success

Page 13: Student Curriculum Planning System

Load Plan Sequence Diagram--Faculty

: User : PlanView

: CourseView

Search_Click(object sender, System.EventArgs e)

Advisee Information

grdSelectStudent_SelectedIndexChanged(object sender, System.EventArgs e)

Course Plan Informtion

ddlPlan_SelectedIndexChanged(object sender, System.EventArgs e)

btnLoadPlan_Click(object sender, System.EventArgs e)

Page 14: Student Curriculum Planning System

Load Plan Sequence Diagram--Student

: CourseView

: PlanView : User

ddlPlan_SelectedIndexChanged(object sender, System.EventArgs e)

btnLoadPlan_Click( )

Page 15: Student Curriculum Planning System

Drop Course Sequence Diagram

: User :

CourseContainer

btnDropCourse_Click(object sender, System.EventArgs e)

checkPrereq1(string data, int deleteSelection)

Updated Course Plan

The popup box will be shown when the a prerequisite violation occurs.

Page 16: Student Curriculum Planning System

Add Course Sequence Diagram

Page 17: Student Curriculum Planning System

Save Plan Sequence Diagram

: User : CourseView

Save_Click(object sender, System.EventArgs e)

success

Page 18: Student Curriculum Planning System

Display Printable Plan Sequence Diagram

: User : CourseView

: PrintView

Print_Click(object sender, System.EventArgs e)

Page 19: Student Curriculum Planning System

User Manual

The setup instruction and basic operation are included in the documentation

Page 20: Student Curriculum Planning System

Assessment Evaluation

Unit Testing Testing through individual web

form's functions Integration Testing

Main test cases are tested from here

Page 21: Student Curriculum Planning System

Unit Testing1. SCPS Web Form

btnSubmit Passed Login Process execute successfully

2. PlanView Web Form Page_Load Passed grdSelectStudent Passed

DataGrid displays correctly the advisee information for advisor to select.

Search Passed Successfully Execute query enter by the advisor

and display the result on the grdSelectStudent. ddlPlan Passed

The DropDownList successfully let user to select plan to load.

btnLoadPlan Passed User prompt to the Course Plan View and the

correct course plan is loaded

Page 22: Student Curriculum Planning System

Unit Testing (Cont.)

3. CourseView Web Form– Save Passed

– The course plan will be save back to the database.

– Back Passed– The user is successfully lead back to the

PlanView.aspx

– Clear Passed– The new course plan is automatic generated

and loaded.

– Print Passed– A table view of the course plan is

successfully shown by opening a new window of the PrintView.aspx webform

Page 23: Student Curriculum Planning System

Unit Testing (Cont.)

4. CourseViewIS Web Form– Save Passed

– The course plan will be save back to the database.

– Back Passed– The user is successfully lead back to the

PlanView.aspx

– Clear Passed– The new course plan is automatic generated

and loaded.

– Print Passed– A table view of the course plan is

successfully shown by opening a new window of the PrintView.aspx webform

Page 24: Student Curriculum Planning System

Unit Testing (Cont.)5. CourseContainer Class

btnAddCourse Passed User is leaded to ContainerView.aspx and the

list of courses is generated for user to select. listCourse Passed

The DropDownList has provided courses for user to select.

listTime Passed The DropDownList has provided available

times for user to select. btnSubmit Passed

The button that has added the course to the active course plan when clicked.

btnDropCourse Passed The button that has dropped the course to

the active course plan when clicked.

Page 25: Student Curriculum Planning System

Integration Testing• T-001 Login System

• Passed

• T-002 Add Course to Course Plan• Passed

• T-003 Drop Course from Course Plan

• Passed

• T-004 Generate Report• Passed

• T-005 Save Course Plan• Passed

• T-006 Load Course Plan• Passed

Page 26: Student Curriculum Planning System

Project Evaluation

1. Usefulness of the methodologies used

Unified Modeling Language Object Constraint Language

Page 27: Student Curriculum Planning System

Project Evaluation (Cont.)

2. Accuracy of the estimations• Line of Code

Estimate line of code=3000 Actual line of code=4977

C# code=4468 Auto-Generated Code=823 Developer Written=3645

Web Form (HTML, ASP, JavaScript)=509 Auto-Generated Code=227 Developer Modified=282

Auto Generation code from IDE used attribute to the difference of estimation

Page 28: Student Curriculum Planning System

Project Evaluation (Cont.)

• Time Estimation Estimate

6.18 staff months 4.99 months

Actual Phase I ~55.17 hours (74

days, 592 hours est.) Phase II ~39.42 hours (31

days, 279 hours est.) Phase III ~82.42 hours (37

days, 333 hours est.) Total 177 hours, ~1 week 10 calendar months

Page 29: Student Curriculum Planning System

Project Evaluation (Cont.) Time Estimation (Cont.)

Reason of Difference Difference in working hours per day. Slack time are not counted. Inexperience of the developer on

estimating the schedule of the project.

Page 30: Student Curriculum Planning System

Time Distribution By Phase

Total Time per Phase in Minutes

Phase I, 3310, 31%

Phase II, 2365, 22%

Phase III, 4945, 47%

c

Page 31: Student Curriculum Planning System

Phase I Time Distribution Pie Chart

Phase I minutes

Research, 410, 12%

Design, 20, 1%

Coding, 2360, 71%

Testing, 0, 0%

Documentation, 520, 16%

Page 32: Student Curriculum Planning System

Phase II Time Distribution Pie Chart

Phase II minutes

Research, 100, 4%

Design, 630, 27%

Coding, 760, 32%

Testing, 0, 0%

Documentation, 875, 37%

Page 33: Student Curriculum Planning System

Phase III Time Distribution Pie Chart

Phase III minutes

Research, 430, 9% Design, 0, 0%

Coding, 1745, 35%

Testing, 1800, 36%

Documentation, 970, 20%

Page 34: Student Curriculum Planning System

Lessons Learned

Good understanding of the tool used and system component employed give a good head starts for the project.

Don’t underestimate the complexity of the business logic.

Using good tools and having a good design are critical to the successful conclusion of the project.

Page 35: Student Curriculum Planning System

Future Work Upgrading Software Used

during deployment Boost Performance More Resources

Import Data from the Better Data Source

Better Data Integrity Always up-to-date data

Page 36: Student Curriculum Planning System

Demonstration