UNIVERSITY LEARNING MANAGEMENT SYSTEM



Similar documents
How to Build an E-Commerce Application using J2EE. Carol McDonald Code Camp Engineer

1. Introduction 1.1 Methodology

JAVA/J2EE DEVELOPER RESUME

Chapter 3 Technology adapted

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

HPC PORTAL DEVELOPMENT PLATFORM

NetBeans IDE Field Guide

XTendTraders.com Trading room simulator

Customer Bank Account Management System Technical Specification Document

A Monitored Student Testing Application Using Cloud Computing

Beginning POJOs. From Novice to Professional. Brian Sam-Bodden

HPC Portal Development Platform with E-Business and HPC Portlets

WEB-BASED STUDENT MANAGEMENT SYSTEM USING RFID

SOFTWARE ARCHITECTURE FOR FIJI NATIONAL UNIVERSITY CAMPUS INFORMATION SYSTEMS

Client/server is a network architecture that divides functions into client and server

Clustering Versus Shared Nothing: A Case Study

Course Name: Course in JSP Course Code: P5

Design Approaches of Web Application with Efficient Performance in JAVA

JBS-102: Jboss Application Server Administration. Course Length: 4 days

Integrating Online Banking and Top-up Card into Payment Gateway

WIRIS quizzes web services Getting started with PHP and Java

Oracle Identity Analytics Architecture. An Oracle White Paper July 2010

How to make a good Software Requirement Specification(SRS)

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc

Patterns & Techniques for Separating Business Logic in New SOA System Development. Iyad Jabri Intelliun Corporation CEO

Core J2EE Patterns, Frameworks and Micro Architectures

Java Platform, Enterprise Edition (Java EE) From Yes-M Systems LLC Length: Approx 3 weeks/30 hours Audience: Students with experience in Java SE

Software Development Interactief Centrum voor gerichte Training en Studie Edisonweg 14c, 1821 BN Alkmaar T:

Realizing Enterprise Integration Patterns in WebSphere

Windows 2000 / NT 4.0 / 95 / 98, MS-DOS, Suse Operating Systems

CloudCERT (Testbed framework to exercise critical infrastructure protection)

Budget Event Management Design Document

Portals, Portlets & Liferay Platform

API Architecture. for the Data Interoperability at OSU initiative

CSc 230 Software System Engineering FINAL REPORT. Project Management System. Prof.: Doan Nguyen. Submitted By: Parita Shah Ajinkya Ladkhedkar

Implementing the Shop with EJB

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

OUR COURSES 19 November All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan Göteborg Sweden

Web and Enterprise Applications Developer Track

Case Study. SaaS Based Multi-Store Market Place Brainvire Infotech Pvt. Ltd Page 1 of 5

Web Presentation Layer Architecture

Rapid Application Development. and Application Generation Tools. Walter Knesel

Tutorial: Design Patterns in the VSM

Java EE Introduction, Content. Component Architecture: Why and How Java EE: Enterprise Java

Course Number: IAC-SOFT-WDAD Web Design and Application Development

Realization of Inventory Databases and Object-Relational Mapping for the Common Information Model

Social Network Website to Monitor Behavior Change Design Document

Web Application Development

OptimalJ Foundation. PSM EJB Model. Roadmap. What is the EJB model? EJB model as a PSM model Mapping the EJB model Model elements and code generation

Building Web Applications, Servlets, JSP and JDBC

Remote Authentication and Single Sign-on Support in Tk20

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Java EE 7: Back-End Server Application Development

Oracle Communications WebRTC Session Controller: Basic Admin. Student Guide

SSC - Web development Model-View-Controller for Java web application development

Architecture Design Version1.0. Architecture Design CUSTOMER RELATION MANAGEMENT SYSTEM Version 1.0

Framework Adoption for Java Enterprise Application Development

Running and Testing Java EE Applications in Embedded Mode with JupEEter Framework

.NET and J2EE Intro to Software Engineering

Student Attendance Through Mobile Devices

SOA REFERENCE ARCHITECTURE: WEB TIER

Research Article. ISSN (Print) *Corresponding author Lili Wang

Development Methodologies

Oracle WebLogic Server 11g Administration

Japan Communication India Skill Development Center

CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS

Sports Management Information Systems. Camilo Rostoker November 22, 2002

zen Platform technical white paper

CACHÉ: FLEXIBLE, HIGH-PERFORMANCE PERSISTENCE FOR JAVA APPLICATIONS

FUSE-ESB4 An open-source OSGi based platform for EAI and SOA

How To Understand The Architecture Of Java 2Ee, J2Ee, And J2E (Java) In A Wordpress Blog Post

Net-WMS FP Net-WMS SPECIFIC TARGETED RESEARCH OR INNOVATION PROJECT. Networked Businesses. D.8.1 Networked architecture J2EE compliant

WebSphere Server Administration Course

To increase scalability, the following features can be integrated:

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Japan Communication India Skill Development Center

Chapter 1 - Web Server Management and Cluster Topology

Distributed Database Design

Online College Magazine

BUILDING OFFICIAL DOCUMENT MANAGEMENT SYSTEM FOR UNIVERSITIES

Stock Trader System. Architecture Description

AD-HOC QUERY BUILDER

Techniques for Scaling Components of Web Application

Creating new university management software by methodologies of Service Oriented Architecture (SOA)

Configuration Guide - OneDesk to SalesForce Connector

Software Development Kit

Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1

Complete Java Web Development

Performance Comparison of Persistence Frameworks

PG DAC. Syllabus. Content. Eligibility Criteria

!! " "!! # $ % " & ' $ % (! %) * +, $ ( ) ' " -

EVALUATION ONLY. WA2088 WebSphere Application Server 8.5 Administration on Windows. Student Labs. Web Age Solutions Inc.

NextRow - AEM Training Program Course Catalog

Sisense. Product Highlights.

JEE Web Applications Jeff Zhuk

Web Services API Developer Guide

The end. Carl Nettelblad

2012 LABVANTAGE Solutions, Inc. All Rights Reserved.

Transcription:

UNIVERSITY OF BORDEAUX 1 PÔLES UNIVERSITAIRES FRANÇAIS HO CHI MINH VILLE FINAL REPORT MASTER OF SOFTWARE ENGINEERING (2007 2009) UNIVERSITY LEARNING MANAGEMENT SYSTEM Prof.Dr. Robert Strandh Prof.Dr. Anne Dicky Supervisor: Dr. Lưu Thanh Trà Student: Lê Tấn Quan Ho Chi Minh City, 12/2009

UNIVERSITY OF BORDEAUX 1 PÔLES UNIVERSITAIRES FRANÇAIS HO CHI MINH VILLE FINAL REPORT MASTER OF SOFTWARE ENGINEERING (2007 2009) UNIVERSITY LEARNING MANAGEMENT SYSTEM Prof.Dr. Robert Strandh Prof.Dr. Anne Dicky Supervisor: Dr. Lưu Thanh Trà Student: Lê Tấn Quan Ho Chi Minh City, 12/2009

Abstract Most of universities in Ho Chi Minh City have changed to the credits scholar system which gives a huge flexibility for students to choose and design their scholar curriculum. However, this requires a good information system to manage students, teachers, curriculums, rooms, as well as accountant. To fulfill the requirement, we develop software called University Learning Manager System - ULMS with partners involved in the system, including training managers, teachers, students, accountants. The main task of the system ULMS performs the following work. Training management: - Building and design training programs for each faculty from which the design of courses for each particular course of study - Management of student information such as test scores, personal information - Manage the registration of subject s credit of students, - Arrangements and creating classes for each course - Registration information management class of teachers - Scheduling of students, teachers Students management: Allowed to register for subjects credit, receive schedule. Teachers management: Allowed to select the class lectures, receive timetable Accounting: Check reasonable of credit total and collect tuition money. I use the spiral model, RUP-Rational Unified Process and UML-Unified Modeling Language to analysis and design as show in Chapter 2 of this report. The implementation install ion using JEE architecture, EJB technology and Java language are also shown in chapter 3 of this report. i

Contents Abstract... i Contents... ii Chapter 1: Introduction... 1 1.1. Introduction to internship place... 1 1.2. Problem... 1 1.3. Introduction to some technology and tools was used to develop the system... 2 1.3.1. About technology... 2 1.3.1.1. Spiral engineering... 2 1.3.1.2. RUP - Rational Unified Process with UML Unified Modeling Language... 2 1.3.1.3. Using multi layer architecture, MVC model view control, J2EE architecture and EJB technology... 4 1.3.2. About tools... 4 Chapter 2: Analysis and conception... 6 2.1. Preliminary research topics and tasks of the practice... 6 2.1.1. Detailed description of topics... 6 2.1.2. Duties of the practice... 7 2.2. Consideration and specification of the use cases.... 8 2.2.1. General diagram of the ULMS system... 8 2.2.2. Context diagram of the ULMS... 9 2.3. Use cases of the system... 10 2.4. To set up class... 12 2.4.1. To set up class use case... 12 2.4.2. Classes participated in a use case... 13 2.4.3. Description of the sequence diagram... 15 2.4.4. Description of activity diagram... 16 2.4.5. Description design class diagram in detail... 17 ii

2.5. Modeling application domains... 18 2.6. Design prototype user interface... 20 Chapter 3: Implementation... 22 3.1. Deployment diagram... 22 3.2. The system's general design... 24 3.2.1. Web tier... 24 3.2.2. Business tier... 25 3.2.3. Database tier... 28 3.3. Implementing the use-case to setup classes... 31 3.3.1. Web tier... 31 3.3.2. Business tier... 32 3.3.3. Implementing the process of approving the subject registers of students... 35 3.3.4. Implementing the process of setup classes for the subject registers of students... 36 User manual... 37 Conclusion and in the future work... 40 Appendix... 42 Bibliography... 90 iii

Chapter 1: Introduction This chapter introduces to the internship place, the main goals of the topics, and the tools supports. 1.1. Introduction to internship place Location: The project was implemented in headquarter of HCM City University of Technology at 268 Ly Thuong Kiet Street, District 10, Ho Chi Minh City, Vietnam. Introduction to HCM City University of Technology (HCMUT) Ho Chi Minh City University of Technology (HCMUT) is the leading university in teaching and researching activities in Vietnam. They play an active role in the fields of talents cultivation and provide manpower with strong technical skills an the Southern areas of Vietnam. Up to May 2008, HCMUT has 11 faculties, 10 science research and industry transferring centers, 4 training centers, 10 functioning offices and one limited company. During the past 30 years since the Liberation of South Vietnam and country unification, 45,000 engineers and Bachelors have graduated from the university. Since 1994, they have trained 20,000 Bachelors of Science, 1,503 Masters and 25 Doctors, many of whom are either keeping management roles, leading experts in state-owned or foreign-investment enterprises of different industries in Ho Chi Minh City and other southern provinces. 1.2. Problem Web application: Building a training management system which implements the following tasks: - Allowing administrators to design the education programs and courses of this programs. - Allowing students to register subjects to study. - Helping the training bureau to arrange the learning classes according to education program. 1

- Allowing teachers to register their available time, registers courses which are responsible for them. The name of this object is University Learning Management System ULMS. 1.3. Introduction to some technology and tools was used to develop the system To build and develop the University Learning Management System, after studying the documents and the knowledge which I have learnt in master course. Therefore, I decided to choose some technology and tools as: 1.3.1. About technology 1.3.1.1. Spiral engineering Using spiral model to develop this system because it has base advantages as - It is inherited from Waterfall model and Rapid prototyping so it has the advantages of the above two models. - It is divided into six phases with specific tasks which is very convenient for evaluating the development of software in each period. Six phases are: Customer communication: establishing a relationship of communication between customers and the people who develop the system. Planning: This phase constructs plan to develop software based on resources, time and human resources available. Risk analysis: analysis and management of risk. Engineering: Building the representation of the application support Construction and release: construction, installation, implementation, test, customer Customer evaluation: to acquire and repair from the customers evaluation 1.3.1.2. RUP - Rational Unified Process with UML Unified Modeling Language 2

Rational Unified Process is a process to model the system with UML Unified Modeling Language. It consists of four phases and ten steps. RUP process has many advantages, especially it has the four phases, the ten steps clearly, easy to check and evaluate work in analysis and design period. This figure show an outline of four phases and ten step in Rational Unified Process. Figure 1 - Outline phases and steps of RUP With UML provide many diagrams to view the system by different ways. How to we analyze and design a more comprehensive to avoid many errors. Below figure describes five view ways of Unified Modeling Language. 3

Figure 2 Outline view of UML 1.3.1.3. Using multi layer architecture, MVC model view control, J2EE architecture and EJB technology The advantages of using these technologies are listed below: - J2EE multi-tiers architecture's benefit is that we can deploy each tier on a different server. - Ability to reuse code very well. - Not allow users to call to the entity object directly to protect the integrity of data. - Consistent with web applications and distributed data. 1.3.2. About tools In analysis and design period tools were used StarUML, UML2Tool and UMLET are tools to develop the object orient system by UML 2.0. StarUML is free software first time I use it but it isn t good. UML2Tool can be integrated into eclipse and it can make a class diagram from code. UMLET is benefit as design component diagram of J2EE. I used it in chapter 3. 4

Database MySQL server MySQL server is a tool to manage the database system. It is convenient and easy to adapt with large data systems. MySQLWorkbench is tool to design database schema. Navicat lite is tool to connect and query data instead we call a command line. This tool is convenient for us to write and run query commands by this way more intuitive. In implement period tools was used Java language with eclipse tool is a language "write once, run anywhere". JQuery is tool to design UI. JQuery is a fast and tidy it is more simplifies JavaScript Library. 5

Chapter 2: Analysis and conception This chapter represents the results in the process of analysis and design of University Learning Management System. Figures in this chapter were created by StarUML tool. 2.1. Preliminary research topics and tasks of the practice The main tasks that we have done in this internship are explained in detail from next sections. 2.1.1. Detailed description of topics The purpose of this project is to help universities to easily manage training programs, make courses of programs for each faculty, Manage registration students credit, setup classes, registration training classes of teachers, management paid fees. As work the training bureau, students, teachers, accountants to use. Their specific works and binding rules as follows: The training bureau - Design the training programs, courses and announce them to students and teachers. - Management and updating the teachers and students information - Make rule between the subjects in a course. For example a prerequisite subjects, corequisites subjects, before learning subject. - Set up a class satisfy with the following condition: The number of students in a class of a subject changes from 20 to 30 unless an obligatory subject in a term. A student can t study two subjects at the same time. There aren t two different classes in a room at the same time. - Making timetable The duties of accounting: 6

- Check the registration of credit subjects of students when receiving a list of registration. - Calculation and collection fees The duties of Teachers: - Sign up classes to teach - Select the appropriate time - Rules of the registration: A half of day, teacher only teach at a location A teacher only teaches at most three subjects in a term. A teacher can t teach in two different rooms (class) at the same time. A teacher can choose priority time to teach. - Teacher will receive their timetable (timetable has a teacher s name, a course s name, a class s name, a room s name, time, a branch). The duties of students: - Register subjects in the term. - Rules of registering subjects: In a term, students only register at most 27 credits. Prerequisite subjects must be completed before registering other subject that are prerequisite subject. - To receive their timetable 2.1.2. Duties of the practice This project was implemented my own with tasks and work schedule as follows - Construct and develop the ULMS - Analyze and design this system by spiral model, RUP with UML 2.0 - Construct database 7

- Install and deploy the system by Java language with JEE 5.0 architecture and EJB 3.0 technology. Schedule Time Work Result Real Time July 01 to July 15, 2009 Reaching document Detail specification of the project A week Implementer Le Tan Quan July 16 to September 30, 2009 Analysis and design system Finish all diagrams of system follows UML 2.0 Eleven week Le Tan Quan October 1 to October 15, 2009 Design database Database of the System A week Le Tan Quan October 16 to December 31,2009 Coding, testing and writing report Code of the system And final report Ten week Le Tan Quan January 01, 2010 to January 8, 2010 Make slide to represent Slide Two week Le Tan Quan 2.2. Consideration and specification of the use cases. 2.2.1. General diagram of the ULMS system ULMS system can be simulated a general way 8

Figure 3 General outline of the ULMS This figure only describes the most general function of the system which I have assume. 2.2.2. Context diagram of the ULMS The base function communication of ULMS system may be simulated a general way 9

Figure 4 - Context diagram of the ULMS This figure describes the primary functionalities that user interact with the system 2.3. Use cases of the system The primary functions of the system are divided into small functions with name and meaning as follows: - Management of faculties, majors and rooms has function to maintain and update information of faculties, majors and rooms. - Management of subjects has function to save and update information of subjects. - Management of students has function to save and update information of students. - Management of teachers has function to save and update information of teachers. 10

- Management of programs and course has function to make training programs and course programs. - To set up class has function to create learning class for students and teaching class for teachers. - Students registered subjects to help students registering subjects. - Teachers registered classes to help teachers registering teaching class. - View timetables to supply a schedule to teacher, student and training. - Management fee of students has function pay tuition. Figure 5- Use case of the ULMS This figure describes the primary use cases of the system. 11

I analyzed and designed ten use cases above but in this report I only present a use case is enough, rest part was put in appendix because they are done similar way, although in the process of building and development of the system is analyzed and designed fully. 2.4. To set up class 2.4.1. To set up class use case a- Summary: - Use case name: set up class. - Purpose: to set up the classes of subjects - Brief: making classes for each subject, each class has class s name, class s code, subject s name, subject s code, time, room, a student list, student s name, student s code. -Main partner: the training bureau. b- Description main scenarios: - Input condition: there are use cases as management of faculties, majors and rooms, students registration subjects, management student payment, management of programs and courses. - Main scenarios: a training bureau log in to the system and choose set up class the system asked to select a faculty or all, then screen had displayed following as : + Automatic distribute : basing oneself on students' registration time, the property of the subjects, number of students of a class, the system approves list of students registered subjects automatically. Students are approved must pay fees and then they will be set up into a class. Students aren't approved must return to register again + Feedback to students for registration again : returning students who are not approved to register again. 12

+ Set up : the system will divide automatically the number of students who were approved and completed fees to the suitable class for each subjects. + Assign room and time to class : the training manager select a room and the time to assign for each class. If he selects the same room or time, the system will not accept. + Create schedule : system displays each learning class according to every subjects have students, room and time so that teacher choose teaching classes. + View class : to see classes but not rooms and time + View all class : to see all classes An use case below describes the functions that "set up class use case" assumed Figure 6 - To set up use case. 2.4.2. Classes participated in a use case This section, classes only is analysis classes to determine the function and tasks of classes involved in an use case, and shows three layers model as border class, control class and entity class Boundary class: 13

- W-set up class : is a main class to communicate between the system and the training bureau, when the training bureau enters a user name and password then the system will display a screen to select a faculty. - w-distribute students : this is an interface to arrange all students were registered subjects according class. - w-assign room and time : this is an interface to selects a room and time for a class. Control class: - Ctrl_ Management Set up : this class which manage and control dividing all students into suitable classes with rooms and time. Domain classes: - Class time : when setup time for a learning class, the training must assign one or many times (includes the day in week and section period time). - Student subject : in a term, students must register subjects in their course. This class contains the register status of students' subjects (training approving, fee paying, ready to learn). - Class : contains the information of a class. Each class belongs to only one subject, only one course, only one term. A class is assigned a teacher and a room. If the subjects of a class is divided into two parts: theory and exercise, this class must be assigned two rooms, one theory room and one exercise room (computer room or practice room). - Class student : a group of students will be assigned to a learning class. This class contains this information. - Room : contains the information of a room. Each room belongs to only one faculty. There are three types of room: theory, computer, practice. 14

Figure 7- Analytic class diagram of set up class in use case 2.4.3. Description of the sequence diagram This diagram performs the interaction between objects of classes in " set up class" use case. 15

Figure 8- Sequence diagram of setting up class in use case 2.4.4. Description of activity diagram This activity diagram performs all work flow of "set up class" use case 16

Figure 9 - Activity diagram of set up class use case 2.4.5. Description design class diagram in detail This diagram have used two design patterns is state pattern and singleton pattern. Figure 10 Design class diagram in detail of to set up class use case 17

2.5. Modeling application domains This section its main tasks are changing the concepts of system into the domain or profession class, here is only interested in the attribute and the linkage of the class and call it is a analysis class. There are classes of this system as: - Faculty: contains the information of a faculty. - Major: contains the information of a major. Each major belongs to only one faculty or not belongs to any faculties. - Room: contains the information of a room. Each room belongs to only one faculty. There are three types of room: theory, computer, practice. - Subject: contains the information of subject. Each subject can have a similar subject. A subject has a default credit. - Program: contains the information of a learning program. When set up a learning program, the training must declare the number of terms and the minimum number of credits for this program. - Program subject: The information of this class describes all subjects of a learning program. - Course: contains the information of a course. Each course belongs to only one faculty. When setup an empty course, the training must declare the number of terms and the minimum number of credits for this course. The training can setup a course from a active learning program. - Course subject: this class contains all subjects of a course. A subject has a default credit, but when assigns this subject to a certain course, it can have a different credit. Simply a subject can have different credits on different courses. If a subject of a course is divided to two parts: theory and exercise, this subject will have two credit types: theory credit and exercise credit. - Term: contains the information about starting time and ending time of terms of courses. - Subject rule: In a course, a subject can be learned or passed before another subject. 18

Another case is two subjects must be learned parallel. These subject rules are contained in this class. - Class: contains the information of a class. Each class belongs to only one subject, only one course, only one term. A class is assigned a teacher and a room. If the subject of a class is divided to two parts: theory and exercise, this class must be assigned two rooms, one theory room and one exercise room (computer room or practice room). - Class student: a group of students will be assigned to a learning class. This class contains this information. - Class time: when setup time for a learning class, the training must assign one or many times (includes the day of week and section period time). - Suggest subject: when the number of students registering a subject is not enough to setup class or is redundant, the training will feedback students to register another subject. In this case, the training must return a list of suggest subjects for registering again. This class contains this information. - Time table: contains the information of time table. It contains the information about class, room, time, teacher. - Student: contains the information of a student. Each student belongs to only one course. - Teacher: contains the information of a teacher. Each teacher belongs to only one major. A teacher can teach the three subjects of major. - Student subject: in a term, students must register subjects of their course. This class contains the register status of students' subjects (training approving, fee paying, ready to learn). The subject marks of students are also stored in this class. - Order: contains the fee of a subject according to this subject's credit. Adding associate and attribute: 19

Figure 11 - A simple class diagram of the system 2.6. Design prototype user interface Using activity diagram to design interface of the user prototype 20

Figure 12 - Activity diagram to design prototype user interface 21

Chapter 3: Implementation This chapter represents implementation of each use case by using J2EE architecture and EJB technology. Figures in this chapter were created by uml2tool tool and MySQLworkbench. 3.1. Deployment diagram The deployment diagram illustrates the physical deployment of system components. This diagram shows the potential deployment of a University Learning Management System across several servers. J2EE multi-tiers architecture's benefit is that we can deploy each tier on a different server. This application can be deployed on three different servers. It is easier to scale, cluster and avoid to the bottlenecks. Database tier: it is setup on MySQL 5 server. File schema.sql is used to create tables' structure. File init_data.sql can be used to initiate some data for database. EJB business tier is deployed on Jboss 5 server. This server plays an important part in this application. It is an EJB container that contains entity and session beans. These beans are located in the packages vn.edu.hcmut.ulms.dao.impl, vn.edu.hcmut.ulms.service.ejb and vn.edu.hcmut.ulms.domain. Web tier: this tier is deployed on Tomcat 5 servers. It contains JSP pages and servlets to interact with end-users. JSP files are views in MVC. Servlets are controllers in MVC. The web tier uses domain objects or their inherited objects as models in MVC. This tier interacts with the business tier via service APIs and servicefactory. They are interfaces which are implemented by EJB technology or any technology. In this project, they are implemented by EJB technology and located at EJB tier. 22

Figure 13 - Component diagram of the system 23

3.2. The system's general design 3.2.1. Web tier The whole application uses a filter LoginFilter to filter input requests based on user's role, block un-authorized access. When users logged-in system, based on their roles (which declared when creating), system send them to their suitable page. Student role can access the pages of student with URL pattern /student/. Teacher role can access the pages of teacher with URL pattern /teacher/. Training role can access the pages of training with URL pattern /training/ and /admin/. Accountant role can access the pages of accountant with URL pattern /accountant/. Admin role can access the pages of administrator with URL pattern /admin/. In this application, some servlets extend from the below servlet BaseServlet, some other servlets don't extend this servlet. 24

The method name of servlets which are extending from BaseServlet is the same as the value of parameter method on user's request. Example, when a student view the timetable in this week, student's request contains parameter method with value viewthisweek (http://application.domain/student/timetable?method=viewthisweek). Web server will use the method viewthisweek of servlet StudentTimeTableServlet to process this request.(figure 63 of appendix). Some other servlets which don't extend from BaseServlet process, users' request based on parameter action. (Figure 64 of appendix). 3.2.2. Business tier This tier handles the core business logic of the application. The business components are implemented as EJB components with support from an EJB container. These EJB business components include three main component types: service component, DAO component and domain component. In this application, some services interact directly with domains; some other services interact with domains via DAO components. Service components must implement its two business interfaces, one local and one remote. Because DAO components allow only local access, they only implement only one local interface. Both service components and DAO components don t need to maintain client-specific state information across method invocations, so the same bean instance can be reused to service other client requests. Therefore, they are modeled as stateless session beans. Domain components must be written to the persistent store and must live even when the client s session with the server is over. Therefore, the domain components are modeled as container-managed persistence entity beans. 25

In the whole application, servlets get services via ServiceFactory. This is a class which is accessible from everywhere and has only one instance. Therefore, this class uses the pattern singleton. The services which interact directly with domains will extend from the general class DomainServiceImpl. This class contains some general methods such as create(), update(), remove(), getall() to interact with domain components. 26

The services which interact with domains via DAO components will not extend from the general class DomainServiceImpl. (Figure 65 of Appendix). The DAO components which interact directly with domains will extend from the general class DomainDAOImpl. This class contains some general methods such as create(), update(), remove(), getall() to interact with domain components. 27

A domain component is similar to tables in database tier. (Figure 66 of Appendix). 3.2.3. Database tier In EJB tier, an entity is a lightweight persistence domain object. Typically an entity represents a table in a relational database, and each entity instance corresponds to a row in that table. The persistent state of an entity is represented either through persistent fields or persistent properties. Each table in database is persisted with an entity bean. - tbl_faculty: contains the information of a faculty. 28

- tbl_major: contains the information of a major. Each major belongs to only one faculty or not belongs to any faculty. - tbl_room: contains the information of a room. Each room belongs to only one faculty. There are three room types: theory, computer, practice. - tbl_subject: contains the information of subject. Each subject can have a similar subject. When a subject's status is pending, students can register a similar subject to replace it. A subject has a default credit. - tbl_program: contains the information of a learning program. When setup a learning program, the training must declare the number of terms and the minimum number of credits for this program. - tbl_program_subject: The information of this table describes all subjects of a learning program. - tbl_course: contains the information of a course. Each course belongs to only one faculty. When setup an empty course, the training must declare the number of terms and the minimum number of credits for this course. The training can setup a course from an active learning program. - tbl_course_subject: this table contains all subjects of a course. Each subject has a default credit, but when assigned this subject to a certain course, it can have a different credit. Simply a subject can have different credits on different courses. If a subject of a course is divided to two parts: theory and exercise, this subject will have two credit types: theory credit and exercise credit. - tbl_term: contains the information of starting time and ending time of terms of courses. - tbl_subject_rule: In a course, a subject can be learned or passed before another subject. Another case is two subjects must be learned parallel. These subject rules are contained in this table. 29

- tbl_class: contains the information of a class. Each class belongs to only one subject, only one course, only one term. A class is assigned a teacher and a room. If the subject of a class is divided to two parts: theory and exercise, this class must be assigned two rooms, one theory room and one exercise room (computer room or practice room). - tbl_class_student: a group of students will be assigned to a class. This table contain this information. - tbl_class_time: when setup time for a class, the training must assign one or many times (includes the day of week and section period time). - tbl_suggest_subject: when the number of students registering a subject is not enough to setup class or is redundant, the training will feedback to students to register another subject. In this case, the training must return a list of suggest subjects for registering again. This table contains this information. - tbl_timetable: contains the information of timetable. It contains the information about class, room, time, teacher. - tbl_student: contains the information of a student. Each student belongs to only one course. - tbl_teacher: contains the information of a teacher. Each teacher belongs to only one major. A teacher can teach three subjects of major. - tbl_teacher_class: contains the information of the class registers of teacher. A teacher can register many classes. A class can be registered by many teachers. - tbl_student_subject: in a term, students must register subjects of their course. This table contains the register status of students' subjects (training approving, fee paying, ready to learn). The subject s marks of students are also stored in this table. - tbl_user: contains the information of an user. Each user has a role (admin, training, accountant, teacher, student). An user has different permissions according to his role. 30

- tbl_order: contains the fee of a subject according to this subject's credit. Figure 14 Database diagram of the system Ten functions of the system which is broken down into small function in part 3 of chapter 2 (2.3) was implemented fully by J2EE multi- layer architecture and EJB technology. They were implemented and presented by similar way. Therefore, here I just present implement way one use case, remainder may see in an appendix. 3.3. Implementing the use-case to setup classes 3.3.1. Web tier 31

- JSP files: - The file setupclass.jsp : is the view which enables training to choose faculty to setup classes. - The file setupclass2.jsp : is the view which enables training to view the number of students registered each subject, the number of students approved for each subject, the number of students paid free for each subject and the number of students setup class for each subject. - The file setupclass3.jsp : is the view which enables training to view set-upped classes to assign room and time for them. - The file viewdetailsetupclass1.jsp : is the view which enables training to view the register status of subjects. - The file viewdetailsetupclass2.jsp : is the view which enables training to view the list of student assigned to a class. - The file approvestudentmanually.jsp : is the view which enables training to approve manually the students' subject register. - The file approveteacherforclass.jsp : is the view which enables training to approve teacher for a class. - The file assignmanualroomandtime : is the view which enables training to assign room/time and create schedule for a class. - The file setupsubjectregisteragain.jsp : is the view which enables training to choose a subject to register again by students. - Servlets: - The servlet SetupClassServlet processes is the actions which are related to the process of set-upping classes such as approve the subject register of students, setup classes, create schedule for classes, approve classes for teachers. 3.3.2. Business tier - Clazz component models classes of a university. It is modeled as a container-managed 32

persistence entity bean. - TimeTable component models timetables of a university. It is modeled as a containermanaged persistence entity bean. - SetupClass is a object which contains view the number of students registered each subject, the number of students approved for each subject, the number of students paid free for each subject and the number of students setup class for each subject. It is not modeled. - ClazzTime component contains the information of time (the day of week and section period time) of classes. It is modeled as a container-managed persistence entity bean. - ClazzStudent component contains the information of students of classes. It is modeled as a container-managed persistence entity bean. - SuggestSubject component contains the information of suggest subjects for students's reregistering. It is modeled as a container-managed persistence entity bean. - SetupClassServiceImpl is the component on the requests of servlet processes SetupClassServlet. This component interacts with the domain components Clazz, TimeTable, SetupClass, ClazzTime, ClazzStudent, SuggestSubject via DAO components ClazzDAOImpl, TimetableDAOImpl, ClazzTimeDAOImpl, SuggestSubjectDAOImpl. It is modeled as a stateless session bean. It calls the service TeacherService to assign teacher for a class, StudentService to assign students to a class, CourseService to get the information of courses, FacultyService to get the information of faculties and SubjectService to get the information of subjects. - ClazzDAOImpl interacts directly with the domain component Clazz, SetupClass and ClazzStudent. It is modeled as a stateless session bean. - TimeTableDAOImpl interacts directly with the domain component TimeTable. It is modeled as a stateless session bean. - ClazzTimeDAOImpl interacts directly with the domain component ClazzTime. It is modeled as a stateless session bean. 33

- SuggestSubjectDAOImpl interacts directly with the domain component SuggestSubject. It is modeled as a stateless session bean. Figure 15 - Implementing the use-case to setup classes 34

3.3.3. Implementing the process of approving the subject registers of students The below figure is the process flow of approving the subject registers of students. Figure 16 - The process flow of approving the subject registers of students The method processacceptregistersubject of code section (as figure 72.1 in Appendix) Java file SetupClassServiceImpl implements that flow. 35

3.3.4. Implementing the process of setup classes for the subject registers of students The below figure is the process flow of setup classes for the subject registers of students. Figure 17- Process flow of setup classes for the subject registers of students The method processsetupclass of of code section (as figure 72.2 in Appendix) Java file SetupClassServiceImpl implements that flow. 36

User manual Training: a. Management of learning programs: - To add a new program: Login Manage programs and courses Add a new program Save. - To list programs: Login Manage programs and courses View programs. - To edit a program: Login Manage programs and courses View programs Edit Save. - To assign subjects to programs: Login Manage programs and courses View programs Edit the subjects of this program Save. b. Management of learning courses: - To add a new empty course: Login Manage programs and courses Add a new empty course Save. - To add a new course from a program: Login Manage programs and courses Add a new course from a program Save. - To list courses: Login Manage programs and courses View courses. - To edit a course: Login Manage programs and courses View courses Edit Save. - To assign subjects to courses: Login Manage programs and courses View courses Edit subject credit for course Save. - To assign rules for courses' subjects: Login Manage programs and courses View courses Edit subject rule for course Save. - To edit terms for courses: Login Manage programs and courses View courses Edit course's terms Save. c. Management of faculties: - To add a new faculty: Login Manage faculties and room View faculties Add. - To edit a faculty: Login Manage faculties and room View faculties Update. - To list faculties: Login Manage faculties and room View faculties. d. Management of majors: - To add a new major: Login Manage faculties and room View majors Add. - To edit a major: Login Manage faculties and room View majors Update. - To list majors: Login Manage faculties and room View majors. e. Management of rooms: - To add a new room: Login Manage faculties and room View rooms Add. - To edit a room: Login Manage faculties and room View rooms Update. - To list rooms: Login Manage faculties and room View rooms. 37

f. Management of subjects: - To add a new subject: Login Manage subjects Add a new subject. - To edit a subject: Login Manage subjects Edit. - To list subjects: Login Manage subjects. - To pending a subject: Login Manage subjects pending. g. Management of students: - To add a new student: Login Manage students Add a new student. - To edit the information of a student: Login Manage students Edit info. - To list students: Login Manage students. - To edit the marks of a student: Login Manage students Edit marks. h. Management of teachers: - To add a new teacher: Login Manage teachers Add a new teacher. - To edit the information of a teacher: Login Manage teachers Edit. - To list teachers: Login Manage teachers. i. Setup classes: - Approving automatically students' subject register: Login Setup Classes Choose faculty Automatic distribute. - Approving manually students' subject register: Login Setup Classes Choose faculty Manual distribute. - To setup class: Login Setup Classes Choose faculty Setup class. - To add a subject for registering again: Login Setup Classes Choose faculty Allow students to re-register this subject to replace other subject. - To assign room/time and create schedule for classes: Login Setup Classes Choose faculty View Classes Assign manual room and time. - To teachers for classes: Login Setup Classes View all Classes approve a teacher. j. View timetable: - To view timetable: Login View timetable. Student: a. View timetable: - Login View timetable. b. View mark: - Login View marks. c. Register subjects: - Login Register subjects. Teacher: 38

a. View timetable: - Login View timetable. b. Register classes: - Login Register class. Accountant: a. Setup payment free: - Login Setup payment free. b. Manage student payment: - Login Manage student payment. 39

Conclusion and in the future work After more than six month of design and implementation, I almost finish the basic functions and rules of the system ULMS including: The training bureau - Design the training programs, courses - Management and updating the teachers and students information - Make rule between the subjects in a course for example a prerequisite subjects, co-requisites subjects, before learning subject. - Set up a class satisfied the following condition: Automatic distribute the number of students in a class of a subject changes from 20 to 30, unless an obligatory subject in a term. Check credit total of students registration A student can t study two subjects at the same time. There aren t two different classes in one room at the same time. - Making timetable Accounting: - Check the registration of credit subjects of students when receiving a list of registration and tuition fees - Calculate and collect fees Teachers: - Sign up classes to teach - Select the appropriate time 40

- Rules of the registration: A teacher only teaches at most three subjects in a term. A teacher can t teach in two different rooms (class) at the same time. A teacher can choose priority time to teach. - Teacher will receive a timetable of them (timetable has a teacher s name, a course s name, a class s name, a room s name, a branch). Students: - Registration subjects to learn in the term. - Rules of registering subjects: In a term, students only register at most 27 credits. Prerequisite subjects must be completed before registration other subject that are prerequisite subject. - Receive a timetable. But the system also need to continue perfecting in the future: Of functions such as priorities selected teaching time by teachers are taught must be made more optimal. A half of day teacher only teach at a location will installed in future. In the future work, we continue to build an algorithm to assign automatically classrooms, time for each class. The pigeon principle (Dirichlet s principle), dynamic program and the Fibonacci array are the foundation theory to build it. The idea that each learning class of the subject is a separate object. A set include a learning hour, day of week, day of the month, room name will be a box. Dynamic programming algorithm will help to take objects in those box with certain rules. Need to deploy application of design patterns to optimize code of the system. Easily reuse the code later. 41

Appendix Figures of chapter2 Management of faculties, majors and rooms Figure 18 - Use case diagram of management of faculty & room use case Figure 19 Analytic class diagram of management of faculties, major and room use case 42

Figure 20 Sequence diagram of management of faculties, major and room use case Figure 21 Activity diagram of management of faculties, major and room use case 43

Figure 22 Detail class of management of faculties, major and room use case 44

Management of subjects Figure 23 - The management of subjects use case Figure 24 - Analytic class of management of subjects use case 45

Figure 25 - Sequence diagram of management of subjects in use case Figure 26 - Activity diagram of management of subjects in use case 46

Figure 27 Detail design of to management of subject use case 47

Management of students: Figure 28 Management of students use case Figure 29 - Analytic class diagram of the management of students in use case 48

Figure 30 - Sequence diagram of management of students in use case Figure 31 - Activity diagram of management of students use case 49

Figure 32 detail design of to management of students use case 50

Management of teachers Figure 33 - The management of teachers use case Figure 34 - Analytic class diagram of the management of teachers in use case 51

Figure 35 - Sequence diagram of management of teachers in use case Figure 36 - Activity diagram of management of teachers use case 52

Figure 37 Detail design of management of teachers 53

Management of programs and courses Figure 38 - Management of programs and courses use case Figure 39 - Analytic class of the management of programs and courses in use case 54

Figure 40 - Sequence diagram of the management of program and course in use case Figure 41 - Activity diagram of the management of programs and course use case 55

Figure 42 Detail design of the management program and course use case 56

Students register subjects Figure 43 - students register subjects use case Figure 44 - Analytic class diagram of students register subjects use case 57

Figure 45 - Sequence diagram of the subject s register students in use case Figure 46 - Activity diagram of Students register subjects use case 58

Figure 47 Detail design of students register subjects use case 59

Teachers register classes Figure 48 - The teachers register classes use case Figure 49 - Analytic class diagram of the subjects register teachers in use case 60

Figure 50 - Sequence diagram of the class s register of teacher Figure 51 - Activity diagram of Teachers register classes use case 61

Figure 52 Detail design of teachers register class use case 62

View time table Figure 53 - The view time table use case Figure 54 - Analytic class diagram of view timetable use case 63

Figure 55 - Sequence diagram of view timetables in use case Figure 56 - Activity diagram of view time table use case 64

Figure 57 Detail design of view timetable use case 65

Management students pay fee Figure 58 - Management pay fee use case Figure 59 - Analytic class diagram of management pay fee use case 66

Figure 60 - Sequence diagram of management pay fee use case Figure 61 - Activity diagram of to management pay fee 67

Figure 62 Detail design of to management pay fee use case 68

Figures of chapter 3 Figure 63 Servlet classes are extended from BaseSevlet class 69

Figure 64 Servlet classes aren t extended from the BaseServlet class 70

Figure 65 - Interface of a service packet in business ( servicemodel.umlclass) 71

Figure 66 Domain component (domainmodel.umlclass) 72

Figure 67 - Implementing the use-case Management faculties, majors and rooms 73

Figure 68 - Implementing the use-case Management of subjects 74

Figure 69 - Implementing the use-case Management of students 75

Figure 70 - Implementing the use-case Management of teachers 76

Figure 71 - Implementing the use-case Management of programs and courses 77

Figure 72 - Implementing the use-case To setup classes Figure 72.1 - the method processaccetregistersubject @Stateless public class SetupClassServiceImpl implements SetupClassService,SetupClassServiceRemote { @EJB private ClazzDAO clazzdao; @EJB private CourseDAO coursedao; @EJB private SuggestSubjectDAO suggestsubjectdao; @EJB private ClazzTimeDAO clazztimedao; @EJB private TimeTableDAO timetabledao; public void processacceptregistersubject(string subid, String courseid) { // get the list of registered students List<StudentSubject> stsublist = getregisterstudentbycourseidandsubjectid(subid, courseid, StudentSubject.STATUS_PENDING); CourseSubject cs = coursedao.findcoursesubjectby(courseid, subid); Date date = new Date(); Term term = coursedao.getcurrenttermbycourseid(courseid,date); int subproperty = cs.getproperty(); int total = stsublist.size(); int clazznum = total/clazz.min_amount_student; if(subproperty==subject.obligatory && cs.getterm()==term.getterm()){ //this subject is obligatory and it is studied in the current term for(int i=0;i<total;i++){ StudentSubject ss = stsublist.get(i); 78

ss.setstatus(studentsubject.status_training_accepted); try { //accept all registered student for this subject ServiceFactory.getInstance().getStudentService().updateStudentSubject(ss); } catch (ServiceNotFoundException e) { e.printstacktrace(); } } }else{ if(clazznum>=2){ for(int i=0;i<total;i++){ StudentSubject ss = stsublist.get(i); ss.setstatus(studentsubject.status_training_accepted); try { //accept all registered student for this subject ServiceFactory.getInstance().getStudentService().updateStudentSubject(ss); } catch (ServiceNotFoundException e) { e.printstacktrace(); } } }else{ // the number of student must register again int againregisternum = total; if(total>=clazz.max_amount_student) againregisternum = total - Clazz.MAX_AMOUNT_STUDENT; else if(total>=clazz.min_amount_student) againregisternum = 0; for(int i=0;i<(total-againregisternum);i++){ StudentSubject ss = stsublist.get(i); ss.setstatus(studentsubject.status_training_accepted); 79

try { ServiceFactory.getInstance().getStudentService().updateStudentSubject(ss); } catch (ServiceNotFoundException e) { } } } } e.printstacktrace(); } } Figure 72.2 - The method processsetupclass @Stateless public class SetupClassServiceImpl implements SetupClassService,SetupClassServiceRemote { @EJB private ClazzDAO clazzdao; @EJB private CourseDAO coursedao; @EJB private SuggestSubjectDAO suggestsubjectdao; @EJB private ClazzTimeDAO clazztimedao; @EJB private TimeTableDAO timetabledao; public void processsetupclass(string subid, String courseid) { // get the list of free-paid students 80

List<StudentSubject> stsublist = getregisterstudentbycourseidandsubjectid(subid, courseid, StudentSubject.STATUS_ACCOUNTANT_ACCEPTED); CourseSubject cs = coursedao.findcoursesubjectby(courseid, subid); Subject sub = cs.getsubject(); Course course = cs.getcourse(); Date date = new Date(); Term term = coursedao.getcurrenttermbycourseid(courseid,date); int total = stsublist.size(); int clazznum = total/clazz.min_amount_student; if(clazznum>=2){ int mod = total%clazznum==0?0:(total%clazznum)/clazznum + 1; int studentnumperclass = total/clazznum + mod; int clazzcount = clazzdao.getcountclassbycourseidandsubjectid(subid, courseid, term.getterm())+1; for(int j=0;j<clazznum;j++){ String clazzcode = sub.getid()+"-"+course.getid()+ "-" + (clazzcount+j); String clazzname = sub.getname() + "-" + course.getname()+ "-Class " + (clazzcount+j); Clazz zz = new Clazz(); zz.setcode(clazzcode); zz.setname(clazzname); zz.setcourse(course); zz.setsubject(sub); zz.setterm(term.getterm()); zz.settheorycredit(cs.gettheorycredit()); zz.setpractivecredit(cs.getpractivecredit()); zz.setcomputercredit(cs.getcomputercredit()); Calendar cal = Calendar.getInstance(); cal.add(calendar.date, 7); cal.set(calendar.hour, 0); cal.set(calendar.minute, 0); cal.set(calendar.second, 0); Date d = cal.gettime(); zz.setstartdate(d); Clazz zzrs = clazzdao.create(zz); 81

int end = Math.min((j+1)*studentNumPerClass, total); for(int i=j*studentnumperclass;i<end;i++){ StudentSubject ss = stsublist.get(i); Student stud = ss.getstudent(); ClazzStudent zzstud = new ClazzStudent(); zzstud.setclazzid(zzrs.getid()); zzstud.setstudentid(stud.getid()); clazzdao.createclazzstudent(zzstud); try { // update the status of register ss.setstatus(studentsubject.status_ready_to_learn); ServiceFactory.getInstance().getStudentService().updateStudentSubject(ss); } catch (ServiceNotFoundException e) { e.printstacktrace(); } } } }else{ if(total<=clazz.max_amount_student){ int clazzcount = clazzdao.getcountclassbycourseidandsubjectid(subid, courseid, term.getterm())+1; String clazzcode = sub.getid()+"-"+course.getid()+ "-" +clazzcount; String clazzname = sub.getname() + "-" + course.getname()+ "-Class "+clazzcount; Clazz zz = new Clazz(); zz.setcode(clazzcode); zz.setname(clazzname); zz.setcourse(course); zz.setsubject(sub); zz.setterm(term.getterm()); zz.settheorycredit(cs.gettheorycredit()); 82

zz.setpractivecredit(cs.getpractivecredit()); zz.setcomputercredit(cs.getcomputercredit()); Calendar cal = Calendar.getInstance(); cal.add(calendar.date, 7); cal.set(calendar.hour, 0); cal.set(calendar.minute, 0); cal.set(calendar.second, 0); Date d = cal.gettime(); zz.setstartdate(d); Clazz zzrs = clazzdao.create(zz); for(int i=0;i<total;i++){ StudentSubject ss = stsublist.get(i); Student stud = ss.getstudent(); ClazzStudent zzstud = new ClazzStudent(); zzstud.setclazzid(zzrs.getid()); zzstud.setstudentid(stud.getid()); clazzdao.createclazzstudent(zzstud); try { // update the status of register ss.setstatus(studentsubject.status_ready_to_learn); ServiceFactory.getInstance().getStudentService().updateStudentSubject(ss); } catch (ServiceNotFoundException e) { e.printstacktrace(); } } }else{ int clazzcount = clazzdao.getcountclassbycourseidandsubjectid(subid, courseid, term.getterm())+1; for(int j=0;j<2;j++){ String clazzcode = sub.getid()+"-"+course.getid()+ "-" + (clazzcount+j); String clazzname = sub.getname() + "-" + course.getname()+ "-Class " + (clazzcount+j); 83

Clazz zz = new Clazz(); zz.setcode(clazzcode); zz.setname(clazzname); zz.setcourse(course); zz.setsubject(sub); zz.setterm(term.getterm()); zz.settheorycredit(cs.gettheorycredit()); zz.setpractivecredit(cs.getpractivecredit()); zz.setcomputercredit(cs.getcomputercredit()); Calendar cal = Calendar.getInstance(); cal.add(calendar.date, 7); cal.set(calendar.hour, 0); cal.set(calendar.minute, 0); cal.set(calendar.second, 0); Date d = cal.gettime(); zz.setstartdate(d); Clazz zzrs = clazzdao.create(zz); int begin=0,end=0; if(j==0){ begin = 0; end = Clazz.MAX_AMOUNT_STUDENT/2; }else{ begin = Clazz.MAX_AMOUNT_STUDENT/2; end = total-begin; } for(int i=begin;i<end;i++){ StudentSubject ss = stsublist.get(i); Student stud = ss.getstudent(); ClazzStudent zzstud = new ClazzStudent(); zzstud.setclazzid(zzrs.getid()); zzstud.setstudentid(stud.getid()); clazzdao.createclazzstudent(zzstud); try { // update the status of register ss.setstatus(studentsubject.status_ready_to_learn); 84

ServiceFactory.getInstance().getStudentService().updateStudentSubject(ss); } catch (ServiceNotFoundException e) { } } } } } } } e.printstacktrace(); 85

Figure 73 - Implementing the use-case Students register subjects 86

Figure 74 - Implementing the use-case Teachers register classes 87

Figure 75 - Implementing the use-case View timetable 88

Figure 76 - Implementing the use-case Management students' pay fees 89

Bibliography [1] Roger Pressman Software Engineering A Practitioner s Approach fifth edition McCraw-Hill [2] Design patterns in java Steven John Metsker, William C. Wake [3] Ebook The Java EE 5Tutorial For Sun Java System Application Server 9.1 [4]http://www.menloinnovations.com/freestuff/whitepapers/rup.htm [5]http://www.augustana.ab.ca/~mohrj/courses/2000.winter/csc220/papers/rup_best_practices/ru p_bestpractices.html [6] http://www-01.ibm.com/software/awdtools/rup/ [7] http://en.wikipedia.org/wiki/ibm_rational_unified_process [8]http://www.ideotechnologies.com/documentation/sweetdeven/architecture_concepts_cles/architecture/multicouche.htm [9] http://jquery.com [10] http://www.navicat.com 90