MS Report Presentation

Download Report

Transcript MS Report Presentation

Prerequisite Checker
Neeharika Bollepalli
Masters 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…)
1
CIS
520
2
3
AND
14
13
9
8
OR
CIS
501
10
4
CIS
450
5
6
EECE
431
7
12
11
B or
better
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
better
10
11
Entries in ‘prereq’ table for CIS 520
Biggest Challenge (Contd…)
course name
Prerequisite Structure
of the course
Prereq
root
parent
plft
prgt
id
lft
rgt
students
ssn
fname
lname
email
advisor
courserecords
recordID
ssn
sem
year
dept
number
hours
grade
recommended
Mapping prerequisites of a course to the course
records of student(s) enrolled for that course
System Architecture
Clients
Request or
Response
Request or
Response
Apache Tomcat Server
JSP – Client
requests are
interpreted here
Java Beans
Overall System Architecture
MySQL
Server
Features




View/Update Prerequisites
Check Student
Check Class
Update Database
Home
View/Update
Prerequisites
Check
Class
Submit form to view
prerequisites
Submit form to check
class
View the prerequisites
View the results
Submit form to edit
prerequisites
Update
Database
Check Student
Submit form to check
student
View the results
Submit form to go back
to
Check Class
Submit form to go back
to
Check Student
Submit form to add
department
Result for adding a
department
Submit form to add
course
Submit form to add
prerequisite
Result for adding a
course
Result for adding
a prerequisite
Submit form to go back to Submit form to go
back to
Update Database
Update Database
Submit form to go
back to
Update Database
Edit the
prerequisites
Submit form to go back to
View/Update prerequisites
Comprehensive Flow Chart
View/Update Prerequisites

Functionalities

View prerequisites


Update prerequisites


Input: department name, course level, course name
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
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’
PrereqBean
editPrereqBean
Accesses ‘prereq’,
‘dept_courses’ tables
Accesses ‘prereq’ table
Submit ‘editForm’
edit_result.jsp
Calls the appropriate method on ‘updateprereqBean’
to update the prerequisites
updatePrereq
Bean
Updates the ‘prereq’ table
Submit ‘GoToViewForm’ to View/Update
Prerequisites for another course
JSP Level
Java Bean Level
Architecture of View/Update Prerequisites
Database Level
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
JSP Level
Java Bean Level
Architecture of Check Student
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
checkClass.jsp
Submit ‘checkPrereqForClass’ form
checkClass_result.jsp
Calls ‘checkPrereqs’ method on ‘CheckClassBean’ to
display the results
CheckClass
Bean
Accesses the ‘courserecords’,
‘students’ tables
Submit ‘GoToCheckClassForm’ to go back to Check
Class Home
JSP Level
Java Bean Level
Architecture of Check Class
Database Level
Update Database

Functionalities

Add a department


Add a course


Input: department name
Input: department name, course name
Add a prerequisite

Input: department name, course level, course name
Submit ‘deptForm’
addDept_result.js
p
Calls ‘addDept’
method on
‘UpdateDbBean’
Updates the
‘department’ table
Submit
‘GoToDatabaseHomeFor
m’ to go back to Update
Database Home
databaseHome
.jsp
UpdateDbBean
Submit ‘courseForm’
addCourse_resul
t.jsp
Calls ‘addCourse’
method on
‘UpdateDbBean’
Accesses
‘department’, updates
‘dept_courses’,
‘dept_prereqs’,
‘prereq’ tables
Submit
‘GoToDatabaseHomeFor
m’ to go back to Update
Database Home
Submit ‘prereqForm’
addPrereq_resul
t.jsp
Calls ‘addPrereq’
method on
‘UpdateDbBean’
Accesses ‘department’,
‘dept_courses’ tables
updates ‘dept_prereqs’
tables
Submit
‘GoToDatabaseHomeFor
m’ to go back to Update
Database Home
JSP Level
Java Bean
Level
Architecture of Update Database
Database
Level
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 Structure
Testing 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
Forms
Default 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 Home
Mobile AMD Athlon(tm) 64-bit Processor 2700+
1.6 GHz, 512 MB of RAM
Apache 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 Results
4500
4000
3500
View/Update
Prerequisites
3000
Check Class
2500
2000
Check Student
1500
Update Database
1000
500
11
00
13
00
15
00
17
00
19
00
90
0
70
0
50
0
30
0
0
10
0
Throughput (Number of requests/Minute)
JMeter Test Results
Number of Users
Check Student Performance
Testing
Check Student JM eter Test Results
3000
2500
200 Users
2000
400 Users
1500
600 Users
800 Users
1000
500
10
00
90
0
80
0
70
0
60
0
50
0
40
0
30
0
20
0
0
10
0
Throughput (Number of
requests/Minute)
3500
Number of Students (Size of Database)
Check Class Performance Testing
Check Class JMeter Test Results
Throughput (Number of
requests/Minute)
300
250
200
100 users
150
200 users
300 users
100
50
0
100
200
300
400
500
600
700
Number of Students (Size of database)
800
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 – 5473
Total ------------ 8997 (9000 approx.)

Progress of the Project

July ‘04 – August ’04


September ’04 – December ’04


Vacation
February ’05 – May ’05


View/Update Prerequisites feature, Shifted from Oracle 9i to
MySQL 4.1
December ’04 – January ’05


Database Design, basic architecture of the web interface
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
Progress
45
40
40
35
35
30
25
20
15
10
20
5
5
0
0
July '04 - Aug
'04
Sep '04 - Dec '
04
Dec '04 - Jan
'05
Time
Feb '05 - May
'05
June '05 - July
'05
Effort & Time Distribution
Issue
Time Spent (approx.)
Research
15 hours
Database Design & SQL
Programming
Coding
50 hours
200 hours
Testing
15 hours
Documentation
40 hours
Effort &Time Distribution
(Contd…)
Effort & Time Distribution
Research
5%
13%
5%
15%
Database Design &
SQL Programming
Coding
Testing
62%
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