BORANG PENGESAHAN STATUS TESIS U N I

advertisement
PSZ 19:16 (Pind. 1/97)
UNIVERSITI TEKNOLOGI MALAYSIA
BORANG PENGESAHAN STATUS TESIS ♦
JUDUL : DEVELOPMENT OF A PROTOTYPE FOR JOHORE
TOURISM INFORMATION SYSTEM IN WEB ENVIRONMENT
SESI PENGAJIAN : 2001/2002
LEE YEN SOO
Saya
(HURUF BESAR)
mengaku membenarkan tesis (PSM/Sarjana/Doktor Falsafah)* ini disimpan di Perpustakaan
Universiti Teknologi Malaysia dengan syarat-syarat kegunaan seperti berikut :
1.
2.
3.
4.
Tesis adalah hakmilik Universiti Teknologi Malaysia.
Perpustakaan Universiti Teknologi Malaysia dibenarkan membuat salinan untuk tujuan
pengajian sahaja.
Perpustakaan dibenarkan membuat salinan tesis ini sebagai bahan pertukaran antara
institusi pengajian tinggi.
**Sila tandakan ( / )
SULIT
(Mengandungi maklumat yang berdarjah keselamatan atau
kepentingan Malaysia seperti yang termaktub di dalam AKTA
RAHSIA RASMI 1972)
TERHAD
(Mengandungi maklumat TERHAD yang telah ditentukan oleh
organisasi/badan di mana penyelidikan dijalankan)
TIDAK TERHAD
Disahkan oleh
(TANDATANGAN PENULIS)
(TANDATANGAN PENYELIA)
Alamat Tetap :
2-28 LORONG MELOR 6,
TAMAN AROSA,
84000 MUAR, JOHOR.
Tarikh :
CATATAN :
PROF. MADYA DR. MOHD. NOOR BIN MD. SAP
Nama Penyelia
Tarikh :
*
**
♦
Potong yang tidak berkenaan.
Jika tesis ini SULIT atau TERHAD, sila lampirkan surat daripada pihak
berkuasa/organisasi berkenaan dengan menyatakan sekali sebab dan tempoh tesis ini perlu
dikelaskan sebagai SULIT atau TERHAD.
Tesis dimaksudkan sebagai tesis bagi Ijazah Doktor Falsafah dan Sarjana secara
penyelidikan, atau disertai bagi pengajian secara kerja kursus dan penyelidikan, atau
Laporan Projek Sarjana Muda (PSM).
DEVELOPMENT OF A PROTOTYPE FOR JOHORE TOURISM
INFORMATION SYSTEM IN WEB ENVIRONMENT
LEE YEN SOO
This project report is submitted as a partial fulfillment for the conferment of a
Master of Science (Information Technology - Management)
Faculty of Computer Science and Information Systems
Universiti Teknologi Malaysia
FEBRUARY 2002
“I declare that I have read this project report and in my opinion this project report
has satisfied the scope and quality for the award of the degree of
Master of Science (Information Technology - Management)”.
Signature
:
Name of Supervisor :
Date
:
Assoc. Prof. Dr. Mohd. Noor bin Md. Sap
ii
DECLARATION STATEMENT
I declare that this project report
entitled “DEVELOPMENT OF A
PROTOTYPE FOR JOHORE TOURISM INFORMATION SYSTEM IN WEB
ENVIRONMENT” is the result of my own research except as cited in references.
This report has not been accepted for any degree and is not concurrently submitted in
candidature of any degree.
Signature
:
Name of Candidate
:
LEE YEN SOO
Date
:
25 January 2002
iii
DEDICATION
Dedicated to my beloved,
my parents, brothers, sisters and Soon …
iv
ACKNOWLEDGEMENTS
The author wishes to extend her grateful appreciation to all those who have
contributed directly and indirectly to the preparation of this project. Specially the
author wishes to extend her thanks to Associate Professor Dr. Mohd. Noor bin Md.
Sap, Project Supervisor, for his advice, guidance and encouragement throughout the
preparation of this project.
Special thanks to the Deputy Dean (Postgraduate Studies) Associate
Professor Dr. Rose Alinda Alias for her untiring support, and to classmates for
making this study a wonderful experience.
Finally, the author expresses her sincere thanks to her parents, family
members and J. S. Tan for the encouragement, inspiration and patience which they
provided at every step during this course of studies. Special thanks also to Jabatan
Pelancongan Johor (Johore Tourism Department) for providing related information
and supporting the project during the study.
v
ABSTRACT
Tourism is an information-intensive industry in which its competitiveness
today is increasingly determined by the ability to develop and assimilate innovative
ways to respond to the dynamic nature of the tourism environment and its new
paradigms to provide value-adding tourist services. The study aims to bring about
the changes, development and better improvement to the current Johore tourism
information system through the effective use of computer technology in terms of
information management to provide both value and service to attract more tourists
coming to Johore. Based on a use-case driven object-oriented system development
methodology, a prototype of Johore Tourism Information System is built. The
prototype built incorporates multimedia elements and provide a value-added service
to the user based on the characteristic of Decision Support System in which it enable
the potential tourist to adjust and access the information according to their own
individual needs and can generate a customize trip plan based on the selected
destination, budget, departure location and travel priority. The usability test on the
prototype shown favourable result though much room for improvement has to be
made in order to fully implement the idea proposed in this study.
vi
ABSTRAK
Industri pelancongan merupakan suatu industri yang amat berorientasikan
maklumat di mana daya saingnya semakin dipengaruhi oleh kemampuan atau
keupayaan untuk menggunakan kaedah yang inovatif bagi menangani sifat industri
pelancongan yang dinamik dan memberi perkhidmatan yang tambah-nilai kepada
pelancong. Oleh yang demikian, projek ini bertujuan untuk mengkaji dan
mengemukakan cadangan bagi meningkatkan lagi kecekapan pengurusan sistem
maklumat pelancongan Johor yang sedia ada dan mencadangkan perkhidmatan yang
tambah-nilai untuk menarik lebih ramai pelancongan dating ke Johor melalui
penggunaan teknologi komputer yang terkini. Metodologi pembangunan sistem
berorientasikan objek yang menggunakan pendekatan guna-kes telah digunakan
dalam pembangunan prototaip untuk Sistem Maklumat Pelancongan Johor. Prototaip
yang dibangunkan tersebut mengunakan unsur-unsur multimedia dan sistem bantuan
keputusan untuk memberi perkhidmatan yang tambah-nilai kepada pelancong yang
berpotensi untuk menyesuaikan dan mendapatkan maklumat yang diingini mengikut
kehendak masing-masing. Pengguna akan berupaya untuk menghasilkan suatu
perancangan lawatan yang mengambilkira perbelanjawan, keutamaan dan tempat
bertolak serta tempat pilihan yang ingin dilawat. Secara keseluruhannya, ujian
penggunaan terhadap prototaip yang dibangunkan menghasilkan keputusan yang
memuaskan walaupun masih terdapat beberapa kelemahan yang perlu diperbaiki
supaya idea yang dikemukakan dalam projek ini dapat diperkembangkan lagi.
vii
TABLE OF CONTENTS
CHAPTER
TITLE
TITLE
i
DECLARATION STATEMENT
ii
DEDICATION
iii
ACKNOWLEDGEMENTS
iv
ABSTRACT
v
ABSTRAK
vi
TABLE OF CONTENTS
vii
LIST OF TABLES
xi
LIST OF FIGURES
xiii
LIST OF ACRONYMS
xvi
LIST OF APPENDICES
xvii
CHAPTER
I
PAGE
TITLE
PAGE
INTRODUCTION
1.1
Project Background Introduction
1
1.2
Background of The Problem
2
1.3
Statement of The Problem
3
1.4
Objectives of Study
4
1.5
Scope of Study
5
1.6
Theoretical Framework
6
1.7
Contribution of Study
8
1.8
Limitation of Study
8
1.9
Constraint of Study
9
viii
1.10
II
9
LITERATURE REVIEW
2.1
Introduction
11
2.2
Tourism System
11
2.2.1 Tourism Related Definition
12
2.2.2 The Tourism System Concept
14
2.2.3 Trends In Tourism Industry
15
Information System Concept
17
2.3.1
Management Information System
17
2.3.2
Decision Support System
19
2.3.3
Internet
22
2.3.4
World Wide Web
23
2.3.5
Web-based Application
23
2.3
III
Report Organization
2.4
Case Study on Tourism Information System
25
2.5
Chapter Summary
26
RESEARCH METHODOLOGY
3.1
Introduction
27
3.2
Operational Framework
27
3.2.1
Research Proposal
28
3.2.2
Current System Analysis
29
3.2.3
Literature Review
29
3.2.4
System Development Methodology
29
Selection
3.3
3.2.5
System Development
31
3.2.6
Report Writing
31
JTIS System Development Process In Detail
32
3.3.1
JTIS Requirement Analysis
33
3.3.2
JTIS Detailed Design
34
3.3.3
JTIS Implementation
35
3.4
Subject And Data Sources
36
3.5
Instrumentation
37
ix
3.6
IV
V
39
CURRENT SYSTEM ANALYSIS
4.1
Introduction
40
4.2
Background of Current System Scenario
40
4.3
Problem with Existing Management System
43
4.4
Proposed Problem-Solution
47
4.5
Chapter Summary
48
SYSTEM DESIGN FOR JTIS
5.1
Introduction
49
5.2
JTIS Architecture
49
5.2.1 Tourist Module
50
5.2.2 Tourism Service Provider Module
56
5.2.3 Administration Module
62
JTIS Component
67
5.3.1 Navigation and Search
67
5.3.2 Trip Planner
67
5.3.3 User Interface
75
5.3.4 ASP Script Engine
78
5.3.5 Multimedia Support
78
5.3.6 JTIS Database
79
5.3.7 User
80
JTIS Requirement Analysis And Design
80
5.4.1 JTIS Requirement Analysis Phase
80
5.4.2 JTIS Detailed Design
82
Chapter Summary
93
5.3
5.4
5.5
VI
Chapter Summary
JTIS IMPLEMENTATION
6.1
Introduction
94
6.2
JTIS Modules Development
94
6.2.1
Login Submodule
95
6.2.2
Register Submodule
96
x
6.3
VII
VIII
IX
6.2.3
Report Submodule
98
6.2.4
Content Editor Submodule
99
6.2.5
Edit Information Services Submodule
100
6.2.6
Plan Trip Submodule
104
Chapter Summary
114
JTIS TESTING
7.1
Introduction
116
7.2
JTIS Program Debugging
116
7.3
Input Testing
119
7.4
Output Testing
121
7.5
JTIS Testing Over Network
122
7.6
JTIS Usability Testing
123
7.7
Chapter Summary
133
DISCUSSION
8.1
Introduction
134
8.2
Overall JTIS Development Discussion
134
8.3
JTIS Advantages
135
8.4
JTIS Limitation
137
8.5
Recommendations
138
8.6
Chapter Summary
142
CONCLUSION
143
REFERENCES
145
APPENDICES
148
xi
LIST OF TABLES
TABLE
TITLE
PAGE
3.1
Types of tourism service provider
37
3.2
Minimum hardware requirement for server and client
37
5.1
Hyperlink for each place of interest in place summary interface
52
5.2
Report display format
65
5.3
Video specifications
79
5.4
Image specifications
79
5.5
Analysis object of JTIS
82
5.6
Implementation environments of JTIS
83
5.7
Object-relation mapping
86
5.8
Navigation class
88
6.1
Code extraction of UserValidator
95
6.2
Code extraction of application form
97
6.3
Code extraction of generating a place report
98
6.4
Code extraction of ContentEditor
100
6.5
Code extraction of saving place information
101
6.6
Code extraction for saving lodging information
103
6.7
Code extraction of cart class
105
6.8
Code extraction of TripGenerator class for processing input
107
6.9
Code extraction of TripGenerator GeneratePlan method
107
6.10
Code extraction of TripGenerator CheckDirect method
110
6.11
Code extraction of TripGenerator CheckInter method
111
6.12
Code extraction of TripGenerator CheckCross method
112
6.13
Code of TripPlannerResult_IncludeFunctionCrossArea.asp
114
7.1
Example of program debugging using response.write method
117
7.2
Example of code for client-side input testing
120
xii
7.3
Rating scale for usability questionnaire
123
7.4
JTIS usability questionnaire result for tourist role
125
7.5
Average mean value of usability criteria for tourist role
126
7.6
JTIS usability questionnaire result for tourism service provider role
128
7.7
Average mean value of usability criteria for tourism service
provider role
7.8
JTIS usability questionnaire result for tourism department officer
role
7.9
129
131
Average mean value of usability criteria for tourism department
officer role
133
xiii
LIST OF FIGURES
FIGURE
TITLE
PAGE
1.1
Current promotion strategies
3
1.2
Theoretical framework
7
2.1
Functioning tourism system
15
2.2
Functional components of TIScover
25
3.1
Operational framework
28
3.2
Use-case driven object-oriented system development approach
30
3.3
Road map of JTIS development methodology
32
4.1
Current business process modeling
43
4.2
Current system use-case diagram
44
5.1
JTIS architecture
50
5.2
Hierarchy of tourist module
51
5.3
Navigation flow of Place submodule interfaces
51
5.4
User interface of place summary
52
5.5
User interface of lodging in Johor Bahru
53
5.6
Plan trip user interface
54
5.7
Example of user interface for trip planner result
54
5.8
User interface of search submodule
55
5.9
Search result interface
55
5.10
User interface of “Colorful Culture” tourism information
56
5.11
Hierarchy of tourism service provider module
57
5.12
Registration process
57
5.13
User interface of membership application form
58
5.14
Tourism service provider login submodule
59
5.15
Hierarchy of edit service information submodule
60
5.16
User interface of edit the lodging particulars
60
xiv
5.17
User interface of presentation page of hotel in Johore
61
5.18
User interface for editing place information
61
5.19
User interface of upload facility
62
5.20
Hierarchy of administration module
62
5.21
Administrator login interface
63
5.22
User interface of viewing list of application
64
5.23
User interface of choosing report type
64
5.24
User interface of content editor
66
5.25
User interface for editing keyword
66
5.26
Trip planner
68
5.27
Process flow of town database setup
69
5.28
Example of connection type between town A and town B,
(a) direct connection, (b) indirect connection with single
intermediate town
69
5.29
Area determination
70
5.30
Processing algorithm of route generator
71
5.31
Overall hierarchy of main user interface of JTIS
76
5.32
User interface of JTIS homepage
76
5.33
User interface of administration control panel
77
5.34
User interface of lodging service provider main menu
77
5.35
Execution of ASP script engine
78
5.36
Several use-cases of JTIS
81
5.37
Part of design object diagram of JTIS
84
5.38
Sequence diagram for login use-case
85
5.39
Example of class design for (a) UserValidator and
(b) Administrator
86
5.40
Navigational structure model of tourist
89
5.41
Example of navigation using keywordQuery
89
5.42
Navigational structure model for place member
90
5.43
Navigation structure model for lodging member
91
5.44
Navigation structure model for tourism department officer
91
5.45
Presentational model of PlaceByCategory context
92
7.1
Sample output for the program code in Table 7.1
118
7.2
Example of program debugging using Microsoft Script Debugger
118
xv
7.3
Example of error message for input testing
120
7.4
Example of server-side input testing for invalid password
121
7.5
Example of output testing
122
7.6
Mean for tourist role usability questionnaires result
124
7.7
JTIS evaluation based on tourist role
126
7.8
Average mean score of usability criteria for tourist role
127
7.9
Mean for tourism service provider role usability questionnaires
result
127
7.10
JTIS evaluation based on tourism service provider role
129
7.11
Average mean score of usability criteria for tourism service
provider role
7.12
130
Mean for tourism department officer role usability
questionnaires result
132
7.13
JTIS evaluation based on tourism department officer role
132
7.14
Average mean score of usability criteria for tourism
department officer role
133
8.1
More types of tourism service provider
139
8.2
Possible improvement on current JTIS prototype
140
8.3
Flow chart of modified Trip Planner algorithm
141
xvi
LIST OT ACRONYMS
ASP
-
Active Server Pages
CGI
-
Common Gateway Interface
CRS
-
Computer Reservation System
GDS
-
Global Distribution System
HTML
-
Hypertext Markup Language
MIS
-
Management Information System
DBMS
-
Database Management System
DMSP
-
Destination Management Service Provider
DSS
-
Decision Support System
IIS
-
Internet Information Services
IT
-
Information Technology
JSP
-
Java Server Pages
JTIS
-
Johore Tourism Information System
LSP
-
Lodging Service Provider
OOSE
-
Object-oriented Software Engineering
TPS
-
Transaction Processing System
TSP
-
Tourism Service Provider
TV
-
Television
WWW
-
World Wide Web
UML
-
Unified Modeling Language
xvii
LIST OF APPENDICES
APPENDIX
TITLE
PAGE
A
Data Specification
148
B
Use Case Model
152
C
Analysis Object Model
159
D
Design Object Model
164
E
Sequence Diagram
168
F
Database Design
183
G
Presentational Model
188
H
Usability Test Questionnaires
190
I
User Manual
196
J
Supporting Documents
208
K
Project Plan Schedule
213
CHAPTER I
INTRODUCTION
1.1
Project Background Introduction
Tourism is one of the most important income sources for the nation.
Malaysia, with its natural wonders as well as man-made attractions, has the edge to
become a premier tourist destination in Asia despite fierce competition from
neighboring countries. Latest reports indicated that tourist arrivals to Malaysia in
1999 has increased 42.9% to 7, 931, 149 persons compared to 5, 550, 748 in 1998
(Tourism Malaysia, 1999). This higher arrival of foreign tourists can be attributed to
the aggressive campaigns undertaken by the government that had been in place in the
last few years. The allocation for the development of the tourism industry has also
been steadily increased in view of Malaysia's vast potential in the business. Indeed,
tourism is a big business as it was already the third biggest foreign exchange earner
in Malaysia, after the export of industrial goods and primary commodities (NEACMTEN, April 2000). Realizing this, the government is sparing no effort in promoting
the tourism industry by granting various development and tax incentives to boost the
sector, which is fast becoming a lucrative venture for local entrepreneurs.
As information is the life-blood of the travel industry (Sheldon, 1994),
effective use of technology is fundamental to the tourism sector. In this new era of
digital technology, there is a need for the tourism industry to evolve from the
traditional way of operation to digital way of management. With the effective use of
the computer technology, a computerized tourism system can increase the
effectiveness of information management.
2
Hence, in this project, the study aims to bring about the changes,
development and better improvement to the current Johore tourism system through
the effective use of computer technology in terms of information management to
provide both value and service to attract more tourists coming to Johore.
1.2
Background of The Problem
Tourism industry in Johore plays a vital role and carries heavy
responsibilities which need to be given immediate attention. With the rapid
development in the tourism industry in this country, Johore Department of Tourism
has been given the authority and responsibilities to encourage and promote Johore as
a popular tourists destination.
As tourism is a very information-intensive industry as in few other areas of
activity, the generation, gathering, processing, application and communication of
information are important for day-to-day operations as they are for the tourism
industry (Poon, 1993).
For Johore Department of Tourism, generally, the current system is still
being carried out manually and consumes a great deal of time and effort to get things
done. Tourism information are updated annually to produce the product inventory
book which consists of detailed information about the tourism sector in Johore.
Besides producing the product inventory books, the department is also responsible
for producing, designing and distributing the tourism brochures of the Johore state at
every six months. In addition, Johore Department of Tourism is also promoting
Johore through advertisement and electronic media, which include radio, TV and
recently, the world wide web (WWW). The general current promotion strategies is
shown in Figure 1.1
3
Current Promotion
Strategies
Manual data
collection
Inventory book
production
Advertisement
promoting
media
Brochures
TV
Radio
WWW
Figure 1.1: Current Promotion Strategies
Due to many problems and lack of efficiency in providing information,
especially by traditional and manual methods, there is a need to develop a
computerized tourism system to increase the efficiency of information management
of the department. Furthermore, by utilizing the most advance technology offered by
the Internet, a web-based tourism system is another alternative to stand alone
computer based information system to provide high quality and accurate information
to the worldwide tourist.
1.3
Statement of The Problem
Concluding from the background of the research problem, the whole scenario
can be presented by the following main research question:
4
Can we develop a complete tourism system in the web environment that could
increase the efficiency of information management of the current Johore Tourism
system and provide a higher value-added service to the potential tourist?
By following the main research question, there are a few supporting research
questions that need to be addressed:
i)
What improvement could be made to the current tourism information system
managed by Johore Department of Tourism?
ii)
What are the possible solution to address or reduce the current problem faced
by the department?
iii)
What type of value-added service can be provided to the tourist?
iv)
What methodology or approach should be followed for the development of
the system?
v)
What features, in terms of content, are useful to a potential tourist visiting
the tourism web site?
By adhering strictly to the main research question and the supporting
research question listed above, an applicable solution to the problem would be
produced, which would increase the efficiency of information management and
provide value-added service to the potential tourist.
1.4
Objectives of Study
As a guideline to conduct this research, the objectives for this study are
outlined as the following:
i)
To design and build a prototype for Johore Tourism System in the web
environment in order to improve the efficiency of the current tourism
information management system.
ii)
To design and build an online tourism guide consisting of multimedia
5
elements to promote Johore tourism
iii)
To develop a trip planner tool which incorporates decision support system
characteristic to aid the potential tourist in direction for traveling in Johore.
1.5
Scope of Study
In order to be able to achieve the objectives stated above, the scope of the
study is limited to the following:
i)
The study involves conducting research and analyzing the current operating
tourism information management system managed by Johore Department of
Tourism in order to identify and suggest improvement to the current tourism
information system.
ii)
The study involves research on literature background regarding the Decision
Support System (DSS), Management Information System (MIS), web-based
application and tourism system.
iii)
The system is intended for the usage of potential tourist, management staff of
the Johore Department of Tourism and tourism service provider including
lodging and destination services provider.
iv)
The system is designed to involve the management and handling of the
databases and also included the report generation by the management staff of
Johore Department of Tourism.
v)
The system is designed to provide a value-added service based on the
characteristic of Decision Support System in which it will able to provide the
potential user to generate a customize trip plan based on their
selected destination, departure location, and budget. This features targeted
non-package tour tourist that has interest to travel and explore by themselves.
vi)
The study involves the requirement analysis, design, development and testing
of the prototype to evaluate its usability.
vii)
The system is based on web-based application and built in the Windows
environment.
6
By determining the scope of the study, the subsequent processes in
developing the proposed system as the solution to the research problem would be
more easier and has clearer defined boundary, which in turn act as a guideline in
developing the system.
1.6
Theoretical Framework
Figure 1.2 illustrates the theoretical framework of this study which is
consists of three layers: data sources layer, process structure layer and user layer.
Each of these layer will describe as below:
i)
Data Sources Layer
The data sources layer consists of two main components, which are tourism
service provider and the Johore Department of Tourism acting as the destination
marketing organization for the government. The tourism service provider included in
this study is comprised of two categories, which are lodging provider and destination
management services provider. The types of data input from these data sources are
further discussed in Section 3.4 under Subject and Data Sources.
ii)
Process Structure Layer
The process structure layer presents the structure of the system functionality
on how the inputs from the data sources layer are being transformed into the desired
output. By using interactive web forms to input data, the data are retrievable,
structurized and updateable to the database. The updated data would provide the
content to generate web pages from web page templates using a Hypertext Markup
Language (HTML) page generator to generate the HTML code that form web pages.
Most of the web pages are for navigation use only by the user layer according to
their interest whereas the Trip Planner page enable the user to interact with the
system by requesting the system to generate a trip plan based on their preferences
which include destination, budget, types of accommodation and departure location.
7
Data Sources Layer
Tourism Service Provider
Lodging
Johore Department
of Tourism
Destination
Input Data
Process Structure
Layer
Structuring
and maintaining
information
Retrieve
information
Database
Update
information
Information
HTML Page
Generator
HTML
HTML
Navigation
Interests
Trip Planner
Information
Preferences
User Layer
Trip Plan
Tourist
Figure 1.2: Theoretical Framework
iii)
User Layer
The targeted user layer for this tourism information system is the public
Internet user which might be the potential tourist of Johore.
8
1.7
Contribution of Study
This study intend to help and facilitate part of the management work by
Johore Department of Tourism. An understanding on how the current system works
to promote tourism in Johore is important in order to identify and suggest
improvement that could be achieved by taking the full advantage of the computer
technology. Generally, this research study tries to contribute to the following
aspects:
i)
To facilitate, improve and thus reduce the cost of the information
management system of the Johore Tourism Department.
ii)
To further promote the growth of tourism industry in Johore by implementing
the web-based system to provide fast, accurate information and value-added
service to the worldwide tourist.
1.8
Limitation of Study
For this study, the tourism system is designed to be as effective as it can be in
terms of providing high quality of content to the web site user. However, due to time
factor, only substantial amount of data will be collected for constructing and
evaluating the usability of the prototype. Sources of data will be based on the fastest
and most convenient method that is available. These include the sources from the
Johore Department of Tourism and web sites of the tourism service provider
involved. Hence, the actuality and reliability of the data collected might be affected,
as real-time data have to rely on frequent update from the sector involved.
Another limitation of the study is the trip planner tool which will be
developed in the proposed system can only cover certain departure location only
within Johore due to time constraint and the compexity of the calculation algorithm
if more departure location are allowed in the trip generation process.
9
1.9
Constraint of Study
In this study, there are few constraints that are unavoidable in developing the
system. First, the constraint lies with the data security aspect. The detail of what
exactly data collection required by Johore Department of Tourism are not being
described fully. This might affect the usability of the proposed system as it is based
on interpretation on the explanation and some documents to develop the system.
Another constraint lies with the department’s objectives and functionality.
For this study, the tourism system is designed to be as effective as it can be as a
comprehensive tourism guide for the web site user. However, as to conform to the
Johore Department of Tourism objective and functionality, the proposed system
should act as the information provider on behalf of the state government only and
does not include any commercial activity or business transaction. Besides, ecommerce in Malaysia has not reach its mature stage yet. Thus, what the proposed
system can do is only to combine the information available and link them to the
desired web sites that do provide such outstanding features for the interested user.
However, another constraint do exist as to be an effective web site, it depends
greatly on the respective tourism sector whether they could provide such powerful
features such as online checking for availability and booking features for their
prospective customer.
1.10
Report Organization
The organization of this report is mainly divided into nine chapters. Chapter
One is the introduction to give an overall view of what this study is all about. This
includes; the background of the problem, the statement of the problem, the objective
and scope of the study, the theoretical framework of this research, the contribution,
limitation and constraints of the study and terms of references used in this report.
Chapter Two of this report discusses the literature background concerning
the design of the tourism information system. This includes; the background study
10
and review on Management Information System (MIS), Decision Support System
(DSS), internet, web-based application, tourism system concept, and case study on
existing tourism system.
Chapter Three, discusses the methodology of the research that will be used
to develop the proposed system while Chapter Four will present and discuss about
the analysis of the current system and based on the analysis, the architecture of the
proposed system is constructed. Chapter Five will go into detail of the development
process of the proposed system while Chapter Six discuss about the system
implementation based on the design from Chapter Five. The testing of the proposed
system, JTIS will be discussed under Chapter Seven while the second last chapter,
Chapter Eight will present the discussion on the overall system development
including its advantages, limitation and recommendations. Finally, Chapter Nine
will concludes this study.
CHAPTER II
LITERATURE REVIEW
2.1
Introduction
In this chapter, the literature part of this research study will be presented and
discussed. This includes the study on the tourism system and its development trends
in information technology. Besides, the concept of Management Information
System, Decision Support System, Internet, World Wide Web, and web-based
application are also reviewed and presented, as these are the foundations for the
system development process.
2.2
Tourism System
Tourism is a difficult phenomenon to describe. No definitions of tourism are
universally accepted. Some defined it as an industry, others defined it as a system or
rather an activity. The businesses that comprise tourism offer complementary rather
than competing products and services, which complement each other and come
together to offer tourists the services that comprise a vacation (Robert, 1997). It is
important to view tourism as consisting of interrelated parts. Businesses,
organizations and communities, to some degree, are all affected by tourism. The
whole tourism system is like a spider’s web – touch one part of it and reverberations
will be felt throughout.
12
2.2.1
Tourism Related Definition
In this section, few definitions related to tourism will be presented and
compared. These definitions include the terms tourism itself, tourism industry, and
tourist. Few definitions of tourism are as follows:
i)
All travel for whatever purpose, that results in one or more nights being spent
away from home (South Africa, 1996).
ii)
The science, art, and business of attracting and transporting visitors,
accommodating them, and graciously catering to their needs and wants.
Tourism is further defined as the sum of the phenomena and relationships
arising from the interaction of tourists, business suppliers, host governments,
and host communities in the process of attracting and hosting these tourists
and other visitors (McIntosh et al., 1986).
The first definition for tourism as listed above mainly regard the tourism as a
travelling activity which involves accommodation at least one night away from
home. This definition would be too general. In contrast, the second definition is
much clearer and comprises of the few important elements of a tourism system,
which are the attraction (destination), transportation, communication (interaction)
and marketing (process of attracting tourist).
For comparison purpose, few definitions of tourism industry are also listed
as follow:
i)
All businesses, organization, governmental bodies, and their related facilities,
lands and services that accommodate the needs of travelers (Texas, 1999).
ii)
All recipients of direct spend incurred by tourists. This includes pre-trip
expenditure on travel and booking, travel and en-route expenditure, and all
spending at the destination (South Africa, 1996).
These two definitions above defined the tourism as an industry. Although
system is a more preferred term for describing tourism, the definition of tourism as
an industry with clearly defined limits would also be able to provide a clear picture
13
of what tourism is all about. Definition (i) of tourism industry would be a general
definition highlighting the sector involved in the tourism industry to provide service
to satisfy the need of tourist. Definition (ii) is based on the tourist’s point of view in
terms of the spending and all expenses paid by tourist in order to travel. Therefore,
both of these two definitions do not clearly deliver the main point of what tourism is.
Besides the definition for tourism, the definition for tourist also varies widely.
However, the differences between these definitions are mainly on the restriction put
on the definition in terms of the minimum distance from home and the period of
staying overnight at the destination.
For example, few definitions of tourist are as follows:
i)
A tourist is anyone travelling 50 miles outside his or her community of
residence to engage in activities that are not a part of the person’s regular
routine of activity, such as to work or school (Texas, 1999).
ii)
A person who travels away from home, staying away for at least one night. A
tourist can be a domestic tourist, a regional tourist, or an overseas tourist. A
tourist travels for different purposes including business, leisure, conference
and incentive (South Africa, 1996).
iii)
A person travelling to a place other than that of his/her usual environment for
less than twelve consecutive months and whose main purpose of travel is
other than the exercise of an activity remunerated from within the place
visited (Community Methodology on Tourism Statistics, 1998).
Another common thing among most of these definitions is stressing on the
aspect that travelling is an activity beyond the routine activities of the person in its
usual environment. Besides, these definitions also emphasize on the purpose of
travelling are the activities remunerated from within the places visited.
14
2.2.2
The Tourism System Concept
Tourism is described as a system consists of four elements that are dependent
upon the others - markets, destination, transportation and communication. Tourism
differs from traditional industry as it moves markets to products, whereas
manufacturing industry distributes its products to markets. This means that the
“production”, marketing and consumption of tourism are inseparable from each other
or from the destination. Tourism products are found in destinations (area containing
the attractions and services that provide tourism experiences and benefits to visitors).
The product of tourism is the “experience package.” It has been described as a mix
of products and services. Attractions are the core component of a destination area
while services are support elements in the tourism system.
Markets represent those people willing and able to spend their time and
money to receive those common experiences and benefits. Markets and destinations
are linked through transportation and communications. These linkages between
markets and destinations complete the functional tourism system. Figure 2.1 on next
page illustrated the Functioning Tourism System.
From the supply side, many commercial, public, and non-profit decisionmakers are responsible for the attractions, services, and other elements of the tourism
system. The tourism system is not managed solely by the commercial sector. Instead,
commercial, public, and non-profit sectors all work together to provide the important
elements of the tourism system.
Communication refers to the flow of information between markets and
destinations and between the consumers (travelers) and the suppliers of the tourism
experience. This flow occurs in two directions:
i)
from destinations to markets (called promotion)
ii)
from markets back to destination (called market research).
This two-way flow of information is essential to the link between markets and
destinations.
15
Figure 2.1: Functioning Tourism System (Texas, 1999)
On the other hand, transportation physically links markets with destinations.
Automobile, bus, air, and rail are all important modes of travel. The convenience,
safety, reliability, speed, comfort, and price of transportation are important to
travelers. Changes in any one of these factors can greatly influence the flow of
markets to destination.
2.2.4
Trends in Tourism Industry
Tourism is very information-intensive and information is often dubbed the
“life-blood” or “cement” of the industry that holds together the different producers
within the travel industry – airlines, tour operators, travel agencies, attractions, car
rental, cruise lines, and other supplies. Tourism has become an extremely dynamic
system that must respond quickly with flexible service configurations to significant
environmental changes such as fast altering customer behaviors. It was one of the
first industries to widely apply Information Technology (IT) and conduct electronic
commerce from the 1960s in the form of computerized reservation systems (CRS)
and then global distribution systems (GDS). However, the traditional CRSs and
16
GDSs had only improved the information communication between tourist
businesses, originally between airlines and travel agents, as they do not directly
interact with consumers. The systems are also expensive to both the tourism
producer and the retailer (Zhenhua,2000).
With the rapid growth of Internet, especially the World Wide Web (WWW),
there is now an emerging need for the tourism sector to make Internet an imperative
partner of the tourism system. The Internet is widely recognized as an extremely
valuable marketing tool. It is generally held that the Internet offers substantial
advantages over traditional means of communication: reduced costs of information
exchange; increased speed of information transfer and retrieval; increased customer
involvement in and control of transactions; and greater flexibility of using the
marketing mix (Zhenhua, 2000). The utilization of the Internet and the WWW for
tourism distribution provides unprecedented opportunities for the industry (Buhalis,
1996).
These new information and communication technologies with appropriate
integration might offer new win-win situations for every actor of the tourism system.
However, this required the co-operation and co-ordination between the public,
commercial and non-profit organization to achieve tourism benefit for all. Therefore,
by understanding the significant importance of the new tourist space and its side
effects on the other sectors of the economy, government bodies are beginning to
become the strategic player in the tourism system to catalyze the transformation
from a paper-based system to a digitized system (Bloch et al., 1996).
In short, the competitiveness in today’s tourism system is increasingly
determined by the ability to develop and assimilate innovative ways to respond to the
dynamic environment and its new paradigms in the production process of valueadding tourist services.
17
2.3
Information System Concept
In this section, the basic information system concept will be presented. This
is important as the study is going to develop a computerized information system for
the tourism system. Generally, the definition and characteristic of Management
Information System (MIS) and Decision Support System (DSS) will be presented
and discussed. As the proposed system is based on web-based application, the
studies on Internet, WWW and web-based application will also be discussed.
2.3.1
Management Information System
A management information system (MIS) is an information system which
provides information for managing an organization. The idea of MIS predates the
computer age where a paper-based system encompassing planning, execution, and
control was used to manage an organization (Steven, 1996). Later, computerized
MISs emerged to generate information for monitoring performance, maintaining
coordination, and providing background information about the organization’s
operation.
The concept of MIS emerged partly as a response to the shortcomings of the
first computerized transaction processing system (TPS), which often improved
transaction processing but provided little information for management. A MIS deals
with past, present, and projection information to support problem solving and
structural decision-making. Emphasis is on having information available in a timely
fashion, with uniformity among all users regardless of the department or division in
which they work.
18
2.3.1.1 MIS Definition
There is no agreement on the definition of a MIS. A MIS has been called a
method, a function, an approach, a process, an organization, a system, and a
subsystem. The following MIS definitions are gathered from several authors and
practitioners for what they perceive a management information system to be:
i)
“The entire set of systems and activities required to manage, process, and use
information as a resource in the organization,” (Ralph, 1980).
ii)
“A formal method of making available to management the accurate and
timely information necessary to facilitate the decision-making process and
enable the organization’s planning, control, and operational functions to be
carried out effectively,” (James, 1982).
iii)
“The system that monitors and retrieves data from the environment, captures
data from transactions and operations within the firm, filters, organizes, and
selects data and presents them as information to managers, and provides the
means for managers to generate information as desired,” (Robert, 1986).
iv)
“A business system that provides past, present, and projected information
about a company and its environment,” (David and Kathleen, 1987).
v)
“A formalized computer information system that can integrate data from
various sources to provide the information necessary for management
decision making,” (James, 1987).
vi)
“An integrated system for providing information to support the planning,
control, and operations of an organization. It aids operations, management,
and decision making by providing past-, present-, and future-oriented
information about internal operations and external intelligence, in a uniform
and timely fashion,” (James, 1990).
These definitions are compared and contrasted by examining the various
concepts used to define MIS. Definition (i) is very general as it stated that MIS
comprised of any activities concerning the process and management of information
as a resources in an organization. Definition (iii) focused on the input and output of
MIS, but did not clearly highlight the importance of emphasizing the integration of
19
input to produce the output in MIS. Definition (iv) focused on the types of output of
MIS can have without emphasizing the main function of MIS.
The rest of the definitions, which is definitions (ii), (v) and (vi) are much
better as they covered the main aspects or function of a MIS should have. Definition
(vi) would be the most appropriate definition for MIS among these three as it is more
complete than the other two definitions.
2.3.1.2 MIS Characteristics
Summarizing from the above definitions for MIS, there are several
characteristics of an ideal MIS should have. The following are the desirable
characteristics concluded for an ideal MIS:
i)
A MIS supports the data processing functions of transaction handling and
records keeping.
ii)
A MIS uses an integrated database and supports a variety of functional areas.
iii)
A MIS provides operational-, tactical-, and strategic-level managers with
easy access to timely but, for the most part, structured information.
iv)
A MIS is somewhat flexible and can be adapted to meet changing
information needs of the organization.
v)
A MIS provides an envelope of system security that limits access only to
authorized personnel.
2.3.2
Decision Support System
Decision Support System (DSS) represent a class of information technology
that is specifically designed to assist the decision maker. It is an interactive
information systems that rely on an integrated set of user-friendly hardware and
software tools to produce and present information that is targeted to support
20
management in the decision-making process. DSS help decision makers especially at
the tactical and strategic levels, to support decision making in semi structured and
unstructured situations, and provides managers with the flexibility to look into the
future and ask “what if” questions.
2.3.2.1 DSS Definitions
The early definition of a DSS identified it as a system intended to support
managerial decision makers in semi structured decision situations. DSS were meant
to be an adjunct to decision makers to extend their capabilities but not to replace
their judgement (Turban, 1998). However, there are several other authors have
different definition of DSS. The DSS definitions are as follows:
i)
“A model-based set of procedures for processing data and judgements to
assist a manager in his decision making, which is simple, robust, easy to
control, adaptive, complete on important issues, and easy to communicate
with,” (Little, 1970).
ii)
“An extendible system capable of supporting and hoc data analysis and
decision modeling, oriented toward future planning, and used at irregular,
unplanned intervals,” (Moore and Chang, 1980).
iii)
A computer-based system consisting of three interacting components: a
language system (a mechanism to provide communication between a user
and other components of the DSS), a knowledge system (the repository of
problem domain knowledge embodied in DSS, either as data or procedures),
and a problem-processing system (the link between the other two
components, containing one or more of the general problem-manipulation
capabilities required for decision making),” (Bonczek et al., 1980).
iv)
“Product of a development process in which the DSS user, the DSS builder,
and the DSS itself are all capable of influencing one another, resulting in
system evolution and patterns of use,” (Keen, 1980).
v)
“Interactive information systems that rely on an integrated set of userfriendly hardware and software tools to produce and present information that
21
is targeted to support management in the decision-making process,” (Larry,
1989).
vi)
“An interactive, flexible, and adaptable computer based information system
specially developed for supporting the solution of a nonstructural
management problem for improved decision making,” (Turban, 1998).
These definitions are compared and contrasted by examining the various
concepts used to define DSS. The central issue in DSS should be to support and
improve decision-making. The definitions (i), (v), (vi) satisfied this central issue and
emphasize on the characteristics a DSS should have which are interactive, flexible,
easy to control, robust, adaptable and user-friendly. Definition (ii) focused on the
characteristic and capabilities of the DSS rather than focusing on the central issue.
Definition (iii) focused on the components that makeup of a DSS. Definition (iv)
focused on the development process to produce the DSS. These three definitions are
not complete, as they do not emphasize on the central issue.
Hence, the most appropriate definition for DSS should focus on the central
issue besides emphasizing the main important characteristics a DSS should have.
The suggested definition for a DSS would be like the following:
“An interactive, flexible, adaptable and user-friendly computer based
information system specially developed to support and improve decision making for
semi structure and nonstructural management problem.”
2.3.2.2 DSS Characteristics
As there is no consensus on exactly what a DSS is, there is obviously no
agreement on standard characteristics and capabilities of DSS. The following are the
ideal and desirable characteristics concluded for a DSS:
22
i)
A DSS aids the decision maker in the decision-making process, but not to
replace the decision maker. The decision maker has complete control over all
steps of the decision-making process in solving a problem.
ii)
A DSS is designed to address semi structured and unstructured decisions, by
bringing together human judgement and computerized information.
iii)
A DSS supports decision makers at all levels, but it is most effective at the
tactical and strategic levels.
iv)
A DSS makes general-purpose models, simulation capabilities, and other
analytical tools available to the decision maker.
v)
A DSS is an interactive, user-friendly system with strong graphic
capabilities, and an English-like interactive human-machine interface that can
be used by the decision maker with little or no assistance from an MIS
professional.
vi)
A DSS is adaptive over time. The decision maker should be reactive, able to
confront changing conditions quickly, and adapt the DSS to meet these
changes.
vii)
A DSS is flexible enough to accommodate a variety of management and
decision-making styles.
viii)
A DSS attempts to improve the effectiveness of decision-making (accuracy,
timeliness, quality), rather than its efficiency (cost) of making decisions.
2.3.3
Internet
The Internet is the global “network of networks” of interlinked computers
operating on a standard protocol that allows data to be transferred between them.
Internet has a worldwide broadcasting capability, and is a mechanism for
information dissemination, and a medium for collaboration and interaction between
individuals and their computers without regard for geographic location. The Internet
represents one of the most successful examples of the benefits of sustained
investment and commitment to research and development of information
infrastructure (Barry et al., 2000).
23
2.3.4
World Wide Web
The World Wide Web (WWW) is a service that makes up a part of the
Internet, and by far, it is the single biggest factor accounting for huge Internet
growth in users and information. Developed by Tim Berners-Lee, WWW is actually
a set of hypertext transfer protocol (HTTP) servers that can be connected via the web
browser. It is an Internet-based hypertext system that would link together behind a
single; easy-to-use interface the various information resources spread around the
Internet, and accessed using many different systems and protocols (FUNET, 2000).
The World Wide Web as we know it today represents not one but two
revolutions in the world of computing (Stephen, 1999). The first was to transform
the entire Internet into one huge collection of documents, each potentially no more
than a mouse-click away from any other. The second, less obvious revolution was to
transform services into collections of active documents, namely web-based
application which would be discussed in the subsequent section. The Web’s
capability to blend text, pictures, sounds and video clips into multimedia documents
played the key role in popularizing the Internet beyond its traditionally academic
boundaries and become an effective communication means in business and everyday
life.
2.3.5
Web-based Application
A web-based application is a computing service accessed through the web. It
consists of a web server - the “engine” that makes documents available to browsers
and a collection of documents, some of which are “active,” i.e. they make the engine
“do things” like order a book or buy stocks for the client (Stephen, 1999). This
highly efficient method of delivering services represents a potentially huge
productivity gain for both providers and customers. There are three main ways of
making documents on a web site “active”:
24
i)
CGI scripts.
This is the “traditional” method of building a web application: all the actions
are performed by programs, “scripts”, that are started by the server in response to
particular URL's. The script then performs any necessary form processing, computes
a response, and sends that response back to the browser. The interface between the
server and the script is the “Common Gateway Interface” (CGI).
iii)
Servlets and other server extensions.
Servlets are little pieces of Java code that the server transfers control to in
response to particular URL's. Apart from the fact that they run “inside” the server
rather than as separate processes (and hence take much less time to start up), there is
little to distinguish servlets from CGI scripts. Similar techniques are used with other
programming languages, for example C and Perl.
iv)
Server Pages.
This technique involves embedding little bits of code in the web pages, to be
interpreted by the server. Typical embedded extension languages include Active
Server Pages (ASP), Perl, PHP, and Javascript. It is also possible to embed scripts in
compiled languages such as Java (Sun's JSP) in which the pages are compiled offline
into servlets.
Web-based applications require a different kind of development than
traditional software applications. Software applications have always of necessity
been developed by programmers, sometimes with the assistance of a few userinterface designers. Most interactive applications end up being about 70% user
interface. Web-based applications, on the other hand, typically exceed 95%
“content” as seen by the user; a web-based application consists entirely of HTML
“pages” viewed in a browser. Scattered through these HTML documents are the
buttons and text boxes of a more traditional user interface.
25
2.4
Case Study on Tourism Information System
In this section, a case study on an existing tourism information system will be
presented. This system is named as TIScover, a tourism information system based on
extranet and intranet technology developed by B. Pröll et al.. Figure 2.2 below
illustrates the functional components of TIScover that are categorized according to
the different user groups distinguished by the system.
Figure 2.2 : Functional Components of TIScover
The TIScover Database is the core component of TIScover. It is constituted
by a database system together with a centralized, common database schema for the
consistent management of tourism information on a large distributed scale.
Generally, TIScover mainly focuses on the following three crucial aspects (Pröll et
al., 1998):
i)
Using database technology in combination with a decentralized maintenance
approach on the basis of an Extranet, to provide a high quality content in
terms of comprehensiveness, accurateness and actuality.
ii)
Supporting different information retrieval philosophies ranging from pure
navigation, to structured search and full-text search capabilities along with
online booking facility convenient and powerful access to tourism
information and products.
iii)
Supporting different dimensions of customizability by allowing the system to
be employed not only for different kinds of tourism information providers,
but also for different regions and even different countries to individually
represent complex and heterogeneous tourism information and products.
Indeed, TIScover as a web-based tourism information system is considered
26
outstanding in terms of its functionality and dimension of customizability. The
decentralized approach utilizing Extranet technology to maintain the actuality and
accurateness of tourism information brings significant process reengineering benefit
to the paper-based tourism system nowadays. However, this requires the intensive
participation and co-ordination from the tourism sector to make the whole tourism
information system successful. Besides, the content quality cannot be fully
controlled by the system, as there will always exist a factor of uncertainty dependent
on the tourism information provider, whether they themselves put in enough effort to
actualize the information or not.
In terms of high level of customizability in which the system supports for
different region and different country, there exist the possibilities of too complex
configuration setup to implement the system without the help from the field expert.
As the system is developed generally for all kinds of tourism information, this
impersonalized system development might not meet certain specific requirement in
some region in different countries although the system claimed to address the
problem by providing high-level of customizability. This customizability, prior to
solving problem may lead to another more complicated problem, system complexity.
2.5
Chapter Summary
This chapter has described the literature review conducted in this study prior
to the development of the system, which forms the foundation of the study. This
includes the study on the concept of tourism system and its development trend.
Besides, the concept of Management Information System, Decision Support System,
Internet, World Wide Web, and web-based application are also presented. A case
study on an existing tourism information system is also included in the literature
review as the basis of reference for the study.
CHAPTER III
RESEARCH METHODOLOGY
3.1
Introduction
In this chapter, the research operational framework will be designed in order
to be adopted as a guideline for the whole system development process. The
methodology for system development will be determined and justified its selection.
Subjects or data sources for this study will then be identified, followed by the
instrumentation involved in the system development.
3.2
Operational Framework
The research operational framework for this study is illustrated in the
following Figure 3.1 on next page. The detailed steps involve in the system
development are further discussed under Section 3.3 Object-oriented System
Development Process In Detail.
In the subsequent sections, the description on how the research of the
proposed system is going to be carried out will be presented. This includes the
method, step or procedure to be followed in each phase and the deliverables.
28
Research Proposal
Current System Analysis
Literature Review
System Development
Methodology Selection
System Development
Requirement Analysis
Phase
Design Phase
Implementation &
Testing Phase
Report Writing
Figure 3.1: Operational Framework
3.2.1
Research Proposal
The research proposal is the initiation phase of conducting this study. Title
selection is made and the basic scope and objective of the study is being determined
at this stage. Once the proposal is being approved, the subsequent processes can be
carried out, which are current system analysis and literature review. These two
processes are parallel in order to achieve optimum time usage.
29
3.2.2
Current System Analysis
Firstly, before going on into detail about how the object-oriented system
development is going to be carried out, an understanding on the current tourism
information management system of Johore Department of Tourism should be carried
out. This is achieved by conventional traditional method: interview, observation, and
collect relevant documentation. A series of interview has been conducted to gain the
understanding of the current system operation with few employees of Johore
Department of Tourism. Based on the information gathered, the weaknesses and
problem of the current system are identified and analyzed. Possible improvement to
the current system will be identified and this forms the basis for proposing a new
system, which is the system to be developed in this project.
3.2.3
Literature Review
Literature review is one of the important methods that could contribute a lot
of ideas to develop and designing a computerized system. Journal, articles, books
and Internet are the sources of this literature study. The information collected from
literature review range from the basic of system development, concept, method,
techniques and current trends of development, in which all of these can be used as
references and sources for new innovative ideas for developing the proposed system.
The literature review conducted for this study is already presented in Chapter II.
3.2.4
System Development Methodology Selection
In order to develop a well-designed system, a systematic approach is needed.
This is where we need to determine which system development methodology to use.
After doing some research and literature survey, the JTIS development methodology
is determined to be based on Object-Oriented Software Engineering (OOSE), an usecase driven approach methodology introduced by Jacobson et al (Jacobson et al,
30
1992). However, in this study, the Unified Modelling Language (UML) notation will
be used in accordance with OOSE to produce a standard and up-to-date system
documentation. Besides, in order to model the hypermedia design aspect of JTIS,
method suggested by Koch et al is adapted into OOSE methodology.
The justification of OOSE over other object-oriented systems development
methodology includes use-case driven approach and its traceability over the entire
system development life cycle. Figure 3.2 below illustrates the use-case driven
approach in object-oriented system development. The use-case driven approach
allows the process of gathering, understanding, and analyzing the users’ requirement
of the system from the user point of view. This makes the system development
processes easier and more towards the end-user terminology, hence ensuring the
proposed system will be more conform to the user requirement and specification.
Use case model
tested in
structured by realized by
implemented by
class ..
Analysis model
Design model
Implementation
model
OK
Not OK
Testing model
Figure 3.2: Use-Case Driven Object-Oriented System Development Approach
(Jacobson et al, 1992).
An object can be replaced, reused, changed or modified independently
without having serious impact on other objects or affect the whole system. This is
very important and useful in the development of a computerized information system
for the tourism system. Tourism is a fast changing, information intensive and
31
competitive industry especially in terms of its services and support for the primary
tourism component, which is the destination. More and more types of services and
support are continuing to emerge and join in the competition to attract more tourists.
All these information, by right should be collected, compiled, and presented in a
systematically way to the potential tourist so that he or she can compare and chose
from the varieties of choices, preferably in a one-stop center. This is practically what
the proposed system in this study is targeting to achieve, besides maintaining the
actuality, accurateness and quality of the ever-changing content.
3.2.5
System Development
OOSE is an approach to object-oriented analysis and design that centers on
understanding the ways in which a system is actually used. By organizing the
analysis and design models around sequences of user interaction and actual usage
scenarios, this method is able to produce system that are both more usable and more
robust, adapting more easily to changing usage (Bahrami, 1999). In this project,
UML is adopted in this approach as its language for specifying, constructing,
visualizing, and documenting the software system and its components. Figure 3.3
illustrates the road map of procedures according to JTIS development methodology.
Based on Figure 3.3, the procedures of each phase will be described in detail under
Section 3.3 shortly.
3.2.6
Report Writing
Report writing is the last part of the study which does all the writing up
including the documentation of the system and user manual. This is an important
phase whereby all the result and discussion will be presented and concluded in the
deliverable of this phase.
32
Requirement
Analysis
Design
Identify Actors
Identify
Implementation
Environment
Develop
Use-Case Diagram
Develop
Analysis Object
Diagram
Implementation
Develop Design
Object Diagram
Develop
Interaction
Diagram
Design Class
Construct
Database Design
Coding
Develop
Hypermedia
Design
Testing
Figure 3.3: Road Map of JTIS Development Methodology
Figure 3.3: Road map of JTIS development methodology
3.3
JTIS System Development Process In Detail
In this section, the detail step-by-step process of system development for this
project will be presented. These include the analysis phase, design phase and lastly,
the implementation phase.
33
3.3.1
JTIS Requirement Analysis
The goal of the requirement analysis is to understand the domain of the
problem and the system’s responsibilities by understanding how the users will use
the system. The process of requirement analysis consists of the following steps:
i)
Identify the actors
The actors for the proposed tourism system include: potential tourist
assessing the system, the management staff of the Johore Department of Tourism
who acts as the system provider, and tourism service provider.
ii)
Develop Use Case Diagram
Use-case diagram for the proposed system is constructed based on three
categories of user: management staff of Johore Department of Tourism, tourism
service provider and the public. This diagram will reflect what the user will do with
the system and what kind of information would they provide or obtain from the
system. The use case diagram for the proposed system can be found in Chapter V
under Section 5.4.1.2. This diagram is very useful for understanding the system
requirements as it is developed based on the user point of view. The use-case
developed will be used as the main reference throughout the system development
process to ensure that the system constructed will conform to the user requirement.
iii)
Develop Analysis Object Diagram
Based on the use-case diagram, objects that represent the tangible elements
of the business are identified. The deliverable is an analysis object diagram that is
consists of entity object, interface object and control object. This object diagram, as
included in Chapter V under Section 5.4.1.3 will be used to develop the design
object diagram in the design phase later.
34
3.3.2
JTIS Detailed Design
The goal of JTIS design is to elevate the model developed during analysis
phase into actual objects that can perform the required task. Generally, the design
phase process consists of:
i)
Identify implementation environment
To be able to adapt the design model to the actual implementation
environment, the actual technical constraints that the system should be built under
have to be identified. This includes the target environment where the system should
execute during operation, programming language and existing product that should be
used for the realization of the system. This identification has to be done early since it
will affect how far the analysis model should be refined to transform into design
model. The implementation environment identified for JTIS will be discussed in
Chapter V under Section 5.4.2.1.
ii)
Develop Design Object Diagram
The analysis objects identified during analysis phase will be translated into
design objects that fits the current implementation environment. These design
objects will later be implemented in the source code. The details of how the design
object diagram is developed are available in Chapter V under Section 5.4.2.2.
iii)
Develop interaction diagram
The purpose of developing interaction diagram is to model how the object or
classes identified communicates with each other. For each use case created during
requirement analysis phase, at least a sequence diagram is developed to illustrate the
interaction occur between the objects of the system. Developing the sequence
diagram will also help the process of refining the design object diagram. The
deliverables of this part of process is presented in Chapter V under Section 5.4.2.3.
iv)
Design Class
Based on the interaction diagram, the class design can be done, as the
complete description of all external requirements of the class is known. The class
design process includes defining and designing the class’s attributes and methods
35
which can be extracted from the sequence diagram and analysis object diagram. In
addition to further design the method of the class, state-chart diagram is used to
provide a simplified description that increases understanding of the class. The
deliverables of this part of process is presented in Chapter V under Section 5.4.2.4.
v)
Construct database design
In the database design process, as relational database management system is
used as JTIS database, object-relation mapping technique is applied to map object or
class identified in the class diagram into table. The details of the database design
process are discussed in Chapter V under Section 5.4.2.5.
vi)
Develop hypermedia design
Hypermedia design for JTIS consists of two major parts, which are
navigation design and presentational design. Navigational design defines the
structure of nodes and links of JTIS showing how navigation is supported by the
access structures while the presentational design is actually an abstract interface
design that focus on how the information and access structures are presented to the
user. Both design of the navigational model and presentational model are discussed
in Chapter V under Section 5.4.2.6.
3.3.3
JTIS Implementation
For JTIS implementation, Active Server Pages 3.0 (ASP) will be used as the
server –side programming language while VBScript and JavaScript will be used as
the client-side programming language. The implementation process can begin early
during the design phase when the class design start to stabilize and are frozen. The
models developed during the design phase will be translated and implement with
ASP source code. In the process of coding, the testing process can begin and proceed
in parallel. More details on JTIS implementation process is discussed in Chapter VI.
36
3.4
Subject And Data Sources
The subjects involve in this study can be categorized by viewing at three
different perspective based on end-user types, which would be using the system. The
data are then collected from the subjects involved by conventional traditional
method, which is conducting interview, collecting relevant documentation and
through observation. Basically, there are three different categories of end-user,
which are Johore Department of Tourism, tourism service provider and the public
Internet user.
i)
Johore Department of Tourism
The purpose of this study originates from the needs to improve the efficiency
of information management by this department. Hence, the data pertaining to the
management and process of gathering, organizing, compiling, distributing, and
maintaining the tourism information need to be gathered from the department itself.
This understanding of the current process flows and existing problem is important in
order to provide an applicable solution. Besides, the general information of the
districts of Johore is also collected from the department.
ii)
Tourism Service Provider
The types of tourism service provider involves in this study consists of
lodging provider and destination management service provider, which are presented
in the Table 3.1 below, along with the description on data types to be collected.
iii)
Public Internet
Gathering information of what kind of tourism information would they be
interested to find out from an online tourism information system. Observation on
other existing tourism web sites is also another source of data.
37
Table 3.1: Types of Tourism Service Provider
Types of Tourism Service Provider
Description
Include hotel, resort and chalet.
Data collected comprises of the room
Accommodation
rates, types, facilities and services
available.
Description about the attraction of the
Destination
destination, pictures and video if
available.
Another important data sources is from the literature review, which are based
on the journal paper, articles, books, and also from the information on the Internet
regarding the concept, method, development trends and techniques pertaining to the
process of developing the proposed system.
3.5
Instrumentation
Generally, the instrumentation involves in developing the system can be
divided into two types: hardware and software. The hardware instrumentation
involves in this study refers to the minimum hardware requirements of developing,
designing and implementation of the proposed system. Basically, as the proposed
system is designed to be functioning in the web environment, the hardware involved
can be further divide into the hardware requirement for the server and the hardware
requirement for the client. The following are the minimum requirements for the
server and client hardware:
Table 3.2: Minimum Hardware Requirement For Server And Client
Processor Type
Memory Capacity
Hard Drive Capacity
Server
Client
Pentium 200 MHz
Pentium 100 MHz
64 MB of RAM
32 MB of RAM
4.3 GB
2.1 GB
38
On the other hand, software requirements can be further divided into the
software technology and the software application. Software technology is the
technology or knowledge required to design and develop the system whilst the
software application are used as case-tool for the analysis, design, documentation
and implementation for developing the system. The identified software requirements
for this study are as follow:
i)
Software Technology
Hypertext Markup Language (HTML)
VBScript
JavaScript
Active Server Pages 3.0
Database Management System using Microsoft Access 2000
Unified Modeling Language
ii)
Documentation and design tools:
Rational Rose 2000 Enterprise Edition
Microsoft Office 2000
Visio Technical Drawing Tool
iii)
Implementation tools:
Microsoft FrontPage 2000 for building web pages
Internet Information Server 5.0 for executing ASP 3.0
Microsoft Internet Explorer 5.0 as the web browser
Microsoft Access as database management system
Microsoft Windows 2000 as operating system
Besides the hardware and software as the instrumentation, for the purpose of
testing the usability and effectiveness of the prototype system, questionnaires will be
designed to gather the feedback from the end-user.
39
3.6
Chapter Summary
This chapter has described the operational framework that integrates the
system developement methodology as a guideline to be followed for the whole
study. The OOSE methodology is selected as the system development methodology
that will used to design and construct the proposed system. Next chapter, Chapter IV
will present the analysis of the current system and proposed solution that will be
used as a base for design and construction of JTIS in Chapter V later.
CHAPTER IV
CURRENT SYSTEM ANALYSIS
4.1
Introduction
This chapter will focus on the current system on how Johore Department of
Tourism handle and manage the tourism information. First, the background of
current system scenario presented, followed by the problems identified from the
exisitng management system and lastly a proposal for solving the problem of the
current management system is presented.
4.2
Background of Current System Scenario
Tourism industry in Johore plays a vital role and carries heavy
responsibilities, which need to be given immediate attention. Each year Johore
Department of Tourism initiated many tourism promotional activities that comprise
of several areas and prepared tourism projects that comprise of existing and latest
tourism products.
The Johore Department of Tourism began its operation independently, on 1
March 1993 after operating indirectly under the Local Government since 1964 in
line with UPEN’s planning. With the rapid development in the tourism industry in
this country, the tourism department had arranged several strategies to further
41
introduce Johore as a popular tourists destination for domestic as well as
international tourists.
In the efforts of realizing the aim of being the popular tourism destination,
the Johore Department of Tourism has outlined several objectives, which include to
shape up a progressive market for tourism industry, introducing Johore as a unique
tourism destination, encourage domestic tourism development, maximize tourism
income in line with the government policy and ensuring related tourism industries
grow in harmony, systematically and well balanced.
In order to achieve the above objectives, the Johore Department of Tourism
has the obligation to function as a body to standardize the tourism activities
organized by other departments, government agencies or non-government bodies and
to do working papers or proposals to the government on methods, actions and
policies of the tourism industry. If the government approves the proposal paper, the
tourism department will proceed with the necessary actions. Besides, they also tried
to encourage domestic and international tourism and participate in any tourism
program in Johore.
In 1994 alone, at least 20 promotional activities were organized to further
introduce the state as an attractive tourists destination. These activities were
organized at state, national and international levels. The major event was the annual
“Karnival Johor” which offers various kinds of activities promoting Johor Bahru as a
favorite destination among the locals and foreigners. Tourism promotions were also
done at international level in order to tap the foreign market form Singapore, Hong
Kong, China and Taiwan. Among the international exhibitions that the department
had participated were International Travel Expositions in Hong Kong, NATAS
Travel Fair in Singapore and MATTA International Travel Fair in Kuala Lumpur.
Print media or press advertisement is another method to introduce the Johore
tourism industry at international level. There were advertisements promoting the
Johor tourism image in at least 10 international tourism magazines with an
estimation of 200 thousand readers from all over the world. This did not include
42
other advertising and publicity campaigns thorough various print and electronic
media that feature tourism messages from this state.
Promotions on domestic tourism would also be given priority due to its great
potential. Therefore the state government is participating in the domestic tourism
activities organized by the Malaysia Tourism Promotions Board such as the JohorSabah Promotions that took place in Labuan year 1996.
As a functioning tourism body, information management is a great and
important challenge in the process of providing information to the outsiders, or this
process has been called as the business process of the Johore Department of
Tourism. An UML activity diagram is used to model the current business process,
which is illustrated in Figure 4.1.
The process starts with collect data activity, which is conducted through
personal site visit or contact the relevant tourism service provider. The data collected
normally include the particulars of the agencies or companies, the situation or
description of the “product”, details of the service, and photographs of the site if
necessary. The information gathered are then organized into the exactly format of the
product inventory book, which are classified into several tourism categories such as
accommodation, place of interest, public transport, food et cetera. Next, the
organized information is compared with the previous year inventory book and the
difference is updated in order to compile a new inventory book of the year.
Concurrently, the organized information is also used to create new tourism
brochures, which are then distributed to disseminate tourism information to the
public.
From the description of the current business process, we see that the active
party involving in managing tourism information is tourism department officer.
Other parties like tourism service provider and general public are passive parties in
current business process scenario. The next section will discuss and identify the
problem and limitation of the current information management system of the Johore
Department of Tourism.
43
Collec t Data
Conduc t pers onal
s ite vis it
Contac t relevant
organiz at ion
Organ iz e
Inform ation
Com pare with previous
inventory book
Update
Inform ation
Des ign
Broc hures
Produc e new
inventory book
Produc e
Broc hures
Dis tribute
Broc hures
Figure 4.1: Current Business Process Modeling
4.3
Problems With Existing Management System
This section will identify and discuss on the problem and limitation of the
current proceduce of how the Johore Department of Tourism handle and manage the
tourism information. Figure 4.2 illustrates the current process using the UML usecase diagram.
44
Current s ystem
<<extend>>
Contact tourism service provider
Collect tourism information <<ex tend>>
Conduct site visit
<<include>>
Tourism Department
Officer
Create inventory book
Publisher
subcontractor
Organize tourism information
Distribute brochures
Create brochures
Design Subcontractor
Figure 4.2: Current System Use-case diagram
From Figure 4.2, we can see that basically, there are four use-cases that can
be initiated by the Tourism Department Officer, which include Collect Tourism
Information use case, Create Inventory Book use case, create brochures and
distributes brochures use cases. The Collect Tourism Information use case is
extended to another two use cases, Contact Tourism Service Provider and Conduct
Site Visit use cases. Both of these use cases have some connection with the tourism
service provider. However, as they did not initiate the use cases, they are not
considered as actors of the current system.
Basically, the core processes of the current information management system
is the production of the inventory book, which is produced once a year and the
tourism brochures production, which is produced every six months. In the process of
producing the annual inventory book, a great deal of time, working force and effort
have been used to prepare the book. The sources of data comes from the data
collection process which may be obtained from various sector involves by contacting
the tourism service provider or conducting a personal visit to the site. The
information gathered are then recorded into the exactly format of the product
inventory book, which are classified into several tourism categories such as
45
accommodation, place of interest, public transport, food et cetera. Normally, the
department will request a subcontractor to finalize and compile those information
gathered into eight separate product inventory books, categorized according to the
eight districts of Johore. The subcontractor, besides compiling the books, is also
responsible to collect those leave out or incomplete information by the department.
Several problems are identified from these processes of compiling the
product inventory book:
i)
Outdated information as the product inventory books are only being
produced once a year, any changes within that year will only be updated in
the product inventory book of next year.
ii)
Lack of cooperative effort from the tourism sector to improve the quality and
speed of the information collection process. The department usually faces
difficulty in getting full co-operation from some tourism sector to provide the
required information. Ineffective and slow response from them further
complicated the data collection process. Added to that, the tourism sector are
also reluctant to take the initiative to inform the department of any changes
such as change of control or contact number.
iii)
Insufficient funds as information is collected through personal site visit
which are costly and time-consuming. Besides, joint venture project with
subcontractor to produce the product inventory books is also one of the main
expenses of the department each year.
On the other hand, the brochures production process is also carried on in
parralel with the inventory book production process. However, it is dependent on the
data collection process. Based on the information from the data collection process,
new brochures will be produced every six months. Generally, the department will
determine the content and the basic design of the brochures. Then, it will subcontract
the brochures production process to the selected subcontractor to design and produce
the brochures. The maximum overall time for the brochures production process is
around three months. In the case of special event or carnival specially organized to
attract tourist, additional brochures will also be produced to promote the tourism
industry. These brochures normally will require around one month to be completed.
46
After receiving the completed brochures from the subcontractor, the
department will distribute it to the specified counter located at all over the places in
Johore. These places include the main entrances to Johore, Tourism Malaysia
Promotion Board’s branches, shopping complex, hotel and resort, airport, railway
station, and related tourism agencies. Besides, several brochures are also specially
designed to be distributed to the Malaysia embassy or Tourism Promotion Board’s
branches located at the overseas country to attract foreign tourist visiting Johore
while in their trip of visiting Malaysia.
Generally, the main distribution method adapted by Johore Department of
Tourism is by using media such as print, radio and television. This traditional
approach to communication, which follows a passive one-to-many communication
model has three problems (Zhenhua, 2000):
i)
uncustomised message to every tourist,
ii) wasted exposures to uninterested audiences,
iii) and “noise” distraction from competing and conflicting messages.
Besides, there are also several problems that could be further identified.
These include : too generalized information, slow and time-consuming process, high
cost production, questionable quality of the information in terms of actuality and
accurateness.
From the above description of the overall current information management
and providing, it is clear to say that there are many improvements that can be made
to increase the efficiency of the current business process, especially now, when
information technology and computing have emerged as the great tools in helping
the specific tasks.
47
4.4 Proposed Problem-Solution
This section will discuss and proposed a solution for the problem identified
in the current management system. Based on the current system analysis, a webbased tourism information system is proposed in order to facilitate the tourism
information management. Three categories of users are identified as the user of this
system, that includes tourism department officer which will act as system
administrator, tourism service provider which can be registered user and common
user.
A web-based system is proposed rather than stand-alone system as webbased system allow user to access the system from anywhere and anytime. This is
particularly important since speed and data accuracy are two important factors in
tourism information management. By enabling tourism service provider to access the
proposed system as registered user, they can modify and update their services
information immediately upon changes. This would help in maintaining and made
available accurate and up-to-date information to the public.
The business relationship between Johore Tourism Department and tourism
service provider would change for the better by using a web-based tourism system.
By encouraging tourism service provider to sign up as registered user, it will help
them to take the initiative to maintain accurate information about their services. This
should help the Johore Department of Tourism to ease their burden and reduce cost
of having to maintain information of these service providers. Since the system
responsibility is to maintain accurate and up-to-date information, future brochures
production may rely on the information stored on the system database which is
readily made available by commitment of all parties involved.
On the other hand, in order to build a tourism information system that is
useful to the public or potential tourist, a value-added service, trip planner tool based
on decision support characteristic is suggested to be included in the proposed system.
This tool should be able to create a more personalized information based on the
specific user requirement.
48
In short, a web-based tourism information system is likely to improve the
current situation and reduce the problems faced by the Johore Department of
Tourism.
4.5
Chapter Summary
This chapter has analyzed and discussed about the current information
management system of Johore Department of Tourism. Several problems have been
identified and based on the analysis, a web-based tourism information system is
proposed to increase the efficiency of the current system and provide value-added
service to the potential tourist using the system.
CHAPTER V
SYSTEM DESIGN FOR JTIS
5.1
Introduction
In this chapter, the architecture of Johore Tourism Information System (JTIS)
will be discussed. This includes the components in the JTIS architecture and
modules available to the user. Based on the architecture, the requirement analysis
and detailed design of JTIS are carried out.
5.2
JTIS Architecture
A tourism system in the web environment is proposed in this study in order
to improve the efficiency of information management of the Johore Department of
Tourism and provide a higher value-added service to the potential tourist. Figure 5.1
illustrates the architecture of the JTIS.
Basically, JTIS is composed from several components, which includes
database management, navigation and search, trip planner, user interface, and user.
These components are the backbone of the functioning JTIS. JTIS required external
support such as HTML page generator and multimedia support for its
implementation while the JTIS database will store all the data and information of the
system. Each of these components will be described in detail later under Section 5.3.
50
JTIS
Database
Navigation
& Search
ASP Script
Engine
Trip Planner
Multimedia
support
User Interface
Tourist
Module
Tourism Service
Provider Module
Administration
Module
User:
Potential
Tourist
User:
Tourism Service
Provider
User:
Johore Department of
Tourism
Figure 5.1: JTIS Architecture
The functioning JTIS is consists of three modules, which is Tourist Module,
Tourism Service Provider Module and Administration Module. Each of these
modules is designed to suit the different requirement specification of JTIS user
category. While Tourist Module is accessible by all users, Tourist Service Provider
Module and Administration Module are only accessible by registered user and
administrator respectively. The rest of this section will describe each of these
modules in detail.
5.2.1
Tourist Module
Tourist Module is accessible by all users using the JTIS. It is consists of
several submodules which includes Place module, Lodging module, Search module,
51
Plan Trip module and Tourism Information module. Figure 5.2 below shows the
hierarchy of Tourist Module.
Tourist Module
Place
Module
Lodging
Module
Plan Trip
Module
Search
Module
Tourism
Information
Module
Figure 5.2: Hierarchy of Tourist Module
5.2.1.1 Place Submodule
This submodule manages on how the information of place of interest is being
presented to the user. Basically, the places of interest are grouped into six categories,
which include island, beaches, forest and recreational park, building and
infrastructure, shopping and miscellaneous. There are basically three user interfaces
under this submodule. Figure 5.3 shows the navigation flow of these interfaces.
Users are allowed to navigate to the place summary interface from the place category
interface.
Place Category Interface
Place summary interface
Place detailed
information interface
Figure 5.3: Navigation flow of Place submodule interfaces
52
Figure 5.4 shows the user interface design for place summary interface.
Basically, the place title and brief description will be displayed along with a picture
of the place. Within the place’s description, there are some words that are
highlighted by using hyperlink style to enable user the option of finding more
information containing these words. Besides, for each place, there are four types of
hyperlinks under the place description. These hyperlinks are presented in Table 5.1.
These hyperlinks are created to provide more information of the place to the user.
Figure 5.4: User interface of place summary
Table 5.1: Hyperlink for each place of interest in place summary interface
Hyperlink
Purpose
View Video
Enable user to view short video clip of the place
View Event
Enable user to view the event schedule of the place
Add to trip planner
Add the place to the user trip planner cart
[More]
Enable user to view more information of the place
5.2.1.2 Lodging Submodule
This submodule manages on how the information of lodging such as hotel,
chalet and resort is being presented to the user. Basically, the lodging available in
Johore is categorized into eight districts of Johore. User can choose to view the list
53
of lodging available in certain district only. Figure 5.5 below shows the user
interface of the list of lodging available in Johor Bahru. Three fields are being
displayed in the list, which are the lodging name, category and location. The
specifications for these fields are described in Appendix A.
Figure 5.5: User interface of lodging in Johor Bahru
5.2.1.3 Plan Trip Submodule
Plan Trip submodule is specially designed to provide value-added service to
the user. It provides the interfaces for capturing the required input for the trip
generation process. Figure 5.6 shows user interface for this submodule. User must
provide his/her departure location, overall budget for the whole trip and preferences
over cost or time. The specification of these input is attached under Appendix A.
User can have two ways of specifying which places of interest as his/her trip
destination. First method is by using the Trip Planner cart which functions like
shopping cart. To add a place to Trip Planner cart, all the user has to do is click the
hyperlink “Add to trip planner” while browsing the information of a place of
interest. The place will then be added to a column name “Selected Place” in the form
of a small graphic or the place name in bold. The second method is simply tick the
checkbox beside the name of place of interest in trip planner interface. User must
54
have selected at least one place of interest by either method which is different from
his/her departure location.
Figure 5.6: Plan trip user interface
Figure 5.7: Example of user interface for trip planner result
55
With the information provided by user, the system will use the Trip Planner
component to calculate and find three best options that match the trip requirements
of the user. Figure 5.7 shows an example of the output produced by Trip Planner
component from a set of specification input by user. Each option is displayed in table
form with five fields, including description, total distance, estimated travel time,
total cost and visiting sequence.
5.2.1.4 Search Submodule
This submodule allows the user to search places of interest stored in JTIS by
using simple search function. Figure 5.8 shows the user interface for search
submodule. User is given two options for the search criteria, which are search by all
words or search exact phrase. Based on the value entered by user, the system will
then search place table of JTIS database and also places’ description for matching
result. The search result will be displayed as illustrated in Figure 5.9.
Figure 5.8: User interface of search submodule
Figure 5.9: Search result interface
56
5.2.1.5 Tourism Information Submodule
The purpose of this submodule is to provides the interface that display other
tourism information apart from place of interest and lodging information which
already being covered in other submodules. Examples of such tourism information
are Johore introduction, culture, history, and et cetera. More information or special
announcement regarding Johore tourism would be placed under this submodule.
Figure 5.10 below shows an example of interface on how tourism information with
title “Colourful Culture” is being designed. On the right column of the interface,
there is a list of tourism information titles in which the user can click and view the
content.
Figure 5.10: User interface of “Colourful Culture” tourism information
5.2.2 Tourism Service Provider Module
One of the main user group of JTIS is tourism service provider. Generally,
this group of user can perform two types of tasks with JTIS, that is register as
member and edit service information. Hence, four submodules are created under
Tourism Service Provider module, which are Login Module, Register Module, Edit
57
Registration Particulars Module and Edit Service Information Module. Figure 5.11
show the hierarchy of Tourism Service Provider Module.
Tourism Service Provider Module
Register
Module
Login
Module
Edit Registration
Particulars
Module
Edit Service
Information
Module
Figure 5.11: Hierarchy of Tourism Service Provider Module
5.2.2.1 Register Submodule
This Registration submodule is designed for the tourism service provider
such as lodging and destination management service provider to register themselves
with the JTIS. Basically, the registration process consists of the following procedure:
Tourism service
provider
Fill in
membership
application
form
Submit
form
Application
Table
Retrieve recent
application
Notify application
status
Check, and approve
or reject application
Johore Tourism
Department Officer
Figure 5.12: Registration process
58
Figure 5.13: User interface of membership application form
Figure 5.13 shows the user interface of the membership application form. All
the fields in the form marked with asterisks are required in order for the Johore
Tourism Department to process the application. The specification of the fields is
attached under Appendix A. The completed form will then be submitted to JTIS and
store temporally in the Application table to wait for the approval of Johore Tourism
Department. The status of the application form will be held as “Waiting” until it is
processed. It is the job of the Johore Tourism Department to verify the company or
rather the organization as the valid tourism service provider. This is to avoid anyone
to simply register with JTIS and misuse the application. The application approval
part will be discussed in detail in Administration Module.
5.2.2.2 Login Submodule
This submodule is accessible by the service provider that has obtained
approval to become member of JTIS. The purpose of this submodule is to increase
59
the JTIS security so that only authorized user can make amendment to the
information stored in JTIS database. Members have to login to the JTIS using the
login name and password they entered during the registration process and choose
their member type. Figure 5.14 shows the login interface of this submodule.
Figure 5.14: Tourism service provider login submodule
5.2.2.3 Edit Registration Particulars Submodule
This submodule allows member to change or update their company or
organization particulars if required. The user interface of this submodule is same as
the interface of Register submodule as illustrated in Figure 5.13 except the
Loginname field is disabled and CompanyType field is not displayed here. Member
can also change their password here but the LoginName is already fixed the first
time they apply to access JTIS.
5.2.2.4 Edit Service Information Submodule
This submodule enable registered tourism service provider to edit their
tourism service information, which is decomposed into two categories according to
member type. Figure 5.15 shows the hierarchy of Edit Service Information
submodule for both lodging service provider and destination management service
provider.
60
Lodging
service
provider
Edit Service
Information
Submodule
Lodging
Particulars
Presentation
Page
Destination
Management
Service
Provider
Place
Details
Upload
picture and
video
Figure 5.15: Hierarchy of Edit Service Information submodule
For lodging service provider, they can provide information such as hotel
name, location, category, facilities available and room rates. Figure 5.16 shows the
user interface for lodging service provider to edit the lodging particulars. The
specification of input for this user interface is attached in Appendix A.
Figure 5.16: User interface of edit the lodging particulars
61
Besides, there is also a facility created to let the lodging service provider to
author and edit a presentation page for their lodging. The lodging service provider
can add text, graphic and hyperlinks using this facility to display their lodging
service information. The graphic added as the content of the presentation page will
be uploaded automatically when the user click “Save” button. Figure 5.17 shows the
user interface of presentation page of one of the hotel in Johore.
Figure 5.17: User interface of presentation page of hotel in Johore
Figure 5.18: User interface for editing place information
62
For destination management service provider, they can provide information
such as place of interest’s name, location, and description. The specification of input
for this user interface is attached in Appendix A. Besides, a facility for uploading file
to JTIS server is also created for destination management service provider to submit
pictures or video clip of places of interests. Figure 5.18 shows the partial user
interface for destination service provider to edit the place of interest information
while Figure 5.19 show the upload facility designed for this submodule.
Figure 5.19: User interface of upload facility
5.2.3
Administration Module
There are five submodules under Tourism Department Module, which are
Login submodule, Application submodule, Report submodule, Keyword submodule
and Content Editor submodule. Figure 5.20 below shows the hierarchy of
Administration Module.
Administration
Module
Login
Module
Application
Module
Report
Module
Content Editor
Module
Figure 5.20: Hierarchy of Administration module
Keyword
Module
63
5.2.3.1 Login Submodule
This submodule is accessible by administrator that is responsible to maintain
and manage the system. The purpose of this submodule is to increase the JTIS
security so that only authorized personnel appointed by Johore Department of
Tourism may be allowed to access the Administrator module. Administrator has to
provide login name and password in order login to the JTIS administration panel.
Figure 5.21 shows the login interface of this submodule.
Figure 5.21: Administrator login interface
5.2.3.2 Application Submodule
This submodule is used by administrator to view and check all membership
application received. The administrator will evaluate and check the information
provided in the form to confirm that the applicant is a true tourism service provider
which is eligible to be a member of JTIS. The result of the application will be
notified to the applicant. If the application is approved, the applicant will be able to
access the Tourism Service Provide Module. Figure 5.22 show the user interface of
viewing list of application received.
64
Figure 5.22: User interface of viewing list of application
5.2.3.3 Report Submodule
The purpose of this submodule is to provide the functions for administrator to
generate several types of report. The report that can be generated including member
list report, place visited statistic report, place added statistic report, place category
statistic report and accommodation statistic report. Figure 5.23 show the user
interface for choosing report type while Table 5.2 shows the display format for each
type of report.
Figure 5.23: User interface of choosing report type
65
Table 5.2: Report display format
Report type
Display format
MemberList
Table listing for member particulars
Place visited statistic
Horizontal bar graph showing visited count for each place
Place added statistic
Horizontal bar graph showing count of being used in trip
plan generation by user for each place
Place category statistic
Horizontal bar graph showing the record of places
according to place categories by percentage.
Accommodation
Horizontal bar graph showing the record of lodging
statistic
according to district and a table listing the lodging name,
category and location by district.
MemberList report is consists of a list of all member registered with JTIS.
The list will include the company or agencies name, join date, username and last
login particulars. Meanwhile, place visited and place added statistic report contains
the statistical data of place of interest being visited and being added to trip planner
respectively. Administrator could also keep track of the number of places of interest
available in JTIS according to place category by generating the Place category report
which will shows the percentage of places for each place category. Besides, a report
containing all lodging records of JTIS can also be generated by the administrator
which contain the lodging available in Johore according to districts.
5.2.3.4 Content Editor Submodule
This module provides administrator the functionality to add or update
tourism information that will be used by Tourism Information submodule of Tourist
module. Each tourism information is considered as an article with title and content.
This module provides an user interface with formatting toolbar that enable
administrator to edit and design how these tourism information should be presented
to the user. Figure 5.24 shows the user interface of content editor.
66
Figure 5.24: User interface of content editor
5.2.3.5 Keyword Submodule
This module help the administrator to manage a list of keyword or rather
keyword library that will used to in the hypertext search function. Keyword can be
added, edited or deleted as appropriate by administrator. Figure 5.25 shows the user
interface of editing keyword by administrator.
Figure 5.25: User interface for editing keyword
67
5.3
JTIS Component
There are altogether 7 components that make up of JTIS architecture, which
include navigation and search, trip planner, user interface, ASP script engine,
multimedia support, JTIS database and user.
5.3.1
Navigation and Search
This component supports the navigation structure of the system, which
provides the user with the information he is looking for in an easy-to-use format. It is
based on the hypertext approach of navigating through information by using
hypertext-links. The search capability allows user to search for tourism information
using a keyword. The tourism information will be arranged according based on type
of interests for each district that offers the information about its attractions, special
events going on or program in schedule. The information consist of text description,
graphic, and in some cases supported by multimedia element such as video clips
presentation to provide users with information on Johore’s tourist sites. The
navigation design for JTIS will be discussed in more detail under Section 5.4.2.6
later.
5.3.2
Trip Planner
In this section, the design of Trip Planner component will be discussed.
Figure 5.26 shows the process flow of the Trip Planner component. An external
Town Database is used to obtain information of Johore map structure. The Town
Database contains information of major towns in Johore and how these major towns
connect to each other. Although Town Database is an external component, it has to
be designed to be used by JTIS. Hence, the first part of this section will discuss
about the setting up of Town Database then followed by how the Trip Planner
Component will use information from Town Database to process its calculation.
68
Trip Planner Component
Input:
Route
Generator
List of
Destination
Town
Database
produces
Departure
Location
List of All
possibilities
Budget
evaluate by
Time/Cost
Preferences
Evaluator
Output:
Three best result
Figure 5.26: Trip Planner
5.3.2.1 Town Database Design
Figure 5.27 shows the process of how the Town Database is being design and
setup. There are two major steps in the setup process. The first step involves
obtaining a clear Johore map showing major town and roads connected. From the
map, all major towns to be included in Town Database are identified. In this project,
altogether 19 town have been identified and are stored in a table named as TownList
in Town Database with three fields, that is a TownID, Townname and the district it
belongs to.The justification for a town to be included in Town Database are:
i)
whether it is a major town in its district
ii)
whether it has a popular tourism site
iii)
whether it is a must-pass-by town or regular-pass-by town between two
other major town
69
Start
Major Town
Identification and Town
Connection Building
Area Dividing and Area
Connection Building
Town Database
setup complete
Figure 5.27: Process flow of Town Database Setup
After the town identification, the connection of all towns has to be
identified. For example, if a person wants to go to Town B from Town A, does he
has to pass by any other town from the list of town in Town Database? If he does
not, then the connection between Town A and Town B is considered as direct
connection (Figure 5.28a). If there are some other town that the person must pass by
in order to reach Town B from Town A, then the connection between Town A and
Town B is considered as indirect connection (Figure 5.28b). Figure 5.28 illustrates
this example.
A
B
(a)
A
C
B
(b)
Figure 5.28: Example of connection type between Town A and Town B,
(a) direct connection, (b) indirect connection with single intermediate town.
All data of direct connection will be stored in Town Database in a table
named as TownDistance, with five fields, including a DistanceID, TownID1,
TownID2, Distance and Highway. The Highway field is a boolean type field
70
specifying whether the direct connection is through highway road. For indirect
connection, only those indirect connection with single intermediate town will be
stored in Town Database in a table named as RouteList, with five fields, including
RouteID, TownID1, TownID2, TotalDistance, and TownBtwnID. The town
connection building process is completed when connection between all town have
been identified.
The second step in building Town Database is area dividing and area
connection building. This step is essential because in the previous step, only
information on indirect connection with single intermediate town is captured and
stored in Town Database. Thus, another method of capturing other indirect
connection with more than one intermediate town is required. The solution used in
this project is dividing all towns identified into six area. The area determination
process is based on towns clustering together being grouped into single area, as
illustrated in Figure 5.29.
E
C
H
D
A
B
First Area
F
Second Area
G
I
Third Area
Figure 5.29: Area Determination
Next, we have to identify connection between these areas, whether it is an
adjacent connection type. For example, in Figure 5.29, First Area is adjacent to
Second Area and Second Area is adjacent to Third Area. There are no direct
connection between First Area and Third Area. This indicates that if a person wants
to travel from First Area to Third Area, he must pass by Second Area. So, the next
step after determining area connection is identifying how a person can cross from
one area to another area. Example in Figure 5.29 shows that, if a person want to
travel from First Area to Second Area, he must pass by Town B and get to Town D
first. In other words, the direct connection between Town B and Town D connects
71
First Area and Second Area together. The information on these area connection area
stored in table AreaAdjacent and table AreaCross. Table AreaAdjacent stores
information of areas that is adjacent to each other while table AreaCross stores
information of the town connecting these areas together. With this, the Town
Database setup is completed.
5.3.2.2 Route Generation Process
Route Generator uses the concept of solving a combinatory problem by
searching all possibilities that would form a full path connecting the entire
destination given to it starting from the departure location. Figure 5.30 shows the
overall processing algorithm of Route Generator.
Start
Current Departure town
= Departure Location
Find if there exist direct
connection with current
departure town
Direct connection
exists?
Yes
Add to route path
Current departure
town = Destination
No
Yes
No
Find direct
connection to
intermediate town
Compute
TotalDistance,
TotalTime,
TotalCost
Yes
Find if there exists
indirect connection
with current
departure town
Indirect
connection exists?
Anymore
destination?
No
Find connection
between area, and link
between current
departure location to
destination
Figure 5.30: Processing algorithm of Route Generator
End
72
Based on the list of destination and departure location, the Route Generator
will retrieve information from Town Database to determine which destination has
direct connection with the departure location. It will then link the departure location
to the first town which has direct connection with the departure location and this
forms the starting point of creating a path and this first town will become the current
departure town. Next, Route Generator will continue to find which destination has
direct connection with this current departure town. However, not every destination
chosen by user has direct connection with each other. So, if Route Generator could
not find any destination having direct connection with a current departure town, it
will begin to search Table RouteList of Town Database for indirect connection with
single intermediate town. If not result is found, then Route Generator has to refer to
Table AreaAdjacent and Table AreaCross of Town Database for solution.
The process continues until Route Generator is able to link the entire
destination together. In the case of more than one destination has direct connection
with a current departure town, Route Generator will create branches that eventually
lead to a list of possible combination result. The last part of process in of Route
Generator will compute the total distance, total estimated traveling time and total
cost for each result. The following are the variables, constants and equations used in
the computation:
i)
ii)
Assumptions
vH
=
Highway speed constant, 110 km/hr
vNH
=
average speed constant for non-highway road, 75 km/hr
cp
=
Cost of petrol per km =
RM 0.10 /km
cH
=
Cost of toll fares per km
=
RM 0.1236 / km
Formula
DH = Σ (dmn)Highway
where,
dmn = Distance from townm to townn, in km
DH = Total distance of highway road in km
(5.1)
73
DNH = Σ (dmn) non-Highway
where,
DNH = Total distance of non-highway road in km
tH =
where,
=
DNH / vNH
(5.4)
=
tH
+
tNH
(5.5)
DNH
(5.6)
t = total estimated travelling time
D
where,
(5.3)
tNH = Total estimated travelling time on non-highway road
t
where,
DH / vH
tH = Total estimated travelling time on highway road
tNH
where,
(5.2)
=
DH
+
D = Total distance
Overall cost, C
=
D × cp + DH × cH
(5.7)
74
5.3.2.3 Route Evaluation Process
In this process, all possible options created during route generation process
will be rated. For each of the option, a time value, tv and cost value, cv will be
calculated. The following are the equations used to compute these values.
n
SumTime = ∑ t i
(5.8)
i
where,
n = total number of options
ti = total estimated traveling time of option I
n
SumCost = ∑ Ci
(5.9)
i
where,
Ci = total estimated traveling time of option i
ti


tv = 1 − 

 SumTime 
where,
tv = time value of option i
Ci

cv = 1 − 
 SumCost
where,
(5.10)



(5.11)
Cv = cost value of option i
After getting the value of tv and cv for each option, then the total marks, Mi
for that option can be calculated according as the following:
75
If priority is given to time then,
M i = 0 .8(t v ) + 0 .2 (c v )
(5.12)
or if priority is given to cost then,
M i = 0 .2 (t v ) + 0 .8 (c v )
(5.13)
All the options generated by Route Generator will be evaluated and ranking
according to the total marks, Mi and the three options having the highest Mi value
will be displayed to the user.
5.3.3
User Interface
User interface is the intermediary between the user and JTIS. The main goal
of a user interface is to display and obtain needed information in an accessible and
efficient manner. Basically, the user interface can be composed of text, graphic, and
control objects such as button, drop-down list, list box, checkbox and radio button.
The uses of these control objects enable the user to interact with the system in order
to get required information. Figure 5.31 shows the overall hierarchy of JTIS main
user interface.
Three examples of user interfaces are shown in the following figures. Figure
5.32 shows the JTIS homepage user interfaces while Figure 5.33 shows the main
menu of administration panel. Figure 5.34 shows the main menu of lodging service
provider which will be displayed after login into JTIS.
76
JTIS
HomePage
Administrator
Login
Administrator
Menu
Tourism Service
Provider Login
Tourism Service
Provider Menu
Place Interface
Lodging
Interface
Trip Planner
Interface
Tourism
Information
Interface
Figure 5.31: Overall hierarchy of main user interface of JTIS
Figure 5.32: User interface of JTIS homepage
77
Figure 5.33: User interface of administration control panel
Figure 5.34: User interface of lodging service provider main menu
78
5.3.4 ASP Script Engine
This component is use to create rich HTML pages based on page templates.
Most of the elements and layout of a given page are static, but the data contained in
the page changes based on the user's query or some other factor. Template-based
page architecture provides special tags to be placed in a "master" HTML document,
or template. When a browser requests this document, some tags specify the actions
to be performed by the application server, and others represent where the resulting
data should be placed on the page. The generated page combines the formatting of
the template page with the real-time information provided by the JTIS application
server which is powered by Microsoft Internet Information Services 5.0 (IIS 5.0).
Figure 5.35 shows the request and response between client and JTIS application
server using ASP script engine.
JTIS application server
File storage
request
Client browser
pure HTML
page1.asp
page2.asp
ASP script
engine
Figure 5.35: Execution of ASP script engine
5.3.5
Multimedia Support
Multimedia support such as video clips and photo slides are used to provide
user with more real-time experiencing of the destination and services provided.
Having these multimedia elements will help to build the confidence of the potential
tourist in destination selection for traveling. Table 5.3 and Table 5.4 show the
specifications for the video and image element used in JTIS.
79
Table 5.3: Video Specifications
Specification Type
Specification
File type
.avi, .mpeg, .mov
File size
Maximum 1 MB
Video length
~ 7 seconds
Video size
320 × 240, MPEG1 standard 352 × 288
Frame rates
25 or 29.97 frames per second
Table 5.4: Image Specifications
Specification Type
Specification
File type
.jpg, .gif, .bmp
File size
Maximum 50 kB
Image Size
Maximum 150 × 150
* Image size greater than maximum allowable value will be scaled to fit
The specification of an image has to be set so that a page can be loaded
quickly and not interrupted by large image size. The same applies to video file
format. As current Internet connection is still not so suitable for high-speed and
asynchronous data-transfer, the video specification in JTIS has to be limit to
maximum video file size of 1 megabytes.
5.3.6
JTIS Database
A centralized database system using relational database schema is required
for the consistent management of JTIS tourism information. JTIS database is
consists of 13 tables which store all the data provided by its user. All data can be
retrieved when user want to make modifications and updated when user commit to
save the changes made. The detailed of the JTIS database design will be discussed
under Section 5.4.2.
80
5.3.7
User
The system targets three different group of user: Johore Department of
Tourism, tourism service provider, and the public Internet which might be the
potential tourist. These user groups provide the inputs and receive the output from
the system via the web browser to satisfy their needs and requirement.
5.4
JTIS Requirement Analysis And Design
By using an object-oriented use-case driven methodology, the requirement
analysis and design of JTIS are conducted. This section will present about the
process and deliverables of JTIS requirement analysis and design phase using
Unified Modeling Language (UML) notation.
5.4.1 JTIS Requirement Analysis Phase
The main objective of the analysis is to capture the requirements of the
system and what the system must do to satisfy the users’ requirements of the system.
By using the information and data-gathered through the interview with the Johore
Department Tourism officer and some documents provided by them, the analysis
process is conducted according to the use-case driven object-oriented analysis which
describes the system from the users’ perspective.
5.4.1.1 Actor Identification
An actor is anything that interacts with the system. In the current system,
three types of actors have been identified, which are the management staff of the
Johore Department of Tourism, tourism industry service provider and the public who
81
is interested in tourism information. These three actors will be called as Tourism
Department Officer, Tourism Service Provider, and tourist respectively in the
proposed system JTIS. However, a member actor is added to JTIS that refers
specifically to the tourism service provider which registered with JTIS to become
part of JTIS to provide their service information. Due to time constraint, the scope of
the proposed system has been set to include lodging service provider and destination
management agencies only as member actor for JTIS.
5.4.1.2 Use-case Diagram Modeling
In this section, use-case diagram for each of the module constructed. The
use-cases represent how the actors will use the system to achieve their tasks, thus
providing a general overview of the system functionality. The following figure
shows several use-cases designed for JTIS. The documentation of use-case diagram
of JTIS is included in Appendix B.
Check
Applic ation
Login
Create Member
List Report
Tourism
Department Officer
Add/E dit Content
Plan Trip
Browse place
<<include>>
Tourist
Search keyword
Add Place To Cart
Figure 5.36: Several use-cases of JTIS
82
5.4.1.3 Analysis Object Diagram Modeling
In this section, an analysis object diagram will be developed to describe the
system structure. This analysis object diagram is consists of three different types of
objects: interface object, entity object and control object. Each of these objects has
its own purpose and will model one specific aspect of the system. Table 5.5
summarized the entity object, interface object and control object identified for JTIS.
The analysis object diagram can be referred to Appendix C.
Table 5.5: Analysis object of JTIS
Analysis Object
Analysis object
Type
Entity object
ValidUser, Member, Administrator, ValidUserSession,
Application, Member, LodgingApplicationDetails, Content,
Keyword, Place, PlaceImage, PlaceVideo, Lodging,
LodgingImage, LodgingPresentationPage, Lodging,
Content, Place, Cart, TripSpec, LodgingSpec
Interface object
LoginPanel, ValidUserPanel, ApplicationForm,
LodgingForm, ContentEditor, KeywordEditor, PlaceEditor,
MultimediaUploader, LodgingEditor,
LodgingPresentationEditor, ReportSelector,
MemberListReport, PlaceVisitedReport, LodgingReport,
PlaceAddedReport, PlaceCategoryReport, PlaceCategory,
SearchBox, TripPlanner, TripResult, LodgingResult
Control object
UserValidator, ReportGenerator, TripGenerator, Search,
LodgingFinder
5.4.2
JTIS Detailed Design
Based on the use-case model and analysis object diagram from requirement
analysis phase, the detailed design of JTIS can be conducted. The rest of this section
will describe the processes conducted to design the whole JTIS system.
83
5.4.2.1 JTIS Implementation Environment Identification
In this section, the implementation environment of JTIS will be identified.
This include the target environment where the where the system should execute
during operation, programming language and existing product that should be used
for the realization of the system. The following Table 5.6 list out the implementation
environment identified for JTIS:
Table 5.6: Implementation Environments of JTIS
Implementation Environment
JTIS operation execution
Description
Windows 2000 platform
Information Services 5.0 as web server
Internet Explorer as web browser
Database management system
Microsoft Access 2000
Server-side programming language
Active Server Pages 3.0 using VBScript
syntax
Client-side programming language
VBScript and JavaScript
5.4.2.2 Design Object Diagram Modeling
The design object diagram will further refine the analysis object diagram in
light of the actual implementation environment. The first attempt to draw the
diagram is simply direct mapping from the analysis object diagram, except using
different notation to differentiate between the two diagrams. Then, the design object
diagram is analyzed and modified to ensure that the semantics of the object can
reflect the semantics of the classes existing in the actual system for easier
implementation later. Thus, this diagram is an abstraction of how the actual system
really is built. Its final structure, however, will reflect how the implementation
environment has affected design object modeling.
As ASP 3.0 will be used as programming language during the
implementation phase, the characteristics of how ASP can support the object-
84
oriented style of programming has to be taken into consideration. The following list
out what changes has to be made from object-oriented features so that it can be
implemented with ASP.
i)
As ASP does not support inheritance, hence, all abstract classes or objects
have to be removed, and its attributes being implemented in the child
classes or objects.
ii)
Extends association have to be reversed and convert into unidirectional
asscociation.
iii)
A single ASP page can perform the task as an entity, interface or control
object. Hence, the analysis object can be simplified as appropriate by
joining exisiting analysis objects into one in the design object model.
Figure 5.37 shows part of the design object diagram of JTIS. The complete
design object diagram of JTIS is attached under Appendix D.
LoginPanel
UserValidator
send request
create
ValidUserSession
redirect to
AdminPanel
redirect to
PlaceMemberPanel
validate
Member
validate
Administ rator
redirect t o
LodgingMemberPanel
Figure 5.37: Part of design object diagram of JTIS
5.4.2.3 Interaction Diagram Modeling
Interaction diagram is about designing the use cases which were described in
the requirement analysis phase. For each use case, a sequence diagram is drawn to
model the interaction occur between objects participating in that use case. The
85
interaction takes place as the objects send messages to each other. These messages
are actually the method of the object. So, the main purpose of the use case design is
thus to define the method of the object, so that it can be used in class design later.
Figure 5.38 shows an example of sequence diagram for login use-case by Tourism
Department Officer actor. The sequence diagrams for other use-cases are attached in
Appendix E.
: Tourism
Department Officer
Login()
: LoginPanel
: UserValidator
Chec kLogin( )
: Administrator
: ValidUserSession
: AdminPanel
Get Record( )
All valid record
Compare( )
create( )
display( )
Figure 5.38: Sequence diagram for login use-case
5.4.2.4 Class Design
The class design involves defining attributes and methods for each class of
the design object diagram. This can be done by referring to the interaction diagram
developed in the previous section. Through the use case design, we have implicitly
specified the class method. Hence, by taking all interaction diagrams where a class
participated and extracting all the operations defined for that class, we will have a
complete picture of the requirements of a class. In JTIS development, 45 classes
have been identified and design its internal structures. Figure 5.39 show the example
86
of two classes of JTIS, UserValidator class and Administrator class. For reference of
other classes design, please refer to Appendix F.
Administrator
UserValidat or
CurrUserName : String
CurrPassword : password
CurrUserType : String
UserList : recordset
Result : Boolean
CheckLogin()
Compare()
AdminID : autonumber
UserName : String
Password : password
Status : String
Name : String
LastLogin : Date
EmployeeID : Integer
Position : String
Get Record()
(a)
(b)
Figure 5.39: Example of class design for (a) UserValidator and (b) Administrator
5.4.2.5 JTIS Database Design
The database system of JTIS is designed using relational schema using
Microsoft Access 2000. In the database design process, object-relation mapping
technique is applied to map object or class identified in the class diagram into table
in relational schema. A table is created to represent each class, and the fields of each
table are the same as the attributes of the corresponding class. Each row holds the
attribute values of a single object. Table 5.7 shows a simple mapping relation
between object-oriented concept and relational schema concept.
Table 5.7: Object-Relation Mapping
Object-Oriented
Relational Database
Class
Table
Object
Row
Attribute
Column
Based on the design class diagram of JTIS, 11 classes need to be mapped into
tables, which include:
87
i)
Member class
ii)
Administrator class
iii)
Application class
iv)
Content class
v)
Keyword class
vi)
Place class
vii)
ImagePlace class
viii)
VideoPlace class
ix)
Hotel class
x)
ImageHotel class
xi)
Lodging Finder class
However, by applying Table-Multiple Classes Mapping and normalization
techniques, the final number of tables needed in JTIS is 13. Table-Multiple class
mapping technique collapse the number of tables required whereas normalization
technique expand the number of tables required. For detailed documentation of the
database design, please refer to Appendix E.
5.4.2.6 JTIS Hypermedia Design
In hypermedia design for JTIS, the navigation structure and design is
properly take into consideration and modeled to develop a well-designed web
application. The design of hypermedia of JTIS is consists of two steps: the
navigation design and presentational design. The rest of this section will discuss
about the process and outcomes from the hypermedia design of JTIS.
a)
JTIS Navigation Design
Navigation design process consists of identifying navigation class and
constructing navigation structure model. The former specifies which objects can be
88
visited by navigation through the JTIS while how these objects are reached is
defined by the navigation structure model. As different actor has different
requirement from JTIS, the navigation design for JTIS should be done separately for
each actor of JTIS to ensure that the complete navigation design of JTIS can be
captured. Table 5.8 below summarizes the navigation class identified for each actor
of JTIS.
Table 5.8: Navigation Class
Actor
Navigational Class
Place, Content, ApplicationForm, Cart, Trip Planner,
Tourist
Lodging, LoginPanel, MainPage, LodgingFinder, TripResult,
LodgingResult, SearchBox
PlaceMember
LodgingMember
Tourism Department
Officer
Member, PlaceEditor, Multimedia, PlaceMemberPanel
Member, LodgingEditor, LodgingPresentationEditor,
LodgingMemberPanel
Application, ContentEditor, ReportSelector, KeywordEditor,
MemberListReport, PlaceVisitedReport, PlaceAddedReport,
PlaceCategoryReport, LodgingReport, AdminPanel
The next step after identifying navigation class is building navigational
structure model. This model defines the navigation of the application, that is how
navigational objects are visited. To achieve this objective, additional model elements
may be added between navigational objects. These additional model elements
include navigational context and access primitives, such as menus, indexes, external
node, query and guided tour. If there exists more than one navigation context for a
navigation class, a UML package is used to group these navigation contexts for
graphical representation’s purposes.
Figure 5.40 shows the navigational structure model of Tourist. From the
Main Page, there are altogether 10 navigational contexts accessible by Tourist, three
grouped into PlaceContext, two grouped into LodgingContext, and others by its own.
89
contentbyTitle
contentIndex
?
PlaceContext
byPlaceName ?
byPlaceCategory
byPlaceKeyword ?
placeIndex
SearchBox
placeCategory
Index
ApplicationForm
Main Page
LoginPanel
CartbySession
?
keywordQuery
?
tripPlanner
placeinCart
tripResult
TripPlannerbyOption
?
LodgingContext
LodgingFinder
LodgingbyName ?
hotelResult
LodgingbyLocation
Lodging
byLocation
Figure 5.40: Navigational Structure Model of Tourist
In Figure 5.40, there is a keywordQuery that allow navigation which
originates from PlaceContext and lead to PlaceByKeyword context again. In other
words, by having this navigation capability, Tourist can navigate information of one
place to another place by using keyword. Figure 5.41 shows the example of
navigation using keywordQuery.
<Page 1>
Pulau Besar
..fishing....coral
.... snorkelling.....
<Page 2>
Pulau Sibu
<Page 3>
Pulau Rawa
..............fishing.
coral...
... fishing....
.... snorkelling.....
Figure 5.41: Example of navigation using keywordQuery
90
As illustrated in Figure 5.41, a keyword located within description for a place
of interest such as “fishing” in the example above, will be displayed as a hyperlink
that can lead user to another link containing the similar keyword. The navigation
style is cyclic, indicating that both direction of navigation is allowable. The
keywordQuery will generate a list of all available links containing the keyword that
the user has clicked, and user can navigate to any of the links provided. Basically,
the keywordQuery internal processing is similar to a search engine function except it
provides a different approach that initiates the searching for a keyword.
PlaceMemberPanel
?
multimedia
OfPlace
memberQuery
placeOfMember
memberbyMemberID
?
multimediabyPlace
PlaceEditor
byPlaceName
?
?
Figure 5.42: Navigational structure model for Place Member
Figure 5.42 shows the navigational structure model of Place Member. From
PlaceMemberPanel, PlaceMember can navigate to MemberbyMemberID navigation
context through a hidden MemberQuery, and navigate to PlaceEditorbyPlaceName
navigation context through a PlaceofMember index, and lastly navigate to
MultimediabyPlace navigation context through a MultimediaOfPlace index.
Figure 5.43 shows the navigational structure model of Lodging Member.
From LodgingMemberPanel, LodgingMember can navigate to MemberbyMemberID
navigation context through a hidden MemberQuery, and navigate to
LodgingEditorByMemberID navigation context through a hidden LodgingQuery,
and lastly navigate to LodgingPresentationpagebyMemberID navigation context
through a LodgingPresentationQuery.
91
LodgingMemberPanel
?
?
LodgingPresentation
Query
?
memberQuery
LodgingQuery
memberbyMemberID
?
LodgingEditor
byMemberID
?
LodgingPresentationPage
?
byMemberID
Figure 5.43: Navigation structure model for Lodging Member
The navigational structure model of Tourism Department Officer is
illustrated in Figure 5.44. From AdminPanel, Tourism Department Officer can
navigate to ApplicationByMemberType navigation context through a
ApplicationIndex, and navigate to ContentEditorByTitle navigation context through
a ContentIndex, and lastly navigate to ReportSelectorByReportType navigation
context through a Report index, which in turn lead to a ReportQuery that produces
the report selected.
AdminPanel
MemberList
Report
applicationIndex
application
byMemberType
reportIndex
?
ContentIndex
contentEditor
byTitle
ReportSelector
byReportType
PlaceAdded
Report
?
?
KeywordIndex
KeywordEditor
byKeyword
?
PlaceVisited
Report
ReportQuery
PlaceCategory
Report
Lodging
Report
Figure 5.44: Navigation structure model for Tourism Department Officer
92
On the other hand, the presentational design of JTIS is also constructed to
determine the way in which navigational objects will appear, which interface objects
will activate navigation and which interface transformation will take place. Hence, a
presentational model is build for each navigational context as an abstract user
interface, showing how the navigational structure is presented to the user. This
presentational model is helpful for the developer to prototype the user interface
before proceed to implementation phase. Figure 5.45 show the presentational design
model for PlaceByCategoryContext. Other presentational models are included in
Appendix G.
As illustrated in Figure 5.45, the PlaceByCategory context is consists of
columns of place of interest of a specific category. A column of place of interest is
titled by the place name, along with an image and brief description or summary of
the place of interest. Besides, there are also anchor or hyperlink which can provide
more information of a place of interest. For example, hyperlink “VideoClip” will
activate the client default program for opening video file.
PlaceByCategoryContext
Category
Category Index
PlaceName
Image
VideoClip
PlaceSummary
Event
Add To Trip Planner
More Detail
PlaceName
Image
PlaceSummary
VideoClip
Event
Add To Trip Planner
More Detail
Figure 5.45: Presentational Model of PlaceByCategory Context
93
5.5
Chapter Summary
This chapter has described the JTIS architecture, components and modules.
Based on the architecture, the requirement analysis and detailed design of JTIS are
conducted. The model produced in requirement analysis phase includes use-case
diagram, and analysis object diagram, while the model produced in detailed design
process are design object diagram, interaction diagram, class design, database design
and hypermedia design diagram. In next chapter, the implementation of JTIS based
on these designs will be discussed.
CHAPTER VI
JTIS IMPLEMENTATION
6.1
Introduction
Implementation involves transforming the analysis and design model of JTIS
into executable form. For JTIS implementation, Active Server Pages 3.0 (ASP) is
used as the server side scripting language. In this chapter, based on the analysis and
design model, the implementation, that is the source code of JTIS modules will be
discussed.
6.2
JTIS Modules Development
Three main modules of JTIS are Tourist Module, Tourism Service Provider
Module and Administration Module. Each of these modules is then be decomposed
into several submodules. The rest of this section will discuss and show few of the
submodules implemented which include Login submodule, Register submodule,
Report submodule, Content Editor submodule, Edit Services Information submodule
and Plan Trip submodule.
95
6.2.1
Login Submodule
This Login submodule controls the login process of member or administrator
trying to access certain restricted area of JTIS services. Class LoginPanel is a user
interface that will display a form consists of login name and password for user to
enter. An additional field, MemberType is needed to specify which type of member
the user is registered.
Values entered in the login panel class will send a request to UserValidator
class upon being submit, which will check JTIS database for matching loginname
and password. Table 6.1 shows the code extraction of validating loginname and
password of member. If the loginname and password match one the entries in the
database, then the login process is successful and user are being redirected to the
member panel. An ASP Session object is created to store temporarily the value of
MemberID and a boolean type variable blnValiduser to indicate the current session is
of a valid member.
Table 6.1: Code Extraction of UserValidator class
<%
`------------------------------- Defining class attributes and method -----------------------Class UserValidator
Public strMemberName, strPassword, strMemberType, blnSecond
Private sub CreateSession()
Session("MemberName") = strMemberName
Session("MemberType") = strMemberType
End Sub
Public Sub CheckLogin()
Call CreateSession()
Dim strURL, rsUsers
set rsUsers = Server.CreateObject("ADODB.Recordset")
Select Case UCASE(strMemberType)
Case "ACCOMMODATION SERVICE PROVIDER"
strSQL = "SELECT MemberID, MemberName, Password, Group,” &
LastLogin from Member where (MemberName='" & strMemberName
& "' and Group = 'ACC')"
Case "DESTINATION MANAGEMENT SERVICE PROVIDER"
strSQL = "SELECT MemberID, MemberName, Password, Group,
LastLogin from Member where (MemberName= '" & strMemberName &
"' and Group = 'Place')"
End Select
96
Table 6.1: Code Extraction of UserValidator class (continued)
rsUsers.Open strSQL, objConn, adOpenStatic, adLockOptimistic, adCmdText
If rsUsers.EOF Then
' User with login name specified not found
Response.Redirect "login.asp?SecondTry=True"
' - allow another go
Else
If UCase(rsUsers("Password")) = UCase(strPassword) Then
Session("blnValidUser") = True
If strMemberType <> "Administrator" then
Response.Redirect "Member/MemberIndex.asp" ' successful login
Elseif strMemberType = "Administrator" then
Response.Redirect "admin/AdminIndex.asp"
' successful login
End if
End If
' Username right; password wrong
Response.Redirect "login.asp?SecondTry=True&WrongPW=True"
End If
End Sub
End Class
`--------------------------- End of defining class attributes and method-----------------`------------------------------ Using class to perform function ------------------------------Dim newlogin
Set newlogin = new UserValidator
'-------------------------------------- Getting Values -------------------------------------------With newlogin
.strMemberName = Request("MemberName")
.strPassword = Request("Password")
.strMemberType = Request("MemberType")
.blnSecond = CBool(request("SecondTry"))
End with
newlogin.checklogin()
%>
6.2.2
Register Submodule
Register submodule consists of an interface for displaying the membership
application form for tourism service provider to register with JTIS online. For new
registration, all fields in the application form will be left empty. In the case of
existing member want to change its registration particulars, the values for each field
will be retrieved from the Member table of JTIS database and displayed accordingly.
Hence, the implementation of this interface must be able to handle both cases of new
user registration and existing user editing registration particulars. This can be done
easily by checking whether the Session object has value for variable MemberID and
97
value for variable blnValidUser is set to true. If the Session object detects that the
current user is an existing member, it will retrieve values for each field of the
application form from the Member table. To display values for each field, an
additional short form of ASP code need to be embedded in between HTML tag of
the application form interface, just like the following extract:
<INPUT TYPE="Text" ID="companyName" NAME="CompanyName"
VALUE="<%= Session("CompanyName")%>" SIZE="42" >
Table 6.2: Code Extraction of Application Form
<FORM
<% if Session("blnValidUser")= True And Request("Update") = "True" then
Response.write "ACTION='AddUser.asp'"
Else
Response.write "Action = 'Queue.asp?'"
End if %> NAME="frmUser" METHOD="POST">
<table><TR><TD>Company Registration Name:</TD>
<TD><INPUT TYPE="Text" ID="companyName" NAME="CompanyName"
VALUE="<%= Session("CompanyName")%>" SIZE="42" ></TD></TR>
<TR><TD>Company Registration No.:</TD>
<TD><INPUT TYPE="Text" ID="CompanyNum" NAME="CompanyNum"
VALUE="<%= Session("CompanyNum")%>" SIZE="42"></TD></TR>
<TR><TD>Company Address:</TD>
<TD><INPUT TYPE="Text" ID="AddressLine1" NAME="AddressLine1"
VALUE="<%= Session("AddressLine1")%>" SIZE="42"></TD></TR>
<table><TR><TD>Login name:</TD>
<TD><% If request("action") = "AddNew" then
response.write "<INPUT TYPE='text' NAME='MemberName'
ID='MemberName' SIZE='40'>"
Else
response.write Session("MemberName")
End if %> </TD></TR>
<INPUT TYPE="button" Value = 'Submit' onClick= CheckData() >
</TR></TABLE>
</FORM>
Table 6.2 shows more of the code extraction of the application form. The
application submitted by user will be stored temporary in the database until Tourism
Department Officer check and validate whether to approve the membership
application. The application result, whether being approved or rejected, will be
informed to the applicant by Tourism Department Officer.
98
6.2.3
Report Submodule
Report submodule is used by Tourism Department Officer to keep track of
user activities of using JTIS. Various report that can be generated include
MemberList Report, Place Visited Statistic Report, Place Added Statistic Report, and
Lodging Report. Table 6.3 shows the code extraction of generating a Place report.
For every report, the source code for Chart class is included so that it can be reused
to draw a horizontal chart showing the statistical data of the report.
Table 6.3: Code extraction of generating a Place report
<%
`--------------------------------- Declaring variables -----------------------------------------Dim strPlace, ReportType, Place,rsPlace, PlaceValue(), PlaceName()
Set rsPlace = server.CreateObject("ADODB.recordset")
`------------------------------------------- Getting Values -------------------------------------strPlace = request("PlaceID")
ReportType = request("ReportType")
`------------------------------------------Begin processing -------------------------------------rsPlace.Open "Place", objConn, adOpenstatic, adLockreadonly, adcmdTable
Place = Split(strPlace, ", ")
Redim PlaceValue(Ubound(place))
Redim PlaceName(Ubound(Place))
For y =0 to Ubound(Place)
Place(y) = Int(Place(y))
rsPlace.Filter = "PlaceID = " & Place(y)
PlaceName(y) = rsPlace("PlaceName")
Select Case Reporttype
Case "Visited"
PlaceValue(y) = rsPlace("Visited")
Case else
PlaceValue(y) = rsPlace("Added")
End select
Next
Select Case Reporttype
Case "Visited"
ChartTitle = "Statistic Visited Count"
Case else
ChartTitle = "Statistic Added Count"
End select
99
Table 6.3: Code extraction of generating a Place report (continued)
`------------------------------------ Create Chart instance -------------------------------------set BAR = new HorizontalBarChart
with BAR
.outerborder="1"
.title = ChartTitle
.titlefontsize = "4"
.text = PlaceName
.values = Join(PlaceValue, ",")
.SumIs100 = false
.colors = "red, blue, yellow"
.Order = "TBV"
.DataAlign = "left"
.ScaleColor = "green"
.ShowPercentage = false
.ShowTotal = false
.BarHeight = "15"
.TextColWidth = "200"
.buildgraph
end with
set BAR = nothing
%>
<!-- include Chart class -->
<!--#include file="horizontal_bar_chart.asp"-->
6.2.4
Content Editor Submodule
Content Editor submodule allows Tourism Department Officer to publish
tourism information on JTIS. It is consists of an user interface which uses <iframe>
tag to create an editable column. This editable column enables Tourism Department
Officer to insert text, image or hyperlink. Besides, a formatting toolbar is created to
help with text formatting job. The document edited, called as ‘content’ will be saved
and any image embedded will be uploaded to the JTIS server. Table 6.4 shows the
code extraction of ContentEditor.
100
Table 6.4: Code Extraction of ContentEditor
<form action="EditorSave.asp" method="post" name="frmSave">
<input type="hidden" name="ArticleID" value="<%=ArticleID %>">
<input type="text" name="Title" size=30 value="<%=Title>"><br>
<!-- ------------------------ Creating formatting toolbar ---------------------------- -->
<table id="tblCoolbar" width=100% cellpadding="0" cellspacing="0"
border="0">
<tr><td><div class="cbtn" onClick="cmdExec('cut')"
onmouseover="button_over(this) ;" onmouseout="button_out(this);"
onmousedown="button_down(this);" onmouseup="button_up(this);">
<img align=absmiddle src="images/Cut.gif" alt="Cut"></div></td>
<td><div class="cbtn" onClick="cmdExec('copy')"
onmouseover="button_over(this);" onmouseout="button_out(this);"
onmousedown="button_down(this);" onmouseup="button_up(this);">
<img align=absmiddle src="images/Copy.gif" alt="Copy"></div></td>
<td><div class="cbtn" onClick="doSubmit()" onmouseover="button_over(this);"
onmouseout="button_out(this);" onmousedown="button_down(this);"
onmouseup="button_up(this);">
<img align=left align=absmiddle src="images/Save.gif" alt="Save">
<font class="txtbtn">Save  </font></div></td></tr></table>
<!-- ----------------------------- Creating editable column -----------------------<iframe width="100%" id="idContent" height="350"></iframe>
</form>
6.2.5
-->
Edit Information Services Submodule
The purpose of Edit Information Services submodule is to provide the
functionality for JTIS member to edit and maintain their tourism services
information. This module is consists of two parts, one for Destination Management
Service Provider and another for Lodging Service Provider. The following section
will describe the implementation of each part of this submodule.
101
6.2.5.1 Part I: Destination Management Service Provider
This part of Edit Service Information submodule is to provide functionality
for Place Member to add or edit information of a place of interest managed by them.
The information provided then will be made available to public access. Table 6.5
shows the code extraction for saving a newly added place information or an existing
place information. All the information provided by Place Member in the place
information form will be stored in the Place table of JTIS database.
Table 6.5: Code extraction of saving place information
<%
`------------------------ Creating Place Class with attributes and methods ----------------Class Place
Public objRS, overwrite
Public Function TransferToTablePlace(objRS, overwrite)
Dim BriefDesc, strDescription, strDirName, strFileName
If not objRS.EOF then
objRS("DestID") = Session("MemberID")
objRS("PlaceName") = request("PlaceName")
strDescription = Trim(request("Description"))
objRS("District") = request("District")
objRS("PlaceType") = request("PlaceType")
objRS("Location") = request("Town")
objRS("DirName") = request("District")
BriefDesc = Trim(request("BriefDesc"))
objRS("BriefDesc") = BriefDesc
strFileName = Session("MemberID") & "_" & objRS("PlaceID") &
& objRS("District")
strDirName = "District\" & request("District")
ObjRS("FileName") = strFileName & ".txt"
If overwrite="True" then
Call wfile(strDirName, strFileName & ".txt", true, strDescription)
Else
Call wfile(strDirName, strFileName & ".txt", false,strDescription)
End if
objRS.Update
TransferToTablePlace = True
Else
TransferToTablePlace = False
End if
End Function
End Class
102
Table 6.5: Code Extraction of saving place information (continued)
`------------------------------------ Begin processing -----------------------------------------Dim rsPlace, strSQL2, strAction, myPlace, PlaceValue
Set myPlace = new Place
Set rsPlace = Server.CreateObject("ADODB.Recordset")
strSQL2 = "Select * from Place where DestID =" & Session("MemberID")
rsPlace.Open strSQL2, objConn, adOpenStatic, adLockOptimistic, adCmdText
strAction = request("SubmitButton")
if strAction = "Save" then
If request("CurrentPlaceID") = "" then ' Case for Add New Place
rsPlace.AddNew
PlaceValue = myPlace.TransferToTablePlace (rsPlace, "False")
Else
` case for editing existing place
rsPlace.Filter = "PlaceID = '" & request("CurrentPlaceID") & "'"
PlaceValue = myPlace.TransferToTablePlace (rsPlace, "True")
End if
If PlaceValue = True then
response.write "<BR> Place details saved."
response.end
Else
response.write "<br>ERROR! Unable to saved."
response.end
End if
End if
%>
6.2.5.2 Part II: Lodging Service Provider
The main function of this part of Edit Services Information submodule is to
provide a functionality for Lodging Member to edit information of a accommodation
such as hotel, resort or chalet managed by them. The information provided which
includes lodging name, category, facilities, location and room rates will be used in
Trip Planner for finding accommodation for the destination selected by user. Table
6.6 shows the code extraction for saving lodging information.
103
Table 6.6: Code extraction for saving lodging information
<%
`-------------------------------------- initiating variables---------------------------------------Dim rsHotel, strHotel
Set rsHotel = server.createobject("ADODB.recordset")
strHotel = "Select * from HotelDetails where HotelID = " & Session("HotelID")
rsHotel.Open strHotel, objConn, adOpenstatic, adLockOptimistic, adCmdText
`--------------------------------------- Getting values ------------------------------------------If Not rsHotel.EOF then
rsHotel("HotelName") = Request.Form("HotelName")
rsHotel("HotelCategory") = Request.Form("HotelCategory")
rsHotel("Location") = request.Form("Town")
rsHotel("District") = request.Form("District")
Dim strMyFacility, rsFacilities, strSQL2, fldF, blnChecked
Set rsFacilities = Server.CreateObject("ADODB.Recordset")
strSQL2 = "Select * from HotelFacilities where HotelID=" &
Session("HotelID")
rsFacilities.Open strSQL2, objConn, adOpenStatic, adLockOptimistic,
adCmdText
`------------------------------------ Getting Facilities values ---------------------------------For Each fldF In rsFacilities.Fields
' loop through the fields
If not fldF.Name = "HotelID" then
For i = 1 to request("Facilities").Count
strMyFacility = request("Facilities")(i)
If fldF.Name = strMyFacility then
blnChecked = True
fldF.Value = True
Exit For
Else
blnChecked=False
End if
Next
If blnChecked <> True then fldF.Value = False
End if
Next
rsFacilities.Update
rsFacilities.Close
Set rsFacilities = nothing
`------------------------------------- Getting room rates values -------------------------------Dim HotelCategory, rsRoom, rsChalet, strRoom, strChalet
strRoom = "Select * from RoomRates where HotelID=" & S ession("HotelID")
Set rsRoom = Server.CreateObject("ADODB.recordset")
rsRoom.Open strRoom, objConn, adOpenStatic, adLockOptimistic, adCmdtext
HotelCategory = request.Form("HotelCategory")
For u = 1 to 3
RoomRatesTemp = request("RoomRates(" & u & ")")
If RoomRatesTemp = null or RoomRatesTemp = "" then
104
Table 6.6: Code extraction for saving lodging information (continued)
If not rsRoom.EOF then rsRoom.Delete
Else
If rsRoom.EOF then
rsRoom.AddNew
End if
rsRoom("HotelID") = Session("HotelID")
rsRoom("RoomRates") = RoomRatesTemp
rsRoom("RoomName") = request("RoomName(" & u & ")")
rsRoom.Update
End if
If not rsRoom.EOF then rsRoom.MoveNext
Next
rsRoom.Close
rsHotel.Update
If rsHotel("Status") = True and rsHotel("ready") = true then
Session("HotelStatus") = True
Else
Session("HotelStatus") = false
End if
End if
rsHotel.Close
set rsHotel = nothing
%>
6.2.6
Plan Trip Submodule
The main function of Plan Trip submodule in JTIS is to create a trip planner
tool that can generate a trip plan based on the destinations and departure location
provided by Tourist. Table 6.7 shows code extraction of how the destination selected
by Tourist being saved temporary into a trip planner cart created using ASP scripting
dictionary object which hold a pair of key and its value. Trip planner cart’s key will
used be to count the number of destination selected while the key’s value will be
used to store the place unique identification number.
105
Table 6.7: Code extraction of Cart class
<%
`-------------------------------------- Creating Cart class -------------------------------------Class Cart
Public iItemID, dictCart, CartCount
`-------------------------------------- initializing cart class ----------------------------------private sub Class_Initialize
If IsObject(Session("cart")) Then
Set dictCart = Session("cart")
Else
Set dictCart = Server.CreateObject("Scripting.Dictionary")
End If
CartCount = dictCart.count
end sub
`------------------------------------- adding place to cart ------------------------------------Public Sub AddItemToCart(iItemID)
dictCart.Add iItemID, iItemCount
end Sub
`----------------------------------- display all item in cart to user----------------------------Public Sub ShowItemsInCart()
Dim Key, Counter, aParameters, dictCount
DictCount = dictCart.Count
if DictCount <> 0 then
counter = 0
Call drawHeader2("Selected Place", "Black", "White")
For Each Key in dictCart
aParameters = GetItemParameters(Key)
Select Case Counter/5
Case "1","2","3","4","5","6","7","8","9"
response.write "<tr>"
End Select
If aParameters(1) = True then
response.write "<TD align=center><a href='AttractionMore.asp?
PlaceID=" & Key & "'><img align = middle border=0 src=
'./images/" & aParameters(2) & "'></a>"
Else
response.write "<TD align=center><span style='backgroundcolor: #B0E6FF'><a href='AttractionMore.asp?PlaceID=" & Key
& “’><font size =2 color='#000080'><strong>" &
aParameters(0) & "</strong></font></span>"
End if
response.write "<br><font size=2><a href='TripPlanner.asp?
action=del&PlaceID=" & Key & "'>Remove</a></font></td>"
counter = counter + 1
Next
response.write "</tr></table>"
response.write "<p align=right><font size=1 face=arial><a href=
'AttractionMain.asp'>Add More Place ofInterest</a></font> </p>"
106
Table 6.7: Code extraction of Cart class (continued)
Else
response.redirect "TripPlanner.asp"
End if
CartCount = dictCount
End Sub
End Class
`---------------------------------------- Begin processing -------------------------------------Dim myCart
Set myCart = new Cart
sAction = CStr(Request.QueryString("action"))
iItemID = CInt(Request.QueryString("PlaceID"))
' Select action based on user input
Select Case sAction
Case "add"
myCart.AddItemToCart iItemID
myCart.ShowItemsInCart
Case else
If myCart.CartCount <> 0 then
myCart.ShowItemsInCart
End if
End Select
' Return cart to Session for storage
Set Session("cart") = myCart
Set myCart = nothing
%>
Table 6.8 shows the code extraction of TripGenerator class processing the
input received so that it can be used for the process of finding and combining each
place starting from the departure location provided by user. The real processing of
generating route, as illustrated in Figure 5.30 in previous chapter is implemented by
several methods of TripGenerator class. Table 6.9 shows the code extraction of
TripGenerator GeneratePlan method, which will call the CheckDirect, CheckInter,
and CheckTargetArea and CheckCross method during its processing to find
connection between one place to another place. There are several other methods
which are not included here due to space limit, but however, contribute to the overall
route generation process.
107
Table 6.8: Code extraction of TripGenerator class for processing input
<%
`----------------------------------- initializing variables -----------------------------------Dim rsDirect, rsInter, LoopArea(),LoopTown(), LoopTownCount, strSQL2, strSQL3
Dim Departtown, Budget, SearchTownCount, SearchTown(), SearchArea(),
PlaceCount
Set rsDirect = Server.CreateObject("ADODB.Recordset")
Set rsInter = Server.CreateObject("ADODB.Recordset")
strSQL2 = "Select * from TownDistance where TownID1=" & DepartTown & " or
TownID2=" & DepartTown
rsDirect.Open strSQL2, objConn, adOpenStatic, adLockReadOnly, adCmdText
strSQL3 = "Select * from RouteList where TownID1=" & DepartTown & " or
TownID2=" & DepartTown
rsInter.Open strSQL3, objConn, adOpenStatic, adLockReadOnly, adCmdText
LoopTownCount = 0
`--------------------------------------- getting values ------------------------------------------DepartTown = request("DepartureLocation")
Budget = request("Budget")
SearchTownCount = request("SearchTownCount")
If SearchTowncount < 0 or searchTownCount = null or SearchTownCount = "" then
SearchTownCount = -1
Else
SearchTownCount = int(SearchTownCount)
redim SearchTown(SearchTownCount)
redim SearchArea(SearchTownCount)
For z=0 to SearchTownCount
SearchTown(z) = CLng(request("SearchTown(" & z & ")"))
SearchArea(z) = CLng(request("SearchArea(" & z & ")"))
Next
PlaceCount = Int(request("PlaceCount"))
End if
Table 6.9: Code extraction of TripGenerator GeneratePlan method
<%
Private Function GeneratePlan(iy,iInitialPathNum, ipathNum, CurrSearchTown,
CurrSearchArea, CurrDepart, SearchTownCount, Initial, iInitialDistance,
iTotalDistance, CallFunction)
`--------------------------------------- initiating variables -------------------------------------Dim jLoopTown(), jLoopArea(), jCurrDepart
jLoopTownCount = 0
jCurrDepart = CurrDepart
`-- -------------------------- reduce iteration for cross area problem------------------------If CallFunction = "CrossArea" then
Result = CompareInitial("" & Initial & "", CurrSearchTown)
If result = false then
jLoopTownCount = jLoopTownCount + 1
Redim Preserve jLoopTown(jLoopTownCount)
108
Table 6.9: Code extraction of Trip Generator GeneratePlan method (continued)
Redim Preserve jLoopArea(jLoopTOwnCOunt)
jLoopArea(jLoopTownCount) = CurrSearchArea
jLoopTown(jLoopTownCount) = CurrSearchTown
End if
Else
` ------------------------- checking if direct connection exists --------------------For s=0 to SearchTownCount
if not Clng(SearchTown(s)) = Clng(jCurrDepart) then
Result = CompareInitial("" & Initial & "", SearchTown(s))
If result = false then
frsCurrDirect.FIlter = "TownID1 = " & SearchTown(s) &
" or TownID2=" & SearchTown(s)
If not frsCurrDirect.EOF then
jLoopTOwnCount = jLoopTownCount + 1
Redim Preserve jLoopTown(jLoopTownCount)
Redim Preserve jLoopArea(jLoopTOwnCOunt)
jLoopArea(jLoopTownCount) = searchArea(s)
jLoopTown(jLoopTownCount) = SearchTOwn(s)
End if
End if
End if
Next
if jLoopTownCount = 0 then
' ----------------------checking route town --------------------------------------For s = 0 to SearchTownCount
if not Clng(SearchTown(s)) = Clng(jCurrDepart) then
Result = CompareInitial("" & Initial & "", SearchTown(s))
If result = false then
frsCurrInter.Filter = "TownID1 = " & SearchTown(s) & " or
TownID2 = " & SearchTown(s)
if not frsCurrInter.EOF then
jLoopTownCount = jLoopTOwnCount + 1
Redim preserve jLoopTown(jLoopTOwnCount)
Redim Preserve jLoopArea(jLoopTOwnCOunt)
jLoopArea(jLoopTownCount) = searchArea(s)
jLoopTown(jLoopTownCount) = SearchTown(s)
End if
End if
End if
Next
End if
if jLoopTownCount = 0 then '----------- no connection found -----------------for s = 0 to SearchTownCount
if not Clng(SearchTown(s)) = Clng(jCurrDepart) then
Result = CompareInitial("" & Initial & "", SearchTown(s))
if result = false then
jLoopTownCount = jLoopTOwnCount + 1
Redim preserve jLoopTown(jLoopTOwnCount)
109
Table 6.9: Code extraction of Trip Generator GeneratePlan method (continued)
Redim Preserve jLoopArea(jLoopTOwnCOunt)
jLoopArea(jLoopTownCount) = searchArea(s)
jLoopTown(jLoopTownCount) = SearchTown(s)
End if
End if
Next
End if
End if
`----------------------------------------- Begin processing -------------------------------------For t=1 to jLoopTownCount
jCurrentTown = Clng(jLoopTown(t))
Result = Call CheckDirect(iy,iInitialPathNum, ipathNum, CurrSearchTown,
CurrSearchArea, CurrDepart, SearchTownCount, Initial, iInitialDistance,
iTotalDistance, CallFunction)
If result = false then
Result = Call CheckInter(iy,iInitialPathNum, ipathNum, CurrSearchTown,
CurrSearchArea, CurrDepart, SearchTownCount, Initial, iInitialDistance,
iTotalDistance, CallFunction)
If result = false then
Result = Call CheckCross ((iy,iInitialPathNum, ipathNum,
CurrSearchTown, CurrSearchArea, CurrDepart, SearchTownCount,
Initial, iInitialDistance, iTotalDistance, CallFunction)
End if
End if
Next
%>
Table 6.10 shows the code extraction of TripGenerator CheckDirect method.
The task performed by this method is to find if there exists any direct connection
between the current town and current departure location. If there is, then the current
town will be added to the route, and method GeneratePlan will be recursively being
called again until the route is completed If not, this function will terminate and return
to GeneratePlan method. The GeneratePlan method will then direct its execution to
CheckInter method, which code extraction, is shown in Table 6.11.
110
Table 6.10: Code extraction of TripGenerator CheckDirect method
<%
Private Function CheckDirect (t,iInitialPathNum, ipathNum, CurrSearchTown,
CurrSearchArea, CurrDepart, SearchTownCount, Initial, iInitialDistance,
iTotalDistance, CallFunction)
`------------------------------- initiating variables ---------------------------------------------Dim frsCurrDirect,jstrCompareDict, Result, iTotalDistance, jCurrTotal
Dim NCurrDepart, NcurrArea, kInitialDistance, kInitial, kpathnum, strSQL2
Set frsCurrDirect = Server.CreateObject("ADODB.Recordset")
strSQL2 = "Select * from TownDistance where TownID1 = " & jCurrDepart & "
or TownID2 = " & jCurrDepart
frsCurrDirect.Open strSQL2,objConn, adOpenStatic adLockReadOnly,
adCmdText
frsCurrDirect.Filter = "TownID1 = " & jCurrentTown & " or TownID2 = " &
jCurrentTown
frsCurrDirect.Filter = "TownID1 = " & jCurrentTown & " or TownID2 = " &
jCurrentTown
If not frsCurrDirect.EOF then
----mean got direct connection btwn Currdepart town n this currenttown------If dictpath(ipathnum) = initial then
AddTownToRoute ipathNum,jCurrentTown
jCurrTotal = iTotalDistance + frsCurrDirect("Distance")
AddDistance ipathnum, jCurrTotal
Else
iPathNum = ipathnum + 1
dictPath(ipathNum) = initial & "," & jCurrentTown
jCurrTotal = iTotaldistance + frsCurrDirect("Distance")
DictDistance(ipathnum) = iInitialdistance & "," & jCurrTotal
End if
`- change current departure location, recursively call GeneratePlan function--NCurrDepart = jCurrentTown
NCurrArea = CurrsearchArea
kInitialDistance = dictDistance(iPathnum)
kInitial = dictpath(iPathNum)
jInitialPathNum = iPathNum
kPathNum = iPathnum
Call GeneratePlan(t, jInitialPathnum, kpathnum, "", NCurrArea,
NCurrDepart, SearchTownCount, kInitial, kInitialDistance, jCurrTotal, "" )
else
CheckDirect = False
Exit Function
End if
End Function
111
The function of CheckInter method is to find if there exists any indirect
connection with single intermediate town between the current town and current
departure location. If there is, then the current town will be added to the route. If not,
this function will terminate and return to GeneratePlan method. The GeneratePlan
method will then direct its execution to CheckCross method, which code extraction
is shown in Table 6.12.
Table 6.11: Code extraction of TripGenerator CheckInter method
<%
Private Function CheckInter(t,iInitialPathNum, ipathNum, CurrSearchTown,
CurrSearchArea, CurrDepart, SearchTownCount, Initial, iInitialDistance,
iTotalDistance, CallFunction)
`------------------------------------ initiating variables ----------------------------------------Dim frsCurrInter,strSQL3, RouteID, jTownBtwn, jCurrTotal, NcurrDepart
Dim NcurrArea,kInitialDistance, kInitial, jinitialpathnum
Set frsCurrInter = Server.CreateObject("ADODB.Recordset")
strSQL3 = "Select * from RouteList where TownID1 = " & jCurrDepart & " or
TownID2 = " & jCurrDepart
frsCurrInter.Open strSQL3, objConn, adOpenStatic, adLockReadOnly,
adCmdText
frsCurrInter.Filter = "TownID1 = " & jCurrentTown & " or TownID2 = " &
jCurrentTown
If not frsCurrInter.EOF then
'---------mean got inter connection btwn depart town n this currenttown -----------While not frsCurrInter.EOF
RouteID = frsCurrInter("RouteID")
jTownbtwn = frsCurrInter("TownBtwnID")
if dictpath(ipathnum) = initial then
Else
iPathnum = ipathnum + 1
dictPath(iPathNum) = initial
dictDistance(ipathnum) = iInitialDistance
End if
AddTownToRoute iPathNum , jTownBtwn
AddTownToRoute ipathnum ,jCurrentTown
AddDistance ipathnum, iTotalDistance
jCurrTotal = iTOtalDistance + Clng(frsCurrInter("TotalDistance"))
AddDistance ipathnum, jCurrTotal
`- change current departure location, recursively call GeneratePlan function-NCurrDepart = jCurrentTown
NCurrArea = CurrSearchArea
kInitialDistance = dictDistance(iPathnum)
kInitial = dictpath(iPathNum)
jInitialPathNum = iPathNum
kPathNum = iPathnum
112
Table 6.11: Code extraction of TripGenerator CheckInter method (continued)
Call GeneratePlan(t, jInitialPathnum, kpathnum, "", CurrArea,
NCurrDepart,SearchTownCount, kInitial, kInitialDistance, jCurrTotal, "")
frsCurrInter.MoveNext
Wend ' for wending frsCurrInter
Else
CheckInter = false
Exit function
End if
End Function
%>
Table 6.12: Code extraction of TripGenerator CheckCross method
Private Function CheckCross(t,iInitialPathNum, ipathNum, CurrSearchTown,
CurrSearchArea, CurrDepart, SearchTownCount, Initial, iInitialDistance,
iTotalDistance, CallFunction)
`---------------------------------------- initiating variables ------------------------------------Dim jrsCrossArea, jTownConnect, jInterArea, jstrSQL4, jCrossCount, jInterTown
Dim jstrStopCross, jTargetArea, strSQL3, strSQL2, frsStage1, frsStage2
Dim frsCurrDirect, frsCurrInter, rsTownList
Set jrsCrossArea = Server.CreateObject("ADODB.Recordset")
jstrSQL4 = "Select * from AreaCross1 where AreaID1 = " & jCurrDepartArea &
" or AreaID2 = " & jCurrDepartArea
jrsCrossArea.Open jstrSQL4, objConn, adOpenStatic, adLockReadOnly,
adCmdText
Set frsStage1 = Server.CreateObject("ADODB.Recordset")
Set frsStage2 = Server.CreateObject("ADODB.recordset")
Set frsCurrDirect = Server.CreateObject("ADODB.Recordset")
Set frsCurrInter = Server.CreateObject("ADODB.Recordset")
Set rsTownList = server.createobject(“ADODB.recordset”)
strSQL2 = "Select * from TownDistance where TownID1 = " & jCurrDepart & "
orTownID2 = " & jCurrDepart
frsCurrDirect.Open strSQL2, objConn, adOpenStatic, adLockReadOnly,
adCmdText
strSQL3 = "Select * from RouteList where TownID1 = " & jCurrDepart & " or
TownID2 = " & jCurrDepart
frsCurrInter.Open strSQL3, objConn, adOpenStatic, adLockReadOnly,
adCmdText
rsTownList.Open "Select * from TownList where TownID = " & CurrDepart,
objConn, adOpenStatic, adLockReadOnly, adCmdText
jCurrDepartArea = rsTownList("Area")
rsTownList.Close
`----------------------------------- Begin processing ----------------------------------------frsCurrDirect.Filter = "TownID1 = " & jCurrentTown & " or TownID2 = " &
jCurrentTown
jrsCrossArea.Filter = "AreaID1 = " & Clng(jLoopArea(t)) & " or AreaID2 = " &
Clng(jLoopArea(t))
113
Table 6.12: Code extraction of TripGenerator CheckCross method (continued)
If not jrsCrossArea.EOF then
For jCrossCount = 0 to jrsCrossArea.RecordCount - 1
jstrStopCross = ""
jInterTown = jrsCrossArea("TownConnectID")
if not Clng(jInterTown) = Clng(jTargetTown) And not Clng(jIntertown) =
Clng(jCurrDepart) then
jInterArea = jrsCrossArea("CrossAreaID")
frsCurrDirect.Filter = "TownID1 = " & jInterTown & " or TownID2
= " & jInterTown
If not frsCurrDirect.EOF then
'--mean got direct connection btwn depart town n this jInterTown----jstrStopCross = jInterTown
jCurrTOtal = iTotalDistance + Clng(frsCurrDirect("Distance"))
jstrDistance = jCurrTotal
%>
<!--#include file="TripPlannerResult_IncludeFunctionCrossArea.asp"-->
<%
Else
frsCurrInter.Filter = "TownID1 = " & jInterTown & " or
TownID2=” & jInterTown
If not frsCurrInter.EOF then
'-mean got route connection btwn depart town n this jInterTown --While not frsCurrInter.EOF
RouteID = frsCurrInter("RouteID")
jTownBtwn = frsCurrInter("TownBtwnID")
jstrStopCross = jTownBtwn & "," & jInterTown
jCurrTotal = iTotalDistance + Clng(frsCurrInter
("TotalDistance"))
jstrDistance = iTotalDistance & "," & jCurrTotal
%>
<!--#include file="TripPlannerResult_IncludeFunctionCrossArea.asp"-->
frsCurrInter.MoveNext
Wend 'for looping frsCurrInter
End if
End if
End if
jrsCrossArea.moveNext
Next ' looping jrsCrossArea
End if ' for jrsCrossArea.EOF
In Table 6.12, there are few lines which used server includes function to
include a file “TripPlannerResult_IncludeFunctionCrossArea.asp”. By using such a
server include function, it can make the source code more readable as repeated lines
of code can be taken out as another file, and then allowing the main code to include
this file as though as it is still within the main code. Table 6.13 show the source code
of the include file in Table 6.12. This file performs checking on whether to add
114
current town to current route and if yes, continue execution to change current
departure location into current town, and recursively call method GeneratePlan to
execute.
Table 6.13: Code of TripPlannerResult_IncludeFunctionCrossArea.asp
<%
if not jstrStopCross = null or not jstrStopCross = "" then
`---------------- to check if current town already included in current route -------------jstrCompareDict = initial & "," & jstrSTOPCross
If CallFunction = "CrossArea" then
Result = CompareDictCrossArea(dictPath, jstrCompareDict, jLoopTown(t))
Else
Result = CompareDict(dictPath, jstrCompareDict)
End if
If result = false then
`---------------------------- add current town to current route ----------------------------if dictpath(ipathnum) = initial then
Else
iPathnum = ipathnum + 1
End if
dictPath(iPathNum) = initial & "," & jstrStopCross
dictDistance(ipathnum) = iInitialDistance & "," & jstrDistance
kInitialDistance = dictDistance(ipathnum)
kInitial = dictpath(iPathNum)
jInitialPathNum = iPathNum
kPathNum = iPathnum
`--- change current departure location, recursively call GeneratePlan method ----NCurrDepart = Clng(jInterTown)
NCurrArea = Clng(jInterArea)
iPathNum = GeneratePlan(t,jInitialPathNum ,kPathnum, jLoopTown(t),
jLoopArea(t),NCurrDepart, SearchTownCount, kInitial, kInitialDistance,
jCurrTotal, "CrossArea")
End if
' for result false
End if 'for jstrStopcross not null
%>
6.3
Chapter Summary
This chapter has described the implementation of several submodules of
JTIS. Explanation is given on how the implementation is done by using code
extraction of the submodule as implementation result. The submodules presented
115
here include Login submodule, Register submodule, Report submodule, Content
Editor submodule, Edit Services Information submodule and Plan Trip submodule.
CHAPTER VII
JTIS TESTING
7.1
Introduction
In this chapter, JTIS testing procedure and result will be discussed. The
testing strategies adopted in the development of JTIS include program debugging,
input and output testing, testing over network and usability testing. Some of these
testing procedures, such as program testing and input/output testing are carried out
from time to time so that any error or mistakes can be corrected earlier. The other
testing procedures such as testing over network and usability testing are conduced
later after the system is completed.
7.2
JTIS Program Debugging
Program debugging of JTIS is conducted using two methods, that are using
ASP response.write method and Microsoft Script Debugger application. Program
debugging is done by executing each function available on every user interface
through the web browser. The purposes of program debugging includes checking
whether:
i)
program syntax is correct
ii)
program logic is correct
117
iii)
program is able to execute accordingly and produce the desired or
expected result
iv)
program does not affect other files or unrelated data
An example of program debugging using response.write method is to check the
loop count in a loop procedure such as while…wend. Table 7.1 shows how
response.write method is used to keep track of values of two variables, that are
LoopCount and rsPlace(“PlaceID”). Figure 7.1 shows the sample output for the
program code written in Table 7.1.
Table 7.1: Example of program debugging using response.write method
<%
`------------------------- initiating variables and open recordset----------------------------Dim rsPlace, strPlace, LoopCount
Set rsPlace = Server.CreateObject(“ADODB.recordset”)
strPlace = “Select * from Place where MemberID =” & Session(“MemberID”)
rsPlace.Open strPlace, objConn, adCmdOpenstatic, adlockOptimistic, adCmdText
If not rsPlace.EOF then
LoopCount = 0
`---------------------------------- begin looping --------------------------------------------While not rsPlace.EOF
LoopCount = LoopCount + 1
`---keep track of LoopCount and rsPlace(“PlaceID”) value for each loop execution--Response.write “<br>Current LoopCount =” & LoopCount
Response.write “, with PlaceID =” & rsPlace(“PlaceID”)
rsPlace.MoveNext
Wend
Else
Response.write “Query return no result”
End if
rsPlace.close
Set rsPlace = nothing
%>
Figure 7.2 shows the interface of using Microsoft Script Debugger to debug
program code. Few of the debugging function provided by Microsoft Script
Debugger such as Toggle/Clear Breakpoints and Run are used to test the program.
These debugging functions allow part of the program to execute and halted
temporarily at line where Breakpoint is inserted. While being halted, user can track
the values for each variable in the Command window of Microsoft Script Debugger.
Example in Figure 7.2 shows the program being halted at line with an block arrow
118
pointed to it. Meanwhile, the Command window shows the values of two variables,
rsPlace(“PlaceName”) and rsPlace(“PlaceID”).
Figure 7.1: Sample output for the program code in Table 7.1
Figure 7.2: Example of program debugging using Microsoft Script Debugger
119
Program debugging using Microsoft Script Debugger is different from using
response.write method in which the response.write method is only capable of
showing all output in one go after the program execution is completed while
Microsoft Script Debugger enable debugging while the program is executing. In the
case of complex program code processing, program debugging using Microsoft
Script Debugger is more powerful than using response.write method as
response.write method is unable to tell exactly what is the cause of error.
Meanwhile, program debugging using Microsoft Script Debugger enable user to
track the error by inserting breakpoints at certain lines and this can help user to find
the cause for the error of the program code. However, response.write method is a
faster way of interpreting and tracking output for program code that is not too
complex. Hence, both methods are useful in the overall program debugging process
of JTIS.
7.3
Input Testing
Input testing is required for those program code which request input from the
user, that is by using HTML <form> tag. Generally, there are several types of input
field, which include textbox, drop-down list, radio button, checkbox and text area.
Input testing is required to check and validate that the user had entered or select
appropriate value for each field.
Two methods can be used in order to perform input testing, which is serverside input testing and client-side input testing. Server-side input testing is conducted
after the user submits the form while client-side input testing could validate the form
just before the user submits it to server. Hence, client-side input testing is better than
server-side input testing as it can make sure that the values entered has been
validated before sending it to server. This also could reduce the number of requests
the browser need to send to server if there are errors in input fields. However, both
methods are recommended to be used to ensure that input testing is performed
thoroughly and avoid unneccessary mistakes.
120
Table 7.2: Example of code for client-side input testing
<Script language="VBScript">
<!-Function frmRegister_onSubmit()
Dim TheForm, intReturn
Set TheForm = Document.frmRegister
If TheForm.MemberName.Value = "" then
MsgBox "Please enter your member name", vbOKOnly +
vbExclamation, "Incomplete field"
frmRegister_onSubmit = False
Exit function
End if
if TheForm.Poscode.value = "" then
MsgBox "Please enter value for poscode", vbOKOnly +
vbExclamation, "Incomplete field"
frmRegister_onSubmit = False
Exit function
Else
If IsNumeric(TheForm.Poscode.value) = False then
MsgBox "Poscode value must be numeric", vbOKOnly +
vbExclamation, "Incorrect value type"
frmRegister_onSubmit = False
Exit function
End if
End if
End Function
-->
</Script>
Table 7.2 shows the code of client-side input testing written in VBScript
language for validating text-only field, MemberName and number-only, Poscode
field. If there are errors in the input provided by user, message box containing types
of errors will be displayed. Figure 7.3 illustrates an example of the message box
while Figure 7.4 illustrates an example of server-side input testing for invalid
password.
Figure 7.3: Example of error message for input testing
121
Figure 7.4: Example of server-side input testing for invalid password
7.4
Output Testing
The procedure of output testing is basically same as program debugging.
Output testing is conducted by executing the program to check whether the desired
output is being displayed accordingly. Similarly, the response.write method is also
used to track the output of each processing part of program. Output testing is also
needed to check whether the input provided by user has been processed correctly by
the server. An example of such a case is user modifying his/her registration
particulars. After modifying the previous registration particulars, if the user clicked
the Save button, the system should be able to process the input and save the changes
to the database. If the process is successful, the system should display the messages
“The changes has been saved successfully” as illustrated in Figure 7.5. Further
testing should be continued by viewing again the registration particulars whether the
modified values has really been saved.
122
Figure 7.5: Example of output testing
7.5
JTIS Testing Over Network
In order to test whether the system developed can run smoothly, the
following preparation are made before performing the overall system testing.
i)
Add more data set has to be added to the JTIS database, including
number of place of interest, number of hotel within a location, more
content and event data.
ii)
Set up another computer with network card to act as client computer.
iii)
Connect the server computer with the client computer using network card
and cable.
After the preparation is complete, the system is put into test by using two
computers networked together for each of the functionality of JTIS.
123
7.6
JTIS Usability Testing
For usability testing, 36 students have been approached to try and test the
implemented prototype. As there are altogether three different types of actors for this
system, the students are requested to assume the three roles separately so that each of
the functionality available for different actor can be tested. For each role, an usability
or acceptance questionnaire is prepared and distributed for the students to evaluate
the system. These questionnaires are included in Appendix H. The following table
shows the rating scale used in these questionnaires.
Table 7.3: Rating scale for usability questionnaire
Rating
Very Poor
Poor
Moderate
Good
Very Good
Score
1
2
3
4
5
Basically, the questions in questionnaires are divided into few categories,
which include:
i)
User interface
ii)
Usability
iii)
Usefulness
iv)
System response
v)
Security
vi)
Overall satisfaction
For each of these categories, one or more questions may be asked in order to
get more feedback from the user. As the data obtained from the usability testing is in
the form of unclassified data group, the following equation is used to calculate the
mean of rating score for each question.
xm =
∑
f i ⋅x i
n
(7.1)
124
where,
xm
=
mean of rating score for question m
fi
=
frequency of xi
xi
=
rating score i for question m
n
=
total number of user
First of all, the students are asked to assume the role as Tourist who visits the
JTIS web site to look for more tourism information of Johore. Table 7.4 shows the
evaluation result for the Tourist role. There are altogether 17 questions in this
section.
Based on Table 7.4, the
xm
values for each question is plotted on a bar
graph as illustrated in Figure 7.6. The highest score is 4.67 for system response
accordingly while the lowest score is 2.67 for JTIS help function. This shows that
there is a need to improve the help function of JTIS so that it will provide more
useful guide for user.
5.00
Rating
4.00
3.00
2.00
1.00
0.00
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Question number
Figure 7.6: Mean for Tourist role usability questionnaires result
125
Table 7.4: JTIS Usability Questionnaire Result for Tourist Role
Rating Scale
Question
Mean
1
2
3
4
5
1. Overall user interface design
0
0
6
11
19
4.36
2. Multimedia contents presentation
0
2
9
16
9
3.89
3. Consistency
0
0
5
12
19
4.39
4. Overall user friendliness
0
4
10
13
9
3.75
5. Ease of use
0
0
14
16
6
3.78
6. Understanding of using the system
1
4
10
17
4
3.53
7. Help function
2
11
20
3
0
2.67
8. Trip planner criteria
2
3
17
14
0
3.19
9. Trip planner result options
1
6
17
12
0
3.11
10. Accommodation criteria selection
1
3
6
11
15
4.00
11. Search function
0
0
5
14
17
4.33
12. Overall concept of trip planner
0
0
2
14
20
4.50
13. Response time
0
0
10
16
10
4.00
14. Response accordingly
0
0
3
6
27
4.67
0
0
4
10
22
4.50
0
0
9
15
12
4.08
0
0
2
13
21
4.53
7
33
149
213
210
A) User Interface
B) Usability
C) Usefulness
D) System Response
E) Overall Satisfaction
15. Guide flow for obtaining place
information
16. Overall guide for planning a trip
17. Overall satisfaction of using the
system
Total
126
Very Poor Poor
1%
5%
Very Good
34%
Moderate
24%
Good
36%
Figure 7.7: JTIS evaluation based on Tourist role
For a more clearer view on the overall JTIS Tourist role’s evaluation result,
Figure 7.7 in the form of pie chart is used to show the percentage of rating frequency
for all questions. It is clear that on the whole, the rating score for Tourist role of JTIS
has achieved a great percentage for rating score of Good and Very Good, which
represent 36 % and 34 % of the overall usability testing. The remains left 24 % for
rating score Moderate, 5 % for rating score Poor and 1 % for rating score Very Poor.
To further analyze the evaluation result, Table 7.5 computes the average
mean value for each usability criteria in the questionnaires while the result is again
plotted on a bar graph as in Figure 7.8 for graphical representation purpose. Figure
7.8 shows that system usability achieved the lowest score of 3.43 while the overall
satisfaction gave the highest score of 4.37. Besides, it also shows that the average
mean score of usability criteria of JTIS is in the range from 3.40 to 4.40, indicating
the average score for Tourist role usability testing is moderate good.
Table 7.5: Average mean value of usability criteria for Tourist role
Usability Criteria
Mean
User interface
4.21
Usability
3.43
Usefulness
3.83
System response
4.25
Overall satisfaction
4.37
127
4.5
4
3.5
3
2.5
Rating
2
1.5
1
0.5
0
4.21
3.43
User
interface
4.25
4.37
System
response
Overall
satisfaction
3.83
Usability
Usefulness
Usability criteria
Figure 7.8: Average mean score of usability criteria for Tourist role
On the other hand, the system usability test for the Tourism Service Provider
role is also conducted with the same method. Table 7.6 shows the evaluation result
for the Tourism Service Provider role. There are altogether 13 questions in this
section. Based on Table 7.6, the
xm
values for each question is plotted on a bar
graph as illustrated in Figure 7.9. The highest score is 4.69 for system response
accordingly while the lowest score is 2.75 for JTIS security design. This shows that
there is a need to increase the security design of JTIS.
5.00
Rating
4.00
3.00
2.00
1.00
0.00
1
2
3
4
5
6
7
8
9
10
11
12
13
Question number
Figure 7.9: Mean for Tourism Service Provider role usability questionnaires result
128
Table 7.6: JTIS Usability Questionnaire Result for Tourism Service Provider Role
Rating Scale
Question
Mean
1
2
3
4
5
1. Overall user interface design
0
0
5
18
13
4.22
2. Consistency
0
0
9
17
10
4.03
3. Overall user friendliness
0
0
10
15
11
4.03
4. Ease of use
0
2
6
13
15
4.14
5. Understanding of using the system
1
3
11
14
7
3.64
6. Help function
0
2
7
12
15
4.11
0
4
10
13
9
3.75
3
6
17
8
2
3.00
0
0
5
13
18
4.36
10. Response time
0
0
2
10
24
4.61
11. Response accordingly
0
0
2
7
27
4.69
4
7
19
6
0
2.75
0
0
3
10
23
4.56
8
24
106
156
174
A) User Interface
B) Usability
C) Usefulness
7. Services promotion
8. Sufficiency of services information
content
9. Multimedia facility/ Presentation page
editor
D) System Response
E) Security
12. Security design
F) Overall satisfaction
13. Overall satisfaction of using JTIS
Total
129
Very Poor
2%
Poor
5%
Moderate
23%
Very Good
37%
Good
33%
Figure 7.10: JTIS evaluation based on Tourism Service Provider role
For a more clearer view on the overall JTIS Tourism Service Provider role’s
evaluation result, Figure 7.10 in the form of pie chart is used to show the percentage
of rating frequency for all questions. It is clear that on the whole, the rating score for
Tourism Service Provider role of JTIS has achieved a great percentage for rating
score of Very Good and Good, which represent 37 % and 33 % of the overall
usability testing. The remains left 23 % for rating score Moderate, 5 % for rating
score Poor and 2 % for rating score Very Poor.
Table 7.7: Average mean value of usability criteria for Tourism Service Provider
role
Usability Criteria
Mean
User interface
4.13
Usability
3.98
Usefulness
3.70
System response
4.65
Security
2.75
Overall satisfaction
4.56
To further analyze the evaluation result, Table 7.7 computes the average
mean value for each usability criteria in the questionnaires while the result is again
plotted on a bar graph as in Figure 7.11 for graphical representation purpose. Figure
7.11 shows that system security design achieved the lowest score of 2.75 while the
130
system response gave the highest score of 4.65. Besides, it also shows that the
average mean score of usability criteria of JTIS for the role of tourism service
provider is in the range of 2.75 to 4.65. However, this range is not well distributed
due to one of the criteria being graded too low score. This indicates that if the
security design of JTIS is increase to user satisfaction level, the average evaluation
of JITS tourism service provider role should be moderate good (range 3.70 – 4.65 )
also.
4.65
5
4.5
4.13
4.56
3.98
3.7
4
3.5
2.75
3
Rating 2.5
2
1.5
1
0.5
0
User interface
Usability
Usefulness
System
response
Security
Overall
satisfaction
Usability criteria
Figure 7.11:Average mean score of usability criteria forTourism Service Provider
role
Last but not least, the students had also been requested to assume the role as
Tourism Department Officer and evaluated the JTIS. Table 7.8 shows the evaluation
result for Tourism Department Officer role test. The same analysis is conducted to
analyze the evaluation result listed in Table 7.8. The
xm
values for each question
are plotted on a bar graph as illustrated in Figure 7.12. The highest score is 4.69 for
system response accordingly while the lowest score is 2.75 for JTIS security design.
This shows that there is a need to increase the security design of JTIS.
131
Table 7.8:JTIS Usability Questionnaire Result for Tourism Department Officer Role
Rating Scale
Question
Mean
1
2
3
4
5
1. Overall user interface design
0
0
2
15
19
4.47
2. Consistency
0
0
8
16
12
4.11
3. Overall user friendliness
0
2
9
15
11
4.06
4. Ease of use
0
1
8
12
15
4.14
5. Understanding of using the system
0
1
13
16
6
3.75
6. Help function
0
2
10
16
6
3.56
0
0
3
14
19
4.44
0
5
12
14
5
3.53
3
8
13
12
0
2.94
10. Response time
0
0
4
11
21
4.47
11. Response accordingly
0
0
2
6
28
4.72
4
7
19
6
0
2.75
0
0
6
14
16
4.28
15
50
215
323
332
A) User Interface
B) Usability
C) Usefulness
7. Content editor design and function
8. Choices or content and presentation of
report
9. Management of membership
application
D) System Response
E) Security
12. Security design
F) Overall satisfaction
13. Overall satisfaction of using JTIS
Total
Figure 7.13 illustrates a pie chart showing the usability test result for Tourism
Department Officer role. It is clear that on the whole, the rating score for Tourism
Department Officer role of JTIS has achieved equal percentage for rating score of
Very Good and Good, which are both 35 % of the overall usability testing. The
remains left 23 % for rating score Moderate, 5 % for rating score Poor and 2 % for
rating score Very Poor.
132
5.00
Rating
4.00
3.00
2.00
1.00
0.00
1
2
3
4
5
6
7
8
9
10
11
12
13
Question number
Figure 7.12: Mean for Tourism Department Officer role usability questionnaires
result
Very Poor
2%
Poor
5%
Very Good
35%
Moderate
23%
Good
35%
Figure 7.13: JTIS evaluation based on Tourism Department Officer role
To further analyze the evaluation result, Table 7.9 computes the average
mean value for each usability criteria in the questionnaires while the result is again
plotted on a bar graph as in Figure 7.14 for graphical representation purpose. Figure
7.14 shows that system security design achieved the lowest score of 2.75 while the
system response gave the highest score of 4.60. Besides, it also shows that the
average mean score of usability criteria of JTIS for the role of tourism service
provider is in the range of 2.75 to 4.60. However, this range is not well distributed
due to one of the criteria being graded too low score. This indicates that if the
security design of JTIS is increase to user satisfaction level, the average evaluation
133
of JITS tourism service provider role should be moderate good (range 3.64 – 4.60)
also.
Table 7.9: Average mean value of usability criteria for
Tourism Department Officer role
5
4.5
4
3.5
3
Rating 2.5
2
1.5
1
0.5
0
Usability Criteria
Mean
User interface
4.29
Usability
3.88
Usefulness
3.64
System response
4.60
Security
2.75
Overall satisfaction
4.28
4.6
4.29
3.88
4.28
3.64
2.75
User
interface
Usability
Usefulness
System
response
Security
Overall
satisfaction
Usability criteria
Figure 7.14: Average mean score of usability criteria for
Tourism Department Officer role
7.7
Chapter Summary
This chapter has discussed the process and procedure of conducting test on
JTIS. Several types of test conducted include program debugging, input and output
testing, and testing over network. Besides, usability testing for measuring user
acceptance rate over the JTIS performance is also carried out and analyzed.
CHAPTER VIII
DISCUSSION
8.1
Introduction
In this chapter, the overall discussion of the study will be presented. This
includes the advantages and limitation of JTIS and finally, some recommendations
for future research are also included.
8.2
Overall JTIS Development Discussion
JTIS development is based on the use-case driven methodology using object-
oriented approach. There are advantages as well as disadvantages of using this
methodology in JTIS development. In terms of user requirement and JTIS
requirement analysis, using use-case model to capture a system requirement is much
easier compared to traditional approach. This is because the use-case model is
modeled based on how the external environment will interact with the system. Usecase model enable developer as well as end user to build a common vocabulary for
describing the system functionality and requirement. This is a particularly strong
point of using this methodology as it will make sure that the end product, that is JTIS
will conform to the user requirement.
Besides, by using use-case model as the base references for other design
model, it creates and maintains the traceability throughout the system development
135
process. This allows the developer to have a clear view on what should be modeled
and how. In short, the use-case driven methodology can increase the understanding
of developer towards the system requirement and build the foundation for the system
implementation in the later phase.
However, despite of the advantages, there are also some disadvantages of
using this methodology. Compared to traditional approach of system development,
object-oriented approach requires extra effort as it uses more diagrams to model
different aspect of the system. This is particularly very time-consuming, as the
model developed has to be refined from time to time to ensure that the traceability
still maintains from the requirement analysis phase until the implementation phase.
Besides, as JTIS is implemented using Active Server Pages (ASP) language
which is not pure object-oriented programming language, there exist a gap for
transforming from the design model into the implementation model directly.
Fortunately, ASP version 3.0 used in the JTIS implementation does have support for
object-oriented style of programming, though it does not support direct translation
from object-oriented design model into source code. Hence, careful considerations
must be taken during the JTIS implementation process where program code is
written by packaging functions into classes in ASP language.
In short, the selection of use-cases driven methodology for developing JTIS
is a correct choice from the view point of the author. By using use-cases model, the
specification of the requirements of a system becomes easier, which drive the design,
implementation and test of the overall system.
8.3
JTIS Advantages
In the development of the JTIS, many efforts have been done in providing a
better solution to the current system, which is basically carried out by manual
processes to gain and distribute tourism information. Consequently, there are many
advantages provided by the newly developed system to ease the processes as well as
136
to increase the efficiency of the Johore Tourism Department in promoting local
tourism industry.
First of all, the JTIS has played two major roles in the local tourism industry.
The roles are it serves as a Johore tourism information provider and a trip planner to
all the tourists who like to visit Johore in future. Generally, the concept of trip
planning in tourism industry using internet and website can be considered as a new
idea in helping the tourism promotion in the country. Therefore, besides using JTIS
to search for tourism information, the potential tourists now could be able to plan
their future trip to Johore at home by using this trip planner. This will help the
tourists to gain a deep look into their trip and do a time and cost save journey.
Besides, JTIS has allowed a faster, cheaper and efficient way for tourism
information publishing compared to traditional practices, like handbook, brochures,
radio, TV, etc. Nowadays, as internet has been one of the fastest grown industry
around the world, the implementation of this JTIS is in line with the internet
development and will foreseen its capability as a tourism information centre.
In terms of trip planner capability, it has able to provide a general guide to
the user or tourists to plan in advance on their trip to Johore by incorporating
decision support system features. The advantages of the use of the planner include:
i)
the best combination route for various destination selected;
ii)
time or cost priority saving option;
iii)
budget estimation; and
iv)
local lodging information for future booking.
Additionally, JTIS also provides some information on events organized by
the places of interest. With this, tourists could be more interested to visit Johore at
certain periods and plan efficiently to save their time and cost.
Apart from many advantages shown for the user or tourists, JTIS is
developed particularly for the tourism service providers, such as the management of
the places of interest and the accommodation providers. With this system available
137
online, they can easily input or update the related data of their services and get the
fastest way to reach the users. Besides, this system provides an opportunity to both
JTIS administration (Johor Tourism Department) and all the service providers in
fostering a more close relationship. This will certainly help in promoting local
tourism industry in the near future. With the close relationship provided by the JTIS
between tourism service providers and the department administrator, it will increase
the awareness of their responsibility to maintain and update latest information with
the department in order to accurately disseminate them to the public. Again, this will
finally help the interaction and collaboration of two parties in providing a better
service to all the tourists.
As a conclusion, this JTIS website has decreased a great burden carried by
the Johore Tourism Department in collecting, managing and distributing all the
tourism related data by computerizing and reorganizing the whole process.
8.4
JTIS Limitation
Although the JTIS implemented had seen its usefulness and advantages in
many aspects, there are still many limitations. This section will discuss about the
limitations identified for JTIS from several aspects based on the feedback during
usability testing, which include the usefulness, usability, interface design, and
security of the system. These limitations have been due to several unavoidable
reasons, such as time constraint in completing the project and lack of data or
information regarding certain aspects.
Several of the identified limitations of the trip planner includes:
i)
Do not provide the capability to show/highlight the location of a place on
map;
ii)
Do not provide the capability to animate or demonstrate the trip plan
generated on a map; and
iii)
The budget calculation cover by the trip planner tool does not include the
138
possible expenses for visiting a place, for example the cost of entry
ticket.
Besides, the trip planner tool is rather inflexible in terms of the users are
limited to select a departure location from the drop-down list, which only include
several major town of Johore. This is because the user might be located at a place
other than what is available as a choice from the drop-down list. Moreover, the trip
planner is also limited to trip planning for those who will use automobile as its
transportation and do not include other modes of transportation in the budget
calculation.
In terms of the contents usefulness, there is lack of more informative content
such as facilities available, opening hours, visiting period, and seasonal period of a
place of interest. Unless the destination management service provider includes this
information in the description column of the place of interest, there are no other
means of capturing these informative content and presenting it to the user.
Some of the limitation identified above are not implemented in the prototype
developed due to time constraint and heterogenous nature of tourism information
that would make the trip planner generation algorithm become too complex to be
construct within the allocated time. However, the limitations can be transformed into
ideas which are included as the future recommendation for improving the current
prototype so that it can fulfill better of the user requirement and expectation.
8.5
Recommendations
Due to time constraint, a functional prototype was developed but with some
shortcomings which need to be overcome. The following are the recommendations
to improve the current prototype in terms of its usefulness, usability, interface design
and security aspect:
139
i) Security of the system should be strengthened to prevent information losses or
illegal access which could cause severe damage to the JTIS database. The
systems security should be able to do encryption on some of the critical tables
from the database, for example the Member table and Administrator table;
ii) Allowing other categories of tourism service provider to register and participate
in providing tourism information service through JTIS. Possible types of tourism
service providers are illustrated in Figure 8.1 below.
Tourism Service Provider
Tour
Operators
Travel
Agencies
Bus
Services
Transportation
Services
Taxi
Services
Flight
Services
Accommodation
Services
Destination
Services
Car Rental
Services
Figure 8.1: More types of tourism service provider
iii) Improving the presentation design for the trip plan generation result, so that it
can provide a clearer guide for the user.
iv) Provide an online reservation system or booking facilities by various tourism
service providers after planning the trip.
v) Increase the types of trip preferences or attributes that can be used as input to
generate a more accurate trip plan for user.
Figure 8.2 shows the improvement that can be made on current JTIS
prototype. More input as listed in Figure 8.2 can be added to allow a more accurate
and effective trip plan that match the user requirement to be generated. These
include timing, duration and sequencing constraints in which user may be allow to
create and modify their trip plan to fit their schedule. Besides, with transportation
services available as part of JTIS, the user may also allow to choose their preferred
transportation modes to travel to and from each of the destination they wishes to
visit.
140
Trip Plan Input (attributes)
Departure location
Trip Plan
Destination
Detailed driving
direction or public
transport guide
Final destination
Sequencing constraints
generate
Timing constraints
Duration constraints
Budget
Room availability
checking and
booking facility
Find similar travel
packages offer by travel
agencies or tour operator
Transport mode
Figure 8.2: Possible improvement on current JTIS prototype
As more inputs are taken to generate the trip plan, the existing route
generation algorithm has to be modified extensively to be able to cope with more
variables. Figure 8.3 suggests a general algorithm for solving the new problem arises
from the increase of trip plan inputs.
In order to create a more intelligent Trip Planner which is able to
accommodate users of different preferences towards attributes of trip plan as
suggested in Figure 8.2, a complex method which comprises a procedure to update
the user preference weights and an algorithm to locate an optimum itinerary using
the weights is required. Different users possess different weights, and the same user
may have varying preferences under different circumstances. The initial weights are
updated to represent a particular user’s preferences under a particular circumstance
in the Trip Planner. Hence, the suggestion here is to create a Trip Planner which can
assists the traveler by proposing to him/her efficient itineraries for visiting multiple
141
Step 1: User provide input
and constraints
Step 2: locate nearest nodes to points selected
by the user and find a minimum path between
every pair of the visit locations based on
generalized cost and store the results in a
t
t bl
Step 3: enumerate all possible
sequences of visits
Step 4: compute travel time each visit location
and develop each sequence into an itinerary
Step 5: check feasibility of the itineraries
against the constraints given by the user
Step 6: evaluate the generalized costs of the
itineraries and present the best two itineraries to
the user and ask which one he/she is satisfied
Step 7: if not satisfied, ask
the user which one if more
preferred; then update the
preference weights based
on user response
Step 8: if satisfied,
go to END.
Figure 8.3: Flow chart of modified Trip Planner algorithm
locations using alternative travel modes. Given the set of locations the traveler
wishes to visit and the constraints associated with the visits, the Trip Planner
develops alternative itineraries for the visits interactively with the traveler, or, the
user. The trip planner presents alternative itineraries to the user, and the user
indicates the Trip Planner which itinerary is more preferable. The trip planner in turn
takes the feedback from the user and updates its objective function to better reflect
the user’s preferences, then generates another set of itineraries. This process is
iterated until a satisfactory itinerary is found.
142
8.6
Chapter Summary
This chapter has present some discussion on the overall development of JTIS
and highlighted some of its advantages and disadvantages for using the selected
methodology for its development. The discussion also further focused on the
advantages and limitation of the system developed and finally, some
recommendations are made for the future possible improvement to the prototype
implemented in this study.
CHAPTER IX
CONCLUSION
In this project, the study aims to bring about the changes, development and
better improvement to the current Johore tourism information system through the
effective use of computer technology in terms of information management to provide
both value and service to attract more tourists coming to Johore. The proposed
system tries to help to increase the efficiency of information management by Johore
Department of Tourism by suggesting a new kind of business relationship between
the department and tourism service provider. This new relationship aligned with the
current information technology revolution, would provide higher benefit and move
the department to a higher level of competency. However, due to time factor, the
scope of this study is limited to two types of tourism service provider: lodging
provider and destination management service provider.
The value-added service proposed by this study is also another advantage to
the system, which would add value to the information provided to potential tourist.
With the help of multimedia support, this will increase their confidence with the
information provided and thus increase the chance of making Johore as their selected
travel destination, which is the objective and purpose of the department acting as the
destination marketing organization for the state government.
In the system development process, the use-case driven approach
methodology was adopted and it is proven to be a very good approach especially in
identifying the user requirement through the use-case model that is traceable from
the analysis phase, design phase and implementation phase. With the use-case model
144
served as the base reference, the analysis and design process of the system becomes
relatively easy as understanding from a user view point was much easier.
Usability testing conducted in the testing phase has shown on the whole, the
system was acceptable by the most of the users. They have agreed that the JTIS
could provide a good guide to the potential tourists and help in promoting the overall
tourism industry of Johore.
As a conclusion, the proposed JTIS has fulfilled the objectives of the study.
This includes to increase the efficiency of the current information management
system and provide value-added service through the application of the trip planner.
Finally, it is recommended that the study could be continued further as
recommended earlier in previous chapter in order to realize the potential of the
proposed system offered that could bring benefit to the tourism industry of Johore.
REFERENCES
Bahrami, A. (1999), “Object-oriented Systems Development: Using The Unified
Modeling Language”, McGraw-Hill Inc., Singapore.
Barry, M. L., Cerf, V. G., Clark, D. D. (2000), “A Brief History of The Internet”,
Internet Society (ISOC), All About The Internet,
http://www.isoc.org/internet-history/brief.html
Bloch, M., Pigneur, Y., Steiner, T. (1996), “The IT-enabled Extended Enterprise:
Applications In The Tourism Industry”, Proceedings of the ENTER’96
conference in Innsbruck, Spring.
Buhalis, D. (1996), “Information Technology As A Strategic Tool For Tourism And
Hospitality Management In The New Millennium”, Tourism Review
Magazine, No. 2 pp. 34-36.
David M. Kroenke and Kathleen A. Nolan (1987), “Business Computer Systems”,
3rd Ed. Santa Cruz, Calif.: Mitchell.
FUNET (2000), http://www.funet.fi/index/FUNET/history/www.htm
Jacobson, I., Chirsterson, M., Jonsson, P., Overgaard, G. (1992), “Object-Oriented
Software Engineering: A Use Case Driven Approach”, Addison-Wesley,
U.S.
James A. Senn (1990), “Information System In Management”, 4th Ed., Wadsworth
Publishing Co., United States.
146
James A. F. Stoner (1982), “Management”, 2nd Ed., Englewood Cliffs, N. J.: Prentice
Hall.
James O. Hicks, Jr. (1987), “Management Information Systems, A User
Perspective”, 2nd Ed., St. Paulm Minn.: West.
Larry Long (1989), “Management Information Systems”, Englewood Cliffs, Prentice
Hall, New Jersey.
McIntosh, Robert W., and Goeldner, Charles R. (1986), “Tourism Principles,
Practices, Philosophies”, John Wiley & Sons, Inc.. New York.
NEAC-MTEN (April 2000), “Statements – FMM: Maintains Ringgits Level Another
Year.”
Poon, A. (1993), “Tourism, Technology and Competitive Strategies”, CAB
International, Oxford.
Pröll, B., Retchitzegger, W., Wagner, R. R., Ebner, A. (1998), “Beyond Traditional
Tourism Information Systems – The Web-Based Approach TIScover”,
Journal of Information Technology in Tourism, Vol. 1, Inaugural Volume,
Cognizant Corp., USA.
Ralph H. Sprague, Jr. (1980), “ A Framework for the Development of Decision
Support Systems,” MIS Quarterly, Vol. 4, No. 4.
Robert, C. M. (1997), “The Tourism System”, 3rd Ed., Kendall/Hunt Publishing of
Dubuque, Iowa.
Robert G. Murdick (1986), “MIS Concepts and Design”, 2nd Ed., Englewood Cliffs,
N.J.: Prentice Hall.
Sheldon, P. (1994), “Information Technology and Computer Systems”, Tourism
Marketing and Management Handbook, 2nd ed., Prentice Hall, London.
147
South Africa (1996), White Paper: “The Development And Promotion of Tourism In
South Africa”, Government of South Africa, Department of Environmental
Affairs and Tourism.
Steven Alter (1996), “Information Systems: A Management Perspective”, 2nd Ed.,
The Benjamin/Cummings Publishing Company, Inc., Canada.
Texas Agricultural Extension Service and Texas Department of Economic
Development (1999), “Developing Tourism In Your Community”.
Tourism Malaysia, Statistical Report Tourist Arrival: January to December 1999,
http://www.tourism.gov.my
Turban, E. (1998), “Decision Support System And Intelligent System”, 5th Ed.
Prentice Hall.
Zhenhua, L. (2000), “Internet Tourism Marketing: Potential And Constraints”,
Fourth International Conference “Tourism in Southeast Asia & IndoChina:
Development, Marketing and Sustainability”, June24-26, 2000.
APPENDIX A
DATA SPECIFICATION
149
Plan Trip Module
Field Name
Data
Type
Text
Size
Number
Text
Text
Long
Integer
10
50
StayPlace
Boolean
-
StayDay
Text
1
LodgingType
Text
1
Drop-down
list
Radio button
Text
Number
Long
Integer
Label
Drop-down
list
Data
Type
Text
Text
Size
Display
form
Textbox
Drop-down
list
Default value
Size
Display
form
Textbox
Default value
Description
Login Name
Data
Type
Text
-
Password
Member type
Text
Text
20
-
Textbox
Drop-down
list
Accommodation
or destination
management
service provider
Member name or
admin login name
Login password
Type of member,
applicable to login
for member only
Departure
Location
Budget
Priority
Selected Place
RoomType
RoomUnit
50
Display
form
Drop-down
list
textbox
Radio button
Checkbox
and item list
checkbox
Default value
Description
User departure
location
Ayer Hitam, Batu
Pahat, Johor
Bahru, Kluang,
Kota Tinggi,
Mersing, Muar,
Pontian, Segamat
-
Budget for the trip
Time or cost
-
Priority of the trip
Destination of trip
False
1-5
A: 5-star
B : 4 -star
C : 3 - star
D : Hotel
E : Resort
F : Chalet
1-5
Place require
lodging
Lodging days
required
Lodging category
Types of room
Unit of room
Search Module
Field Name
Search Text
Search type
20
-
All words or
Exact phrase
Description
Text to search
Search criteria
Login Module
Field Name
20
150
Register Module
Field Name
Data
Type
Text
Size
Display
form
Textbox
Default value
Text
Text
20
50
Textbox
Drop down
list
Text
Text
20
20
Textbox
Textbox
Accommodation
or destination
management
service provider
-
Password
CompanyNum
AddressLine
District
Text
Text
50
20
Textbox
Drop-down
list
PhoneNum
Text
10
Textbox
Batu Pahat, Johor
Bahru, Kluang,
Kota Tinggi,
Mersing, Muar,
Pontian, Segamat
-
FaxNum
Text
10
Textbox
-
Size
Hotel Name
Category
Data
Type
Text
Text
Hotel Location
Text
-
Facilities
RoomType
Text
Text
-
RoomRates
Text
10
Company
Name
MemberName
CompanyType
50
-
Description
Company
registration name
User login name
Member type
Login password
Company
registration no.
Company address
District of the
address
Company phone
number
Company fax
number
Lodging Module
Field Name
50
-
Display
form
Textbox
Drop down
list
Drop down
list
Checkbox
Drop down
list
Textbox
Default value
5 – star, 4 – star,
3 – star, hotel,
resort, chalet
All towns in eight
district
False
Small, medium,
large
-
Description
Name of lodging
Lodging category
Location of lodging
List of facilities
Types of room
Room rental rates
Place Module
Field Name
Place Name
Type
Data Type
Text
Text
Size
50
-
Brief
description
Detail
description
Memo
-
File
-
Display form
Textbox
Drop down list
Description
Name of place
Types of place
Text area
Default value
Islands, beaches,
recreational forest,
shopping, building,
miscellaneous
-
Text area
-
Full description
Place summary
151
Report Module
Field Name
Report type
Place
Data
Type
Text
Size
Boolean
-
List of
Checkbox
Size
Display
form
Textbox
-
Display
form
Drop-down
list
Default value
MemberList,
Place Visited
Statistic, Place
Added Statistic,
Place category
statistic,
Accommodation
statistic
False
Description
Types of report
Places to be
included in report,
for Place Visited
and Place added
report only
Keyword Module
Field Name
Keyword
Data
Type
Text
20
Default value
-
Description
Keyword
APPENDIX B
USE CASE MODEL
153
Use-case documentation for Tourist actor
Add Place To Cart
Browse place
<<include>>
Browse content
<<extend>>
Tourist
Plan Trip
Search k eyword
Find lodging
Use-case diagram for Tourist actor
i)
Browse Content Use-Case
This use-case cover the functionality of JTIS as a web-based application that
allows Tourist to browse the information available by using simple navigation such
as hyperlink.
ii)
Search Keyword Use-Case
This use-case can be initiated by two methods. One of them is through a
search engine box that Tourist will enter a keyword into the input box and click
“Search”. Another method is through navigation when Tourist come across of a
keyword highlighted within an article. The highlighted keyword will link the Tourist
to find other links that contain similar keyword.
iii)
Browse Place Use-Case
This use-case is initiated by Tourist when he/she navigate through
information regarding place of interest available in JTIS. The place of interest is
categorized into six categories including islands, forest and recreational park,
beaches, building and infrastructure, shopping, and miscellaneous. Tourist can
access these place of interest through the six categories or by search keyword usecase. The information of a place of interest is presented to Tourist with full
description, some graphic and video if available and the list of events going on in
that particular place of interest.
154
iv)
Add Place To Cart Use-Case
This use-case is initiated by Tourist when he/she click on hyperlink “Add
Place To Trip Planner”. The place of interest will be added to a Trip Planner cart that
functions like an online shopping cart that allow items to be added or removed.
v)
Plan Trip Use-Case
This use-case is initiated by Tourist when he/she click on button “Plan Trip”.
Tourist must provide his/her departure location, overall budget for the whole trip and
preferences over cost or time. The precondition for this use-case is the Tourist must
have at least selected a place of interest to be included in the trip or has at least one
item in the Trip Planner cart which is not similar with the departure location. With
the information provided by Tourist, the system will calculate and find three best
options that match the Tourist trip requirements.
vi)
Find Lodging Use-Case
This use-case continued from the plan trip use-case if Tourist click on one of
the options displayed to him/her. Tourist is provided a chance to find lodging for the
place of interest he/she included in the plan trip use-case. The Tourist will be asked
to choose which place he/she need lodging, types of lodging category, types of
rooms, number of rooms required, and day of staying in that particular place. The
system will then generate the possible combination of lodging that match the Tourist
requirement and closest to the Tourist overall budget.
Use-case documentation for Tourism Department Officer actor
i)
Login Use-Case
This use-case can be initiated by Tourism Department Officer who want to
login to JTIS by providing username and password.
ii)
LogOut Use-Case
This use-case can be initiated by Tourism Department Officer who want to
log out of JTIS. The purpose of this use-case is to make sure once the user log out,
the restriced access area is not accessible anymore unless the user log in again.
155
Create Place Added
Statistic Report
Add/Edit Content
Create Place
Visited Statistic Report
Create Lodging
St atisc Report
Add/Edit Keyword
Tourism
Department Officer
Create Place Category
Statistic Report
Login
Check
Application
Create Member
List Report
Logout
Use-case diagram for Tourism Department Officer actor
iii)
Check Application Use-Case
This use-case is initiated by Tourism Department Officer to view and check
all membership application received. Tourism Department Officer will evaluate and
check the information provided in the form to confirm that the applicant is a true
tourism service provider which is eligible to be a member of JTIS. If the application
is approved, the applicant will be able to access the Member Service function.
iv)
Create Member List Report Use-Case
This use-case enable the Tourism Department Officer to create and view the
list of all member registered with JTIS. The list will include the company or agencies
name, join date, username and last login particulars.
v)
Create Place Visited Statistic Report Use-Case
This use-case is initiated by Tourism Department Officer when he/she want
to create a report that contains the statistical data of place of interest being visited
count.
vi)
Create Place Added Statistic Report Use-Case
This use-case is initiated by Tourism Department Officer when he/she want
to create a report that contains the statistical data of place of interest being added to
trip planner count.
156
vii)
Create Place Category Statistic Report Use-Case
This use-case is initiated by Tourism Department Officer when he/she want
to create a report that shows the percentage of places in each place category.
viii)
Create Lodging Statistic Report Use-Case
This use-case is initiated by Tourism Department Officer when he/she want
to create a report that list out all lodging records of JTIS.
ix)
Add/Edit Content Use-Case
Tourism Department Officer can create new content or edit exisitng content
by using an online content editor, which allow text, hyperlink and image to be
inserted easily. Unwanted content can also be deleted if requested. The list of title
for all content will be displayed on the homepage of JTIS link for Tourist to
navigate.
x)
Add/Edit Keyword Use-Case
This use-case covers the functionality that enable Tourism Department
Officer to manage a keyword library that will be used by Search Keyword use-case
in Tourist Service Subsystem. Keyword can be added, edited or deleted as
appropiate by Tourism Department Officer only.
Use-case documentation for Tourism Service Provider actor
i)
Login Use-Case
This use-case can be initiated by Member who want to login to JTIS by
providing username and password.
ii)
LogOut Use-Case
This use-case can be initiated by Member who want to log out of JTIS. The
purpose of this use-case is to make sure once the user log out, the restriced access
area is not accessible anymore unless the user log in again.
157
Apply
Membership
Tourism Service
Provider
<<extend>>
Login
Edit registration
particulars
Member
Place Member
Add Place
Logout
Lodging Member
Add Graphic/Video
Edit Place
Edit Lodging Edit PresentationPage
Use-case diagram for Tourism Service Provider actor
iii)
Edit Registration Particulars Use-Case
This use-case is initiated by Member who want to modify or edit his
registration particulars.
iv)
Add Place Use-Case
This use-case is initiated by Place Member to add a new place into JTIS
database. Place Member has to enter the place name, location, brief description and
full description of the added place.
v)
Edit Place Use-Case
This use-case is initiated by Place Member to edit existing place information
in JTIS database. All fields can be modified including the place name, location, brief
description and full description of the place.
vi)
Add Graphic/Video Use-Case
This use-case enable Place Member to upload graphic and video files to be to
JTIS.
158
vii)
Edit Lodging Use-Case
This use-case enable Lodging Member to modify the lodging service
information such as facilities, room rates, lodging description, name and location
vii)
Edit Presentation Page Use-case
This use-case enable Lodging Member to design the presentation page of his
Lodging on JTIS.
APPENDIX C
ANALYSIS OBJECT MODEL
160
creat e
send request
LoginPanel
ValidUs erSession
UserValidator
validat e
redirect to
ValidUser
Member
ValidUserPanel
Administrator
AdminPanel
PlaceMemberPanel
LodgingMemberPanel
Login package
create
ApplicationForm
being approved
Application
Member
display
<<extend>>
create
LodgingForm
LodgingApplicationDetails
Registration package
ApplicationList
161
create
ContentEditor
Content
create
KeywordEditor
Keyword
Tourism information and search package
ReportSelector
MemberListReport
send request
create
PlaceVisitedReport
create
create
LodgingReport
ReportGenerator
create
create
PlaceCategoryReport
PlaceAddedReport
Report package
create
PlaceEditor
Place
PlaceImage
create
PlaceVideo
create
Multimedia Uploader
162
Place Service Editing package
create
LodgingEditor
Lodging
create
LodgingPresentationEditor
LodgingPresentationPage
part of
LodgingImage
Lodging Services Editing package
163
redirect to
redirect to
Mainpage
PlaceCategory
redirect to
Lodging
redirect to
Plac e
SearchBox
TripPlanner
Content
send request
create
consist of
activate
Search
Trip Generator
TripSpec
Cart
generate
create
TripRes ult
activate
LodgingSpec
generate
LodgingFinder
Tourist package
LodgingResult
APPENDIX D
DESIGN OBJECT MODEL
165
LoginPanel
validate
UserValidator
send request
validate
create
Administ rator
ValidUserSession
redirect to
AdminPanel
redirect to
Member
redirect t o
PlaceMemberPanel
LodgingMemberPanel
Login Package
ApplicationForm
create
Application
being approved
part of
display
Member
LodgingForm
create LodgingApplic
ationDetails
Registration package
ContentEditor
Key wordEdit or
create
create
Content
Keyword
Tourism information and search package
166
PlaceEditor
create
Place
PlaceImage
PlaceVideo
create
create
Multimedia Uploader
Place Service Editing package
LodgingEditor
create
LodgingPresentationEditor
Lodging
creat e
LodgingPresentationPage
Lodging Services Editing package
ReportSelector
MemberListReport
creat e
send request
Chart
uses
PlaceVisitedReport
create
ReportGenerator
create LodgingReport
creat e
create
PlaceAddedReport
Report package
PlaceCategoryReport
167
redirect to
Mainpage
PlaceCat egory
redirect to
Lodging
part of
redirect to
redirect to
classifies
Place
TripPlanner
SearchBox
Content
consist of
activate
send request
Cart
Trip Generator
Search
generate
TripResult
activat e
LodgingFinder
Tourist package
generate
LodgingResult
APPENDIX E
SEQUENCE DIAGRAM
169
: Tourism
Department Officer
Login()
: LoginPanel
: UserValidator
Chec kLogin( )
: Administrator
: ValidUserSession
: AdminPanel
Get Record( )
All valid record
Compare( )
create( )
display( )
Tourism Department Officer login into JTIS administration panel.
: PlaceMember
: LoginPanel
Login()
: UserValidator
CheckLogin( )
: Member
: ValidUserSession
GetRecord( )
All valid record
Compare( )
create( )
Display( )
PlaceMember login into JTIS
: PlaceMemberPanel
170
: Touris m
Depart ment Officer
: AdminPanel
LogOut( )
: ValidUserSession
: MainPage
Abandon( )
display( )
Tourism Department Officer log out of JTIS
: Place Provider
: ApplicationForm
submit()
: Application
AddNew( )
wait
Destination Management Service Provider apply membership online.
171
: Lodging Provider
: ApplicationForm
submit()
: LodgingForm
: Application
:
LodgingApplicationDetails
display( )
submit( )
AddNew( )
AddNew( )
wait
Lodging Provider apply membership online
: LodgingMember
: LodgingMemberPanel
Edit Particulars( )
: Member
display( )
submit( )
update( )
Lodging Provider edit registration particulars
172
: Tourism
Department Officer
: AdminPanel
View Application( )
: ApplicationList
List( )
: Application
Get Record( )
All record
Display( )
ViewDetail( )
Display( )
Tourism Department Officer check application received
: Tourism
Department Officer
: ReportSelector
:
ReportGenerator
:
MemberListReport
Generate Report( )
GenerateReport(ReportType)
create( )
display( )
Tourism Department Officer generate the member list report
173
: Tourism
Department Officer
: ReportSelector
:
ReportGenerator
:
PlaceVisitedReport
: Chart
Generate Report( )
GenerateReport(ReportType)
create( )
buildc hart( )
chart
display( )
Tourism Department Officer generate the place visited statistic report
: Tourism
Department Officer
: ReportSelector
:
ReportGenerator
:
PlaceAddedReport
Generate Report( )
GenerateReport(ReportType)
create( )
buildc hart( )
chart
display( )
Tourism Department Officer generate the place added statistic report
: Chart
174
: Tourism
Department Officer
: ReportSelector
:
ReportGenerator
:
PlaceCategoryReport
: Chart
Generate Report( )
GenerateReport(ReportType)
create( )
buildchart( )
chart
display( )
Tourism Department Officer generate the place category statistic report
: Tourism
Department Officer
: ReportSelector
:
ReportGenerator
: LodgingReport
Generate Report( )
GenerateReport(ReportType)
create( )
buildc hart( )
chart
display( )
Tourism Department Officer generate the lodging statistic report
: Chart
175
: Tourism
Department Officer
: AdminP anel
: ContentEditor
: Content
Add Content( )
display( )
save( )
add new( )
content saved
Tourism Department Officer add new content
: Tourism
Department Officer
: AdminP anel
Edit Content( )
: ContentEditor
Get ArticleID( )
: Content
Retrieve( )
display( )
save( )
update( )
content saved
Tourism Department Officer edit existing content
176
: Tourism
Department Officer
: AdminPanel
Add keyword( )
: KeywordEditor
: Keyword
display( )
save( )
addnew( )
Tourism Department Officer add new keyword.
: Tourism
Depart ment Officer
: AdminPanel
Edit Keyword( )
: KeywordEditor
Get KeywordID( )
save( )
: Keyword
Retrieve( )
update( )
Tourism Department Officer edit existing keyword
177
: PlaceMember
: PlaceMemberPanel
Add Place( )
: PlaceEditor
: Place
display( )
save( )
add new( )
Place Member add a new place
: PlaceMember
: PlaceMemberPanel
Edit Place( )
: PlaceEditor
Get PlaceID( )
Ret rieve( )
value
save( )
update( )
Place Member edit an existing place
: Place
178
: PlaceMember
: PlaceMemberPanel
Add Multimedia( )
: Multimedia
Uploader
: PlaceImage
display( )
submit( )
upload( )
add new( )
Place Member upload graphic
: LodgingMember
: LodgingMemberPanel
Edit Lodging( )
: LodgingEditor
Get MemberID( )
ret rieve( )
value
save( )
update( )
Lodging Member edit lodging particulars
: Lodging
179
: LodgingMember
: LodgingMemberPanel
Edit Presentation( )
:
LodgingPresentationEditor
Get MemberID( )
:
LodgingPresentationPage
retrieve( )
value
save( )
update( )
Lodging Member edit presentation page
: Tourist
: MainPage
Click Content( )
display( )
Tourist browse content
: Content
180
: Tourist
: SearchBox
submit( )
: Search
Search( )
display( )
Tourist use Search box to find information
: Tourist
: MainPage
Click Place( )
:
PlaceCategory
: Place
List( )
click category( )
display( )
clickPlace( )
display( )
Tourist browse more information of a place
181
: Place
: Tourist
: Cart
Add To Cart( )
add( )
display( )
Tourist add a place to his trip planner cart
: Tourist
: TripPlanner
: Cart
: Trip
Generator
:
TownDatabase
Plan Trip( )
Ret rieve( )
Item in cart
generate( )
retrieve( )
return value
match( )
display( )
Tourist generate trip plan
: TripResult
182
: Tourist
: TripResult
choose( )
:
LodgingFinder
: Lodging
:
LodgingResult
display( )
submit( )
retrieve( )
ret urn value
match( )
display( )
Tourist request system to find appropriate lodging which match his budget
APPENDIX F
DATABASE DESIGN
184
Table Member
Field Name
DataType
MemberID
Autonumber
CompanyName
Text
MemberName
Text
Group
Text
Password
Text
CompanyNum
Text
AddressLine
Text
District
Number
PhoneNum
Text
FaxNum
Text
LastLogin
Date/Time
JoinDate
Date/Time
Size
Long Integer
50
20
5
20
20
50
Long Integer
10
10
GeneralDate
ShortDate
Description
Table primary key
Company registration name
User login name
Member type
Login password
Company registration no.
Company address
District of the address
Company phone number
Company fax number
Recent login date and time
Date of joining JTIS as member
Table Administrator
Field Name
Data Type
AdminID
Autonumber
MemberName
Text
Password
Text
Active
Yes/No
LastLogin
Date/Time
Name
Text
EmployeeID
Number
Position
Text
Size
Long Integer
50
6
GeneralDate
50
Long Integer
50
Description
Table primary key
User login name
Login password
Current login status indication
Recent login date and time
Administrator’s full name
Administrator’s employeeID
Administrator position
Table Application
Field Name
DataType
ApplicationID Autonumber
CompanyName
Text
MemberName
Text
CompanyType
Text
Password
Text
CompanyNum
Number
AddressLine
Text
District
Number
PhoneNum
Text
FaxNum
Text
RequestTime
Date/Time
Status
Text
Size
Long Integer
50
20
50
20
Long Integer
50
Long Integer
10
10
GeneralDate
20
Description
Table primary key
Company registration name
User login name
Member type
Login password
Company registration no.
Company address
District of the address
Company phone number
Company fax number
Application request time
Application status
Table AppHotel
Field Name
Data Type
AppHotelID
Autonumber
ApplicationID
Number
HotelName
Text
HotelCategory
Number
Location
Text
Facilities
Text
Size
Long Integer
Long Integer
50
Long Integer
20
50
Description
Table primary key
Primary key of Table Application
Lodging name
Lodging category
Lodging location
Facilities available
185
Table Article
Field Name
ArticleID
Title
ImageFile
Status
DataType
Autonumber
Text
Text
Yes/No
Size
Long Integer
50
50
-
Description
Table primary key
Article title
Embedded image string
Publish status
Table Keyword
Field Name
DataType
KeywordID
Autonumber
Keyword
Text
Size
Long Integer
50
Description
Table primary key
Keyword
Table Place
Field Name
PlaceID
MemberID
PlaceName
District
PlaceType
Location
LastUpdate
FileName
DirName
Image
BriefDesc
Keyword
Visited
Added
DataType
Autonumber
Number
Text
Number
Text
Number
Date/Time
Text
Text
Yes/No
Memo
Text
Number
Number
Size
Long Integer
Long Integer
50
Long Integer
50
Long Integer
Short date
50
20
50
Long Integer
Long Integer
Description
Table primary key
Primary key of Member table
Name of place
Place district
Type of place
Place location
Latest update date
Full description file name
Directory name
Indication for place image
Place short description
Place keyword
Count of place being clicked
Count of place being added to trip
Table RoomRates
Field Name
Data Type
RoomID
Autonumber
HotelID
Number
RoomName
Text
RoomRates
Number
Size
Long Integer
Long Integer
1
Long Integer
Description
Table primary key
Primary key of Table Hotel
Type of room
Rental rates
Table HotelDetails
Field Name
Data Type
HotelID
Autonumber
MemberID
Number
HotelName
Text
HotelCategory
Number
Location
Text
District
Number
Status
Yes/No
Ready
Yes/No
Size
Long Integer
Long Integer
50
Long Integer
20
Long Integer
-
Description
Table primary key
Primary key of Table Member
Name of lodging
Category of lodging
Lodging location
Lodging district
Room rates status indication
Presentation page status indication
186
Table HotelFacilities
Field Name
Data Type
FacilityID
Autonumber
HotelID
Autonumber
Pool
Yes/No
Meeting
Yes/No
Conference
Yes/No
Function
Yes/No
Gymnasium
Yes/No
Squash
Yes/No
Sauna
Yes/No
Masssage
Yes/No
Aromatherapy
Yes/No
Sundeck
Yes/No
Size
Long Integer
Long integer
-
Description
Table primary key
Primary key of Table Hotel
Swimming pool
Meeting room
Conference room
Function hall
Gymnasium facilities
Squash court
Sauna facility
Massage services
Aromatherapy facility
sundeck
Table ImageTable
Field Name
DataType
ImageID
Autonumber
PlaceID
Number
ImageFileName
Text
ImgWidth
Number
ImgHeight
Number
Icon
Yes/No
Alternate
Text
Size
Long Integer
Long Integer
50
LongInteger
Long Integer
20
Description
Table primary key
Primary key of Table Place
File name of image
Width of image
Height of image
Icon indication
Image alternate text
Table VideoList
Field Name
Data Type
VideoID
Autonumber
PlaceID
Number
FileName
Text
FileSize
Number
Table TempHotel
Field Name
DataType
TempID
Autonumber
RefNo
Number
HotelID
Number
HotelClass
Number
PlaceID
Number
Status
Yes/No
RoomSRates
Number
RoomMRates
Number
RoomLRates
Number
Size
Long Integer
Long Integer
50
LongInteger
Size
Long Integer
Long Integer
Long Integer
LongInteger
Long Integer
Long Integer
Long Integer
Long Integer
Description
Table primary key
Primary key of Table Place
File name of video
File size of video
Description
Table primary key
Random generated reference number
Primary key of Table Hotel
Hotel category
Primary key of Table Place
Fulfill all specification indication
Rental rates for small room
Rental rates for medium room
Rental rates for large room
187
Table PlaceEvent
Field Name
DataType
EventID
Autonumber
PlaceID
Autonumber
Title
Text
Organizer
Text
Coorganizer
Text
BeginDate
Date/Time
EndDate
Date/Time
Desc
Text
Size
Long Integer
Long Integer
50
50
50
Shortdate
Shortdate
50
Description
Table primary key
Primary key of Table Place
Event title
Event main organizer
Event co-organizer
Event starting date
Event end date
Event description
APPENDIX G
PRESENTATIONAL MODEL
190
PlaceByNameContext
PlaceName
District
Image1
Description
Description
Video
Lodging byLocation context
Image2
District
Add To Trip Planner
Lodging
Name
PlaceEvent
Category
Member
byMemberID
Trip Plan by Option
Departure Location
Destination
Location
Content byTitle
Title
Option 1
Content
Member Form
<Company>
<Address>
<Contact>
<Password>
...
Option 2
PlaceEditor
byPlaceName
Place Form
<PlaceName>
<PlaceType>
<PlaceDescription>
...
LodgingEditor
byMemberID
Lodging Form
<LodgingName>
<Category>
<Facilities>
...
KeywordEditor
byKeyword
Keyword Form
<Keyword>
APPENDIX H
USABILITY TESTING QUESTIONNAIRE
192
JTIS USABILITY QUESTIONNAIRE
This questionnaire is divided into three categories, Tourist Role, Tourism Service
Provider Role and Tourism Department Officer Role. Please answer the questions
for each category by using the following scale to show your rating of the system.
Rating
Very Poor
Poor
Moderate
Good
Very Good
Mark
1
2
3
4
5
********************************************************************
PART ONE: Tourist
As a potential tourist to Johor, how do you find about the system …
A) User Interface
1. Overall user interface design
1
2
3
4
5
2. Multimedia contents presentation, such as graphics, and video clip
1
2
3
4
5
3
4
5
2
3
4
5
2
3
4
5
3. Consistency of user interface design
1
2
B) Usability
4. Overall user friendliness
1
5. Ease of use
1
6. Understanding of how to use the system
1
2
3
4
5
7. Help function on using the system. Is it clear and helpful to you?
1
2
3
4
5
193
C) Usefulness
8. The provided criteria of the trip planner (eg. budget, departure location,
destination, hotel selection, etc.) Are they sufficient?
1
2
3
4
5
9. The usefulness of the trip planner result options
1
2
3
4
5
10. The accommodation criteria selection (eg. types of lodging, rooms selection)
1
2
3
4
5
11. The search function and keyword highlighted within description of places of
interest.
1
2
3
4
5
12. The overall concepts of a trip planner for helping tourists and Johor state in
promoting tourism using internet or web services
1
2
3
4
5
D) System Response
13. Response time (eg. slow, average, fast)
1
2
3
4
5
4
5
14. Response accordingly to user request
1
2
3
E) Overall Satisfaction
15. The efficiency of the guide flow to search and find for a place of interest and
its related information
1
2
3
4
5
16. The overall guide to plan a trip to Johor, Malaysia
1
2
3
4
5
17. The overall satisfaction level of using the system.
1
2
3
4
5
194
PART TWO: Tourism Service Provider Role
As a tourism service provider, how do you find about the system …
A) User Interface
1. Overall user interface design
1
2
3
4
5
3
4
5
2
3
4
5
2
3
4
5
2. Consistency of user interface design
1
2
B) Usability
3. Overall user friendliness
1
4. Ease of use
1
5. Understanding of how to use the system
1
2
3
4
5
6. Help function on using the system. Is it clear and helpful to you?
1
2
3
4
5
C) Usefulness
7. The feasibility and efficiency of this JTIS service in promoting your
services?
1
2
3
4
5
8. The service information contents for your destination/accommodation. Do
you think they are useful to tourists or sufficient in proving information?
1
2
3
4
5
9. Multimedia facility to upload graphic and video (for Destination
Management Service Provider) and presentation page editor (for Lodging
Service Provider)
1
2
3
4
5
195
D) System Response
10. Response time (eg. slow, average, fast)
1
2
3
4
5
4
5
4
5
11. Response accordingly to user request
1
2
3
E) Security
12. Security design of the system
1
2
3
F) Overall Satisfaction
13. The overall satisfaction level of using the system.
1
2
3
4
5
********************************************************************
PART THREE: Tourism Department Officer (Administrator) Role
As a administrator in managing the website, how do you find about the system…
A) User Interface
1. Overall user interface design
1
2
3
4
5
3
4
5
2
3
4
5
2
3
4
5
2. Consistency of user interface design
1
2
B) Usability
3. Overall user friendliness
1
4. Ease of use
1
5. Understanding of how to use the system
1
2
3
4
5
196
6. Help function on using the system. Is it clear and helpful to you?
1
2
3
4
5
C) Usefulness
7. Content editor design and functions for the administrator
1
2
3
4
5
8. The choices or contents and presentation of the report function
1
2
3
4
5
9. The approval process and functionality for the application of accommodation
or destination service provider.
1
2
3
4
5
D) System Response
10. Response time (eg. slow, average, fast)
1
2
3
4
5
4
5
4
5
11. Response accordingly to user request
1
2
3
E) Security
12. Security design of the system
1
2
3
F) Overall Satisfaction
13. The overall satisfaction level of using the system.
1
******************
2
3
4
5
Thank you for your cooperation
******************
APPENDIX I
USER MANUAL
198
INTRODUCTION
This user manual consists of three categories: Tourist, Tourism Service Provider and
Administration. For each of these categories, the procedure on how to use the system
will be explained.
********************************************************************
TOURIST CATEGORY
A) Procedure to startup JTIS Application
1. Double-click Internet Explorer icon
on your desktop or from : Start menu
> Programs > Internet Explorer
2. Type in the browser address bar the JTIS homepage address :
http://localhost/JTIS/index.asp and the following main menu will be
displayed.
3. The left column of the main page is the system menu which let you navigate
to other web pages of JTIS. This system menu will be available all the time
for all web pages of JTIS.
4. The right column of the main page consists of a list of tourism information.
199
Menu
Description
Home
Load/return to the main menu of JTIS
Places of interests
Load the places of interests web page
Trip Planner
Load the web page of trip planner tool
Hotel Listing
Load the web page consist of list of hotel record available
Search Places of
Enable user to input search text and display the search result
interest
if the user click
Register with us now!
Load the web page consists of membership application form
for tourism service provider to register themselves
Member Login
Load the login page for registered user
B) Browsing Places of Interest
1.
Click on “Places of Interest” of the system menu. The following web
page will be displayed.
2.
Click on any of the places categories (Islands, Forest And Recreational
Park, Beaches, Building And Infrastructure, Shopping and
Miscellaneous). The following web page will list out the summary of
places of interest of the category you have clicked.
200
3.
Click View Video if you want to view a short video clip of the places of
interest.
4.
Click View Event if you want to view the event schedule at the places of
interest.
5.
Click Add To Trip Planner if you want to add the places of interest into
your trip planner cart.
6.
Click [more] if you want to view more description of the places of
interest.
7.
Click on words with hyperlink if you want to find more links containing
that word.
C) Using Trip Planner Tool
1. Click on “Trip Planner” of the system menu. The following web page will be
displayed.
2. Before you can click “Plan your trip” button, you have to choose your
destination first. More than one destination can be chosen but if only one
destination is chosen, it cannot be the same as your departure location.
3. You can choose your destination by:
a. Click the hyperlink “Add To Trip Planner” while browsing
information of places of interest; or
201
b. Tick the checkbox of the places of interest you would like to add as
your destination; or
c. Both. (Note: option (a) must be done before option (b))
4. Select your departure location from the drop-down list. If your departure
location is not listed here, please select the closest match.
5. Enter your budget limit for the overall trip.
6. Choose your trip priority whether you preferred the trip plan result ranks
according to time or cost.
7. Click the “Plan your trip” button.
D) Browsing Accommodation Listing
1. Click on “Accommodation Listing” of the system menu. The following web
page will be displayed.
2. Click on any name of the hotel/resort/chalet to view more information of the
accommodation selected.
3. Use the drop down list located at the upper right corner to filter the
accommodation list according to Johore districts.
202
E)
Search Places of interest
1.
Enter your search text in the search box located within the system menu.
2.
Choose your search criteria, either search by All Words or search by
Exact Phrase.
3.
Click “Search” button.
*******************************************************************
TOURISM SERVICE PROVIDER CATEGORY
A) Procedure to startup JTIS Application
Please refer to Section (A) of Tourist Category.
B) Login
1.
Click menu “Member Login”. The following interface will be displayed.
2.
Enter your login name and password.
3.
Choose your member type and click “Login” button.
203
4.
The following shows the main menu for Lodging Service Provider (LSP)
member.
5.
The following shows the main menu Destination Management Service
Provider (DMSP) member.
C)
Edit Registration Particulars
1.
From the side menu, click “Edit Registration Particulars”. Make your
changes and click “Submit Changes”.
204
D)
Edit Lodging Details (applicable for LSP only)
1.
From the side menu, click “Edit Lodging Details”. The following
interface will be displayed. Make your changes and click “Submit
Changes”.
E)
Edit Lodging Presentation Page (applicable for LSP only)
1.
From the side menu, click “Edit Lodging Presentation Page”. The
following interface will be displayed.
2.
Use the formatting toolbar to help you design your presentation page.
You can insert text, image and hyperlink to the editable column.
205
3.
If you know HTML, you may edit the HTML content of your
presentation page by checking the “Edit HTML” checkbox.
4.
Click “Save” icon if you have done with your editing. Make sure you tick
the “Ready” checkbox if you are ready with your presentation page. If
not, leave the “Ready” checkbox empty. You can always come back to
edit this presentation page again. Only if your presentation page is
“Ready”, it will be available for access for public internet.
F)
Edit Place Information (applicable for DMSP only)
1.
From the side menu, click “Places of Interest” under “Edit Services
Information”. The following interface will be displayed. Fill in the form
and click “Save”.
G)
Edit Events Information (applicable to DMSP only)
1.
From the side menu, click “Promotions and Events”. The following
interface will be displayed. Fill in the form and click “Save” after you
have done.
206
H)
Upload graphic or video (applicable to DMSP only)
1.
From the side menu, click “Upload Graphic and Video”. The following
interface will be displayed. Fill in the form and click “Submit”.
********************************************************************
ADMINISTRATION CATEGORY
A) Procedure to startup JTIS Application
1. Double-click Internet Explorer icon
on your desktop or from : Start menu
> Programs > Internet Explorer
2. Type in the browser address bar the JTIS homepage address :
http://localhost/JTIS/admin/adminlogin.asp and the following interface will
be displayed.
207
3. Enter your user name and password and click the “Sign in” button.
4. The main menu for administration will be displayed as the following.
B)
Edit Tourism Information
1.
Click “Content Editor” from the side menu. Follow the instruction to
perform your task.
2.
Use the formatting toolbar to help you design your presentation page.
You can insert text, image and hyperlink to the editable column.
3.
If you know HTML, you may edit the HTML content of your
presentation page by checking the “Edit HTML” checkbox.
4.
Click “Save” icon if you have done with your editing.
208
C)
Generate Report
1.
From the side menu, click “Generate Report”.
2.
Choose types of report you want to generate from the drop down list.
D)
View Membership Application
1.
From the side menu, click “Membership Application”.
2.
Select application type you wan to view and click “Click to view”.
3.
From the list of application, click the CompanyName to view the
application details.
E)
Manage Keyword
1.
From the side menu, click “Keyword Library”. The following interface
will be displayed.
2.
If you want to find a keyword, enter the keyword in the textbox beside
“Find keyword” and click the button “GO”.
3.
If you want to add a keyword, enter the keyword in the textbox beside
“Add Keyword” and click the button “GO”.
APPENDIX J
SUPPORTING DOCUMENTS
Download