1 / 33

Prerequisite Checker

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

dimaia
Download Presentation

Prerequisite Checker

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. 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

  4. 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

  5. CIS 520 AND CIS 501 OR EECE 431 CIS 450 B or better Biggest Challenge (Contd…) 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

  6. Prereq root parent plft prgt id lft rgt course name students ssn fname lname email advisor Prerequisite Structure of the course 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 Biggest Challenge (Contd…)

  7. Clients Apache Tomcat Server Request or Response JSP – Client requests are interpreted here MySQL Server Request or Response Java Beans System Architecture Overall System Architecture

  8. Features • View/Update Prerequisites • Check Student • Check Class • Update Database

  9. Home View/Update Prerequisites Check Class Update Database Check Student Submit form to check class Submit form to view prerequisites Submit form to check student Submit form to add prerequisite Submit form to add department Submit form to add course View the results View the prerequisites Result for adding a department Result for adding a course Result for adding a prerequisite View the results Submit form to go back to Check Student Submit form to edit prerequisites Submit form to go back to Check Class Submit form to go back to Update Database Submit form to go back to 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

  10. 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

  11. JSP Level Java Bean Level Database Level view.jsp Submit ‘viewForm’ view_resultjsp Accesses ‘prereq’, ‘dept_courses’ tables PrereqBean Calls the ‘getPrereq’method on ‘PrereqBean’ to display prerequisites Accesses ‘prereq’ table editPrereqBean Calls ‘getPrereqOnly’ method on ‘editPrereqBean’ to set prerequisites in the form ‘editForm’ Submit ‘editForm’ edit_result.jsp Updates the ‘prereq’ table updatePrereqBean Calls the appropriate method on ‘updateprereqBean’ to update the prerequisites Submit ‘GoToViewForm’ to View/Update Prerequisites for another course Architecture of View/Update Prerequisites

  12. 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

  13. StudentHome.jsp Submit ‘checkPrereqForStudent’ form studentHome_result.jsp Accesses the ‘prereq’, ‘students’, ‘courserecords’ tables StudentCheck Bean Calls the ‘checkStudentStatus’ method on ‘studentCheckBean’ to display the results Submit ‘GoToStudentHomeForm’ to go back to Check Student Home JSP Level Java Bean Level Database Level Architecture of Check Student

  14. 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

  15. JSP Level Java Bean Level Database Level checkClass.jsp Submit ‘checkPrereqForClass’ form checkClass_result.jsp Accesses the ‘courserecords’, ‘students’ tables CheckClass Bean Calls ‘checkPrereqs’ method on ‘CheckClassBean’ to display the results Submit ‘GoToCheckClassForm’ to go back to Check Class Home Architecture of Check Class

  16. 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

  17. JSP Level Java Bean Database Level Level Calls ‘addDept’ method on ‘UpdateDbBean’ Updates the ‘department’ table addDept_result.jsp Submit ‘deptForm’ Submit ‘GoToDatabaseHomeForm’ to go back to Update Database Home databaseHome .jsp UpdateDbBean Calls ‘addCourse’ method on ‘UpdateDbBean’ Accesses ‘department’, updates ‘dept_courses’, ‘dept_prereqs’, ‘prereq’ tables addCourse_result.jsp Submit ‘courseForm’ Submit ‘GoToDatabaseHomeForm’ to go back to Update Database Home Calls ‘addPrereq’ method on ‘UpdateDbBean’ Accesses ‘department’, ‘dept_courses’ tables updates ‘dept_prereqs’ tables addPrereq_result.jsp Submit ‘prereqForm’ Submit ‘GoToDatabaseHomeForm’ to go back to Update Database Home Architecture of Update Database

  18. Functional Testing • HttpUnit • How the web site was tested?

  19. 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

  20. 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

  21. JMeter Test Results

  22. Check Student Performance Testing

  23. Check Class Performance Testing

  24. 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

  25. 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

  26. Project Metrics • Number of Java Bean classes - 7 • Source Lines of Code • JSP Files – 3524 • Java Beans – 5473 Total ------------ 8997 (9000 approx.)

  27. 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

  28. Progress of the Project (Contd…)

  29. Effort & Time Distribution

  30. Effort &Time Distribution (Contd…)

  31. 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

  32. Demo

  33. Questions

More Related