Upload
colby-freeman
View
19
Download
1
Tags:
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
Student Curriculum Planning SystemMSE Project Presentation IIIKevin Sung
Overview
Component Design User Manual Assessment Evaluation Project Evaluation Demonstration
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
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
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.
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.
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
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
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
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.
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
Login Sequence Diagram
: User : SCPS
: PlanView
btnSubmit_Click(object sender, System.EventArgs e)
verify
[NotVerified] NotSuccess
[ifVerify]Success
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)
Load Plan Sequence Diagram--Student
: CourseView
: PlanView : User
ddlPlan_SelectedIndexChanged(object sender, System.EventArgs e)
btnLoadPlan_Click( )
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.
Add Course Sequence Diagram
Save Plan Sequence Diagram
: User : CourseView
Save_Click(object sender, System.EventArgs e)
success
Display Printable Plan Sequence Diagram
: User : CourseView
: PrintView
Print_Click(object sender, System.EventArgs e)
User Manual
The setup instruction and basic operation are included in the documentation
Assessment Evaluation
Unit Testing Testing through individual web
form's functions Integration Testing
Main test cases are tested from here
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
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
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
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.
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
Project Evaluation
1. Usefulness of the methodologies used
Unified Modeling Language Object Constraint Language
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
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
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.
Time Distribution By Phase
Total Time per Phase in Minutes
Phase I, 3310, 31%
Phase II, 2365, 22%
Phase III, 4945, 47%
c
Phase I Time Distribution Pie Chart
Phase I minutes
Research, 410, 12%
Design, 20, 1%
Coding, 2360, 71%
Testing, 0, 0%
Documentation, 520, 16%
Phase II Time Distribution Pie Chart
Phase II minutes
Research, 100, 4%
Design, 630, 27%
Coding, 760, 32%
Testing, 0, 0%
Documentation, 875, 37%
Phase III Time Distribution Pie Chart
Phase III minutes
Research, 430, 9% Design, 0, 0%
Coding, 1745, 35%
Testing, 1800, 36%
Documentation, 970, 20%
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.
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
Demonstration