Download presentation
Presentation is loading. Please wait.
Published byOswin Gardner Modified over 9 years ago
1
UOFS Information System Version 0.9 Yaodong Bi Copyright 2009, Yaodong Bi
2
Software Requirements
3
Requirements - Steps 1. System definition 2. Identify actors 3. Identify use cases for each actor 4. Define business packages 5. Assign use cases to packages
4
System Definition UOFS maintains information about courses, students, and faculty. Registrar’s office decides what courses to be offered and who the instructor is. A student can register for and drop courses and view the grades Faculty file students’ grades for the courses he/she teaches. All users are required to sign in before using the system. All users can sign up and edit their account info.
5
Actors and Use Cases Register Course Student Registrar Faculty Actors Delete UserAdd CourseDelete Course Drop Course View Grade Add Grade Log out Edit Acct Sign in Sign up Shared by All Actors
6
Three Business Packages User Account Management –Manage (CRUD) user accounts Catalog Management –Manage the catalog (add/delete courses) Grade Management –Manage course registration –Manage grades Packages are determined based on the data each package is responsible for.
7
Catalog Management Grade Management Business Packages & Use Cases Register CourseAdd CourseDelete Course Drop Course View Grade Add Grade User Acct Management Sign in Log out Edit Acct Delete User Sign up
8
Software Design
9
Design - Steps 1. Each business package to a Java package 2. Each package has an Entity Manager which takes care of business logic. 3. Each entity manager access its entities from DB 4. Each use case has a dispatcher which takes care of presentation logic/flow 5. Each use case has multiple input/output forms which are the user interface.
10
Package Name Package Notations Dispatchers EntityManager Entity Classes Boundary Classes Each package contains Control Classes An entity manager: responsible for the business logic A dispatcher for each use case: responsible for presentation logic of the use case. Dispatcher defines interfaces for boundary classes. Boundary classes for UI Entity classes: entities that are CRUDed by the package
11
User Acct Management User Acct Management Package SignupDispatcher LogoutDispatcher EditAcctDispatcher DeleteUserDispatcher UserAcctManager StudentFacultyUser SigninForm SigninDispatcher SignupFormDeleteUserFormEditAcctForm
12
Catalog Management Catalog Management Package AddCourseDispatcherDeleteCourseDispatcher CatalogManager Course AddCourseFormDeleteCourseForm
13
Grade Management Grade Management Package DropCourseDispatcherAddGradeDispatcher ViewGradeDispatcher GradeManager Grade RegisterCourseForm RegisterCourseDispatcher DropCourseForm ViewGradeForm AddCourseForm
14
Database Design
15
Class Diagram: Entity Classes StudentFaculty Course User 0..15 1..5 Grade take teach 1..5 1..1 Registrar
16
Database Tables 16 Account idfnamelname Course idtitleinstructor Grade sidcidgrade unameaddresspasswdtype Note:Uname & passwd of User are for login purpose
17
Detailed Design
18
Detailed Design - Steps 1. Define System Start home 2. For each actor 1.Define a user home 2.Map all of its use cases to command buttons 3. For each use case 1.Identify all input forms and display 2.Identify user commands on each form 3.Dispatcher as click listener for command buttons 4.Dispatcher controls the interaction to user 4. Design RPC
19
System Start Home Display a welcome message and allows the user to log in or sign up May display other commands readily available to users before they log in After a user is successfully logged in, its user home is display. UofsIS System Start Home contains Sign in use case Sign up use case After a user sign in/sign up, his User Home is displayed Mapped to SystemHome.java
20
SystemStartHome System Start Home & Dispatchers Sign up Sign In Catalog Management Grade Management User Acct Management SignupDispatcher.begin() SigninDispatcher.begin() Command Button System Start Home Sign up Sign In Use Cases mapped to Buttons
21
User Homes Each user has a User Home The User Home is displayed after the user logs in The User Home contains all use cases of the user Each use case is represented as a command, for example, like a button. When the user selects a command, clicking the button, the user home calls the dispatcher of the use case to start the use case. The User Home may also contain context data, for example, a shopping cart. The User Home may be accessed by all the dispatchers of the use cases of the user.
22
Student Home Registrar Home Faculty Home User Homes & Use Cases Register CourseAdd Course Delete CourseDrop Course View Grade Add Grade Log out Edit Acct Delete User Edit Acct Log out Command Button Use case Use Cases mapped to Buttons
23
StudentHome User Home Hierarchy Register Course Drop Course View Grade Log out Edit Acct FacultyHome Add Grade Log out Edit Acct RegistrarHome Delete User Add Course Delete Course Log out Edit Acct UserHome currentUser setUserWelcome()
24
StudentHome Student Commands & Dispatchers Register Course Drop Course View Grade Log out Edit Acct CatalogManagement GradeManagement RegisterCourseDispathcer.begin() DropCourseDispatcher.begin() ViewGradeDispatcher.begin() UserAcctManagement LogoutDispatcher.begin() EditAcctDispatcher.begin() Command Button When a command button Is clicked, its use case is started
25
FacultyHome Faculty Commands & Dispatchers Add Grade Log out Edit Acct CatalogManagement GradeManagement AddGradeDispatcher.begin() UserAcctManagement LogoutDispatcher.begin() EditAcctDispatcher.begin() Command Button When a command button Is clicked, its use case is started
26
RegistrarHome Registrar Commands & Dispatchers Delete User Add Course Delete Course Log out Edit Acct CatalogManagement GradeManagement AddCourseDispatcher.begin() DeleteCourseDispatcher.begin() UserAcctManagement LogoutDispatcher.begin() EditAcctDispatcher.begin() DeleteUserDispatcher.begin() Command Button When a command button Is clicked, its use case is started
27
User Homes Package UserHomes StudentHome SystemStartupHome RegistrarHome FacultyHome Add Grade Log out Edit Acct CatalogManagement GradeManagement AddGradeDispatcher.begin() UserAcctManagement LogoutDispatcher.begin() EditAcctDispatcher.begin() Only Command buttons of Faculty Home are shown
28
Forms and Dispatchers Design Each dispatcher is a singleton with lazy-loading. In other words, there is only one instance of each dispatcher and it is not created until it is requested or needed. Each form knows what dispatchers it may interact with. A form contains Event Handlers for all the events that may occur in the form. Every event corresponds to an operation in the dispatcher. When the event (clicking “submit” button, for example) occurs, the form calls the operation of the dispatcher along with relevant data. The operation of the dispatcher determines if it should contact the entity manager for services, it “displays” next form.
29
Dispatchers Design: EditAcct Use Case When the use case starts, EditAcctForm.java is executed to display the current info (by its dispatcher’s begin()) User enters info and then click the Submit button, the event handler, onClick() in EditAcctForm.java calls EditAcctDispatcher.saveUserInfo(user). EditAcctDispatcher.saveUserInfo(user) then calls UserAcctManagerProxy.updateUser(user) which in turn use asynchronous communication to pass the request to the UserAcctManager.updateUser(user) on the server UserAcctManagerProxy had updateUserFailure and updateUserSccess which are called by the asynchronous mechanism based on the returned result from the server. It then relays the result back to the dispatcher. EditAcctDispatcher displays a notification window with failure/success message The notification window informs the dispatcher after the user has confirmed with the message. The dispatcher displays next form, for example, StudentHome.
30
Dispatchers Design: EditAcct Use Case EditAcctDispatcher UserAcctManagerProxy NotificationWindow EditAcctForm student StudentHome EditAcct begin display submit saveUserInfo(newUser) display updateUser() updateUserSuccess() close confirm RPC details are not displayed here. It handles the click & then call display
31
31 Web Server UserAcctManager GradeManager CatalogManager UserAcctManagerProxy GradeManagerProxy CatalogManagerProxy Web Browser Client Web Browsers Entity Manager – RPC Implementation UserAcctManagerImpl GradeManagerImpl CatalogManagerImpl Each Proxy is supported by a RPC package which contains routines for asynch comm.
32
GradeManagement CatalogManagement UserAcctManagement Web Server & DB Server 32 Database Server server8.cs.uofs.edu User Course Grade UserAcctManagerImpl GradeManagerImpl CatalogManagerImpl UserAcctManagerDAL GradeManagerDAL CatalogManagerDAL Web Server Heineken or host PgSQLManager JDBC DAL’s map Java objects to DB tables db DBManager
33
Other Packages Common Exceptions GUIWidgets NotFoundException OperationButtonNotificationWindowMore Custom Widgets Exceptions shared by all packages Custom widgets shared by all dispatchers Packages and component shared by all packages
34
Other Packages – Entity Classes Shared UserCourseGrade
35
The End!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.