CHAPTER 2 LITERATURE REVIEW 2.1 General Theories 2.1.1 System, Analysis and Design Concept 2.1.1.1 System Definition System is a group of components connected to each other and working together to accomplish certain preferred goal (Whitten and Bentley, 2007:6). Thus system can be concluded as an assembly of components linked together to cooperate in order to accomplish a predefined goal by accepting input and processing the input to produce output. 2.1.1.2 Analysis Definition Whitten and Bentley have formally defined system analysis as “The study of a business problem domain to recommend improvements and specify the business requirements and priorities for the solution” (2007:32). Requirement analysis is an important job that acts as a connector to system requirements and the system design process (Pressman, 2010:149-150). Accordingly, analysis can be defined as a research process of an existing system in order to produce a new system or rebuild the existing system into a better system. The result of system analysis is the set of characteristics which can be used to design the new system or rebuild the existing system. Person in charge for system analysis is mainly called as system analyst. System analysis can also be referred as how to apprehend and specifically identify what is the system has to do and the system will be designed according to the identification beforehand. 5 6 2.1.1.3 Design Definition Correspondingly, Whitten and Bentley (2007:33) have described system design as “The specification or construction of a technical, computer-based solution for the business requirements identified in a system analysis.” It can be concluded that system design is a step of system development cycle after system analysis step, which composes a detailed specification of a proposed system according to the data gathered from the system analysis step. System design produces a complete and detailed specification of a computer-based solution of the problem and requirement. Moreover, system design result acts as a guideline for building the desired system in order to accomplished the predefined goal of the system itself. System design explains the desired system for both user and programmer so that the system will be understandable and can be reviewed from both sides, general and detailed. 2.1.2 Information Technology Information Technology is an expression that can be used widely. Generally, Information Technology can be inferred as a study around technology usage for gaining information, processing and storing information, transferring from one form to another, relocating from one location to another, and even managing information with the intention of gaining more efficiency of information usage for the users. Whitten and Bentley have described Information Technology as “a contemporary term that describes the combination of computer technology (hardware and software) with telecommunications technology (data, image, and voice networks)” (2007:6). Components of Information Technology are technology of computation system and technology of communication system. Computation system has been vital to process data into information that is useful for the users while communication system has been essential in order to transfer the information processed throughout the users. 7 Information Technology has been a part of a long chain developed from the Information System (IS). While Information Technology has referred to technologies used in information processing and transferring, it is still considered as part of Information System itself. Information Technology is more well-known as computerized processing of information which is rapidly evolved (Nugraha, 2003:1). 2.1.3 Database Description Database can be generally defined as an enormous collection of data stored within the computer and to access the database a software is essential. This definition has been effective to define database even to a non-technical person. Connolly and Begg (2010:15) has formally described database as “a shared collection of logically related data, and a description of this data, designed to meet the information needs of an organization”. Database Management System is a software that facilitates user to describe, generate, preserve, and govern admittance to the database that is mainly completed with facilities to create a database and its components, database recovery system, and controlled access to the database (Connolly and Begg, 2010:16). Cited from Turban, Rainer, and Potter (2003:15), data is raw fact or an advanced illustration of articles, events, and transactions that are recorded and classified but still considered as a raw objects that cannot be used to declare a specific definition while information is a group of facts (data) that is assembled in a certain way so that it can be meaningful for the readers. Thus it can be concluded that database is a collection of data that is connected and related to each other while when it is standing alone then it becomes meaningless. The data is considerably raw while further processing may result in a meaningful information for the readers. 8 2.1.4 Database Components 2.1.4.1 DML DML stands for Data Manipulation Language. DML is a language used to manipulate the data within the database (Connolly and Begg, 2010:24). DML is very useful when it comes to manipulating the data stored in the database, such as inserting new record(s), deleting existing record(s), and updating record(s). 2.1.4.2 DDL Data Definition Language is used to define components of the database (Connolly and Begg, 2010:24). DDL can be used to define a schema, tables, and other components of database. 2.1.4.3 Stored Procedure Stored procedure is a set of instructions that can be used just like a programming language to deal with the database. Just like a subroutine of other programming languages, stored procedure has parameters and the parameters can be defined as in, out, or in-out parameter (Connolly and Begg, 2010:222). Stored procedure is mainly used to insert, update, or delete record(s). 2.1.4.4 Function Function is similar to stored procedure and only differs in the returned data after completing the whole instructions within the function (Connolly and Begg, 2010:222). A function must return value as a result of the instructions. Function is mainly used to select a record. 2.1.4.5 Package Package is a set of stored procedures, functions and/or variables that are grouped together because of its similarities to each other. For example, the stored procedures and/or the functions are manipulating the same table(s) (Connolly and Begg, 2010:222). 9 2.1.5 Internet 2.1.5.1 Internet Definition and History Internet has become a great part of human life, even many people are starting to think that internet has been a very essential part in life just like how people needed air to breathe. More and more people are getting dependent to internet, some are getting even kind of addicted to it. Just enough to justify that internet is intoxicating. Nonetheless, internet was invented because of human needs of information exchange in a rapid way. Connolly and Begg describes internet as “a worldwide collection of interconnected computer networks” (2010:975). Internet, also known as cyberspace, is a network connecting computers all over the world. Internet has permitted a global communication networking for all humankind using computers. It all started at 1969 when US Department of Defense decided to develop an experiment called ARPANET (Advanced Research Projects Agency Network) which is intended to be useful to exchange internal information without suffering any outages. Within one decade, ARPANET has spread all over the world. Within the time, many new technologies revolved around the internet have been invented, pushing the internet to become more popular (Connolly and Begg, 2010:974-977). 2.1.5.2World Wide Web World Wide Web or simply web, is an enormous means that enables information browsing through hyperlinks. The information that can be accessed includes text, images, audio, video, etc. Web is very useful and easy to implement since it “… provides a simple point and click means of exploring … information on the internet” (Connolly and Begg, 2010:979). 10 2.1.5.3 URL URL stands for Uniform Resource Locator. URL is a unique characteristic that distinguish every web. URL can also be used to provide links on the document, whether it is within the web or between webs. Connolly and Begg describes that “URLs define uniquely where documents … can be found on the internet” (2010:982). In other words, URL is the unique address of a web, just like a complete address of a place, including the street name, building number, region, postal code, etc. 2.1.5.4 HTTP Hyper Text Transfer Protocol or HTTP is a communication protocol used by the web to govern the information transferring between clients and servers (Connolly and Begg, 2010:979-980). 2.1.5.5 HTML HTML stands for HyperText Markup Language. HTML is the “formatting language used to design most Web pages” (Connolly and Begg, 2010:981). HTML consists of tags which is known to the Web. The tags are used to tell the Web of what is the shape or the appearance of the page that is intended to be presented within the web pages. 2.1.5.5 Web Based Application Also known as WebApps, web based application spread from simple text and documents linked together to a very integrated system that can even access business applications and corporates’ databases (Pressman, 2010:10). Pressman (2010:11-12) continued to argue that WebApps has many attributes such as concurrency, performance, unpredictable load, availability, security, immediacy, continuous evolution, aesthetic, etc. 11 2.1.5.6 Web Server Whitten and Bentley (2007:487) describes web server as “a server that hosts internet or intranet Web sites”.It is a server specially used to store a website page or a homepage. A computer can be referred as a web server when it has had a server program called Personal Web Server (PWS). PWS has been functioned so that a web page within the computer server can be invoked by client computer. 2.1.5.7 Web Browser It is software installed into client machine that can be used to translate HTML’s tags into a web page. Commonly used web browsers are Internet Explorer, Netscape Navigator, etc. The importance of an internet browser has been getting more and more realized and sometimes it is considered more important than any other desktop application itself (Whitten and Bentley, 2007:19). 2.1.5.8 JavaScript JavaScript is an object oriented scripting language that is commonly used in the web and can be interpreted directly from source code to enable scripting on the HTML documents. JavaScript is widely used because it empowers common HTML documents with scripts or subroutines that increases interactivity with the users (Connolly and Begg, 2010:991). 2.1.5.9 API Application Programming Interface “… provides a method that creates an interface between the server and back-end application using dynamic linking or shared objects” (Connolly and Begg, 2010:999). API is mainly used to extend a usability of a web server. It can intercept the flow of information from server to browser and vice versa. While it is intercepting the information, it can alter the information and send it back (Connolly and Begg, 2010:1000). 12 2.1.5.10 Web Service Web service is a package consisting many functions by means to be used by another programs, circulated through the network. Web service has no user interface therefore it is not intended to be used by users. Instead, it is aimed to be used among applications such as webbased applications and other web services (Connolly and Begg, 2010:984). 2.1.6 Software Engineering 2.1.6.1 Software Engineering Definition According to Pressman, software engineering has been described as “the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machine” (2010:13). Back on 2001, convention of programmers and analyst was held to form a new process called the Agile Development. Agile is meant to reduce change cost since the software is released in increments in which changes can be more controllable. An Agile process walks incrementally, system is released to customers incrementally so that customers can give incremental feedback according to the changing needs (Pressman, 2010:67-69). One of the most widely used approach of agile software development is called XP or Extreme Programming. In XP, effective communication between programmers and stakeholders is very important. XP highlights close collaboration between the customers and developers, constant feedback, usage of metaphors, and circumvention of ample amount of documentation. Another goal of XP is simplicity, achieved by focusing on existing needs rather that future needs (Pressman, 2010:72-73). 13 Figure 2.1 Extreme Programming Process (Pressman, 2010:74) Stages of XP are (Pressman, 2010:73-77): 1. Planning Planning starts with a ‘story telling’. Stakeholders will tell ‘story’ (can also be referred as use case) of the required system. Then ‘values’ will be given to each story (priority). XP technical team will then consider each story and give ‘cost’ (development time) to each of it, if the cost is considered too much then the stakeholders will be asked to divide the story into smaller stories. XP team can decide on which story that is going to be developed first, according to team’s consideration. After software release, or software increment, ‘project velocity’ will be computed and will later be used to estimate the next development time. 2. Design XP urges on simple design, mainly suggesting the team to use simple CRC card. XP encourages the team to focus only to the story and does not encourage any extra hypothesis of future needs. If there is a complex story that needs to be designed, a ‘spike solution’ is incited. Spike solution offers a usage of 14 prototype of the part of the story so that it can furthermore be considered and evaluated. 3. Coding The key point of this stage is called a ‘Pair Programming’, which place a pair of programmers on the same workstation. One will be encouraged to focus of the coding according to the story design while the other will be focusing on keeping the standard of the system. The result of this pairing is later be integrated with the work of others. This integration is served as an early evaluation for errors. 4. Test Integrated test of the system is encouraged to be conducted on a daily basis to support the agile process, incremental method. One of the most important motto of this integrated, daily test is that “Fixing small problems every few hours takes less time than fixing huge problem just before the deadline” stated by Wells [Wel99]. Acceptance test is conducted by the stakeholders and based on the specified story from the first stage. 2.1.6.2 Software Engineering Layers On the word of Pressman (2010:13-14), software engineering is considered as a layered technology that is composed of three layers, which are: Process The process layer has been the foundation of software engineering. Software engineering process has acted as an adhesive that attaches the technology layers together and permits coherent and sensible development of computer software. Process defines a framework for a set of key process areas that must be established in order to attain effective technology. delivery of software engineering 15 Methods Software engineering methods have provided technical guidelines for developing software. This includes array of tasks that incorporate requirements analysis, design, program construction, testing, and support. The methods has counted on a set of basic principles that govern each area of technology and encompass modeling activities and another descriptive techniques. Tools Tools provide automated or at least semiautomated support for the previous two layers. Computeraided software engineering (CASE) is formed when tools are integrated so that information from one tool can be used by another, a system for the support of software development. Computer-aided design/engineering (CAD/CAE) is created from combination of software, hardware, and database by CASE. 2.1.6.3 Software Pressman has formally described software as “(1) Instructions (computer programs) that when executed provide desired function and performance, (2) data structures that enable the programs to adequately manipulate information, and (3) documents that describe the operation and use of the programs” (2010:4). Thus it can be concluded that software is a set of computer instructions that is generated to be a whole of a program and will eventually be functional according to the initial goal. Software is ultimately a set of instructions for computer to do exactly like what is generated from it. For instance, there has been an archive of instructions of what the computer should do or what the computer must do in order to be able to interpret the instructions. To achieve this, what needed is logic. The organized logic is executed by computer through software, 16 instructions and the data. This software execution involve the computer’s operating system, program, and data. This software will instruct the computer so that the logic will be understandable to the computer. This kind of software is called an interpreter. Software has a role of being a product and also an instrument to deliver the product itself. Pressman (2010:4-6) identified that software is more logical rather than physical system element thus software has characteristics that are noticeably different to hardware: 1. Software is not manufactured but engineered or developed. 2. Software does not wear out. 3. Though industry has been moving forward componentbased assembly, most software continues to be custombuilt. 2.1.7 UML According to Whitten and Bentley, UML or Unified Modelling Language is “a set of modelling conventions that is used to specify or describe a software system in terms of objects” (2007:371). In late 80s and 90s, many modelling techniques are used, with the most notable are Booch’sBooch Method, Rumbaugh’s Object Modelling Technique, and Jacobson’s Object-Oriented Software Engineering. This different modelling techniques result in sharing models across projects. In 1994, Booch and Rumbaugh joined forces, followed by Jacobson a year later. In 1997, UML version 1.0 was released. By September 1997, UML version 1.1 had been released with total of 8 diagrams. The diagrams had been: Use Case diagram, Activity diagram, Sequence diagram, Collaboration diagram, Class diagram, Statechart diagram, Component diagram, and Deployment diagram. UML version 1.3 had been released in 1999 with the addition of Business Use Case Diagram. UML version 1.4 was released in May 2001, resulting in 10 diagrams for the addition of Object Diagram. 17 By 2002, UML version 2.0 had been released with some addition and changes: 1. Use CaseDiagram 2. Activity Diagram 3. Sequence Diagram 4. Communication Diagram (Collaboration diagram in version 1.x) 5. Class Diagram 6. State Machine Diagram (State diagram in version 1.x) 7. Component Diagram 8. Deployment Diagram 9. Composite Structure Diagram 10. Interaction Overview Diagram 11. Object Diagram 12. Package Diagram 13. Timing Diagram Diagrams that are used in this thesis are: 1. Use Case Diagram 2. Activity Diagram 3. Sequence Diagram 4. Class Diagram 2.1.7.1 Use Case Diagram Whitten and Bentley describes use case diagram as “a diagram that depicts the interaction between the system and external system and users …” (2007:246). Elements of use case diagram are: 1. Use cases Use cases are functions which are listed within the system written in a term that can be easily understood generally even by an external users or outsiders. 2. Actors 18 Actors can be simply be inferred as external users who are responsible to initiate the use cases. 3. Relationships Relationships describe the relation between an actor and a use case using a line. Format of the line may differ according to the type of relationship. In order to construct a requirement use-case model, Whitten and Bentley (2007:251-260) have noted at least 4 steps as listed below: 1. Identify business actors. First and foremost of the steps is to identify the business actors. Concentrating on what the system is going to be used can be achieved by identifying the actors. If the actors have not been identified yet, identifying the use case may not have any decent guidelines since the use cases will be identified from the developer’s point of view only. In order to be able to fulfill the requirements of the system, use cases must be identified from the actor’s point of view. Thus identifying actors is the first step needed to construct a use-case model. 2. Identify business requirement use cases. After the actors are identified, the next step is to identify the business requirement use cases. As stated above, use cases will be identified according to the actor’s point of view. This process will be looped until all actors’ use cases are identified. In this step, the use cases are filtered so that only the most important and essential ones that are going to be listed here. 3. Construct use-case model diagram. In this third step, use-case model diagram can be assembled. Actors and their use cases can be related using the relationships element (a line) accordingly. 19 4. Document business requirement use-case narrative. Even though the use-case model diagram is already assembled, in order to be able to present it generally, more explanation of the use-case diagram is needed. Therefore, a business requirement use-case narrative is essential. With a requirement use-case narrative, the details of each use cases can be understood and it will also be useful for the documentation of the system later on. Consistent with Whitten and Bentley (2007:383-385), in refining a system analysis use case model from requirement use case model there are five steps which are: 1. Identify, define, and document new actors. Through the time between the requirement was created and the time it is subsequently approved, new actors may be identified. 2. Identify, define, and document new use cases. The new actors identified in step 1 may initiate new use cases, new interaction with the system. 3. Identify any reuse possibilities. Two or more use-cases may lead to similar goal but using different user interface, but these use-cases may share similar steps thus it can be combined and increase the reusability of the system itself. 4. Refine the use-case model diagram (if necessary). With the discovery of new actors and new usecases, there may be needs to revise the already constructed use case diagram. 5. Document system analysis use-case narratives. After the use case has been approved, each use case will have to be refined so that it will become more specific and detailed. 20 Figure 2.2 Sample Use Case Diagram 2.1.7.2 Activity Diagram According to Whitten and Bentley (2007:390), activity diagrams are used to “graphically depict the sequential flow of activities of … a use case”. The diagram can also be used to be a model of actions that will be executed when an operation is triggered, and also the results of those actions. An activity diagram consists of following components (Whitten and Bentley, 2007:391): Initial node, drawn as a solid circle to illustrate the start point Actions, drawn as a rounded rectangle to illustrate each step Flow, drawn as an arrow to illustrate the flow of the activity Decision, drawn as a diamond with one in-flow and at least two out-flow to illustrate a decision point which may lead to different flows. Merge, drawn as a diamond with at least two in-flow and one out-flow to merge the flows that are separated by a decision. 21 Fork, drawn as a black bar with one in-flow and at least two out-flow to illustrate whenever the flows are parallel to each other Join, drawn as a black bar with at least two in-flow and one out-flow to illustrate a join of a previously forked flows Activity final, drawn as a solid circle circled by a hollow circle to illustrate the end point Whitten and Bentley (2007:394) furthermore describes a list of recommendations to construct an activity diagram, which consists of: Start with a starting point called a starting node According to the analysis, any partition can be added Decide a major step of a use case and create an action according to that Create a continuous flow from one action to another, use a decision point, end point, fork, merge, and join whenever necessary to avoid confusion because of a multi flow action Use decision when a route is interchanging and a merge to round up the actions Use forks and join to show parallelism Use an end point to indicate the end of the activity Figure 2.3 Sample Activity Diagram 22 2.1.7.2 Sequence Diagram According to Whitten and Bentley, sequence diagrams “a UML diagram that models the logic of a use case by depicting the interaction of messages between objects in time sequence” (2007:659). Whitten and Bentley describes components of a sequence diagram as follow (2007:394-395): Actor, drawn just like a use case diagram actor. System, drawn as a box to illustrate the system as a ‘black box’ or as a whole. Lifelines, drawn as a dashed lined below the actor to illustrate the life of the actor or the system. Activation bars, drawn as a bar over the lifelines to illustrate whenever the participant is being active. Input messages, drawn as a horizontal line from an actor to the system to illustrate the message input. Output messages, drawn as a horizontal dashed line from the system to the actor for illustrating the output flow. Receiver actor (additional), can be used to illustrate another actor or external system. Frames (additional), drawn as a box outside a group of messages to separate a subset of the sequence. Figure 2.4 Sample Sequence Diagram 23 2.1.7.4 Class Diagram According to Whitten and Bentley refers to class diagram as a diagram that depicts the system’s object structure, the diagram demonstrate object classes within the system as well as the relationships between those object classes (2007:400). Figure 2.5 Sample Class Diagram 2.1.8 Human Computer Interaction One of the most famous principles used in designing user interface is known as the Eight Golden Rules (Shneiderman, ) which consists of: 1. Strive for consistency In designing user interface, consistency is very important. Using homogeneous design for similar condition or action is very important in order to avoid confusion among users. 2. Cater to universal capability Design should be compatible for all kind of users, despite of variations in age, gender, nationality, familiarity of technology, etc. Some examples of application for this principle are adding shortcut for more expert users, providing talkative menus for disabled users, and so on. 3. Offer informative feedback Each input and action of users should get a considerable feedback to avoid confusion. 4. Design dialogs to yield closure 24 It is also important to group together some actions that are connected to each other to help users recognize end of some actions. An informative feedback at the end of the steps is also essential. 5. Prevent errors Provide users with design that will prevent any errors. For example, this can be done by using a combo box or other input selection instead of free text field to avoid input errors. Whereas any error happened, system must give users easy explanation so that users can avoid further errors. 6. Permit easy reversal of action Actions should mainly be overturned so users will be encouraged to explore unfamiliar actions because they know that they can easily overturn their actions. 7. Support internal locus of control Make users believe that they are in charge of the interface. 8. Reduce short-term memory load Avoid interfaces where users must remember information from one place to another. If there is a complicated action, training should be conducted. ISO 9241 describes the standard in user interface famously known as Ergonomics of Human-System Interaction strive for 3 (three) goals; effectiveness, efficiency, and satisfaction. In order to measure them, some values are (Shneiderman): 1. Time to learn, how long does it takes for average users to learn how to use the system. 2. Speed of performance, what is the speed of the system carrying out a certain task. 3. Rate of errors by users, how many errors are commonly made by users and how is the recovery done. 4. Retention over time, how long can users remembers how to use the system. 5. Subjective satisfaction, what is the reaction of the users about the system. 25 2.1.9 Database System Development Lifecycle Database has been a very essential part of a whole system. While Information System has its own lifecycle, it is also very important to understand the Database System lifecycle since database is a part of an IS system itself. The stages of the lifecycle are mainly succeeded from the IS lifecycle and vastly related to each other (Connolly and Begg, 2010:262-263). Figure 2.6 Stages of Database System Lifecycle (Connolly and Begg, 2010:263) 2.1.9.1 Database Planning Database planning is the initial step of the lifecycle due to the importance of establishing a clear and distinct goal of the project. First thing to be established is what Connolly and Begg called as a “mission statement”, which describes the main goal and the expectation of the system owner. “Mission objectives” are what they have described as 26 the list of objectives developed from the mission statement. They continued to state that “… if the database system supports the mission objectives then the mission statement should be met” (2010:263-264). There are also standards that must be defined along with the mission statement and mission objectives. The standards will be used during object naming, for example. With these standards established, any severance and irregularity can be precluded (Connolly and Begg, 2010: 265). 2.1.9.2 System Definition System definition is the next step of the cycle after completing the database planning step. System definition “describes the scope and boundaries of the database application and the major user views” (Connolly and Begg, 2010:266). Thus system definition can be concluded as a stage of database system development lifecycle that determines the extent of a system so that the limitations of the system may be cleared in order to avoid any useless widening of the system functions. As mentioned above, besides of defining the scope of the application, major user views must also be defined clearly. User views are a defined perspective of how a user from one group presented with the data. It may differ for users from different group, mainly different departments since the privileges and the needs are very different to each other. 2.1.9.3 Requirements Collection and Analysis During this step, relevant information has to be gathered using the namely fact-finding techniques. Information needed during this step are one around the organization or company that has requested for the system. The information is then used to sum up a list of requirements collection with a help from one of requirements specification techniques such as Data Flow Diagram (DFD), Hierarchical Input Process Output (HIPO) and Unified Modelling 27 Language (UML) which will be discussed later in this chapter (Connolly and Begg, 2010:267-268). Connolly and Begg (2010:294) mention five commonly used fact-finding techniques that are: 1. Document examination 2. Interview 3. Field research (inside the company) 4. Research 5. Questionnaires 2.1.9.4Database Design Database design is a step where the database that is bound to be used in the system is designed according to the mission statement and mission objectives (Connolly and Begg, 2010:270). Connolly and Begg (2010:270-271) moreover describes at least 4(four) approaches that are commonly used in designing a database. There are top-down, bottom-up, inside-out, and mixed strategy approach. Top-down approach firstly identifies high level entities needed within the system and move top-down to the lower level entities, it is considered as a better approach in designing a more complex database. Bottom-up is simply the opposite of top-down approach, moving from lower level entities to high level entities. Inside-out identifies major entities first then moving to other entities. Lastly, mixed strategy uses top-down and bottom-up subsequently upon the database parts then combines the result together. According to Connolly and Begg (2010:272-274), there are 3 (three) phases of database design which are: 1. Conceptual database design Conceptual database design is the first phase of database design which considers the data design autonomously from application software, all physical DBMS, aspects hardware such as platform, programming language, etc. The result of this step is called ERD (Entity Relationship Diagram). 28 ERD is a diagram that depicts associations of objects within the database. A complete ERD is very useful to build the appropriate database. 2. Logical database design Logical database design results in logical data model that is autonomous of physical aspects, though it this phase it is essential to be familiar with the DBMS characteristics. Logical data model can be tested using a process called normalization. Normalization will prevent any data redundancy in order to avoid inconsistency during the data processing later. The result of this phase is useful for operational maintenance sometimes later since it provides complete information of the data stored within the database. 3. Physical database design The last phase of database design is bound to the selected DBMS. In this phase, the physical representation is to be made according to the logical data model. It is also essential to consider the relation, hierarchy, etc. in accord. 2.1.9.5 Implementation Implementation step is simply the step where programmers or software engineers work on. This step is the realization of any design that has been listed during the former steps. Database implementation is the realization of database design using DDL and DML in order to be able to realize the physical presentation of the database. Application implementation can be done using any programming language that is noted as suitable one for the project in spite of the advantages and disadvantages of each programming language (Connolly and Begg, 2010:283). 29 2.1.9.6 Data Conversion and Loading After the implementation is completed, next step to be done is to convert existing data (if any) to the new system’s database and to finally link the existing application (if any) with the new database. This step is essential especially when a new system is intended to replace an existing system because of any other reasoning (Connolly and Begg, 2010:284). 2.1.9.7 Testing During testing step, the intention needed is to find any errors or bugs within the newly implemented system. Testing is very essential since releasing a system without any testing is highly not recommended since it will bring users as a guinea pig of the system and the user would be less than happy to be one(Connolly and Begg, 2010:284). 2.1.9.8 Operational Maintenance Even after deployment, maintenance is highly recommended since any system will need a good supervision in order to keep the system within the standards looked forward to. Monitoring of the system can be done using DBMS utilities such as a performance tuning. Any tuning is highly needed and recommended if there are any problems or any changes happened which is assumed to be dangerous to the system (Connolly and Begg, 2010:285). 2.1.10 Perl Perl was developed on 1987 by Larry Wall. The language was influenced by SmallTalk 80, Lisp, C, and Pascal. Perl most famous motto is TMTOWTDI or “There’s more than one way to do it”. Perl is most wellknown for its application in UNIX and web programming (Pierce, 2002:3-4). Perl is dynamic and powerful at the same time. Many people feel like Perl is old-fashioned or even not as famous as PHP, but the truth is that Perl 30 influenced PHP in some way. Perl has wider usage and more powerful than PHP since Perl is not developed only for web programming. Its nature of being a powerful scripting language has many functionality compared to PHP. It is also known that Perl also influence other programming language such as JavaScript, Ruby, Phyton, etc. (Pierce, 2002:5). Pierce (2002:7) continued to describe advantages of Perl such as: Perl works relatively well with other tools It’s a very rapid development environment Perl binds things together fairly nicely Because of its Unix background, it bundles up Unix best aspects into a portable, cross-platform kit Just like another programming language, Perl also has some negative sides (Pierce, 2002:7): Basic Perl is easy to learn, but mastering Perl is a different matter Perl has wide variety of tools so it is very easy to get lost in choosing the right tool, though since Perl can be very forgiving any tool will work anyway Perl can be very heterogeneous Despite of its negatives, Perl is widely used for all kinds of development environments. Perl is well-known for its use for Web development mainly because of its admirable text handling, good module support for CGI programming, and integrated support into Apache (mod_perl). Besides, Perl is widely used as a glue from one tool to another (importing and/or exporting), and even included within MS Windows Resource Kit and Linux (Pierce, 2002:7-8). 2.2 Thematic Theories 2.2.1 Booking According to Oxford Online Dictionaries, book (v) means to reserve (accommodation), to buy in advance (ticket). As for booking, a v1+ing form from book, thus changing it into gerund (changing from a verb to a noun by adding postfix -ing) which makes booking as an early reservation. 31 2.2.2 Airline Reservation System Airline Reservation System (ARS) is a system used by a particular airline company for dealing with reservation and also to interface with a Global Distribution System. ARS consists of flight schedule, flight fare, passenger reservations, ticket records, etc. ARS also provides Inventory Management, Passenger Name Record (PNR), and complete references for fare quote and ticketing regulations (Winston, 1995:61-63). 2.2.3 Internet Booking Engine Internet Booking Engine (IBE) is a web-based system used to provide customers of direct information needed when trying to book something such as flights, hotels, car rentals, etc. IBE is now being used by almost all airline company to support ease of access for their customers (Winston, 1995:61-63). IBE is mounted into the airline’s website and will communicate to the GDS or ARS in order to get information to be shown in an appropriate interface. Besides of schedule searching and booking, an IBE is also used for payment. For this payment, IBE will communicate with a certain payment gateway (Winston, 1995:63). 2.2.4 Airline Business Variables 2.2.4.1 Flight Number Flight number is a unique identifying set of numbers assigned by associated airline used as an identification of a flight schedule. A flight number of one airline is not unique to another airline’s (Belobaba, 2006: 9). 2.2.4.2 Route Belobaba defines route as “consecutive links in a network served by a single flight number” (2006: 9). Route is defined by consecutive airline company and the more route an airline has, the more complex the flow of flight. 2.2.4.3 Leg 32 Leg or sector or segment refers to a flight from exactly one origin airport to exactly one destination airport. In a designated flight set, one flight number consists of at least one leg. A flight with more than one leg mostly called as a multi leg flight (Belobaba, 2006: 9). 2.2.4.4 Connecting Flight Connecting flight refers to 2 or more flights that is connected together in order to provide customers of a broad range of flight schedules. The difference of connecting flight and a multi leg flight is the flight number. For connecting flight, the flight number differs from one to another (Belobaba, 2006: 10). 2.2.4.5 Itineraries Itineraries or paths is combination of flights that are chosen by passenger to complete the journey (Belobaba, 2006: 9). Generally, itineraries will be used to give passengers an overview of their selected flights and as a base for ticketing details.