1 / 74

The Online Grade Book

ACET 2003. The Online Grade Book. A Case Study in Learning About Object-Oriented Database Technology. Charles R. Moen, M.S. Morris M. Liaw, Ph.D. October 18, 2003. Why do we need OODB?. When creating an application with an object-oriented programming language…

oleg
Download Presentation

The Online Grade Book

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. ACET 2003 The Online Grade Book A Case Study in Learning About Object-Oriented Database Technology Charles R. Moen, M.S. Morris M. Liaw, Ph.D. October 18, 2003

  2. Why do we need OODB? • When creating an application with an object-oriented programming language… • Objects can be saved without translating them to another data structure • Vice versa, stored objects can be loaded without translation • Efficiency and speed!

  3. Why do we need OODB? • When creating an application that uses complex data, e.g., building a space shuttle, creating an electronic medical record system, storing bioinformatics sequence information,… • Complex data can be stored without complicated table schemas • Data can be retrieved by pointer traversal, no need for time-consuming joins • Efficiency, speed, and complexity!

  4. Background Highlights • Object-oriented database • Persistent store of objects created with an OO programming language • Advantages • No need to convert objects to tables • Capable of storing entities with complex relationships • Faster—no need for joins • Some important points • No tables, no need for normalization • Capable of computing transitive closure • Relational databases are better for business apps

  5. How do we teach OODB? CSCI 5433 Object-Oriented Database Systems • Prerequisites • CSCI 3233 Object-Oriented Design and Programming (C++) • CSCI 5333 Database Management Systems (DB theory) • Learning Goals • Learn how to use OOAD for database development • Learn how to use OO technology to develop an OO database and a Web application that uses it as a backend • Tools • Object Modeling Technique (OMT) • ObjectStore and MS Visual C++ • Project • The Online Grade Book

  6. Resources • Textbook Object-Oriented Modeling and Design for Database Applications Michael Blaha & William Premerlani Prentice-Hall, 1998 ISBN 0-13-123829-9

  7. Resources (Cont.) • Software • ObjectStore • OO database management software • Progress Software Corporation • http://www.progress.com/ • http://www.objectstore.net/index.ssp • Educational license available • MS Visual C++ • ObjectStore Wizards create C++ code • Writing the callbacks • Compiling the DLLs

  8. Resources (Cont.) • ObjectStore Manuals • Extensive PDF documentation • The most important manuals • Rapid Database Development • ObjectForms Publisher Tutorial • Inspector Tutorial • ObjectForms User Guide • C++ API User Guide • Building C++ Interface Applications

  9. Resources (Cont.) • Computer Lab • Dedicated room with seven PCs • PC configuration • Windows 2000 • ObjectStore • MS Visual C++ • ObjectStore Mini Server

  10. Teaching Technique • Lecture • Intro to OODB • Student presentations • Based on textbook and ObjectStore manuals • Project assignment • Online Grade Book • Personal home page with links to the project • Exams • Midterm and final

  11. Learning Goals • Learn how to use OOAD for database development • OMT Methodology

  12. Learning Goal 1 – Learning How to Use OOAD OMT Methodology • Object Modeling Technique (OMT) • Developed by James Rumbaugh • Consists of: • Concepts about object modeling • A process called the “OMT Process” • Modeling notation

  13. Learning Goal 1 – Learning How to Use OOAD The OMT Process • Conceptualization • Analysis • System design • Detailed design • Implementation • Maintenance

  14. Learning Goals • Learn how to use OOAD for database development • OMT Methodology • Learn how to use OO technology to develop an OO database and a Web application that uses it as a backend • Project assignment—“Online Grade Book”

  15. Learning Goal 2 – Developing an OODB Project Assignment • Create an Online Grade Book • Web site where students can check grades • The teacher will record the grades in an OODB • Course grade calculated automatically, according to weight percentages assigned by the teacher • OMT Process • Conceptualization Report • Analysis Report • Project Report • Implementation • ObjectStore and C++ • Final Demonstration

  16. Learning Goal 2 – Developing an OODB OMT Process Steps • Conceptualization • Business analysts or users conceive of an application and list requirements

  17. Learning Goal 2 – Developing an OODB Step 1, Conceptualization • Why is the Online Grade Book needed? • Students can get grades without contacting the teacher • Teacher will not have to contact each individual student • What problems will it solve? • Problem statement:Develop software for an online grade book using ObjectStore. The following capabilities must be provided: • Provide an automated system to show students their grades • Allow the student to see his grades after entering his ID • Display all the grades for that student, including the midterm exam grade, the final exam grade, the presentation grade, the group project grade, the individual project grade, the course score, and the course letter grade. • Permit the teacher to change all the student data, including the name, password, and grades • Permit the teacher to change the grade weights for the grade components

  18. Learning Goal 2 – Developing an OODB Step 1, Conceptualization • What problems will it solve? (Cont.) • Detailed software requirements: (examples) • The system shall have an ID for each user. • The ID shall be an integer assigned to each student in a class by the teacher. • The system shall provide a course ID for each user. • The course ID shall identify the specific course that the student is enrolled in, including the course number, section, semester, and year. • The system shall check the ID of the user when he wants to check his grades. • The system shall identify whether a user is a student or an administrator. • Where will it be used? • Environment—UHCL campus • System requirements • When is it needed?—The end of the semester

  19. View Grades Administrator Student Edit Student Data Edit Grade Weights Learning Goal 2 – Developing an OODB Step 1, Conceptualization • Who is the application for? • Actors • How will it work? • Scenarios and use cases

  20. Learning Goal 2 – Developing an OODB Step 1, Conceptualization Conceptualization Report 1 WHO IS THE APPLICATION FOR? 1.1 USERS 1.1.1 Student—Description, Responsibilities, Success Criteria 1.1.2 Administrator —Description, Responsibilities, Success Criteria 2 WHAT PROBLEMS WILL IT SOLVE? 2.1 APPLICATION OVERVIEW 2.2 PROBLEM STATEMENT 2.3 DETAILED SOFTWARE REQUIREMENTS 3 WHERE WILL IT BE USED? 3.1 ENVIRONMENT (e.g., UHCL classrooms) 3.2 SYSTEM REQUIREMENTS 3.2.1 Server Software (e.g., MS IIS, ObjectStore) 3.2.1 Client Software (e.g., modern Web browser) 3.2.2 Development Software (e.g., ObjectStore, MS Visual C++, Notepad) 4 WHEN IS IT NEEDED? 4.1 PROJECT DEADLINE

  21. Learning Goal 2 – Developing an OODB Step 1, Conceptualization Conceptualization Report (Cont.) 5 WHY IS IT NEEDED? 5.1 CONTEXT (e.g., class assignment) 5.2 OBJECTIVES 6 HOW WILL IT WORK? 6.1 SCENARIOS 6.1.1 Initial setup and addition of students by the Administrator 6.1.2 Adding the grades 6.1.3 Checking the grades 6.2 USE CASES 6.2.1 Use case diagram 6.2.2 Use case descriptions 6.2.2.1 View grades—preconditions, flow, post conditions 6.2.2.2 Edit student data —preconditions, flow, post conditions 6.2.2.3 Edit grade weights —preconditions, flow, post conditions 6.3 INITIAL ARCHITECTURE

  22. Learning Goal 2 – Developing an OODB OMT Process Steps • Conceptualization • Business analysts or users conceive of an application and list requirements • Analysis • Real-world models are constructed • Specify what to do, not how to do it

  23. Course( courseID, courseName, teacherName, departmentName) Course( courseID, courseName, teacherID , departmentID ) Teacher( teacherID, teacherName ) Department( departmentID, departmentName ) Learning Goal 2 – Developing an OODB Step 2, Analysis • Attribute-based approach(not OO) • Used with relational databases • List attributes in related groups • Check normal forms

  24. Department departmentName Course courseID courseName Teacher teacherName teaches taught in Learning Goal 2 – Developing an OODB Step 2, Analysis • Entity-based approach (OO technique) • Real-world entities and relationships between them • Advantages: • Fewer entities than attributes • No need to check normal forms • Compatible with OO program code

  25. Functional Model (Defines operations of objects) Object Model (Defines the structure, e.g., classes) Dynamic Model (State Diagram, but not used for databases) Learning Goal 2 – Developing an OODB Step 2, Analysis OMT Methodology Models

  26. Develop software for an online grade book using ObjectStore. The following capabilities must be provided: • Provide an automated system to show students their grades • Allow the student to see his grades after entering his ID • Display all the grades for that student, including the midterm exam grade, the final exam grade, the presentation grade, the group project grade, the individual project grade, the course score, and the course letter grade. • Permit the teacher to change all the student data, including the name, password, and grades • Permit the teacher to change the grade weights for the grade components Learning Goal 2 – Developing an OODB Object Model Step 2, Analysis • Start with the problem statement

  27. Develop software for an online grade book using ObjectStore. The following capabilities must be provided: • Provide an automated system to show students their grades • Allow the student to see his grades after entering his ID • Display all the grades for that student, including the midterm exam grade, the final exam grade, the presentation grade, the group project grade, the individual project grade, the coursescore, and the course letter grade. • Permit the teacher to change all the student data, including the name, password, and grades • Permit the teacher to change the grade weights for the grade components Learning Goal 2 – Developing an OODB Object Model Step 2, Analysis • Start with the problem statement • Locate nouns to find the entities for classes

  28. Develop software for an online grade book using ObjectStore. The following capabilities must be provided: • Provide an automated system to show students their grades • Allow the student to see his grades after entering his ID • Display all the grades for that student, including the midterm exam grade, the final exam grade, the presentation grade, the group project grade, the individual project grade, the coursescore, and the course letter grade. • Permit the teacher to change all the student data, including the name, password, and grades • Permit the teacher to change the grade weights for the grade components Learning Goal 2 – Developing an OODB Object Model Step 2, Analysis • Eliminate unnecessary classes that are: • Irrelevant: software, book, capabilities, system • Redundant: data, components • Used only as values (attributes): grades, score, ID, name, password

  29. Teacher Weight Student Learning Goal 2 – Developing an OODB Object Model Step 2, Analysis • Establish the model’s basic structure

  30. Teacher Student fName: char[50] mName: char[50] lName: char[50] midterm: float final: float presentation: float groupProject: float individualProject: float courseScore: float courseGrade: char[10] Weight midtermWeight: float finalWeight: float presentationWeight: float groupProjectWeight: float individualProjectWeight: float courseID: char[10] Learning Goal 2 – Developing an OODB Object Model Step 2, Analysis • List the attributes

  31. Person userID: char[10] password: char[10] Teacher Student fName: char[50] mName: char[50] lName: char[50] midterm: float final: float presentation: float groupProject: float individualProject: float courseScore: float courseGrade: char[10] weightTable: os_Collection<Weights *> Weight midtermWeight: float finalWeight: float presentationWeight: float groupProjectWeight: float individualProjectWeight: float courseID: char[10] Learning Goal 2 – Developing an OODB Object Model Step 2, Analysis • Add associations and refine the model

  32. Person userID: char[10] password: char[10] Teacher Student fName: char[50] mName: char[50] lName: char[50] midterm: float final: float presentation: float groupProject: float individualProject: float courseScore: float courseGrade: char[10] weightTable: os_Collection<Weights *> Weight midtermWeight: float finalWeight: float presentationWeight: float groupProjectWeight: float individualProjectWeight: float courseID: char[50] Learning Goal 2 – Developing an OODB Object Model Notation Step 2, Analysis Class Attributes Inheritance Multiplicity Association

  33. Learning Goal 2 – Developing an OODB Functional Model Step 2, Analysis • Start with the use cases • View grades • Edit student data (includes adding grades) • Edit grade weights • Straightforward object creation, deletion, or retrieval? attribute value update?—no need for pseudocode • Use case 2 requires pseudocode for the course grade, since it is calculated

  34. Learning Goal 2 – Developing an OODB Functional Model Step 2, Analysis Use Case 2: This is the pseudocode for setting the course score and the course grade for a student. They must be calculated, and the calculations are triggered when the administrator sets the student’s final exam score. Student::setFinal ( finalGrade ) self.final := finalGrade; self#setCourseScore( ); return; Student::setCourseScore ( ) score := 0; score += self.midterm * self.weightTable.midtermWeight; score += self.final * self.weightTable.finalWeight; score += self.presentation * self.weightTable.presentationWeight; score += self.groupProject * self.weightTable.groupProjectWeight; score += self.individualProject * self.weightTable.individualProjectWeight; self.courseScore := score; self#setCourseGrade( ); return;

  35. Learning Goal 2 – Developing an OODB Functional Model Step 2, Analysis (Use Case 2 cont.) Student::setCourseGrade ( ) if self.courseScore >= 93 thenself.courseGrade := “A”; else if self.courseScore >= 90 thenself.courseGrade := “A-”; else if self.courseScore >= 87 thenself.courseGrade := “B+”; else if self.courseScore >= 83 thenself.courseGrade := “B”; else if self.courseScore >= 80 thenself.courseGrade := “B-”; else if self.courseScore >= 77 thenself.courseGrade := “C+”; else if self.courseScore >= 73 thenself.courseGrade := “C”; else if self.courseScore >= 70 thenself.courseGrade := “C-”; elseself.courseGrade := “F”; end if return;

  36. Learning Goal 2 – Developing an OODB Navigational Flow Step 2, Analysis • All pages in the Web site • Block diagram—each page is a rectangle with a descriptive name • All links between the pages drawn as directional lines • Initial design of each page usually developed at the same time

  37. Administrator Log In Enter Student ID Admin Log In OK OK N N Found? Admin? Y Y Student Grade Report Admin Grade Report Logout Delete Change Admin Change Dialog OK or Cancel Add A New Student Edit Grade Weights Admin Add Student Dialog Admin Grade Weight Dialog Learning Goal 2 – Developing an OODB Navigational Flow Step 2, Analysis

  38. Learning Goal 2 – Developing an OODB Web Page Layouts Step 2, Analysis

  39. Learning Goal 2 – Developing an OODB Step 2, Analysis Analysis Report 1 NAVIGATIONAL FLOW BETWEEN WEB PAGES 2 WEB I/O COMPONENTS A list of the forms, buttons, and links for each Web page 3 WEB PAGE LAYOUTS The design of each Web page in the navigational flow chart 4 ANALYSIS OBJECT MODEL 5 ANALYSIS FUNCTIONAL MODEL 5.1 USE CASES (a list of the use cases) 5.2 PSEUDOCODE 6 DATA DICTIONARY

  40. Learning Goal 2 – Developing an OODB OMT Process Steps • Conceptualization • Business analysts or users conceive of an application and list requirements • Analysis • Real-world models are constructed • Specify what to do, not how to do it • System Design • Develop the high-level architecture

  41. Client Browser Callback Functions Persistent Objects Created by the developer Learning Goal 2 – Developing an OODB Step 3, System Design :oodb server :personal computer HTTP Web Server ObjectStore Application Packages (e.g., the WebConnect CGI program and the Template Processor) Template Files *.OFT *.DLL *.DB

  42. Learning Goal 2 – Developing an OODB OMT Process Steps (Cont.) • Detailed Design • Adjustments to simplify implementation and improve execution

  43. Person userID: char[10] password: char[10] Teacher Person userID: char[50] password: char[50] fName: char[50] mName: char[50] lName: char[50] midterm: char[50] final: char[50] presentation: char[50] groupProject: char[50] individualProject: char[50] courseScore: char[50] courseGrade: char[10] courseID: char[50] admin: char[10] Student fName: char[50] mName: char[50] lName: char[50] midterm: float final: float presentation: float groupProject: float individualProject: float courseScore: float courseGrade: char[10] weightTable: os_Collection<Weights *> Weight midtermWeight: char[50] finalWeight: char[50] presentationWeight: char[50] groupProjectWeight: char[50] individualProjectWeight: char[50] courseID: char[50] Weight courseID: char[10] midtermWeight: float finalWeight: float presentationWeight: float groupProjectWeight: float individualProjectWeight: float Detailed Design Object Model Analysis Object Model Learning Goal 2 – Developing an OODB Step 4, Detailed Design • Simplify the object model

  44. Learning Goal 2 – Developing an OODB Database Designer Step 4, Detailed Design • GUI-based ObjectStore program • Used to draw the “Detailed Design” object model • Saves the database schema in a *.dbs file

  45. Learning Goal 2 – Developing an OODB Database Designer Step 4, Detailed Design • Create the classes and save as gradebook.dbs

  46. Learning Goal 2 – Developing an OODB Database Designer Step 4, Detailed Design • Create the classes and save as gradebook.dbs

  47. Learning Goal 2 – Developing an OODB Database Designer Step 4, Detailed Design • Create the classes and save as gradebook.dbs

  48. Learning Goal 2 – Developing an OODB OMT Process Steps (Cont.) • Detailed Design • Adjustments to simplify implementation and improve execution • Implementation • Translate the design into code

  49. Learning Goal 2 – Developing an OODB Step 5, Implementation • ObjectStore tools for implementation • Visual C++ Wizards (e.g., Component Wizard) • Inspector • Publisher • Mini Server • MS Visual C++ • Run the ObjectStore Wizards • Write the methods from the functional model • Write the callback functions for adding, deleting, and editing items in the database

  50. Learning Goal 2 – Developing an OODB Component Wizard Step 5, Implementation • Automatically writes code for all classes created by Database Designer • Including “get” and “set” methods • Inserts “TODO” comments as placeholders for recommended modifications • Creates main( ), which can be modified to create and populate the OODB file • When these files are compiled the DLL is created

More Related