prerequisite checker

33
Prerequisite Checker Neeharika Bollepalli Masters Report, Final Defense Guidance by Dr. Dan Andresen

Upload: dimaia

Post on 12-Jan-2016

71 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Prerequisite Checker

Prerequisite Checker

Neeharika BollepalliMasters Report, Final Defense

Guidance by Dr. Dan Andresen

Page 2: Prerequisite Checker

Overview Motivation Biggest Challenge System Architecture Features Functional Testing Performance Testing Conclusions Project Metrics Progress of the Project Effort & Time Distribution Reflections Demo

Page 3: Prerequisite Checker

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

Page 4: Prerequisite Checker

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

Page 5: Prerequisite Checker

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

Page 6: Prerequisite Checker

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

Page 7: Prerequisite Checker

System Architecture

Apache Tomcat Server

MySQLServer

JSP – Client requests are

interpreted here

Java Beans

ClientsRequest or Response

Request or Response

Overall System Architecture

Page 8: Prerequisite Checker

Features View/Update Prerequisites Check Student Check Class Update Database

Page 9: Prerequisite Checker

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

Page 10: Prerequisite Checker

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

Page 11: Prerequisite Checker

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

Page 12: Prerequisite Checker

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

Page 13: Prerequisite Checker

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

Page 14: Prerequisite Checker

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

Page 15: Prerequisite Checker

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

Page 16: Prerequisite Checker

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

Page 17: Prerequisite Checker

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

Page 18: Prerequisite Checker

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

Page 19: Prerequisite Checker

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

Page 20: Prerequisite Checker

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

Page 21: Prerequisite Checker

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

Page 22: Prerequisite Checker

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

Page 23: Prerequisite Checker

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

Page 24: Prerequisite Checker

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

Page 25: Prerequisite Checker

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

Page 26: Prerequisite Checker

Project Metrics Number of Java Bean classes - 7 Source Lines of Code

JSP Files – 3524 Java Beans – 5473Total ------------ 8997 (9000 approx.)

Page 27: Prerequisite Checker

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

Page 28: Prerequisite Checker

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

Page 29: Prerequisite Checker

Effort & Time DistributionIssue Time Spent (approx.)

Research 15 hours

Database Design & SQL Programming

50 hours

Coding 200 hours

Testing 15 hours

Documentation 40 hours

Page 30: Prerequisite Checker

Effort &Time Distribution (Contd…)

Effort & Time Distribution

5% 15%

62%

5%13%

Research

Database Design &SQL Programming

Coding

Testing

Documentation

Page 31: Prerequisite Checker

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

Page 32: Prerequisite Checker

Demo

Page 33: Prerequisite Checker

Questions