Title: Prerequisite Checker
1Prerequisite Checker
- Neeharika Bollepalli
- Masters Report, Final Defense
- Guidance by Dr. Dan Andresen
2Overview
- Motivation
- Biggest Challenge
- System Architecture
- Features
- Functional Testing
- Performance Testing
- Conclusions
- Project Metrics
- Progress of the Project
- Effort Time Distribution
- Reflections
- Demo
3Motivation
- 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
4Biggest 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
5Biggest Challenge (Contd)
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
1
14
13
2
3
12
9
8
10
11
4
5
7
6
Prerequisite Structure of CIS 520
Entries in prereq table for CIS 520
6Biggest Challenge (Contd)
7System Architecture
Overall System Architecture
8Features
- View/Update Prerequisites
- Check Student
- Check Class
- Update Database
9 Comprehensive Flow Chart
10View/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
11Architecture of View/Update Prerequisites
12Check 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
13 JSP Level Java Bean
Level
Database Level
Architecture of Check Student
14Check Class
- Functionality
- Check the eligibility of all the students
enrolled in a class for their prerequisite
requirement - Input semester, year, department name, course
name
15Architecture of Check Class
16Update 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
17Architecture of Update Database
18Functional 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
19Performance 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
20Performance 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
21JMeter Test Results
22Check Student Performance Testing
23Check Class Performance Testing
24Conclusions
- 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
25Conclusions (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
26Project Metrics
- Number of Java Bean classes - 7
- Source Lines of Code
- JSP Files 3524
- Java Beans 5473
- Total ------------ 8997 (9000 approx.)
27Progress 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
28Progress of the Project (Contd)
29Effort Time Distribution
Issue Time Spent (approx.)
Research 15 hours
Database Design SQL Programming 50 hours
Coding 200 hours
Testing 15 hours
Documentation 40 hours
30Effort Time Distribution (Contd)
31Reflections
- 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
32Demo
33Questions