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&nbsp;&nbsp;</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