Khuat Thuy Phuong 2010
Khuat Thuy Phuong 2010
Khuat Thuy Phuong 2010
Abstract
Abstract
Training management system is a useful application which every training and education
organization, including Computer Science Centre (CSC), needs to manage all their work.
Because CSC is one of the largest Information Technology (IT) training centers with
more than 40 affiliates over Vietnam and 50.000 registrations of students to short-term or
long-term program per year, we must have a good training management system.
Currently, CSC is using a computer system for training management but this system has
been built and exploited more than ten years, and of course, it is doesnt satisfy the
demand now and future. Hence, constructing a new training management system which is
suitable for present and future needs is requirement for the internship.
This report writes about the internship at CSC. It will mentions to some issues such as the
current training management system; a description of requirements needed to change and
new requirements needed to add; an analysis and design of new system based on objectoriented analysis and design and design pattern theories; and an implementation built
basing on web services, distributed architecture, especially multi-tier architecture theories
and using Java language and Java platforms.
Page i
TABLE OF CONTENTS
Page #
Abstract .............................................................................................................................................. i
Acknowledgements............................................................................................................................. v
1.0
INTRODUCTION...................................................................................................................... 2
1.1
1.2
1.3
Internship Information.......................................................................................................... 3
1.3.1
1.3.2
1.3.3
2.0
Supervisor ....................................................................................................................................... 3
Internship position .......................................................................................................................... 3
Job description and motivation ........................................................................................................ 3
2.1
Description of problem.......................................................................................................... 6
2.2
2.3
2.4
2.4.1 Reason why the new system improves over the current system............................................................ 11
2.4.2 Class Diagram.................................................................................................................................... 14
2.4.3 Sequence Diagram ............................................................................................................................. 28
3.0
IMPLEMENTATION.............................................................................................................. 33
3.1
Structure.............................................................................................................................. 33
3.2
Packages .............................................................................................................................. 34
3.2.1
3.2.2
3.2.3
3.3
Result................................................................................................................................... 36
3.4
3.4.1
3.4.2
Advantages.................................................................................................................................... 42
Disadvantages ............................................................................................................................... 43
Page ii
A.1
A.2
A.3
Installation........................................................................................................................... 68
B.2
Page iii
TABLE OF FIGURES
Figure 1.
Figure 2.
Figure 3.
Figure 4.
Figure 5.
Figure 6.
Figure 7.
Figure 8.
Figure 9.
Figure 10.
Figure 11.
Figure 12.
Figure 13.
Figure 14.
Figure 15.
Figure 16.
Figure 17.
Figure 18.
Figure 19.
Figure 20.
Figure 21.
Figure 22.
Figure 23.
Figure 24.
Figure 25.
Figure 26.
Figure 27.
Figure 28.
Figure 29.
Page iv
Acknowledgements
As the graduation requirement of Software Engineering Master Course University of
Bordeaux 1, I applied for the internship at Computer Science Centre (CSC) University
of Science VNU HCMC from the middle of June to the middle of December and was
accepted.
First of all, I am heartily thankful to Prof. DONG Thi Bich Thuy, who is both the director
of CSC and supervisor. She gives me an opportunity to work the internship here, creates
many good conditions for me to finish the internship and supports me to understand the
way how to do this internship and to improve the abilities and skills in this time.
Secondly, I offer the regards and blessings to many staff members working at CSC. They
help me in any respect during the completion of the internship.
Thirdly, it is a pleasure to thank University of Bordeaux 1 and the Ples Universitaires
Franais (PUF) for giving me a change to put the theories I have learnt into practice.
Lastly, I am indebted to all the professors who taught me in Software Engineering Master
Course, for their help. The knowledge which I have learnt from them is very useful for
me to do this internship.
Page v
1. INTRODUCTION
This report is about the internship, worked at CSC from June 15th, 2010 to December 15th,
2010, as the graduation requirement of Master of Software Engineering Course. It is a
good time for me to practice and improve the knowledge I have learnt into a real
environment. The internship report has three chapters. The first chapter is the
introduction. The second chapter writes about the current system management and the
analysis and design of new system. The third chapter says to the implementation. The last
part in this report is the conclusion of the internship and future work.
In this chapter, the introduction, there are three main parts. The first part introduces PUF,
where I have studied; the second part writes about CSC, where I have done the internship;
and the third part is about the job description and motivation to do it.
1.0 INTRODUCTION
1.1
PUF1 in Ho Chi Minh City (HCMC) is the centre where I have studied Master Course of
Software Engineering. It is located in Administrative Department of Vietnam National
University, Ward 6, Linh Trung Street, Thu Duc District, HCMC. I has chosen PUF
because of the good training quality and enviroment here.
1.2
consulting, application into operation of the businesses. The main activities are training
(it will be presented in details in the next chapter), programming and maintaining
software, IT consulting and application into operation of the businesses
www.puf.edu.vn
Page 2
1.3
Internship Information
1.3.1 Supervisor
The supervisor is Professor DONG Thi Bich Thuy. Now, she works as an Associate
Professor and Director of Faculty of IT, CSC and Centre for Educational Excellence
University of Science - VNU HCMC. Her main field of research relates to information
system. Because she is the Director of CSC, she decides which analysis and design for
the new training management system is chosen, if this system is deployed to test or not
and what functions are needed to added or removed.
1.3.2 Internship position
The internship started from June 15th, 2010 to December 15th, 2010. The project named
New Training Management System was assigned to me under the guidance of Professor
DONG Thi Bich Thuy. At that time, I worked at Technical Department which the main
functions are to research new technology, design new programs and deploy those
programs to learners, etc. It is also the place where I have worked from 2006 to now.
1.3.3 Job description and motivation
One of the most important activities of CSC is training opened to everyone. The variety
of training programs, such as the number of programs and training durations (6 weeks - 3
months - 6 months - 18 months - ), as well as the diversity of the regulations which
allow students to determine their study route (to complete the training program selected)
and study duration (must respect the requirement of previous subject/course and total
durations allowed) explain the complexity in the training management operations.
CSC is currently using a computer system for training management. This system manages
the studys processes of students (from the time they register to a program to the time
they receive a certificate or a diploma). This system has been built and exploited more
than ten years, and of course, it doesnt satisfy the current study and examination
regulations. Because of this reason, the requirements written below are posed.
New Training Management System
Page 3
The content of internship suggested is analyzing the current system and designing a new
training management system with reusable components oriented approach in order to
accept the grand flexibility about the evolution in the study and examination regulations
(conditions to study a program, determinate an "option" study route within the defined
framework...).
One solution of implementation must be proposed, not only paying attention to both new
technologies such as web services, SOA... and effect of exploitation, but also paying
attention to exploitation conditions of future system (exploitation is scattered on many
points, centralized database or distributed database). Need to implement some functions
to test the effectiveness of the proposed solution.
In conclusion, there are two main requirements. Analysis and design is a very important
work. Having a good analysis and design will help the managers can understand the
system clearly and will help the programmers implement well. So the first requirement is
to analyze and to design whole of the system. Because the time to do this internship is not
enough to implement all functions, the second requirement is choosing one or two
subsystems to implement.
Page 4
Page 5
Description of problem
This section is about the actual state and the development process of CSC.
More than ten years ago, CSC had two training systems. There was short-term system and
long-term system. In the short-term system, the content of each short-term course was
taught in six weeks. To have a national certificate, there were two ways. Student chose
studying three short-term courses in the regulation time or registered to take a national
certificate exam without studying to have a national certificate. In the long-term program,
the total time to study is eighteen months. Firstly, it had only one program that was
programming program. Secondly, network program was opened. After that, CSC opened
graphical program. Then, that was web programming program. When student chose one
program, they needed to register whole of this program, not a part of the program.
About the training center, at that time, CSC was the main center. Besides, there were
some associate branches (about ten branches), mainly located in the South of Vietnam.
Each branch opened the long-term system or short-term system, or both of them. But
those branches just offered material facilities, CSC had responsibility to all things related
to training such as: assigning teacher, designing the study program and holding the
exams, etc.
About the scale, at that time, there were 8000 registrations per year for short-term system
and about 600 to 800 registrations per year for long-term system. According to a report,
the annual number of registrations had grown by 15% to 20%.
That meant we needed to have a complete management tool instead of using some
software such as Access or Excel, etc, in an independent way.
The Training Management System was built and deployed. It was used through LAN
and displayed on window forms. At that time, it was satisfied the needs such as it can
keep track of each student, it allowed student studying short-term system and long-term
system to reserve their study result in a fixed time.
New Training Management System
Page 6
The time has elapsed. The demand of society about IT has changed. VNU has changed
conditions to have a national certificate (Certificate A, B and C). The number of training
system and training program has increased. They have changed through many forms. For
example:
About the training system:
With the short-term system, now it doesnt have three courses, it only has two
courses with new content and training period. And the course also has two types:
crash course and normal course.
With the long-term system, now the courses are grouped to unit. Instead of
studying in sequence from the first course to the last course to have graduated
certificate, student can choose a unit to register. Each unit may be in order or not.
With the unit in order, student must conform to the order of the unit.
About the exam:
With the short-term system, there is no change with the normal course. To have a
national certificate, student has two times to take an exam: one for the first course,
another for the second course. With the crash course, student has one time to take
an exam for all courses.
With the long-term system, in the past, after each group of courses, there was only
one exam for each group. Now, there are many kinds of exam such as exam for
each course, exam for unit and graduation exam, etc.
About the associate branches:
Now they become more multiform. Some branches not only offer the material
facilities but also assign teacher the task of teaching so CSC just managers student,
designs the study program and holds the exams.
Page 7
The number of associate branches increases from ten braches to fifty branches,
which are located everywhere in Vietnam hence the management is more
complicated than it in the previous.
This Training Management System is not suitable with the current needs so we need to
find a solution to change it in a flexible way. But it is not easy to all employees.
This is the reason why we need to propose a new analysis and design for the Training
Management System.
2.2
There are two main parts here. The first part is the introduction about the current system.
The second part is about the reason why the current system doesnt satisfy the demand
now and future.
2.2.1 Introduction
The current system has been built and exploited more than ten years. It is used to manage
the studys processes of students (from the time they register to a program to the time
they receive a certificate or a diploma). In this system, there are three subsystems such as
Management System (manages information about courses, classes), Office System
(manages information about students) and Certificate System (manages information about
certifications). The below figure is the general structure of it.
Page 8
2.2.2 Reason why the current system is no longer meet the requirements
There are many things to explain the reason why the current system doesnt satisfy the
requirements:
The current system was analyzed and designed based on the classic method and
used relational database.
There is only one type of version for subjects so only the subjects can change
according to version.
Because it has no kind of unit (a group of subjects), it is very difficult to control.
The management of regulations of training system and training program are not
divided in a clear way.
The class doesnt have state thus it makes the registrar feel inconvenient when they
choose class for student to register.
It can not automatically close the class when the time to register end.
Page 9
There is only one kind of student (student who studies at CSC). It doesnt manager
the student only enrolls to take the national certificate exam.
Taking exams and awarding certifications of national certification program for free
student are not computerized.
Student cannot determine route of study in an optional way.
More difficult to the registrar to know the number of students registering every
time and everywhere.
When student registers to study a program, he/she will have identification (ID)
number. So they can have more than one ID. => Difficult to manage students.
Information of teachers who mark the exam papers is not stored.
It is difficult to keep track of study history of a student.
Student cannot login to the system to register a class or to enroll an exam.
Type of reducing fee is not divided clearly.
It has not controlled the maximum number of student for each exam shift yet.
To rate a student is not easy.
Student cannot gather short-term certificates to have a long-term certificate.
2.3
Requirement description
After exploring the requirements, I divided them into three groups, basing on the function
and task of each group.
Group of requirements about training program and material facilities management:
In this group, there are many requirements about training program, study and exam
New Training Management System
Page 10
regulations for a training program, training system and its regulations, version for
subject and unit, unit, subject, course, room and class, etc.
Group of requirements about student management: This group including the
requirements about enrolling to a subject or a unit, study process of student, result
of study, exam, exam shift and exam registration, etc.
Group of requirements about certification and diploma management: A lot of
requirements about certification type, certification regulations, confirmation time,
issue time and certification are described in this group.
To see the detail of each requirement description, please go to the Appendix A
Requirement Description.
2.4
This part has three main sub parts. Firstly, this is the reason why the new system is better
than the current system. The second and the third sub parts are class diagram of the
system and some sequence diagrams which are analysis and design based on the theories
of Object-Oriented Analysis and Design (OOAD) and design patterns, designed by using
Unified Modeling Language (UML), a tool to design application.
Because the new system needs to have the ability to enlarge, to reuse, to be maintain,
easy to repair errors and to be clearly and completely so OODA is chosen. Besides, there
are some problems appear in design process so some design patterns are applied to solve
them. UML2 is used to design because it is a formal language, concise, comprehensive,
scaleable, and standard.
2.4.1 Reason why the new system improves over the current system
Russ Mileys and Kim Hamilton, Learning UML 2.0, chapter 1 , Oreilly, April 2006
Page 11
The new system is analyzed and designed based on the theories of OOAD, and
design patterns. This will help the system to have a flexibility to enlarge and
update.
Classification of version is more clearly. There are two types of version (for
subjects and for units). This will help whole the program can change basing on
version for subject and version for unit.
There are three kinds of unit: specific unit, graduation unit and normal unit. The
units are classified basing on the kind. => It is easier for the employees to classify
and control units.
The management of regulations of training system and training program are
divided in a clear way. Both of them have their own regulations. Moreover, the
regulations of training program is divided into four group such as study regulation,
taking exam regulation, study again regulation and retaking exam regulation. =>
That helps the employees easy to manage the regulation when they apply for a
program.
Using State pattern for class LopHoc (class named Class) makes it automatically
change its state when changing the number of students, a deadline to register,
maximum students, minimum students...
There are two types of student: student who only takes the national certificate
exams (free student) and student who studies at CSC. => This system can manage
all students.
Student can register to study and take short-term certificate exams. Then they can
gather them to have a long-term certificate (Technical diploma).
Page 12
Student doesnt need to register whole of long-term program. They can choose a
unit or only a subject to study.
Student can determine route of study in an optional way.
This system can help the registrar easy to know the number of students registering
to a class every time and everywhere.
If that is the first time student registers to study, he/she will have identification
(ID) number. Another time they register, they use the same ID with the first time.
=> Each student only has one ID. => Easier to manage students.
Information of teachers who mark the exam papers is stored.
In the future, student can login to the system to register a class or to enroll an
exam.
Types of reducing fee are divided very clearly with different function to calculate
rate of each concrete reducing fee by using Strategy pattern. This also aids the
users easy to add a new type or update it.
The system can control the maximum number of students for each exam shift.
The exam subject has three subclasses. This helps the users easy to determine type
of an exam, and helps student knows which kind of exam they have to take at the
end of class or unit
With the function registration to take an exam, there also have many types of
taking exam such as: registration to take a national certificate exam, registration to
retake an exam (it has two sub types: according to subject and according to unit),
and automatically to enroll to take an exam for all students in class (it also has two
sub types like registration to retake an exams type). Because this function is very
complex with a lot of types so the Composite pattern is used here. In this pattern,
Page 13
class automatically to enroll to take an exam for all students in class is composite
class.
To rate and to consider if a student have enough conditions to graduate or not are
easy.
2.4.2 Class Diagram
The class diagram3 describes the attributes and operations of a class and also the
constraints imposed on the system. The class diagrams are widely used in the modeling of
object oriented systems because they are the only UML diagrams which can be mapped
directly with object oriented languages.
I thought, I needed to use class diagram to analyze this system, because:
This system has complex data.
Object-oriented paradigm is based on the analysis of data.
Basing on the requirement description described in Appendix A, The Training
Management System is divided into three main systems:
Training
Program
and
Material
Facilities
Management
System
(HeThongQuanLyGiaoVu)
Student Management System (QuanLyHocVien): including two subsystems, there
are:
Page 14
As the model, each system (including classes belong to it) has relationship with the
others. They can interact with the others, too.
In the first system, a class named unit of study based on training system and
training program (class HocPhanTheoHeVaNganh) calls to class named short-term
certificate type (class LoaiCCNganHan).
The second system calls to class HocPhanTheoHeVaNganh, class named class
(class LopHoc) and class named subject (class MonHoc).
The third system calls to the subclasses named registration to an exam (class
DangKyThi) and named registration to a unit of study (class DKTheoHP) of the
second system and class named training system(class HeDaoTao), class named
http://www.tutorialspoint.com/uml/uml_class_diagram.htm
Page 15
training program (class NganhDaoTao) and class named branch (class CoSo) of
the first system.
2.4.2.1
Page 16
Each training system and training program has one or more units of study called class
HocPhanTheoHeVaNganh.
Each unit of study can be a normal unit (class HocPhanThongThuong), a final unit (class
HocPhanTotNghiep) or a special unit (class HocPhanDacBiet). And it has one of two
types: independent unit or dependent unit. With independent unit, student can register
whenever they want to study whereas with dependent unit, student must study another
unit before register this unit.
Page 17
Example: In this case, Unit A, Unit C and Unit E are independent units;
Unit B is dependent unit (student must study Unit A and Unit C before
register Unit B) and Unit D is dependent unit, too (student must study Unit
A before register Unit D).
Unit A
Unit C
Unit E
Unit B
Unit D
Page 18
Page 19
TrangThai). => Using State pattern for class LopHoc makes it automatically changing its
state when the number of students, a deadline to register, maximum students and
minimum students... change.
The figure shows the class diagram of Training Program and Material Facilities
Management System.
Page 20
2.4.2.2
Dividing registration into two types (registration for a unit and registration for a subject)
helps it is suitable not only for current requirement (student can register to a unit or to a
subject) but also for future requirement (student can register a subject according to credit
regulations).
Page 21
Figure 10.
With each unit enrolled, it will be used to keep track of students study.
When registration (class DangKyHoc) to a unit (class DKTheoHP) or a subject (class
DKTheoMon class), student can be reduced fee (class GiamHocPhi) if their job is student
or teacher (class Giam_GVHS), they have studied at CSC (class Giam_DaTheoHoc), or
they register to study a class in the afternoon (class Giam_HocChieu)... Using Strategy
pattern for reducing fee will not only help the registrars quickly having real fee of each
study registration and updating the rate of one of the reducing fee types, but also help the
programmers easily putting a new subclass of reducing fee in need in future. This system
has an interface name reducing fee (classGiamHocPhi), which now having three
subclasses
such
as
class
Giam_GVHS,
class
Giam_DaTheoHoc
and
class
Giam_HocChieu.
Page 22
Figure 11.
When students register to a unit, they can study all classes of this unit.
When students register to a subject, they can study in one class having this subject.
Each class can have many registrations (See the figure named Types of Study
Registration).
This figure is the class diagram of Study Management System.
Page 23
Figure 12.
Page 24
Figure 13.
Dividing the registration into many types (subclasses) helps the registration management
becoming clearly. When students study in a class, list of students registering an exam will
be created automatically after the class or the unit finish. Besides, students can register to
retake an exam or to take national certificate exam by themselves.
Exam registration (class DangKyThi) has three subclasses: registration to take national
certificate exam without studying (class DKThiCCQGTuDo), registration to retake an
exam (class DKThiLai), and registration to take an exam for all class in an automatic way
(class DKThiTuDongTheoLop).
Class DKThiLai itself has two subclasses: registration to retake an exam subject based on
study subject (class DKThiLaiMonThiTheoMonHoc) and registration to retaken an exam
subject at the end of the unit (class DKThiLaiMonThiTheoHP).
Class DKThiTuDongTheoLop also has two subclasses: registration to take an exam
subject basing on study subject for all class (class DKMonThiTheoMonHoc) and
registration to take an exam subject at the end of the unit (class DKMonThiCuoiHP) in an
automatic way.
=> Because exam registration function is very complex with a lot of types so the
Composite pattern is used here. In this pattern, the class which will automatically enroll
to take an exam for all students in class is called composite class.
Page 25
Figure 14.
2.4.2.3
In this system, certificate type (class LoaiChungChi) is divided into three subclasses:
national certificate type (class LoaiCCABCTuDo), short-term certificate type (class
LoaiCCNganHan) and long-term certificate type (class LoaiCCDaiHan). Each certificate
type includes standards of certificate issue (class TieuChuanCapCC).
Page 26
Figure 15.
Types of Certificate
There are many certificate confirmation times (class DotXetCC) related to training
system (class HeDaoTao), training program (class NganhDaoTao), exam (class KyThi)
and branch (class CoSo).
In each certificate confirmation time, there are one or more certificate issue times (class
DotCapCC) with a lot of certificates (class ChungChi).
Certificate is also subdivided into many concrete certificates such as national certificate
(class ChungChiABCTuDo), short-term major certificate (class ChungChiCDNganHan)
and diploma (class BangTotNghiep) (See the figure named Types of Certificate above).
The Singleton pattern is used for each certificate class because at this time we dont allow
changing the information on the certificate.
Page 27
In the Student Management System, each student has enrolled to study one or more units
(class DKTheoHP). Each of them include list of exam registrations (with exams score).
With a unit which a student enrolls and studies, it can have a correlative certification.
Study a group of some units - according to regulation student will have a diploma.
With each national certificate exam registration, student can have a certificate if he/she
passes the exam.
When designing in this way, we can quickly statistic the number of certificates and
diploma which a student can have after they study one program.
This figure displays the Certificate and Diploma Management System.
Figure 16.
Sequence diagrams4 are used primarily to design, document and validate the architecture,
interfaces and logic of the system by describing the sequence of actions that need to be
4
http://www.sequencediagrameditor.com/uml/sequence-diagram.htm
Page 28
performed to complete a task or scenario. UML sequence diagrams are useful design tools
because they provide a dynamic view of the system behavior which can be difficult to
extract from static diagrams or specifications.
In this part, sequence diagram is used to describe some complex scenarios such as
enrolling in a class or a unit and registration to a national certificate exam.
2.4.3.1
Enrolling in a class
Figure 17.
2.4.3.2
Enrolling in a class
Enrolling in a unit
Page 29
Figure 18.
2.4.3.3
Enrolling in a unit
This sequence diagram describes the process register to a national certification exam.
Figure 19.
Page 30
2.4.3.4
This sequence diagram describes the process to create a unit based on training system and
training program.
Figure 20.
Page 31
Page 32
3.0 IMPLEMENTATION
For the implementation, a reasonable solution with new technology in order to have effect
of exploitation now and future (exploitation is scattered on many points, centralized
database or distributed database) must be chosen to the new system. And that is
distributed architecture, especially multi-tier architecture (n-tier architecture).
About the programming language, Java language5 (and its platform) is selected because it
is a simple, object-oriented, network-savvy, interpreted, robust, secure, architecture
neutral, portable, high-performance, multithreaded, dynamic language.
About database, MySQL6 is chosen because it is not only an extensible, open storage
database engine, offering multiple variations such as Berkeley DB, InnoDB, Heap and
MyISAM, but also is open-source like Java. The combination of an open-source
programming language and an open-source database will create a unity for the system.
3.1
Structure
This is the structure of the system. It is built base on the knowledge of distributed
architecture, named multi-tier architecture. It has user interface tier (client tier),
presentation logic tier (web tier), business logic tier (application tier) and data tier. Each
of them is deployed and maintained as an independent module and on separate platform.
Function of each tier:
User interface tier: managing the interactions between user and application
Presentation logic tier: defining what needs to display to the user interface and
how the request should be treated
Business logic tier: describing the functional algorithm, workflow and model,
interface of database
Data tier: including database servers where the information is stored and retrieved
5
http://java.sun.com/docs/overviews/java/java-overview-1.html
Page 33
Figure 21.
This system has three projects which can interact with each other. There are Dynamic
Web Project, Enterprise Application Project and Business Project (EJB project).
3.2
Packages
Each project listed above has one or more packages with a lot of classes inside. This part
is about the packages and their role in the system. It is divided into three parts: package of
Dynamic Web Project, Enterprise Application Project and Business Project.
3.2.1 Package of Dynamic Web Project
Dynamic Web Project is the implementation of presentation tier. It uses model-viewcontroller (MVC) concept with the web components such as Java Bean model, Java
Server Pages (JSP) view and Servlet controller. There are two main packages in this
project:
http://ezinearticles.com/?Advantages-and-Disadvantages-to-Using-MySQL-Vs-MS-SQL&id=1559158
Page 34
Business Project is the implementation of business logic tier using Java Enterprise
Edition (JEE) or Java Platform. This project includes five packages. There are:
businesslogic.model defines of model (including a lot of Entity Beans: tables
and entities) needing to have in the application.
businesslogic.DAO defines of database interface (including a lot of Session
Beans: interfaces and implementation classes).
businesslogic.interfaces defines of services (having a lot of Session Beans:
service interfaces).
businesslogic.services defines of services (having a lot of Session Beans: service
implementation classes).
contextService defines of context service class to remote service.
3.2.3 Package of Enterprise Application Project
An enterprise application7 in Workshop is the collection of all resources that are built
together and then deployed as a unit to an instance of WebLogic Server. Enterprise
application components can also be archived as a unit into an Enterprise ARchive (EAR)
file. Enterprise Application (EAR) project serves as the assembly point for all of the
http://download.oracle.com/docs/cd/E12840_01/wlw/docs103/guide/ideuserguide/projects/conApplicationsProjects.
html
New Training Management System
Page 35
projects in the application. It only has folder EarContent and JavaScript Resources
library. It doesnt have any package inside.
3.3
Result
The time to do the implementation of the application is a short time. After discussing with
the director, I implemented database and some functions of the first sub system (Training
Program and Material Facilities Management System) and haft of the second sub system
(Student Management System Study Management System part).
Those figures displayed below show the result when the application runs.
After login to the application, each person will have a permission to do their task.
For example, with the members having biggest permission, they will come to this
page:
Figure 22.
Page index.jsp
When choosing a group (For example: Group 1. Qun L Chng Trnh o To,
Group 2. Qun L C S Vt Cht, or Group 3. Qun L Hc Vin Hc ), they
will come to the page having all functions for this group:
Page 36
Figure 23.
Page group1.jsp
Figure 24.
Page group2.jsp
Figure 25.
Page group3.jsp
When choosing a function, the page has this function will appear. For example
choosing study registration:
Page 37
Figure 26.
With this function, firstly, a page to find a student will appear with two sub forms:
searching a student by ID and searching a student by full name and date of birth to check
if the student has studied at CSC or not. Basing on the information the student give,
registrar can type students ID or type the full name and date of birth to find him/her.
Figure 27.
If the system cannot find this student, which means he/she is new student, an insert new
students page will open to registrar add this student to the system.
Page 38
Figure 28.
If the system can find the student, study registration page with four sub forms
(registration for a subject, registration for a short-term certificate, registration for a unit
with constraint and registration for a unit without constraint) will occur. Basing on
student registration, registrar will choose one of four forms.
Page 39
Now, if registrar chooses registration for a unit with constraint, the system will check if
the student has studied compulsory units (units must study before registering this unit) or
not, if yes, this registration is success.
Page 40
Figure 29.
Registration a unit
Now the classes opened for this unit page will open for student choose a class to study.
The operations to register to a unit on web are very simple but the implementation of this
function is quite complicated with many steps listed above.
Normally, to use a web application, we just go to this page through web browser
by typing its address. This application is just the test version so it is not published
and used on the Internet.
To know about the installation and steps to run the application on local network,
please go to the Appendix B Installation and steps to run the application.
3.4
In this part, those are some advantages and disadvantages I met when I did the internship.
Page 41
3.4.1 Advantages
3.4.1.1
In CSC, I have a good place to work. It is not very large but it is very quite so I can
concentrate on the work. Because I am working here, I go to teach one day and do the
internship four days per week.
3.4.1.2
Although the supervisor is also the director, this is the first time I have a chance to work
with her. I think she is very helpful and careful. She not only gave me the document
related to the current system, but also helped me to understand the requirements and the
current system. She met me many times to give some more new requirements, to make
suggestions and to correct the analysis and design until it was fully worked-out.
In this internship, I needed to meet many staffs to survey information, new requirements
and need-to-change requirements. They were willing to help me. They both explained the
requirements, the process of works and provided relational papers to me. I could ask them
whenever I had queries.
3.4.1.3
About knowledge
In IT Master Course, I have learned a lot of subjects. Its very useful to me. For example,
with Software Engineering and Project Management subject, I could make a suitable
schedule to work, choose model to make it, etc; with Advanced Software Architecture
subject, I could apply object-oriented analysis and design and design pattern theories to
the application; with Advanced Software Technologies and Application Servers (TLASA), I chose web services, distributed architecture (multi-tier architecture) and Java
language and Java platforms to deploy the system, etc.
I also had some kind professors such as Mr. Samir Hanna and Mr. Tran Thai Nam. They
were ready to help me when I sent the emails to ask them why those errors appeared in
the application how to correct them.
New Training Management System
Page 42
3.4.2 Disadvantages
3.4.2.1
Nothing
3.4.2.2
In the second part of the internship (the implementation), I had met some difficult things,
but I couldnt ask the staffs for helping. Because the way I chose to do difference from
their current works, I didnt want them to waste their time. Sometimes, I spent a lot of
time to search on the Internet and researched new techniques.
3.4.2.3
About knowledge
The knowledge I have learned in Master Course was the useful and essential knowledge
for the internship, but it was not enough for me to solve all problems I met. For example,
in TLA-SA subject, we just have time to learn about single entity persistence and
mapping or to use very simple query language persistence but in the real system I must
work with multiple tables, entities and mapping, complex entity relationships and
complicated query language persistence; when I was in second work, some errors which I
never saw before appeared, I wasted time to find the reason and fix them, etc.
In general, this internship gave me an opportunity to learn more clearly one thing: the
advantages are the good things but the disadvantages are not the bad things because
when I met a problem or a new thing, I had a chance to find and research more and more
to make it done.
Page 43
Page 44
Bibliography
There are the reference books used in the internship:
[1]
Russ Mileys and Kim Hamilton, Learning UML 2.0, Oreilly, April 2006
[2]
with UML, Second Edition, Prentice Hall - Pearson Education Inc., 2005
[3]
Steven John Metsker and William C. Wake, Design Patterns in Java, Addison-
Wesley, 2006
Page 45
management
A.1.1 Create a training program
CREATE A TRAINING PROGRAM
Main idea
Main actor
Description
Another actor
None
Previous condition
Post condition
Time
Frequency
Few
Example: CSC has some training programs such as Programming, Web Technology,
Multimedia Graphics and Network.
A.1.2 Create study and exam regulations for a training program
CREATE STUDY AND EXAM REGULATIONS
Main idea
Page 46
Main actor
Description
will
discuss
to
make
regulations.
Another actor
Previous condition
Post condition
Time
Frequency
Not much
When take the exam of the first unit, student must give two photos size 3x4
for the invigilator to be issued A certificate
Students only register final exam (graduation exam) after they pass all units
of this training program
Page 47
Student who doesnt pass or doesnt take an exam must retake this exam.
Student fail the final exam must retake it with students of next course.
Main idea
Main actor
Description
Another actor
None
Previous condition
Post condition
Time
Frequency
Few
Example: CSC has some training systems such as short time, six-month-technical,
eighteen-month-technical, intermediate-technical
A.1.4 Create regulations for a training system
CREATE REGULATIONS
Main idea
Main actor
Page 48
Description
Another actor
Previous condition
Post condition
Time
Frequency
Not much
Example: With the short-term system, one of regulations is student can only retake the
exam one time.
A.1.5 Create a version for subject and unit
CREATE A VERSION
Main idea
Create a version
Main actor
Description
Another actor
None
Previous condition
Post condition
Time
Page 49
Frequency
Few
Example:
Subject version
With version 2006, subject named SQL Server used SQL Server 2000
With version 2009, subject named SQL Server used SQL Server 2003
Unit version
With version 2006, in Web Technology program and eighteen-monthsystem, the fourth unit had the subjects related to ASP.Net.
With version 2008, in Web Technology program and eighteen-monthsystem, the fourth unit had the subjects related to PHP and MySQL.
Main idea
Create a subject
Main actor
Description
Another actor
Previous condition
Post condition
Time
Page 50
Frequency
Example: The subject named Advanced Joomla was created from the beginning of the
year 2010.
A.1.7 Create an unit
CREATE AN UNIT
Main idea
Create an unit
Main actor
Description
Another actor
None
Previous condition
Post condition
Time
Frequency
Not much
Example: Create the third unit of Web Technical program and eighteen-month-system
with type is normal unit and correlative certificate is Certificate of PHP Programming
Technical.
Page 51
Main idea
Create a course
Main actor
training
program
management
department
Description
Another actor
None
Previous condition
Post condition
Time
Frequency
Example: Create a new course with start time is 14th and 15th November, 2010.
A.1.9 Create a class
CREATE A CLASS
Main idea
Create a class
Main actor
Class-room manager
Description
Page 52
Another actor
None
Previous condition
Post condition
Time
Frequency
Example: Create a new class named Web programming with PHP and TheSQL in the
course which starts on 14th and 15th November, 2010.
3.1.10 Arrange room for class
ARRANGE ROOM FOR CLASS
Main idea
Create a schedule
Main actor
Class-room manager
Description
None
Previous condition
Post condition
Page 53
Time
Frequency
Example: Create a schedule for class named Web Design with details:
Room 32 on Tuesday and Thursday with start time is 17:45 and end time is 21:00
Room 31 on Sunday with start time is 13:30 and end time is 16:45
A.2
Main idea
Main actor
Student manager
Description
(showing
students
card
or
Page 54
Page 55
Another actor
Enrollment staffs
Previous condition
Post condition
Time
Frequency
Example:
One student register to a class named Web Design, with the schedule:
Room 32 on Tuesday and Thursday with start time is 17:45 and end time is
21:00
Room 31 on Sunday with start time is 13:30 and end time is 16:45
Fee of this class is 1.850.000 VND. He is a student so the real fee he pays
is 1.480.000 VND (reduced 20% of fee).
Main idea
Main actor
Student manager
Description
Another actor
None
Previous condition
Post condition
Page 56
Time
Every time
Frequency
Often
Main idea
Main actor
Student manager
Description
Another actor
None
Previous condition
Post condition
Reserve is accepted.
Time
Every time
Frequency
Main idea
Create an exam
Main actor
Description
Page 57
None
Previous condition
Post condition
Exam is saved.
Time
Frequency
Main idea
Main actor
Description
Another actor
New Training Management System
None
Page 58
Previous condition
Post condition
Time
Frequency
Example: Create an exam shift at room 1 (Branch: 227, Nguyen Van Cu street, dist 5,
HCMC.), shift from 8:00 AM to 10:00 AM on the national certificate exam 17th October,
2010.
A.2.5 Create a national certificate registration (without study)
CREATE A NATIONAL CERTIFICATE REGISTRATION
Main idea
Main actor
Description
management
staff
will
add
None
Page 59
Previous condition
Post condition
Time
Frequency
Example: Create an exam shift at room 1 (Branch: 227, Nguyen Van Cu street, dist 5,
HCMC.), shift from 8:00 AM to 10:00 AM on the national certificate exam 17th October,
2010.
A.2.7 Create an exam registration (for student who study)
CREATE AN EXAM REGISTRATION
Main idea
Main actor
Description
in
class,
the
system
will
Page 60
Note:
If students enroll to a short time
system of one program (just study
one or two units), they are only
permit to retake the exam one time.
If students enroll to a long time
system of one program, they are
permit to retake the exam as far as
they pass. But it must be in a period
allowed.
Another actor
None
Previous condition
Post condition
Time
Frequency
Main idea
Input marks
Main actor
Description
Page 61
None
Previous condition
Post condition
Time
Frequency
A.3
Main idea
Main actor
Description
Another actor
None
Previous condition
Post condition
Time
Frequency
Example: There are some certificate type such as national certificate type, short-term
certificate type and long-term certificate type
Page 62
Main idea
Main actor
Description
Another actor
None
Previous condition
Post condition
Time
Frequency
Not much
Main idea
Create
certificate
confirmation
time,
Page 63
certificate.
Main actor
Description
obtain
complete
satisfaction
of
certificate regulations).
Another actor
None
Previous condition
Post condition
Time
Frequency
A.3.4 Update certificate issue time and create certificate for student
UPDATE CERTIFICATE ISSUE TIME AND CREATE CERTIFICATE FOR
STUDENT
Page 64
Main idea
Main actor
Description
when
certificate
confirmation
created.
The staff adds code of certificate decision
to this certificate issue time and prints the
list of students who have certificate with
some information such as full name, place
of birth, date of birth, exam day, and rank
to print certificate.
The certificates will automatically be
created and save to the system.
Another actor
None
Previous condition
Post condition
Time
Frequency
Many
Page 65
Main idea
Input
certificate
code
number
for
certificate
Main actor
Description
Another actor
None
Previous condition
Post condition
Time
Frequency
Many
Main idea
Main actor
Description
Report
list
of
students
taking
the
None
Previous condition
Post condition
Report is made.
Page 66
Time
Frequency
Page 67
Installation
This application is written by Java language and Java platform, so firstly we need to have
Eclipse or other software suitable such as Java NetBeans, etc. Here, I choose Eclipse.
Secondly, we install JBoss 4.0.4 or higher/ version EJB 3 and check if we use eclipse
with the web toolkit platform installed or not. Thirdly, we embed JBoss on Eclipse.
Fourthly, to store the database, we check if we have a database management system such
as MySQL or Oracle or not. If not, we need to install one. Here, I choose MySQL. Lastly,
we install the sql-gui-tools. Now we finish the installation.
B.2
To run this application, first, we need to have a workspace. Second, we import all the
projects into this workspace. Last, we add the Enterprise Application Project to the
server then start the server. Now we can run this application with the first page of the
website. Then, we can choose whatever functions we want.
Page 68