IMPLEMENTING THROWAWAY PROTOTYPING IN WEB DEVELOPMENT LIFE CYCLE NAZREEN BIN ABDULLASIM UNIVERSITI TEKNOLOGI MALAYSIA 2 BAHAGIAN A – Pengesahan Kerjasama* Adalah disahkan bahawa projek penyelidikan tesis ini telah dilaksanakan melalui kerjasama antara ...................................................dengan .......................................... Disahkan oleh : Tandatangan : ............................................................. Tarikh : ................... Nama : ............................................................. Jawatan : ............................................................. (Cop rasmi) * Jika penyediaan tesis/projek melibatkan kerjasama. BAHAGIAN B – Untuk Kegunaan Pejabat Sekolah Pengajian Siswazah Tesis ini telah diperiksa dan diakui oleh: Nama dan Alamat Pemeriksa Luar : ................................................................... ................................................................... ................................................................... Nama dan Alamat Pemeriksa Dalam : ................................................................... ................................................................... ................................................................... Nama Penyelia Lain (jika ada) ................................................................... ................................................................... ................................................................... : Disahkan oleh Timbalan Pendaftar di SPS : Tandatangan : ................................................ Nama ................................................ : Tarikh: ............................ 3 IMPLEMENTING THROWAWAY PROTOTYPING MODEL IN WEB DEVELOPMENT LIFE CYCLE (WDLC) NAZREEN BIN ABDULLASIM A project report submitted in partial fulfillment of the requirements for the award of the degree of Master of Science (Computer Science – Real Time Software Engineering) Centre for Advanced Software Engineering Faculty of Computer Science and Information System Universiti Teknologi Malaysia OCTOBER 2009 5 To my beloved Mama and Yaya Kakak, Abang Rostam, Abang Nazri, Kakak Nini, Abang Atoi, Surya, Adik Lela, Moin Udin, Sofeyah Late Panda Jazakumullah 6 ACKNOWLEDGEMENT All praise is to Allah azza wa jalla, as laid upon me always your grace and mercy for giving me the greatest gift of all, the gift of Imaan. I am hoping and praying that this project may benefit ummah as a whole and make me a better person and vicegerent in this world. I am very thankful to my academic mentor Mr. Ridzuan bin Ahmad for his endless supports and advices. He had help and gave me privileges, which made me under solace and content throughout the completion of this project. I also want to give my appreciation to Mr. Saiful Adli for helping me and lending his valuable expertise and experience where I cannot get it elsewhere. Regardless of their status, they will always be good friends and teachers of mine and may Allah bless them always. To my best friend and mentor as well Mr. Faiz Bashir for his endless helps and assistance from the very first day we’ve met until the day he departed to his home country. I will always admire you and always be my source of inspiration to be a good Muslim. Last but not least, my appreciation to all people that had helped and inspired me throughout this journey. Jazakumullahu khaira katheera 7 ABSTRACT The purpose of this study is to analyze the relationship between web development life cycle (WDLC) and system development life cycle (SDLC). Even though the two terms WDLC and SDLC are similar in a sense that both discuss about development lifecycle but they have differences in term of its scope. From the term WDLC itself has shows that it is focusing on website development meanwhile SDLC is focusing on software at large. Website can be considered as a subset of software. Therefore, the study is about analyzing how far WDLC relevancy compares to SDLC. SDLC comprises of methodologies such as structured development, rapid application development, and agile development. In each methodology comprises of many SDLC models which complying with specific software development trends. Hence by analyzing typical website development trends and characteristic will allows to identify the suitable SDLC model. Introducing the model only will not sufficient if there is no guideline of how to apply it. Therefore the study also covers the implementation of the model with the web development processes. 8 ABSTRAK Objektif daripada kajian ini adalah untuk menganalisis hubungan antara kitaran hidup pembangunan Web (WDLC) dan kitaran hidup pembangunan sistem (SDLC). Walaupun kedua istilah SDLC WDLC dan mirip dalam erti bahawa keduanya membahas tentang kitaran pembangunan tetapi mereka mempunyai perbezaan dalam hal rinciannya. Dari istilah WDLC sendiri telah menunjukkan bahawa ia fokus pada pengembangan laman web Sementara itu SDLC fokus pada perisian pada umumnya. Website boleh dianggap sebagai sebahagian daripada perisian. Oleh kerana itu, kajian ini adalah tentang menganalisis seberapa jauh perkaitan WDLC berbanding dengan SDLC. SDLC terdiri daripada metodologi pengembangan seperti berstruktur, pengembangan aplikasi yang cepat, dan pembangunan tangkas. Dalam setiap metodologi SDLC terdiri daripada banyak model-model yang sesuai dengan tren pembangunan perisian tertentu. Oleh kerana itu dengan menganalisis tren pembangunan laman khas dan karakteristik akan membolehkan anda mengenalpasti model SDLC yang berpadanan. Memperkenalkan model sahaja tidak akan memadai jika tidak ada garis panduan tentang bagaimana menerapkannya. Oleh kerana itu, kajian ini juga merangkumi pelaksanaan model dengan proses pembangunan web. 9 TABLE OF CONTENTS CHAPTER 1 2 3 TITLE PAGE DECLARATION ii DEDICATION iii ACKNOWLEDGEMENT iv ABSTRACT v ABSTRAK vi TABLE OF CONTENTS vii LIST OF TABLES x LIST OF FIGURES xi LIST OF ABBREVIATION xii LIST OF APPENDICES xiii INTRODUCTION 1 1.0 Problem Background 1 SCOPES AND OBJECTIVES 3 2.0 Vision Statements 3 2.1 Project Objectives 3 2.2 Project Scopes 4 2.3 Project Plan 4 LITERATURE STUDY 5 3.0 Software Development Life Cycle (SDLC) 5 3.0.1 Planning 6 3.0.2 Analysis 7 3.0.3 Design 8 10 3.0.4 Implementation 10 3.1 System Development Life Cycle Methodology 12 3.2 Website and its Characteristic 14 3.3 Web Development Life Cycle (WDLC) 16 3.3.1 Planning 18 3.3.2 Analysis 20 3.3.3 Design 21 3.3.4 Implementation 22 Considering Content Management System 24 3.4.1 Basic Features of Web CMS 26 3.4.2 Possible Downside of CMS 27 3.4.3 Choosing the Right CMS 28 Web Development Life Cycle Methodology 29 3.4 3.5 4 5 6 DISCUSSION 31 4.0 Introduction 31 4.1 Differences of SDLC and WDLC 33 4.2 WDLC as a subset of SDLC 37 4.3 Throwaway Prototyping Model for WDLC 40 IMPLEMENTATION 42 5.0 Introduction 42 5.1 Brief of the project 42 5.2 Project Development Process 43 5.2.1 Planning 47 5.2.2 Analysis 49 5.2.3 Design Prototype 51 5.2.4 Design 59 5.2.5 Implementation 63 CONCLUSION 67 6.0 WDLC relevancy toward website development 67 6.2 Future Study 68 11 6.3 Conclusion 68 REFERENCES 70 Appendices A-B 73 12 LIST OF TABLES TABLE NO TITLE PAGE 3.1 WDLC web development phases 16 4.1 Comparison of SDLC and WDLC 33 4.2 Activity Comparison between SDLC and WDLC 34 4.3 Criterion Selection Factors in Structure Methodologies 4.4 37 Criterion Selection Factors in Rapid Application Development (RAD) 37 4.5 Criterion Selection Factors in Agile Methodologies 38 5.1 Activities in Throwaway Prototyping 44 5.2 Software and Tools for Web development 48 5.3 Technology for Web Development 49 5.4 Website Structure 52 13 LIST OF FIGURES FIGURES NO TITLE PAGE 3.1 Basic Phases in SDLC 5 3.2 Static Web Architecture 15 3.3 Dynamic Web Architecture 16 5.1 Throwaway Prototyping Model 44 5.2 Content Layout for the Website 51 5.3 First Prototype for Homepage 53 5.4 First Prototype for Content Page 54 5.5 Second Prototype for Homepage 55 5.6 Second Prototype for Content Page 56 5.7 Home section of each main section 57 5.8 Content page with home section of main content 58 5.9 Basic content page 58 5.10 Home Page 59 5.11 Examples of CSS file 60 5.12 Corresponding div tag for CSS 61 5.13 First story board 61 5.14 Second story board 62 5.15 Third story board 62 5.16 Fourth story board 63 5.17 Joomla Administration Page 64 5.18 HTML coding in the template 65 5.19 Example of content generated from Joomla tags 65 14 LIST OF ABBREVIATION ACM - Association for Computer Machinary CASE - Computer Aided Software Engineering CERN - European Organization for Nuclear Research CMMI - Capability Maturity Model Integration CMS - Content Management System CS 3 - Creative Suite 3 CSS - Cascadding Stlye Sheets DSDM - dynamic system development method ERP - Enterprise Resource Planning FTP - File Transfer Protocol GIMP - GNU Image Manipulation Program GUI - Ghraphical User Interface HCI - Human Computer Interaction HTML - Hyper Text Markup Language IEEE - Institute of Electricals and Electronic Engineers JAD - Joint Application Development Lorum Ipsum - Text Filler or Dummy Text Content MySQL - Simple Query Language PHP - Personal Home Page / PHP :Hypertext Preprocessor RAD - Rapid Application Development RSS - Really Simple Syndication SAP - System Analysis and Program Development SDLC - Software Development Life Cycle SEO - Search Engine Optimization URL - Uniform Resource Locator WCMS - Web Content Management System WDLC - Web Development Life Cycle 15 WWW - World Wide Web WYSIWYG - What You See Is What You Get XML - Extension Markup Language XP - Extreme Programming 16 LIST OF APPENDICES APPENDIX TITLE PAGE A Gantt Chart for Industrial Attachment II 73 B Pert Chart for Industrial Attachment II 75 17 CHAPTER 1 INTRODUCTION 1.0 Problem Background In today’s development, there is no a ground rule or guideline which we can be followed in developing static website. Even though the process of the web development has similarities with the process in conventional software development life cycle (SDLC) model, still there is a need to have a well tailored or dedicated approach for web development based on specific requirement. The term of web development life cycle (WDLC) that is used by many web developer can be misunderstood in term of its scope. Some of them understand WDLC as a new model of SDLC. Some of them understand it as new methodologies in WDLC. Moreover, some of them even understand it as a whole new study of SDLC because of its general term of WDLC itself. Despite of the issues, the idea behind WDLC is to design a specific approach for web development especially for static web development. The approach may not be a whole new model of SDLC but it may be a derivation of SDLC model that implies with the typical process of web development life cycle. The approach is based on the current technology and may be varies in the future. As for today, the widely used of web content management system (CMS), advanced web authoring tools that can ease the process of prototyping to implementation phase are major contributing factors of why this approach is introduce at the first place. 18 Therefore, it is necessary to understand SDLC which includes the methodologies and the models inside each of them. Moreover it is also important to understand the website characteristic and its type such as static website and dynamic website. Furthermore, understanding the latest and conventional development process trends is also important as it will identifies the technologies involves in it. Hence, the information will help to determine the appropriate model of SDLC and therefore can be derived according to web development life cycle trends. 19 CHAPTER 2 SCOPES AND OBJECTIVES 2.0 Vision Statement To analyze System Development Life Cycle (SDLC) in term of it methodologies and models and compare it with web development life cycle (WDLC) approaches where many web developer had introduced. 2.1 Project Objective The following are the main objectives of this project: i. To study and understand the principle of SDLC including its methodologies and models. ii. To study the characteristic of website project and system development project. iii. To study WDLC characteristic and its principle iv. To analyze WDLC and SDLC relationship v. To suggest the appropriate SDLC model for web development trends. 20 2.2 Project Scopes i. The web development life cycle is pertaining only to static web development. ii. The idea of the WDLC is taken from various web developers where it provides different explanation in specific but share something in common generally. The WDLC idea can be seen through URLs at the reference page. 2.3 Project Plan The project plan and time table can be referred in the attachment A of this report. 21 CHAPTER 3 LITERATURE STUDY 3.0 Software Development Life Cycle (SDLC) Software development life cycle (SDLC) had been in the practice of the information technology industry for many years. It has evolves and many approach had been introduced to serve the industry needs and specification. It is common to the analyst and developer to go through all the process of planning, analysis, design and implementation phase. Planning Analysis Design Implementation Figure 3.1: Basic Phases in SDLC 22 3.0.1 Planning The initial phase of SDLC is very crucial because it determine of why the project is going to be developed. This question will then lead to the project feasibility that going to measure the practicality of the project where either the project is realistic or not. Further that the feasibility had been recognized, more information the analyst will get to estimate time and identify work breakdown structure. Usually the feasibility is measured based on technical, economic and organizational values. Technical feasibility study is a way to measure whether the organization or team development have the ability to develop the project. Of course, when development is concern, the team has to consider technical skill sets, experience with similar portfolio, and level of knowledge about the project. Meanwhile, economic feasibility study is about, measuring the organization or client funding or expenditure toward the project. If it is about generating revenue, it is about measuring whether the project is going to produce any income toward the organization or not. On the other hand, organizational feasibility study is about the organization itself whether the project is practical to them and is the project complement or at least serve the company benefits. Planning also leads to time and cost estimation. This is due to the resources identified for the project development. Many resources do not necessarily means faster development process and it goes as well for the more expensive the cost estimation would be. Therefore the analyst has to identify resources in a later phase according to the work breakdown structure where it consists of number of tasks that should be done during the process. It is desirable to have each task assign to different personnel where it can contribute to the task to be more focus and as a result lesser time cost estimation. But again, does it contribute to cost effective throughout the project. Gantt Chart and Pert chart are the most commonly a graphical way to aid visual structure of planning and task of the project development process. 23 Hence, planning is very important as it assure the project to be feasible to start of into development process. 3.0.2 Analysis From planning the process continue to analysis phase. This phase is to question who will be the user or to whom will the software benefit. It also question that what kind of software that its produce and where it is going to be implemented. This process will go through a series of interview and study of similar project if there is any. The interview usually involve between the organization and the development team, or it may happen between client and the development team, or it may happen between the organization with the third party or outsource company. Later on the inputs and information gathered are going to be analyzed into more precise and specific details of requirement. Requirement is a steps that to be determine critically because at the initial stage of the development the developer may find the change of requirement throughout the process may not harm the project into failure, but it will really affect when the development getting more complicated where changing the requirement half way may be burden to the development and will jeopardize the project into failure. How is this possible? Requirement helps to detail and determine functional and non-functional requirement where functional relates to the function that the software or system should deliver. It also relates to the data flow and structure that goes around the system. At this moment, use case, process model, and data model will be detailed out in the requirement documents or etc. Use case basically if not illustrate, it will explain the basic function that the system or software do. Meanwhile, process model is basically how the functions within or outside the system interacts between each other. Sometime function is also known as module. On the other hand, data model is basically the flow of the data between modules. 24 These details are very important to be detailed out before the design phase because it will help the next phase not to be redundant in term of the functionality and it also help not to miss out any of the possible function so that the software will deliver it purpose completely. Where else, non-functional requirement is referring toward the software performance and its usability. Hence, software architecture, environment of the software implementation, the policies and security aspect are going to be determined. With complete information from the requirement, the design will be fluent because it is a matter of detailing out the requirement into more real implementation to the technology that the requirement to fitted in. 3.0.3 Design As the requirement details were gathered during analysis phase, design is practically deciding the technology, software tools and hardware. It also determines the architecture of the system as a whole in more detailed way for example in term of the network structure and database design. Some of the organization will go through the process of deciding outsource or in-house development or even buying a existing software package such as SAP and other enterprise resource planning (ERP) packages. In short, Design phase involve the process of physical design system, architecture design, interface design, database and files design and program design. Physical design basically involves the process model and data flow model that correspond to the system specification and technology that going to be used which had been determined during designing the architecture of the system or software. 25 Meanwhile, interface design involves many other sub-processes beginning with use scenario, interface structure, interface standard, interface prototype and interface evaluation. The process started with defining how the user going to interact with the system or software by listing out numbers scenario. From the scenario, the designer will create all the possible structure of each possible user interface and shows how each of them related. This later on, will determine the standard where it going to produce a template to avoid redundancy in creating them in the future and maybe to maintain the outlook if there is any possible function or module enhances. Interface design prototyping is actually a simulation of the actual to be interface. Storyboarding is the most popular way of simulating the events between each interface. It is the simplest way and even can be comprehensive which depending on the description of each scene of the storyboard. Another method is using HTML prototype as it is simple to show the transition between pages or module by only using hyperlink. Last but not least is interface evaluation where the interfaces are going to be evaluated and search for improvement in term of the flows and structure. Program design is another part that took place in the design phase. This part emphasis on the logical and algorithm involve in a function or module. Not necessarily that its available on each function or module but sufficient only to certain that needs logical detail explanation about the algorithm. The algorithm might be an algorithm to calculate weather temperature from Celsius to Fahrenheit, or to calculate the loan interest total payment for 25 years. Therefore, design is another critical phase that the developer should be very careful to detail it out and to make sure it’s synchronized with the requirement at the previous stage. This consequently will be the references especially for the programmers, multimedia graphic designer and many other technical personnel to go on with the implementation stage. 26 3.0.4 Implementation This phase is the phase where the project is being realized. Some of the project may cause this phase to be the longest phase in term of time consumption toward completion of the whole process in SDLC. But it depends on the complexity of the project itself. The project may be a simple and straight forward software or system but because the company or organization practice certain policies that need be go through such as following strictly formal SDLC documentation hence for them to gain certain level of CMMI, therefore the most time consumption may cause from other phase such as analysis phase. Basically in implementation phase, there are numbers of sub-phases that most developer follows. Usually it starts with, construct the system, install the system, maintain the system and post implementation. The processes that involve in the construction of the system are programming, graphical user interface development, software testing and performance testing. It is where the design details from the previous phase are written into programming language and the interface design are realize into GUI. Software testing is the next part of constructing the system. Testing and programming are repetitive process. This is because the system or software will be updated corresponding to the test result that are not comply with the test case. Test case is a set of description that helps the tester to examine part of functions from the whole system. This part of testing is known as software testing. To achieve complete software testing, the software must be tested accordingly from unit testing, integration testing, system testing and acceptance testing. Unit testing is where the system is tested according to each modules or functions. Later on each of these modules are tested among them that are collaborating for example unit function that produce output as an input for another function must be correct before it is being passed. Further on, the system is tested in term of each of the module must work together without producing any errors. It is similar to integration testing but system 27 testing is focusing on larger scope. The final part of software testing is acceptance test where the testing is done by the user. The acceptance test itself comprises of alpha and beta testing. Alpha is a stage the data or input are “dummy” data which is data that is made up just for that purpose. Usually it is done by user from the development team. Meanwhile, beta is testing the system using real world data or input where the users are the real user of the system and the testing process are critically being monitored. This is because to differentiate between the errors made up by the system and the error from the user itself. On the hand, performance testing is more on the non-functional aspect. This testing is more on testing the system as a whole, according to the environment such as the network capability and the security of the system. After whole system is fully tested the system is going through installation process. Installation process includes data conversion if needed such as an old system is transferring into new system and still the maintaining the previous data but the system support different type of language and etc. Conversion strategy is needed because it is crucial that a sudden change of system might cause the previous user lost and unfamiliar hence contribute toward unproductively performance in their task due from using the new system. Strategy such as parallel installation might come in handy to solve the unfamiliar usage by the user but again it is still bound to efficiency where is it a long period of parallel installation going to ease the user get familiarize with system and does it going to affect the cost for the organization to burden? Therefore a carefully plan strategy might help and boost the installation process which the organization may consider train their staffs in order for them to get used with the system or also known as change management. Final part of implementation is maintenance, where the system is monitored and updated to ensure it sustainability. The analyst has to always keep updating new technology and approach so that the system deliverable will always perform at its best. 28 3.1 System Development Life Cycle methodology Throughout years of information system, there are many methodologies that had been introduced. Each of the methodologies offers different pros and cons toward the development process of the software or system. Each of them also tailored toward specific business needs and circumstances where each of them has different qualities therefore each software development process will be efficient and more practical to be developed. For example waterfall method may not be practical if the software completion date schedule that is so short and thus prototyping or extreme programming methodologies might solve the problem. This is because methodology such as waterfall is so structure where each phase have to be followed accordingly which going to consume a lot of time. But since it is so structure, it is suitable for a complex system. There are many methodologies that are available in SDLC for the developer to take them as a guideline. Basically SDLC methodologies are comprises into three which are structured methodologies, rapid application development and agile methodologies. Structured methodologies are the earliest SDLC methodologies that were replacing the unorganized system development process during 1980s. It is structure that the development process has to follow the phase accordingly as step-by-step process. There are basically two types of structure methodologies which are waterfall methodology and parallel methodology. Waterfall methodology is basically a process that the developer needs to produce key deliverable such as documentation and presentation toward the sponsors or client. The process will only be continuing once the phase is approved and agree so that the next phase is continued. The advantage of waterfall methodology is that it identifies the requirement critically so that the construction of the system later on will be clear and smooth going. The disadvantage of waterfall is that it is so structure 29 and each phase need to have clearance from the sponsor it will affect the time cost for the development process. Another methodology is Rapid application development (RAD). It was introduce to improve the structured based methodologies where it is so rigid and consume a lot of time. As the technology getting better, RAD makes use of computer-aided software engineering tools (CASE), joint application design session (JAD), visual programming language and code generator to ease and speed up the process development. Prototyping is one of the best examples of RAD methodologies. It is about performing analysis, design and implementation phase simultaneously. Moreover all of the phases are repetitively performed until the system is complete. Throughout the repetitive process the client or the sponsors will list out the possible improvement and refinement of the system being developed. The advantage of RAD is that it is more visible in term of the project progress toward the users; sponsor or client therefore additional requirement is quickly added to make the system more complete. The disadvantage of RAD is that it is not suitable for complex project where the system may be so develop at one point and it has the difficulties to turn back due to the data is complementing each other where if one of them are taken out it may jeopardize the whole system probably. The latest installment of SDLC methodology is agile development. It is even faster than RAD approach since agile focusing on delivering the requirement on hand and eliminates many of the phases took place and documentation that are exist in a typical SDLC methodology. Another contributing factor of its performance is that it focuses on a simpler but delivers the same output and less iterative process. There are numbers of methodologies under agile development such as scrum, dynamic system development method (DSDM) and extreme programming. Extreme programming (XP) is a practical approach that makes the method works effectively. It practices simple coding which done by two developers at most 30 and continuously having inputs from the user as their requirements. Moreover the unit function also being tested on hand. This makes the development process faster and efficient by eliminating process such as requirement approval, design document, testing plan and testing phase. Usually extreme programming starts off with basic overview plan that does not have to go through as rigid as in structure methodologies. Many of the “seems” advantages in extreme programming may as well a contributing factor of its disadvantages. Since it cut off many off the documentation processes, it may tend to lead into confusion in the future as it will be update and improvise. This methodology as well needs dedication from both parties which are from developer and the client or user. This is because that the development is peer to peer basis where both of them stay closely during the development. System Development life cycle is basically the process of understanding how the information system can support business growth and needs and hence give a practical guidelines to design the system and therefore and develop or program it efficiently and effectively. Although it is not about creating an “eye-catching” system or it is specifically tailored to all software and system development needs, but it is good enough that it is broad and general to give idea to the developer to develop the whole complete project. 3.2 Website and its Characteristic HTML or hyper text markup language was invented by Tim Berners-Lee. He was a British physicist working at the CERN particle physics laboratory in Geneva, Switzerland. As a scientist, he would like to share his information and other more effectively and of course more efficient around from the world. Hypertext documents with link which we known as hyperlink was introduced and very much had shape what a website of today. The website main purpose is to share information using World Wide Web (WWW) as a medium across the network. Later on, website which usually consists 31 of web pages is becoming more complex as if it is developing using SDLC approach. Website development had become a big industry and serves many purposes not only toward large firms, but also toward individual who develop it solo. Therefore website development is very crucial as it is a serious business and it is important that website development to at least have a strategic outline during the development process. It is important to understand the differences between website and web-based system in this scope of study. Although it sound similar but it is different in a sense of their architecture. Obviously website development is simpler because the architecture is simpler as well. Website such as portal pages, company branding website, and etc are using basically two tier processes which is web browser (client) and server. Client Web Browser Server File Structure Figure 3.2: Static Web Architecture On the contrary, web-based system can be subset of a website such as order entry form, forum and poll but it also can be a total web-based system of its own where it is being practice in intranet environment such as employee management system and student repository course, and in the internet such as internet banking system. 32 Client Web Browser Server File Structure Server Scripting Data Base Figure 3.3: Dynamic Web Architecture Hence it is clear that website and web-based system are totally different in term of its architecture but share something in common where both using internet and web browser as a medium. 3.3 Web development Life Cycle (WDLC) It is an important step for the web developer to understand what Software development life cycle (SDLC) is at the first place because it is basically the blue print of all software application development including website development. Developing a website these days had never been easier with a lot of technologies and tools were introduced to speed up the development process. Table 3.1: WDLC web development phases Web Development Phases Activity Planning Initial System Request Feasibility Study 33 Analysis Analysis Plan Requirement Definition Hardware and Software Specification Design Interface Design Web Structure Design (Site Map) Implementation Construction Test Plan Problem Report Change Request Marketing Maintenance Request One of the critically acclaimed companies for this industry is Adobe. Adobe had developed and continues upgrade many of their proprietary web application tools that were develop initially by Macromedia such as Flash, Dreamweaver and Firework successfully and serve many web developer needs. All of these tools had boost up the speed for the website development as a whole. Not only that, the introduction of many of open source software also had made the web development easier and faster. Tools and software such as Flex, GIMP and Aptana are just few of the free development tools available which help developer especially small scale company who really does not have option for big investment had given them to build up and enter the industry of web development. Most often open source tools usually being criticized as not offering the same quality features that the proprietary software offered. This is not partially true. As what happen today software application such as MySQL is widely used and in fact it holds the largest number of users for database application on the internet. JOOMLA 34 which is another open source content management system (CMS) that widely use on the internet is another popular open source tools as well. Furthermore, starting of developing website project nowadays had undergone specific pattern and trend that were identified by many of the web developer either the developer consist of large development team or small scale developer. Some of them are a system or software developer where already familiar with SDLC and had involved themselves with web development project but some are not who is probably a graphic designer who venturing into web development. This variety of developer had contributed toward different understanding of what is WDLC. The emerging of different software and the practice of methodologies toward developing web development project had created the idea of WDLC among the web developer. Among of the reason supporting the idea of WDLC are as follows: i. developing a medium to large sized website ii. helps ensure quality and efficiency for freelancers or web development firms iii. help to format the team effectively, and the standards and procedures can be adopted to achieve maximum quality iv. using various programming and designing technology Most of them agrees that WDLC is actually a derivation from SDLC and all of them suggest to at least follow the basic SDLC phases which are comprises of planning, analysis, design and implementation phase. Nonetheless, they suggest some them to more specific toward web development needs. Therefore below are more details of what each phases describe in WDLC. 3.3.1 Planning It is so common that in our daily life to have a plan for the day. Even so that ones does not have plan does not means he or she does not have any plan, it is 35 because they have already follow the norms which they have predefine in the first place without noticing. The author preferably suggests that they already have their own template of the day. Without noticed, they had planned to have breakfast somewhere in the morning, to have lunch somewhere in the afternoon and to have dinner somewhere around in the evening. It is not necessary to have the entire plan note down because it is so common and it might be redundant and not efficient practice. The statement above is just the possibility that might happen with WDLC. In web development especially for smaller scale website, the process might not have complex planning strategies as what in software development life cycle have. This is because “software” itself is a broad term and the software maybe varies in term of the functions and deliverance. Unlike website development, it is already predetermine in term of its function and purpose. As generally known, website is basically a software or application that purposely for sharing information either it is public or private. Therefore it may have some sort of patterns or trends regardless of what is the website for. These trends later on were revised and the developer might simplify the planning stage and becoming a blueprint where there is no need to reproduce the same documents all over again. Feasibility study that exists in SDLC especially for unique system such as technical feasibility study, economic feasibility study and organizational feasibility study might not be as complex as website development. This is because website is fairly easy to be developing compare to unique software and in term of technical feasibility, it is fairly clear that it is possible to develop it because there are many website available and even a specific guideline of what to have what not to have according to the genre of the website. Up to this point feasibility study in planning phase can be said predetermined as it refers to the trend and pattern of the existing website today. The most commonly use strategic that SDLC is practicing and it is crucial if it not taken seriously is time scheduling. Any of the projects including website 36 development have to have a time plan so the estimation of project completion can be measure. Hence it going to give information for time cost and resources cost. 3.3.2 Analysis In analysis phase, many of those who agree with WDLC had following the same steps as in SDLC. Although it is about gathering requirement as well, in WDLC many of them had tailored it into more specific requirement such as follows:i. Discuss hosting requirements for the website ii. Collect content for the pages on the website iii. Basic Layout of the website iv. Theme that the website is going to adapt. The techniques of gathering the requirement are the same as SDLC where they can use joint application development (JAD), Interview, and questionnaire. As for the layout and theme, there numbers of templates of web page that the developer can follow or even buy or get it for free. Documenting requirement is also important in WDLC since it is also going to be the references for the next phase where it will be convert into detailed design which is more comprehensive and more detailed description. Use cases, process model and data model are still relevant since it going to show general visual description of the data between web pages or between function throughout the whole website if web-based system is concern and integrated into the website. Other than that, the documentation also needs to show the site map of the whole website. Site map is an overview of links and relationship of web pages inside the website. It is important because it determine the size of the website hence can contribute toward more detailed requirement. Unlike SDLC, WDLC is more lenient because website development is a straight forward process it does not involve as complex as system where the database 37 driven mechanism is more complex where else website more toward displaying information on different pages. Even so the content of the page might be updated regularly, it is still does not involve complex data flow from database as it is in system development. In website development it is a matter of how many occurrences of the information will be updated in one page and how the developer tackles that issue. This will be discussed in the coming chapter of content management system (CMS). 3.3.3 Design Again, by referring toward the information receive from the previous phase and after the requirements were detailed out, the process continues toward designing phase. Similar to SDLC, in WDLC the requirement will be detail out into numbers of step as well. As in WDLC design are consist into two parts. Prototyping is the first step of design phase where the developer creates basic layout and template. The layout will not only have one templates, it may consist of varies of template to suit with the different page that it represent. It is not necessary to have a design physical system as in SDLC where physical process models, physical data model, and system specification are considered crucial. Since WDLC is merely presenting information on web pages and the flow of the data is so obvious for all website development where the information is actually the data from the server and is uploaded at the page, it is so common where it is not necessary to have design physical system. Architecture design in SDLC focuses on the hardware, software and network integration. Architecture design for website development is fairly the same for each of them. It is commonly known that all website are store in one server and then it will be uploaded into web browser. But if the architecture design discuss about the architecture of the website structure itself then it is different. Website architecture is different with system architecture because this architecture focusing on web content, 38 business plan, usability, interaction design, information architecture and web design. Hence a good architecture may affect the search engine optimization (SEO) to be more effectively and therefore the website is marketable. Since website development involve a lot with visual appearance and aesthetic value of the website, interface design is very crucial. Although there is no standard layout to be followed, the experienced developer will always practice the ground rules that had been studied in Human Computer Interaction (HCI) field such as “2 clicks rule” and many more. This ground rules will contribute toward ideas of design more effective and more user friendly website. It is not required for WDLC to go trough database and files design step as in SDLC. But instead of that, the developer can consider detailing out the files structure of the website. it is a common practice for today website development where the images, audio, video, text archive, downloadable content and probably flash content to be separated into different folders and indexing it into special naming convention. This is the most effective way to organize the files for the website. As the content grow bigger the files will maintain easy to handle. 3.3.4 Implementation Implementation in WDLC is basically divided into three steps which is similar to SDLC. It begins with construct or develops the website into what it should look like. At this step, the content is organized and the links are made. The content and links should compliment with the templates that had been design in the previous phase. The programming part is taken place as well in this stage. But due to many authoring tools and fourth-generation/visual programming language, it has simplify and help saving development time since it can generate codes and create the specific function by just using such easy as “drag and drop” method. 39 Testing is also part of constructing the website. Similarly, WDLC test the website in term of its functional and performance capability. In term of functional testing, the test case is obviously to check each link between web pages to work properly. This is the fundamental of website testing since website is all about links and displaying information. Hence, once the links serve it rights, the content of each web page should display the respective content. Other is more about aesthetic value such as appearance, formatting and consistency. All of these are best done in object oriented wise where it can be done using CSS, XML and web programming language such as PHP. Furthermore, pages that are dynamic such as web form can be check its functionality by checking whether it send the right information to the right place. Web forms that are simple such as forums and sending contact information is still under the scope of website development hence it should be documented with the website project. Unlike system that links toward the website such as course repository or online registration for a college website can be consider external and it should be documented according to each respective projects. On the other hand, performance testing for website can be done while testing its link. During this stage, the tester can evaluate the speed of the page to appear completely. Then if the page is slow, the tester can analyze is it the content or is it the infrastructure of the internet service provider. Performance testing website is always bound under internet technology such as web server, web browser and etc where it is outside the scope of the developer. Hence there are only little to concern when it comes to performance testing for website development because the architecture and policies are quite similar for each project. Installation can be defined into two aspects. First is fresh installation where the server is tested locally and then posted to the real server. The concern is more on the whether the website can should display and work exactly the when it was in local server. Thing such as training and change management is out of the scope since the user are pretty clear that it is the internet user itself who assumed already get used with internet browser. Although conversion plan might happen in the website development, it is more or less changing or updating the new layout of the website while maintaining the content. These can be easily done by using technology of 40 “template” that such software as Dreamweaver, CSS and XML. Again, it is more on the outlook where it is still bound under web browser technology. Different from SDLC, website maintaining happens in more regular basis than system or software. This is because website is about updating the content and theme. By doing this the website is fresh and the will always something new for the user to gain and experience. Choosing the right technology in the early phase of WDLC is very important for maintaining purpose. The website may be simple and represent a small company or organization and hence there is nothing much to update compare to larger company or organization. Web portal such as web magazine or newspaper handle more updating information than other kind of website. Therefore considering technology such as CMS can solve the problem of content management and update issues. CMS will be discussed in the next coming chapter. Final part of implementation is post-implementation. In SDLC, the developer would be more concern about the support plan which can be in term of formal and informal review. This review will result the minor or major changes where the project development go into developing the next version of the system. Where else, website development is more concern about marketing or ongoing promotion where it can be done using several methods. One of the most economical way and the common concern when developing a website is about “search engine friendliness”. Usually developer might look toward search engine optimization (SEO) option where it can be done using from the popular search engine or managing “meta tag” for the web crawler to detect the website easily. 3.4 Content Management System (CMS) Content management system is a system to manage the content of any particular application. As for this topic, the author will scope in using CMS under website development. Web content management system is largely use nowadays to ease and speed up web development process from designing up until implementation 41 phase. It eliminates many of the process in development and made website development easier to handle and possible to be done by a small team. It is important especially for website that is update on regular basis. Even so, it is also applicable toward any website development and it is consider a good practice either it is a big or small website. With CMS in hand, the website can be manageable easily and faster unlike the more traditional way, the website is being update as if the update process is similar to developing the website from scratch. This is because a static website really relies on a file transfer protocol (FTP) application to update their website. by referring the documentation regarding the file management, the new developer and even the existing developer might have problem identify the correspond file. Moreover many of the CMS application and even open-source had taken the CMS into higher level. It is not only serve as managing the content, but it makes the website content richer in term of side application offer by them. This offer is the result of the similarities of any website during past years that many of the developer had to thing and develop which cost them more time and money. Side application such as calendar, user authentication, forums, chatting, shopping cart and many were made possible and it is easy to be integrated as if it is like drag and drop. Furthermore, considering CMS also brings advantage in term of “search engine friendliness” issue that the author tackled earlier. Search engine optimization (SEO) is very important to make the website marketable. Besides, it is also economical rather than using other media which cost the organization a lot of money. Therefore, SEO in the web CMS can helps the website development process at ease and economical and yet professional where a website for small company or organization can stand side by side with the larger ones. 42 3.4.1 Basic feature of web CMS Although not all web CMS offer as what mentioned previously, but here are the common feature that web CMS had to offer. This information is taken from wikipedia.org under the topic of web content management system (WCMS). i. Automated templates Create standard output templates (usually HTML and XML) that can be automatically applied to new and existing content, allowing the appearance of all content to be changed from one central place. ii. Easily editable content Once content is separated from the visual presentation of a site, it usually becomes much easier and quicker to edit and manipulate. Most WCMS software includes WYSIWYG editing tools allowing non-technical individuals to create and edit content. iii. Scalable feature sets Most WCMS software includes plug-ins or modules that can be easily installed to extend an existing site's functionality. iv. Web standards upgrades Active WCMS software usually receives regular updates that include new feature sets and keep the system up to current web standards. v. Workflow management Workflow is the process of creating cycles of sequential and parallel tasks that must be accomplished in the CMS. For example, a content creator can submit a story, but it is not published until the copy editor cleans it up and the editor-in-chief approves it. vi. Delegation Some CMS software allows for various user groups to have limited privileges over specific content on the website, spreading out the responsibility of content management. vii. Document management 43 CMS software may provide a means of managing the life cycle of a document from initial creation time, through revisions, publication, archive, and document destruction. viii. Content virtualization CMS software may provide a means of allowing each user to work within a virtual copy of the entire Web site, document set, and/or code base. This enables changes to multiple interdependent resources to be viewed and/or executed in-context prior to submission. 3.4.2 Possible downside of CMS CMS may have its downside. The possible disadvantages are it is online and the performance is bound by the internet infrastructure. Although offline CMS are available it is not widely use as online CMS. Another downside of many of CMS is difficult to manage. CMS usually have their own scheme of file structure. This file structure can be complicated to understand although it is enough for web developer to understand how to operate the interface of CMS. Ironically the idea of CMS is to manage the website easily but the steep learning curve to learn using most of the CMS had made them turn down of considering in the web development process. It is important to understand the file structure because understanding it can manage and detect bugs and errors causing by the CMS. This is usually happens when the developers want to develop their own side application for their website. Nowadays many of web CMS offer templates and it is very good for many website developer to not thinking of aesthetic part of the design. But most of the templates are fairly the same in term of its layout arrangement. Some of CMS had limited the layout arrangement possibility where it leaves little space for creativity by the designer. Hence it has a little chance for the website to standout because the website looks so obvious and same with the rest of the common website especially the one who is using same CMS tool. 44 3.4.3 Choosing the right CMS Despite of that, there are a number of considerations to be taken seriously when dealing with CMS into website development process. With a good CMS application it will eliminates many of the downside that most of the common CMS caused. The criteria of choosing the good CMS would be popularity of the CMS itself by the web developer. Many of the CMS are open source and its available for free download. As a result many of seasoned web developer might leave suggestion and comment of what do when selecting the best web CMS. The other criterion is ease of use. “Ease of use” covers from the acquiring the CMS, installation process, readable documentation and tutorials availability. Another criterion is minimal learning curve when using with CMS application. All of these criterion will help the CMS integrates smoothly with the web development process Considering web CMS at the early stage will help the developer to recognize where actually CMS lies in the WDLC phase. It also helps the developer to identify which is part of the process can be eliminate as from the traditional WDLC. Usually CMS lies in the early of design phase until maintenance. At the early of designing phase, the developer have to consider that the templates that they are using must be synchronized with the web CMS that they are using. This will ensure the CSS, XML and div tags are place properly in the template before the constructing begins. This is usually called prototyping in the WDLC designing phase. After the prototyping is decided as template, the content will be inserted at the constructing or developing stage in the implementation phase of WDLC. Unlike WDLC without CMS, the content are inserted according to the file structure which represent the page. In the CMS, the structures of the content are outlined and are more organized. It organized them into categories such as into articles, section, category and media. This organization of content made the CMS well index and 45 assists the SEO better. Hence, it also help the maintenance part which concern more on content update become more visible and practical. One of the most well known web CMS and had a critically high acclaimed on its success is Joomla. According to wikipedia that is updated on 2008, Joomla was listed the most popular web CMS available beating 85 other. It is same on the 2008 analysis review from Google that Joomla produce more hits compare to other CMS which is nearly to 101 million hits. This shows that Joomla is dominantly widely use web CMS application on the internet. This is because Joomla is open-source and free and it already in the market and industry for long time. With experience at hand, Joomla able to matured and improved in term of its performance. It also has big number of loyal user where as a result many of them contribute toward it improvisation and forums for tutorials. Below are some of the advantages of Joomla:i. intuitive interface and management panel ii. adapt what you see what you get (WYSIWYG) for editing iii. rich formatting capabilities iv. thousand of downloadable and free page templates v. full text search vi. plug-in or side application for commercial sites such as shopping cart system. vii. search engine optimization features viii. schedule publishing. 3.5 Web Development Life Cycle Methodology As we know Software Development Life Cycle (SDLC) is a study of development methodologies and strategies of developing the system or software effectively and as well regarding about the management of the process for each 46 phase. This study also had introduced a numbers of methodologies that were analyzed hence improve from time to time. As discussed earlier, SDLC methodologies were categorized into three which are structure, rapid application development and agile. As written by many of the developer that introduced web development life cycle (WDLC) they had followed the development phase structurally. The most common structure methodology in WDLC is waterfall model. The model is so common in WDLC because of the website development nature. The website development is a straight forward development as mentioned earlier. The phase in WDLC itself is a straight forward because the nature of the process needs to have approvals or agreement from the sponsors or client before it proceed to the next phase. All of these are just some of the reason why waterfall model is very practical in website development in general. Particularly, website development is commonly clear with its user requirement. Hence it is easy to predict what to do in the planning stage which is very suitable with waterfall model. Similarly, the technology is familiar where most of the developer at least will familiar with HTML, XML and CSS since that is the most common language in a web browser. Website project is not as complex as system or software project which makes them also suitable with waterfall model although there is more suitable model that can deal with simple project. Waterfall model is also known for it reliability because it is known for its structure phase. Nonetheless there are some that considered that WDLC itself is another part of software development methodology although it shares many similarities with waterfall model or maybe other model as well such as prototyping or extreme programming. This probably might cause from WDLC that containing a numbers of different methodologies that mix within the whole process development. 47 CHAPTER 4 DISCUSSION 4.0 Introduction Software development life cycle is a broad topic of study. It covers from the methodologies of the development to the management strategies that involves. It is a continuous process as such it is a process of life cycle. Life cycle is commonly understood that it consist of phases and stages where each process relates toward each other. Each of the phases has to have something to deliver as an input for the consecutive phase. This input becomes a pre-requisite for the phase to do their respective task. And this process become a cycle when any of them return to the previous phase the get a better input so it can produce a quality output where it should not have the necessary of going back to the previous phase. This process is very common not only to the software but toward thing that the developer need to develop. Building a house, car, and even a website need a proper engineering process so the development is clear in term of its details and specification where it leads to continuous improvement. Similarly website development is a continuous in term of its process from initial to completion and it continues at the maintenance process. Hence it is believe that it also follows the process of development life cycle. Many of the web developer consider the process development called web development life cycle (WDLC). 48 As what we understand from SDLC is a type of study about software development. Software itself is a broad term and it can be said a unique product that serve different function and deliverable for each unique software. The development methodologies will be defer as well in term of its complexity and many more. The methodologies will serve as a blue print for each software development to follow as for example that complex software is suitable if waterfall is taken as its methodologies model. On the contrary for simple and fast development agile is the best practice as the development model. As many web developers call the development process of website as website development life cycle (WDLC), there is no technical or critically discussed topic or research about it especially in a credible IT related article repository such as ACM or IEEE. Therefore the question is raised to question the credibility of WDLC itself. What does WDLC make it apart from SDLC? If WDLC does have differences with SDLC, do they have their own methodologies such as structured, RAD and agile? Is WDLC relevant? This question will be answer according to some analysis and comparison review between SDLC and WDLC. 4.1 Differences of SDLC and WDLC The tools maybe the same tools as what it is used in developing software application such as project management tools, software testing automation, or even language such as Java. But what does it break apart from SDLC? Is it that the whole phases are totally different with SDLC? Or is it the WDLC is another methodology that offers within the scope of SDLC?? 49 Table 4.1: Comparison of SDLC and WDLC Development Activity in SDLC Activity In WDLC Initial System Request Initial System Request Feasibility Analysis Feasibility Study Analysis Plan Analysis Plan Requirement Definition Requirement Definition Phases Planning Analysis Use Cases Process Model Data Model Design Physical Process Model Hardware and Software Specification Physical Data Model Interface Design Architecture Design Web Structure Design (Site Map) Interface Design Hardware and Software specification Data Storage Implementation Construction / program Construction Test plan Test Plan Documentation Problem Report Training Plan Change Request Conversion Plan Change Management Marketing Support Plan Maintenance Request 50 Before we go the answer below are some of the comparison reviews of what are the phases that it is in SDLC and what in WDLC. Table 4.2: Activity Comparison between SDLC and WDLC Development SDLC WDLC (review) Initial System Request Technical feasibility is not Feasibility Analysis concern due to the availability Phases Planning of the internet technology itself. Analysis Analysis Plan Requirement definition is Requirement Definition more predefine such as Use Cases acquiring content and the Process Model visual layout. Data Model Use cases is also predefine since website is a mere content presentation while web browser is the actual system behind the website technology Since website is a straight forward architecture, process model and data model is not necessary. Design Physical Process Model Since process model and data Physical Data Model model is not necessary there Architecture Design is no need for physical Interface Design process model and physical 51 Hardware and Software data model. specification Data Storage Architecture is obvious for website development Interface design is crucial in website development because it is about visual where website is all about Hardware is predefine where else the software might be differ from different website project. Prototyping and design are the considered in Design phase. It is where the template is design and initial CSS is constructed Implementation Construction / program All of the construction such as Test plan putting all the content Documentation together. This includes audio, Training Plan video and animation as well. Conversion Plan Change Management Training may not necessary Support Plan because website target users are basically the internet user who is assumed to get use with web browser. Conversion plan is less. With 52 the template strategy the content can be maintain even tough the layout is changed. Moreover website basically using HTML as their language. Similarly to change management it is not necessary because website is for internet user. From above we can see that WDLC is actually following SDLC in general. It is not that WDLC is apart from SDLC in term of it total different set of study. WDLC is actually a derivation from SDLC where it focuses more on the website development scope. Therefore WDLC is actually a subset of SDLC. As we know that SDLC comprises of methodologies or model that were designs to fit into each different development process situation and circumstances. Website development is just another product of system development. Website is a straight forward and a simple system to understand. But is it essential to categorize WDLC as another part of SDLC methodologies such as waterfall model in structure methodologies, or is it already a totally new methodology apart from RAD, agile and structured? 4.2 WDLC as a subset of SDLC Before choosing what is best methodologies or model that to be follow, there are a set of criterion that the developer had to consider. Below is the list of criterion that is basically studied in SDLC field. i. Clarity of requirement 53 ii. Familiarity with technology iii. System complexity iv. System Reliability v. Short Time Schedules vi. Schedule Visibility As we already discussed about WDLC is not really a new set of study, we are going to analyze the relevancy of WDLC to become a new set of methodologies. As we know each methodology were designed to tackle several issue that are commonly found in the system development. Below is the suggestion framework of selecting the best methodologies for a project that been suggested from System analysis and design, second edition, wiley. Table 4.3: Criterion Selection Factors in Structure Methodologies Ability to develop system Structure Methodologies Waterfall Parallel Phased Unclear user requirement Poor Poor Good Unfamiliar technology Poor Poor Good Complex project Good Good Good Reliable Good Good Good Short time schedule Poor Good Excellent Schedule Visibility Poor Poor Excellent Table 4.4: Criterion Selection Factors in Rapid Application Development (RAD) Ability to develop system Rapid Application Development (RAD) Methodologies Prototyping Throwaway Prototyping Unclear user requirement Excellent Excellent Unfamiliar technology Poor Excellent Complex project Good Excellent 54 Reliable Good Good Short time schedule Excellent Good Schedule Visibility Excellent Good Table 4.5: Criterion Selection Factors in Agile Methodologies Ability to develop system Agile Methodologies Extreme programming Unclear user requirement Excellent Unfamiliar technology Poor Complex project Poor Reliable Good Short time schedule Excellent Schedule Visibility Good Many of the web developer adapting waterfall model because waterfall model is very straight forward and structured which made them easy to follow. Now we analyze common characteristic of website. As discussed earlier in the previous chapter, website is a straight forward project in term of its nature architecture, its development process life cycle. Due to this, usually time schedule for the website development is short compare to system development. It is also factored from the mechanism of the common website that is relevantly similar with other website projects which make the design and implementation phase predictable and easy to understand. Many of the requirements are predefine such as what the website commonly do which are hyperlink and displaying web pages which is already fulfilled by the web browser technology. It is more to concern on the content and layout where the fundamental of website development. 55 Website development had become easier as the constructing the website itself is easy as “drag and drop". This is for the reason that the technologies become more advanced as such it can generate code in the implementation phase where details from design phase are the only input for it to generate in such way. This is made possible by the introduction of computer aided software engineering (CASE), visual programming language, authoring tools and code generator. These applications had subsequently made website development more effective and shortening the time cost that occurs in design and implementation phase. Moreover, technology also had brought blessing to website development process as content management system (CMS) made particularly maintenance process in implementation phase easier regardless of the website scale. Managing content on regular basis made web developer at ease because it is easy as using word processing application and each entry or update will be log hence it is automatically being documented. Not only that, CMS software such as JOOMLA is so comprehensive in a way it provides numbers of side application or plug-in to make the website richer and practical. The plug-in such as search box, calendar and even shopping cart is ready to be installed and the web developer might not have to worry about developing them as what happen traditionally. Therefore, the entire mentioned characteristic of common website had made into assumption that website development is easy and not complex. Hence, the characteristic of website development had opened and revealed the suitable methodologies and models that can be adapt. Many of the web developer especially who agree with the idea of WDLC saying that WDLC is actually following waterfall model if it is not saying that WDLC is another part of SDLC. As from the information above, WDLC is best suited in Rapid Application Development (RAD) methodology. RAD is basically the improvement of structured methodology. Unlike structured, RAD is faster. The methodologies recommend using special techniques 56 and computer tools to speed up the analysis, design, and implementation phases. Technology that siding with website development in which to support the development phases to be faster had made it very suitable with RAD methodologies. Other methodologies such as agile also is not suitable compare to RAD. This is because agile development is more on coding-centric approach. Even though Agile is also suitable for simple project, due to peer-to-peer approach and really focusing on coding such as in extreme programming model had made it not appropriate to with web development where focusing on aesthetic value and using more on authoring tool rather than programming too 4.3 Throwaway Prototyping Model for WDLC Throwaway Prototyping model is a model that performs the analysis, design and implementation concurrently and in iterative manner. In these sense, we know most of the website development activity are happened most on these phases. Therefore, website development is best described with this model. It is still suffice if the website development is not following each of the workflow suggested in the prototype model. The model that is being suggested is based on the most near criterion of how to select the best model for a project that was discussed earlier. It is more accurate toward the model when website development integrating with web Content Management System (CMS). This application can be considered as tools or application that can boost the speed of the development where maximizing by using tools for this purpose is part of what rapid application development (RAD) is all about. Although prototyping model is still visible as the option for the development process model, there are some key features that what makes throwaway prototyping different with prototyping model and hence become the option for website development guideline. The key features are system prototype and design prototype. 57 System prototype is the outcomes of analysis, design and implementation phase in prototyping model. Where else, design prototype is the outcome from the same phases in throwaway prototyping. When system prototype is finalized, the process will continue on the implementation phase and so forth. On the contrary, design prototype will go to the design phase then to implementation and so on. Design prototype is a working system but it is actually part of the complete project. Design prototype helps the user and the developer to understand and visualize the outer part of the system. It is not necessary working system but more on “mock-up” representation of the system or project. Therefore it fits the website development process where design prototype is actually a interface prototype but it is not really functioning. It can be images of how the web page looks like but the links is not working, or a dummy text that is generated using “lorum ipsum” generator or a merely working hyperlink text without the content to show the linkage between web pages. 58 CHAPTER 5 IMPLEMENTATION 5.0 Introduction Website development has been proven to be effective if it is adapting throwaway prototyping model in rapid application development methodology. This is because the nature and trend of the website development process is simpler and not complicated as other system development processes. As far as this model is concerned, it has been proven useful for the CASE website project as being implemented during industrial attachment period. 5.1 Brief of the project Since CASE establishment, website is a need and crucial part of their marketing strategy to deliver information about what it has to offer to the world. As the organization grows in term of its maturity and its recognition, it is important that the website to maintain its standard and its credibility according to what the organization level. It is necessary to CASE to be competitive as well with other academic institution either it is within the university or throughout international scope. In 2005, CASE had hired a third party company as it outsourced for their website development project. The company had adapted CMS technology to the 59 project and applies an existing design template as the website layout. As far as the content management wise concern, the website is at the presentable sense but it lacked of authenticity of its own fashion and image that should set it apart with other renowned academic institution website. As the website completed, the update of the content become more difficult because it supposed to be handled by the CASE staffs which is not literate toward that CMS software. Although there were trainings during earlier stage of installation and implementation phase toward the responsible staffs that should handle the CMS, it turns out to be difficult to them to the steep learning curve the CMS software itself. Hence, it was proposed and realized that the CASE website should be redesign and restructure. Therefore, the project had come into several objectives to be achieved in five month duration. The objective represents the key features and improvement from the previous website product. The objectives are as follows:i. The layout must be practical and user friendly ii. Aesthetic elements are part of the website features iii. Content must be easy to update and expand iv. Open to multiple layout template possibility. 5.2 Project Development Process The project adapts throwaway prototyping and follows each of the SDLC phases and will be discussed in detail as the process go through. Below is the throwaway prototyping according to CASE website project. 60 Planning Analysis Analysis Design Design Implementati on Implementa Design Prototype The System Figure 5.1: Throwaway Prototyping Model Table 5.1: Activities in Throwaway Prototyping Phased Activities Planning Initial system request – requesting to developed the new website Feasibility Study – focusing more on the new technology that the project can adapt and improve from previous such as the CMS, server side scripting language, and even study on effective web layout comparison with the previous project. Analysis At this stage, analysis is more on the brief study from the current established website as a benchmark for the website project itself. The study includes the website layout, aesthetic features, and technology adaptation. Design Prototype Design prototype involves iteration of analysis, design and 61 implementation sub-phases. Each phase is more focus on the prototype product that it wants to achieve during the requirement part that is determined during analysis part. The requirement at this stage is more toward achieving presentable layout template and good web structure Analysis – Study on other website to produce web templates and good web structure that is practical and yet comprehensive. Design – raw design is drawing and sketching on raw paper to get the first impression. Sometimes drawing using tablet is also considered raw design. Here also determined the theme color, font type and text format. Implementation – this is where the website template prototype is developed. The development criterions are based on the requirement set on the design sub-phase. The theme, font and text format are visualize digitally. It may contain numbers of templates that covers from home page, content page, transition page and action page. The iteration goes on until it produces the decided layout templates. Design As the prototype had been decided, it will be “sliced” into sections where it is usually represented as a table or div tag in web authoring tool that reads and manipulate HTML. Here also may include other more detail design of the website content, such as designing RSS button, PDF buttons, Print buttons and etc as an object so it can be recall next time when it is necessary to be used. 62 Many of the website these days may have different background for their homepage or even montage. Therefore the designs of those particulars are taken place at this phase. Implementation Considering CMS, the template are going to be code according to the template guidelines that the particular CMS. It is needed so it can be synchronize with the content later on and it can generate pages by itself without reproduced using web authoring tools. At this phase, CMS installation is taken place. Usually CMS will be installed directly to the real-server before the content is inserted. Configuring items such as database setup, and testing it stability at administration page is crucial. After the CMS is installed, the template will be installed in the CMS. Although it is possible to install locally at first, but it seems not practical since the CMS itself is capable of installing the content and others remotely. The content structure is created according to the web structure proposed earlier in the designed prototype. Moreover, the modules that are pre-installed may become handy to complement the website deliverance such as calendar, login authentication, banner ads and etc. The website is going to be tested for each page. Usually the testing is more toward the correctness of the content, and flow of the links instead of bugs that caused by the database and the pre-installed modules. This is because the mechanism of the CMS and the modules usually being tested carefully by the correspond developers of the CMS and third party modules. 63 Training may also involves, since CMS itself is usually user friendly and not programming oriented when it comes to updating the content. Hence, the respective staff or content manager may be trained by the developer to manage and update the website. Maintenance Website project development may involve maintenance in term of its content updates and may also change their theme and template pages overtime. 5.2.1 Planning At this stage, the project decided to adapt numbers of technologies for the website development tools. The feasibility studies are concentrating more toward technical and choosing the suitable internet technology such as CMS, server scripting language, web authoring tools and server technology. The technologies choosing criterions are based on follows: i. Latest Technology and yet stable ii. The technology is widely used and among the top compare to its competitors iii. It is cost effective and yet trustworthy iv. The technology is an industry standard. As for this project, Joomla is chose as CMS package, therefore PHP is chose as well as a server side scripting language and MySQL as database query language. This is because PHP and MySQL are basically two technologies that run with apache server where Joomla work with. Moreover, both PHP and MySQL is an open source language and widely used around the world for web development and had become W3C (world wide web consortium) standard. Furthermore combination of MySQL 64 and PHP are their cross-platform capability. Hence it is a perfect solution package where it can be developed on windows based platform and runs on Linux operating system. Joomla similarly are the most popular web content management system software. It is a powerful and among the largest user community on the internet. It is free and offers many third party modules which can benefit the website without wasting develop it “hard-coded”. Adobe Creative Suite 3 web standards on the other hand were chosen as the web authoring package software to develop the website project. The software package mainly includes Dreamweaver CS3, Flash CS3, and Firework CS3. All of the software had been tailored to the workflow that had been suggested by Adobe toward efficiency of development process. Below is the workflow:- Table 5.2: Software and Tools for Web development Phase Software Activity Prototyping Firework CS3 Rough design of the outlook of the web pages layout. Design Firework CS3 Detailed Design Including any necessary Flash CS3 animation if needed. Here the colors, basic font and any detail object are designed. Implementation Dreamweaver CS3 The sliced designed pages are transferred here into HTML. Embedding with PHP tags and others such as JavaScript, CSS, and even Joomla template tags. Maintenance Dreamweaver CS3 Content updates and template maintenance, but in this project, the tasks are done by CMS. 65 The adobe workflow for website development is very suitable to be synchronized with throwaway prototyping model. The workflow can be considered as a design prototype sub-phased where it is specially tailored for creating prototyping page. Later on, the decided prototype will be implemented in CMS where the content structure is created. Below are the summary of the technology use for the website development:- Table 5.3: Technology for Web Development Technology Details Web Server Side PHP 5 – web programming language MySQL 4.1.0 – Database Programming language Apache 2.0 – Web Server application Content Management System Joomla 1.5.- web oriented content management system Web Authoring Tools Adobe Creative Suite 3 Web Standard Dreamweaver CS3 Flash CS3 Firework CS3 5.2.2 Analysis At these phase, study of other website is important as it will give the worldview of the website that is going to be developed. Hence, it is important to lay out specific criterions in choosing the website that are going to be as a reference or 66 more specific as a benchmark. Benchmarking is crucial because it will set up certain objectives and measures so that the future output of the product will be visible and predictable. Therefore the criterions are as follows:i. The website must be an academic website which is more preferably university website ii. The university must be renowned and among the world top ranking university iii. Among the website, it must have an outstanding aesthetic value and practical website structure and user interface. Therefore by using the above criterions, there are three website were chosen as a basic study reference for analyzing the trends among themselves from their similarities. The websites are as follows:i. Imperial College - http://www3.imperial.ac.uk/ ii. Aston University - http://www1.aston.ac.uk/ iii. Harvard University - http://www.harvard.edu/ According to these three website, other than sharing the same criterions they all have similarities in term of main theme color specification. They are also having their own homepage as a default page whenever the user goes to their main URL. Homepage is a main or first impression of the website user toward the whole website experience that the user may encounter. All of the aesthetic value of each website maintain its corporate outlook and distinguished into one basic color. Although the layout for the main page of each website is different, the layout of the websites content page is basically divided into header, main navigation, breadcrumbs, sub navigation, content, and footer. Which can be visualized as follows: - 67 Header Main Navigation Breadcrumbs Content Sub Navigation Footer Figure 5.2: Content Layout for the Website As a result of the study, the website had come into some basic requirement of the website features. The basic requirements are as follows:i. The website will be basically differentiated into two basic page layouts which are homepage layout, and content page layout. ii. The Website must have designated layout for the homepage iii. The content page layout must follow the studied and analyzed layout as shown previously. iv. The website must have one basic theme color. To ensure it blends correctly with other color. The development process is using http://colorschemedesigner.com/ tools 5.2.3 Design Prototype The design prototype is purposely to cater for producing a final layout template. In order to do that, the process must undergone series of iteration of design prototype phases which consist of analysis, design, and implementation. The project had undergone three iteration processes to produce final template. 68 5.2.3.1 First Iteration 5.2.3.1.1 Analysis and Design The first iteration idea was more to have homepage layout and content layout. Content layout is already following the standard as analyzed and studied in previous topic. The focus is more toward homepage. The idea of the homepage is to convey the main courses offer by CASE. Therefore it is crucial to show and visual the courses. At this phase, the main navigation were identified and divided into three categories which are “information about” and “information “Miscellaneous”. Below are the details of each section: - Table 5.4: Website Structure Information About Research Courses Campus Life News and Events About Case Information For Prospective Student Current Student Staff Alumni Proffesional Miscellaneous Student Login Staff Login Sitemap Feedback www.utm.my Term of Use for” and 69 Privacy Policies 5.2.3.1.2 Implementation Below are the snapshot of the first iteration of the homepage follows by content page and other detail design if necessary. Figure 5.3: First Prototype for Homepage 70 Figure 5.4: First Prototype for Content Page 5.2.3.2 Second Iteration 5.2.3.2.1 Analysis and Design The second iteration is focus more on changing the layout of the homepage. The basic layout of the content page remains the same. Instead of focusing on displaying the main courses, it was decided to show more general information such as latest information from each section which is news and events, research and current student. The representation of each section are represented using more hype word such as “What’s on the news” for news section, “Happening Events” for events section, “Our Student” for current student section and “Cool Research” for research section. As for the content page, the layout remains but the sub navigation section changed the “Quick link” section where the shortcut to ‘latest’ information for news, 71 events, prospective student and research groups. These were replaced to “News Update” section where it shows brief information about latest news and events. 5.2.3.2.2 Implementation Below are the snapshot of the first iteration of the homepage follows by content page and other detail design if necessary Figure 5.5: Second Prototype for Homepage 72 Figure 5.6: Second Prototype for Content Page 5.2.3.3 Third Iteration 5.2.3.3.1 Analysis and Design The final iteration of design prototype is focusing more on removing any redundancy and maintaining the overall theme. It is also refining the homepage to be more simple and practical. The homepage is simplified from four shortcuts to two shortcuts. These shortcuts are news and events. It is more practical since many users practically would want to know about latest information about the CASE department instead of the more static information such as history and etc. Moreover, in order to complement the latest information is to include twitter or RSS modules to the homepage. As for the content page, it is decided to have each main section a homepage of its own. It is a basically picture representation of respective main section. It is 73 accompanied with brief explanation about the section. Although most of the website theme maintains to the decided color, the section homepage may have different color only at the picture representation. This is to create fresh experience for the user when they browsing through from at least main sections. 5.2.3.3.2 Implementation Below are the snapshot of the first iteration of the homepage follows by content page and other detail design if necessary. Figure 5.7: Home section of each main section 74 Figure 5.8: Content page with home section of main content Figure 5.9: Basic content page 75 Figure 5.10: Home Page 5.2.4 Design As the final design template finalized, the design phase of the development process took place. In this phase, more detailed design is going to be determined. Detail such as font type, font size and colors are determined. To avoid redundancy where the developer does not have to set or code each font in content for each page, they can apply CSS technology. CSS can standardize the page design especially the text format for each page. It can be done by creating one or more CSS files to configure the whole website. In this project, one CSS file is sufficient to represent the text formatting. Furthermore, other detail design such as animation or montage which can be done using Flash CS3 software also being determined at this phased. As for this project, short montage was applied at the homepage. A rough story board cans helps 76 to visualize how the looks like will and will assist when animating process took place. Below are the examples of CSS file corresponding to the webpage text formatting: - Figure 5.11: Examples of CSS file 77 div.menu1 div.menu2 div.content1 div.content2 Figure 5.12: Corresponding div tag for CSS Below are the rough storyboards of the montage at the homepage:- Figure 5.13: First story board 78 Figure 5.14: Second storyboard Figure 5.15: Third storyboard 79 Figure 5.16: Fourth storyboard 5.2.5 Implementation After the design phase detailed out, it is time to program and design the website project on the web authoring tools. Although for web static there is nothing much of programming or coding as what in typical system development is having, coding is necessary when to configuring the template according to the CMS package. The templates are going to be “sliced” and customized according to the CMS configuration. In order to do that, understanding the specific CMS configuration (Joomla as CMS package for the project) is crucial. This can be done by following the Joomla http://docs.joomla.org/Tutorial:Creating_a_basic_Joomla!_template documentation where it provides the guidelines to create the template. In this case, the templates were already being made from the designed prototype phase. The next step is to embed Joomla tags (for example <jdoc:include type="modules" name="top" />) to the specific area of the template so that the content generated from CMS can be placed hence produce web pages. 80 Of course before the templates are going to be installed on the CMS, the CMS itself need to be installed at the first place on the server side. In this case, the Joomla is installed first at www.case.utm.my server. After the installation, the web structure, template installation, and content creation can be done remotely using the Joomla administration page. At this page, the administrator can create web pages, content archives, setting templates and installing it and many more. Below are the examples of Joomla administration page. Figure 5.17: Joomla Administration Page Before installing the templates, the template must be sliced into divs or columns so that the Joomla embed tag can be placed correspondently. Although there is no specific ground rules of placing the Joomla embed tag, the tags must be place carefully and as a best practice, it is adviseable to place them according to what joomla suggested. For example, the header tag must be place in a header area of the template so forth. The example of Joomla tags in template is as follows: - 81 <html> <head> <jdoc:include type="head" /> </head> <body> <jdoc:include type="component" /> <jdoc:include type="modules" name="left" /> <jdoc:include type="modules" name="breadcrumb" /> </body> </html> Figure 5.18: HTML coding in the template <jdoc:include type="head" /> <jdoc:include type="breadcrumbs" <jdoc:include type="component" /> <jdoc:include type="footer" /> Figure 5.19: Example of content generated from Joomla tags After configuring the templates, the content creation is ready to be deployed as well as page creation according to the web structure proposed on earlier phase of development process. Moreover, Joomla offers many pre-installed modules such as hit-counter, calendar, user authentication and many more. This can be installed according to needs and requirement. As for the unavailable modules, there are many 82 free and paid modules over the internet that can be downloaded and cater toward the specific need of the website. 83 CHAPTER 6 CONCLUSION 6.0 WDLC relevancy toward website development Web development life cycle (WDLC) is a great idea. It is purposely done to make the development process easier and faster which result it to be more efficient and effective. Many inexperience developers may find it helpful for them to be used it as a framework, workflow or guideline as in initial start of their career. Although many of those experience developer may claim them to be this or that model or even other methodologies or even a totally new development life cycle study, it is still serve it purpose as a well structured and organized although it is not that comprehensive and critical. But recreating something that is already exist and yet so critical is something to be redundant. Hence critical analysis of the WDLC is important because it helps many developers to appreciate the study of SDLC at the first place. WDLC word itself is mistakenly interpreted because it is so similar to SDLC which makes people understand that WDLC and SDLC share something in common in a sense that it is to be understood that the relation between SDLC and WDLC is union not subset of one and another. It is also help the developer to understand that there is an available methodology and hence model for website development to follow. The model introduced is not only better than the common model that is being used but it helps 84 many developers to understand SDLC as a fundamental and not the branch study without understanding its root. Some developer might follow the model without realizing its existence but by doing that the developer may lost some of the full potential of the model where it had been a critical study. 6.1 Future Study Last but not least WDLC or more appropriate being called as website development guideline using a throwaway model is actually a derivation of the study of System or Software Development Life Cycle (SDLC). Therefore the so called WDLC is need to be refines its position so that it is well describe under SDLC scope but yet so comprehensive in a way that it will help the website developer to have its own standard development hence become sort of development manual in the future. From here on, the study of website development process will be more discipline in a way it is so comprehensive and yet not redundant with the existing methodologies or model. 6.2 Conclusion As a conclusion for this project, website development is considered a big business up until many of the web developers had developed their set of methodologies and model as a guideline for their website project and hence share it with other web developer mostly with internet. Without concerning about the web developer background about their understanding toward system development life cycle (SDLC), it had created an ambiguous understanding toward the idea of web development life cycle (WDLC). Although it serves it rights as to provide guideline for web developer, it also had created the misunderstanding toward SDLC and hence many web developer had overlooked WDLC and may ignoring the capability of SDLC itself. This project also proofed that WDLC is still relevant but had to be refined at least give the idea of WDLC position in SDLC study. Hence WDLC or 85 should better known as “website development guideline using a throwaway model” as for now will open a gateway of greater future study for web development process where it will serves web developer concise workflow and guideline without losing the appreciation of SDLC as a foundation of any IT related development product. 86 REFERENCES 1. Alan Dennis, Barbara Haley Wixom, Roberta M. Roth, System Analysis and Design, Third edition, Wiley, 2005 2. Adobe Creative Suite 3 web Premium and Standard Workflow guide, California, Adobe Press, 2007 3. Richard Quick, Web Design in easy steps, 4th edition, United Kingdom, In Easy Step, 2008 4. Joomla for Dummies 5. Keri E. Pearlson, Carol F. Sanders, Managing and Using Information Systems a strategic approach, third edition, Wiley Publisher, Danvers, 2006 6. Tay Vaughen, Multimedia: making it work, sixth edition, Illnoius, Mc Graw Hill, 2004 7. Igor, Web Development Life Cycle (WDLC) http://forum.abestweb.com/showthread.php?t=57774, 2005 8. AeroFX, Web Development Life Cycle (WDLC), http://www.aerofx.net/blog/development/web-development-life-cycle-wdlc/, 2009 9. Benny Alexander, Macronimous Web Solutions, Website Development Process –The Life Cycle Steps, http://www.macronimous.com/resources/web_development_life_cycle.asp 87 10. Andy, Andrew Sellick, Top 15 Free and Open Source Web Developer Tools Updated, http://www.andrewsellick.com/34/top-15-free-and-open-sourceweb-developer-tools-updated, 2007 11. MERT TOL, Web Development Life Cycle, http://www.merttol.com/articles/web/web-site-development-life-cycle.html, 2009 12. Nik Chauhan, EZine Articles, Web Development Process – Development Life Cycle, http://ezinearticles.com/?Web-Development-Process-DevelopmentLife-Cycle&id=344293, 2006 13. Website Architecture, http://en.wikipedia.org/wiki/Website_architecture, 2009 14. Web Content Management System, http://en.wikipedia.org/wiki/Web_content_management_system, 2009 15. PHP, http://en.wikipedia.org/wiki/PHP, 2009 16. MySQL, http://en.wikipedia.org/wiki/MySQL, 2009 17. Jutta Treviranus, Charles McCathieNevile, Ian Jacobs, Jan Richards, Authoring Tools Accessibility Guidelines 1.0, http://www.w3.org/TR/2000/REC-ATAG10-20000203/, 2000 18. Human Factors International, Visual Design – Consulting and Production, http://www.humanfactors.com/services/graphics.asp 19. Color Wheel, http://en.wikipedia.org/wiki/Color_wheel, 2009 20. Part Stanicek, Color Scheme Designer, http://colorschemedesigner.com/, 2009 88 21. Joomla Documentation, Tutorial: Creating a basic Joomla! Template, http://docs.joomla.org/Tutorial:Creating_a_basic_Joomla!_template, 2009 89 ATTACHMENT A: GANTT CHART FOR INDUSTRIAL ATTACHMENT II 90 91 ATTACHMENT B: PERT CHART FOR INDUSTRIAL ATTACHMENT II 92 93