3.0 Methodology 3.1 Introduction In this chapter, five software development life cycle models are compared and discussed briefly. The most suitable system methodology for the proposed system is drawn out. 3.2 System Methodology The term methodology can be defined as a collection of procedures, techniques, tools, and documentation aids which will help the systems developers in their efforts to implement a new information system. A methodology consists of phases that in turn consisting of sub-phases, which will guide the developers in their choice of the techniques that might be appropriate at each stage of the project. A methodology also helps the system developer to plan, manage, control and evaluate information systems projects (Avison and Fitzgerald, 1995). There are several software development life cycle models have been studied and analyzed. Five models have been finalized for consideration and comparison in order to choose the most suitable life cycle model to be adopted for the proposed system development. These four models are Waterfall model, Spiral model, Rapid Prototyping, Extreme Programming (XP) and Rational Unified Process (RUP). 3.2.1 Waterfall Model The waterfall model is a sequential development process in which the development of this model is cascading through the phases of requirements specification, analysis, design, construction, implementation and testing, deployment and maintenance. The first formal description of the waterfall model is published in an article in year1970 by Winston W. 20
Royce (1929 1995) (Wikipedia, 2009). Each phase in Waterfall model has a set of defined milestones and results, and the progress to another phase is in purely sequential order. Thus, the progress to another phase does not occur until the its preceding phases are accomplished. Figure 3.1 illustrates the Waterfall Model. Figure 3.1: Waterfall Model (Boehm,B.,1988) 3.2.2 Spiral Model Spiral model was devised by Barry Boehm in his article "A Spiral Model of Software Development and Enhancement" in year 1988 (Boehm,B.,1988). This spiral is as an improvement version of Waterfall model which is able to address the weaknesses of 21
Waterfall model such as lack of resilience in the face of change and also no active user or customer involvement throughout the development process. There are four phases in the Spiral model which are planning, evaluation, risk analysis and engineering. These four phases are iteratively followed one after another in order to eliminate all the problems, which were faced in the Waterfall model. By going through the iteration of the phases, it can help in understating the problems associated with a phase and dealing with those problems when the same phase is repeated next time, planning and developing strategies to be followed (Buzzle.com, 2000-2009). Figure 3.2 illustrates Spiral model. Figure 3.2: Spiral Model (Boehm,B.,1988) 3.2.3 Rapid Prototyping Rapid Prototyping is an iterative approach that relies on interaction with the client to refine the model being developed. The aim of Rapid Prototyping is to create a series of prototypes in order to understand the requirements and the design for a particular project. It does not 22
have a proper earlier planning, thus the prototyping effort may become ad-hoc that the endless work situation will occur on the prototypes without any real progress. The main difference between Rapid Prototyping and the older Software Development Life Cycle (SDLC) models is the use of the prototypes. A prototype application is built and presented to the users right after the quick requirements gathering phase. Then, the application users will start to provide their feedback to improve or add desired functionalities to the application. This stage will keep looping until the users are satisfied with the application prototype (Purcell, J.E). The main advantage of this Rapid Prototyping is the time-to-market is greatly reduced. However, proper testing on the prototype may not be done due to the whole process is too fast. Figure 3.3 illustrates the Rapid Prototyping model. 23
Figure 3.3: Rapid Prototyping process (Injection Molding Technology, 2009) 3.2.4 Rational Unified Process (Unified Process) The Rational Unified Process (RUP) is based on the integrated work of three methodologists, namely Ivar Jacobson, Grady Booch and James Rumbaugh (Thomas, M., 2002). Its goal is to ensure the production of high-quality software which is able to meet the needs of its end-users within a predictable schedule and budget (Jacobson, I., Booch, G. and Rumbaugh, J., 1999, Kruchten, P., 1999). There are three distinguishing characteristics 24
shown by the Unified Process: 1) Use-case driven; 2) architecture-centric; and 3) iterative and incremental. The process employs use cases to drive the development process from inception to deployment. The Unified Process seeks to understand more about the most significant static and dynamic aspects in terms of the software architecture. The process divides large projects into smaller projects and each in turn comprises an iteration that results in an increment. The software lifecycle is broken into cycles, each cycle consists of four consecutive phases (Kruchten, P). The four phases are 1) Inception phase; 2) Elaboration phase; 3) Contruction phase; and 4) Transition phase. There are nine core process workflows in Unified Process. The Unified Process has the advantages of higher level of reusability and better overall quality over the traditional Waterfall model. Figure 3.4 depicts the Rational Unified Process (Unified Process) model. Figure 3.4: Rational Unified Process (Unified Process) model (IBM, 2006) 25
3.2.5 Extreme Programming (XP) Extreme Programming is a discipline of software development which is based on the values of simplicity, communication, feedback and courage. It works by bringing the whole team together to work together with enough feedback that the team is able to see to what is the current situation at a point of time and they are able to tune to the practices to improve their work. The main advantage of XP is the whole process is visible and accountable. There are 12 core practices in XP which will be illustrated in the Figure 3.5. Figure 3.5: Extreme Programming model with 12 core practices (XProgramming.com, 1999-2009) 3.2.6 Justification on System Methodology After several studies and research done on few different types of the software development life cycle models, the characteristics of each SDLC model has been analyzed and categorized based on few aspects which are important to take into consideration during the process of selecting the most suitable system methodology to implement for the proposed MaxLearn 26
system. Table 3.1 shows the comparison of the Waterfall model, Spiral model, Rapid Prototyping, Rational Unified Process (Unified Process) model and Extreme Programming model. Table 3.1: Comparison of Five Software Development Life Cycle Models Characteristics Waterfall model Enable Iteration Mitigation Risk of Planning for Change Management Reusability Level Customer/ User Active Involvement Spiral model Rapid Prototyping Rational Unified Process No Yes Yes Yes Yes Weak Varies (depends on the risk expertise) Weak Strong (usually able mitigate risk earlier) No Yes Yes Yes No to Extreme Programming Varies Low Low Low High Low No Yes Yes Yes Yes After the comparison of these five SDLC model, the Rational Unified Process (Unified Process) model has been selected as the system methodology to be used for this proposed system development due to the reasons as shown below: i. The Rational Unified Process model supports an iterative approach to development that addresses the highest risk items at every stage in the lifecycle which in turn has significantly reduced a project's risk profile. ii. It is able to accommodate changes to requirements with less disruption. 27
iii. It involves the users or customers throughout the process. Hence, the feedback from the users or customers is captured easily from time to time throughout the whole process. This can ensure that the system is able to meet the users requirements. iv. It has higher reusability level compared to other models discussed. 3.2.7 Applying Rational Unified Process (Unified Process) Model to Develop MaxLearn system Due to time constraint, only main workflows in each phase are applied in the MaxLearn system development process. The four phases in RUP model are Inception phase, Elaboration phase, Construction phase and Transition phase. i. Inception phase There are two core workflows which are Business Modeling and Requirements workflows are applied in this phase. In this phase, the business use cases are established and the project scope is delimited. The business case such as resource estimation and the phase plan showing dates of major milestones are identified. During Business Modeling, the business use case are captured and documented to ensure that there is a common understanding between the system users and the system developer of what kinds of processes needed to be supported through the proposed system. During Requirements workflow, survey questionnaire have been distributed to the secondary school students which are the target users and a few interview sessions have been done with some experienced History subject teachers in order to capture the user requirements. 28
ii. Elaboration phase The purpose of this phase is to analyze the problem domain, develop the project plan as well as eliminate the highest risk elements of the project. A good understanding of the whole system which includes its scope, major functionality, functional and nonfunctional requirements such as the performance requirements is needed in this phase. This phase consists of two main workflows which are Analysis and Design workflow and Implementation workflow. During Analysis and Design workflow, the required system functionality and constraints are elicited, organized and documented. Besides these, any of the tradeoffs and decisions are tracked and documented as well during this stage. The functional requirements, nonfunctional requirements, software and hardware specifications are identified. Design model is created to serve as blueprint of how the code is structured and written and system architecture is identified. In Implementation workflow, the system is realized through the implementation of components. The detail design representations of the system are translated and implemented into programming realization. The programming language that used in the MaxLearn system coding part is C#.NET. 29
iii. Construction phase During Construction phase, all the components and application features are developed and integrated into system. All features are tested thoroughly. The cost, schedule and quality of the system is greatly emphasized in this phase. This phase involves two core workflows which are Implementation workflow and Test workflow. The implementation workflow is involved in two phases as it is a very important and time consuming workflow. Testing is a crucial step in verifying the interaction between objects, the proper integration of all components of the system, and all requirements have been implemented correctly and successfully. If there is any bug or defects, by going through testing, it will be more assured that those bugs or defects are able to be identified earlier. There are few types of testing to carry out such as unit testing, integration testing, validation testing and user acceptance testing. All these testing will be discussed in more details in later chapters. iv. Transition phase During this phase, the MaxLearn system should be mature enough to be deployed for enduser to use. Usually this phase includes several iterations, including beta releases, general availability releases, bug-fix as well as enhancement releases. This phase involves only one workflow which is Deployment workflow. The purpose of Deployment workflow is to successfully release the system product to the end-users. Thus, the distribution of the system, installation of system, documentation of system for end-users as well as training for endusers are important tasks in Deployment workflow. 30
The Rational Unified Process model life cycle is being illustrated in the Figure 3.4. 3.3 Research Methodology There are a few information gathering methods being used in order to gather more useful information related to the e-learning topics especially regarding the e-learning approach being applied in History studies. 3.3.1 Discussion with Supervisor The supervisor gives the general ideas of whole project at the beginning phase. Besides that, supervisor also gives guidance and valuable opinion in certain aspects that need further clarification or explanation from the supervisor. Hence, discussion with supervisor from time to time is a good way to gain more understanding and useful information regarding the project. 3.3.2 Do Literature Review Another research methodology used is to do research from Internet resources and review on the existing similar systems developed by others and also others paperwork such as journals, reference books and proceeding papers in the related topics needed. This is a useful way to gain more understanding, knowledge and exposures which is needed for developing the MaxLearn system. 3.3.3 Interview For gathering more valuable information regarding the History subject topics for secondary schools, a few interviews was done with a few experienced History subject teachers in order 31
to get some opinions from them in History subject such as the problems which usually faced by students in learning History subjects. 3.3.4 Survey Survey questionnaire are distributed to the secondary school students to answer in order to gather more feedbacks and opinions from them in their perception towards learning History in traditional class room style and via e-learning as well as their desired system features. This can help in gaining better understanding about the actual requirements of the system endusers in the proposed system. A complete set of survey questionnaire sample can be found at Appendix A. 3.4 Conclusion Methodologies is a very useful and precise methodology in helping the developer to identify a set of activities, methods and best practices needed in order to develop a required system. Rational Unified Process (Unified Process) model has been selected as the software development life cycle model will be used in the whole system development of this proposed system. 32