prerequisite checker
Post on 12-Jan-2016
74 Views
Preview:
DESCRIPTION
TRANSCRIPT
Prerequisite Checker
Neeharika BollepalliMasters Report, Final Defense
Guidance by Dr. Dan Andresen
Overview Motivation Biggest Challenge System Architecture Features Functional Testing Performance Testing Conclusions Project Metrics Progress of the Project Effort & Time Distribution Reflections Demo
Motivation Role of advisors Requirement to satisfy the prerequisites
for a student to enroll in a course Web service that provides automated
checking of the prerequisites for a student or a class
Biggest Challenge Tree like structure of the prerequisites
for a course Ex: CIS 520 requires CIS 450 or EECE 431; and
B or better in CIS 501 Mapping the prerequisite structure of a
course to the database Updating the prerequisite structure of a
course from the Web interface
Biggest Challenge (Contd…)
CIS 520
AND
OR CIS 501
B or better
EECE 431
CIS 450
Prerequisite Structure of CIS 520
root parent
plft prgt id lft rgt
CIS 520
NIL 0 0 CIS 520
1 14
CIS 520
CIS 520
1 14 AND 2 13
CIS 520
AND 2 13 OR 3 8
CIS 520
OR 3 8 CIS 450
4 5
CIS 520
OR 3 8 EECE 431
6 7
CIS 520
AND 2 13 CIS 501
9 12
CIS 520
CIS 501
9 12 B or bette
r
10 11
Entries in ‘prereq’ table for CIS 520
1 14
2 13
3 8
4 5 6 7
9 12
10
11
Biggest Challenge (Contd…)
Prereq
rootparentplftprgtidlftrgt
courserecords
recordIDssnsemyeardeptnumberhoursgraderecommended
students
ssnfnamelnameemailadvisor
course name
Prerequisite Structure of the course
Mapping prerequisites of a course to the course records of student(s) enrolled for that course
System Architecture
Apache Tomcat Server
MySQLServer
JSP – Client requests are
interpreted here
Java Beans
ClientsRequest or Response
Request or Response
Overall System Architecture
Features View/Update Prerequisites Check Student Check Class Update Database
Home
View/UpdatePrerequisites
CheckClass
Check Student UpdateDatabase
View the prerequisites
Edit the prerequisites
View the resultsView the results Result for adding a
departmentResult for adding a
courseResult for adding
a prerequisite
Submit form to view prerequisites
Submit form to check class Submit form to check
studentSubmit form to add
departmentSubmit form to add
courseSubmit form to add
prerequisite
Submit form to edit prerequisites
Submit form to go back toView/Update prerequisites
Submit form to go back to
Check Class
Submit form to go back to
Check StudentSubmit form to go back to
Update DatabaseSubmit form to go
back toUpdate Database
Submit form to go back to
Update Database
Comprehensive Flow Chart
View/Update Prerequisites Functionalities
View prerequisites Input: department name, course level, course name
Update prerequisites Input: new prerequisites and their conditions, additional
information if any for the course Limitations: Web form cannot represent these scenarios
More than 3 prerequisites connected by ‘AND’ More than 3 prerequisites connected by OR’ A prerequisite for a course has more than one condition Connector ‘AND’ under ‘OR’ in the prerequisite structure of
a course. Ex: CIS 721 requires CIS 520 or both CIS 622 and EECE 633
JSP Level Java Bean Level Database Level
view.jsp
Submit ‘viewForm’
view_resultjsp
Calls the ‘getPrereq’method on ‘PrereqBean’ to display prerequisites
Calls ‘getPrereqOnly’ method on ‘editPrereqBean’ to set prerequisites in the form ‘editForm’
Submit ‘editForm’
edit_result.jsp
Calls the appropriate method on ‘updateprereqBean’ to update the prerequisites
Accesses ‘prereq’, ‘dept_courses’ tables
Accesses ‘prereq’ table
Submit ‘GoToViewForm’ to View/Update Prerequisites for another course
PrereqBean
editPrereqBean
updatePrereqBean
Updates the ‘prereq’ table
Architecture of View/Update Prerequisites
Check Student Functionality
Eligibility of a Student to enroll in a course Input: student ID number, semester, year, department
name, course name
Limitations Prerequisites which are not valid courses,
default to either true or false. Ex: ‘Graduate Standing’ defaults to true, ‘Permission of Instructor’ defaults to false
‘Concurrent enrollment’ condition for a prerequisite requires special handling
StudentHome.jsp
Submit ‘checkPrereqForStudent’ form
studentHome_result.jsp
Calls the ‘checkStudentStatus’ method on ‘studentCheckBean’ to display the results StudentCheck
Bean
Accesses the ‘prereq’, ‘students’, ‘courserecords’
tables
Submit ‘GoToStudentHomeForm’ to go back to Check Student Home
Architecture of Check Student
JSP Level Java Bean Level Database Level
Check Class Functionality
Check the eligibility of all the students enrolled in a class for their prerequisite requirement
Input: semester, year, department name, course name
JSP Level Java Bean Level Database Level
checkClass.jsp
Submit ‘checkPrereqForClass’ form
checkClass_result.jsp
Calls ‘checkPrereqs’ method on ‘CheckClassBean’ to display the results
Submit ‘GoToCheckClassForm’ to go back to Check Class Home
CheckClassBean
Accesses the ‘courserecords’, ‘students’ tables
Architecture of Check Class
Update Database Functionalities
Add a department Input: department name
Add a course Input: department name, course name
Add a prerequisite Input: department name, course level, course
name
JSP Level Java Bean Database Level Level
databaseHome.jsp
Submit ‘deptForm’
Submit ‘prereqForm’
addDept_result.jsp
addCourse_result.jsp
addPrereq_result.jsp
Calls ‘addDept’ method on
‘UpdateDbBean’
Submit ‘GoToDatabaseHomeForm’ to go back to Update
Database Home
Calls ‘addCourse’ method on
‘UpdateDbBean’
Submit ‘GoToDatabaseHomeForm
’ to go back to Update Database Home
Calls ‘addPrereq’ method on
‘UpdateDbBean’
Submit ‘GoToDatabaseHomeForm
’ to go back to Update Database Home
UpdateDbBean
Updates the ‘department’ table
Accesses ‘department’, updates
‘dept_courses’, ‘dept_prereqs’, ‘prereq’ tables
Accesses ‘department’, ‘dept_courses’ tables
updates ‘dept_prereqs’ tables
Submit ‘courseForm’
Architecture of Update Database
Functional Testing HttpUnit How the web site was tested?
Test performed Result
Links Clicking a link and Obtaining the response
The response obtained by clicking the links were as expected
Table StructureTesting the number of rows & columns in the tables and the text/link/form in each cell of the table
The number of rows and columns in the tables were as expected and each cell of the table contained the expected text/link/form
FormsDefault values of parameters, submission of forms
The default values of the parameters in the forms were as expected and the forms got successfully submitted when correct input values were given
Performance Testing JMeter System Configuration
Microsoft Windows XP HomeMobile AMD Athlon(tm) 64-bit Processor 2700+1.6 GHz, 512 MB of RAMApache Tomcat 5.5, Sun Jdk1.5.0_01, MySQL Server 4.1
Load tested the main features of the application with number of users from 100 to 2000
Performance Testing (Contd…) Individual test cases for Check Student
and Check Class as the size of the tables they access change frequently
The size of tables accessed by View/Update Prerequisites and Update Database remain relatively constant
JMeter Test ResultsJMeter Test Results
0
500
1000
1500
2000
2500
3000
3500
4000
4500
Number of Users
Th
rou
gh
pu
t (N
um
ber
of
req
uests
/Min
ute
)
View/UpdatePrerequisites
Check Class
Check Student
Update Database
Check Student Performance Testing
Check Student JMeter Test Results
0
500
1000
1500
2000
2500
3000
3500
Number of Students (Size of Database)
Th
rou
gh
pu
t (N
um
be
r o
f
req
ue
sts
/Min
ute
)
200 Users
400 Users
600 Users
800 Users
Check Class Performance Testing
Check Class JMeter Test Results
0
50
100
150
200
250
300
100 200 300 400 500 600 700 800
Number of Students (Size of database)
Thro
ughp
ut (N
umbe
r of
re
ques
ts/M
inut
e)
100 users
200 users
300 users
Conclusions For View/Update Prerequisites, Check
Student, Update Database Apache Tomcat and Java consumed more %
of CPU Load on CPU increases with the number of
threads (100% CPU utilization for 400 threads)
To improve the performance, a more powerful application server
Conclusions (Contd…) For Check Class
MySQL consumed more % of CPU More load on CPU even for less number of threads
(100% CPU utilization for 100 threads) as compared to that of View/Update Prerequisites, Check Student and Update Database
To improve the performance, Performance tuning of the database server and increasing the cache of the system
On the whole, performance is considerably good, given that maximum throughput is between 800 to 900 users for all features on average
Project Metrics Number of Java Bean classes - 7 Source Lines of Code
JSP Files – 3524 Java Beans – 5473Total ------------ 8997 (9000 approx.)
Progress of the Project July ‘04 – August ’04
Database Design, basic architecture of the web interface
September ’04 – December ’04 View/Update Prerequisites feature, Shifted from
Oracle 9i to MySQL 4.1 December ’04 – January ’05
Vacation February ’05 – May ’05
Check Student, Check Class, Update Database features, Started Testing
June ’05 – July ’05 Completed Testing, JavaDocs, Documentation
Progress of the Project (Contd…)
Progress of the Project
5
35
0
40
20
0
5
10
15
20
25
30
35
40
45
July '04 - Aug'04
Sep '04 - Dec '04
Dec '04 - Jan'05
Feb '05 - May'05
June '05 - July'05
Time
Pro
gre
ss
Effort & Time DistributionIssue Time Spent (approx.)
Research 15 hours
Database Design & SQL Programming
50 hours
Coding 200 hours
Testing 15 hours
Documentation 40 hours
Effort &Time Distribution (Contd…)
Effort & Time Distribution
5% 15%
62%
5%13%
Research
Database Design &SQL Programming
Coding
Testing
Documentation
Reflections Experience in all phases of software
development, from requirements to testing How small things matter ? (Database
Design) Sharpened my JSP, JavaScript, Java skills
and SQL programming Complicated logic that tested my logical
and analytical skills Automated testing – how performance is
measured and analyzed? Role of Documentation
Demo
Questions
top related