Chapter 3 Methodology 3.1 Introduction In developing our system, we had review several software development methodologies to be used. Software development methodology is a framework that is used to structure, plan, and control the process of developing a system. [Wikipedia Software Development Methodology, 2009]. There are several types of software development methodology model and each of them has its own advantages and disadvantages. Figure 3.1.1 shows a brief comparison of the methodologies. Software Development Strength Methodology Waterfall Model Detailed steps provided Documentation driven whereby each stages has its documentation Incremental Model Provide early functionality Does not require a complete set of requirement Spiral Model Provide early functionality Minimize cost and risk through usage of prototyping and risk assessment Prototype Model Useful when requirements are not clear Weakness Not suitable for project where requirements keep changing as there are no formal way to make the changes Not suitable for project when the requirements are not well-known Inflexible Each phase of an iteration is still rigid and not flexible Complicated and requires risk assessment expert Do not know the number of iterations required 25
Early functionality Cost maybe high Figure 3.1 Comparison of software development methodologies So based on the comparison in Figure 3.1.1, we decided to integrate spiral model and prototype model for our system. Description of the model and why we choose the model will be explain in section 3.2 and 3.3. 3.2 Spiral Model and Prototyping Model Spiral Model Spiral model is a software development methodology whereby it combines elements of design and prototyping in stages. It was designed by Barry Boehm in 1988. Figure 3.2.1 is the spiral model of Boehm 1988 [Wikipedia Spiral Model 2009]. Figure 3.2 Boehm spiral model, 1988 Based on the figure above, the steps can be generalized in the following: 1. The system requirement is defined as much as possible. 26
2. A design will be created for the system. 3. First prototype will be developed based on the design and testing. 4. Iteration of the next prototype will be planned based on evaluation of the previous prototype of the strength, weakness and risk, and repeat the steps 1, 2, and 3. Prototype Model Prototyping is a creation of a system which simulates a few aspects or functionality of an eventual system. The main purpose of prototyping is to allow users of the system to evaluate the system in certain stages. There are few types of prototype model. There are Throwaway prototyping, Evolutionary prototyping, Incremental prototyping and Extreme prototyping. In our system, we chose Evolutionary prototyping. Evolutionary prototyping is where a prototype of a system is constantly refined it until it becomes a final system. This allows us the developer to further improve on the system or make changes on it if there s any requirement changed. Besides that, we can start develop a system based on the requirement that they are well understood first and slowly refine the prototype when the other requirements are understood [Wikipedia Prototype 2009]. 3.3 Advantages in using the Spiral Model and Prototyping Model Spiral model and prototyping model is quite similar because spiral model itself uses prototyping. Both of the models provide us advantages whereby it helps us in producing a system with early functionality, minimizes the risk of building a wrong system, and assist us in identifying any problem at early stages. Since the requirements we gathered is not clear enough, we can start developing the system on the requirements that we are well understood first. After we had developed the prototype, we can show it to our client to assess on our system. If there are any changes required, we can make changes on the prototype. By using evolutionary prototyping, we will keep on refine the prototype until it satisfies our client and evolves into a final system. By using spiral model also, our final 27
system will has less risk or mistake because at iteration in refining a new prototype, the system will be assessed. 3.4 Research from Internet Internet is main source for us during our research and data gathering because it does not have any geographical or timing limitation. We can carry out the research anytime and anywhere we want as long as we are connected to the internet. However, the only disadvantage of using Internet or World Wide Web as resource is that we have to verify the trustworthiness of the sources of information that we get. Internet nowadays is flooded with information, both useful and useless information. So, it is our responsibility to filter the information that we get in order to guarantee the accuracy and correctness of our research. To achieve that, we have follow certain guidelines such as evaluate whether the author or sponsor group is listed, the electronic address of the source, reference/links used in the articles, balance and purpose of the article or other website. [Technical Writing] 3.5 Research from Books Books are used as our secondary source of information. The referred book can either be hard copy or soft copy (ebook). This source is especially important in looking for medical or general information ion dyslexia. 3.6 Research from Current Market We can get much information from current market research due to the reason that not much similar system is available in our country. Most of the methods used currently either involves sophisticated/high tech equipments or being applied manually (not 28
computerized). There is actually no standard method to assess the dyslexia. Most of the existing systems that we managed to get are from foreign countries. 3.7 Tools Selection 3.7.1 Why Use Visual Basic.NET Visual Basic.NET is chosen because it can used to produce standard Windows applications. Besides, typical structure of OOP such as inheritance, polymorphism and multithreading also supported by.net platform. The advantages of Visual Basic.NET is that all the coding will compile become as dll file which hidden from other user and programmer. In addition, all the application that developed through Visual Basic.NET will be able to run in any host machines. However, the host machines must be have.net redistributable installed on it. Other than these, Visual Basic 2005 features are powerful forms designer, an in-place menu editor, and automatic control anchoring and docking. So, it is able to build more robust applications rapidly. Significantly startup time reduction with improve integrated development environment (IDE). Apart from these, Visual Basic 2005 also offer the features as below: Improved Coding Powerful, Flexible, Simplified Data Access Fully Object-Oriented Constructs COM Interoperability Reuse Existing Investments Upgrade Wizard 3.7.2 Why Use Microsoft SQL Server 2005 29
Microsoft SQL Server is chosen because it can provide relational database power to manage information and a lot of other functionality. The strongest of Microsoft SQL Server is that it has SQL Server Management Studio. It is a management tools with the functionality to develop, deploy and troubleshoot SQL Server databases. Other than that, it is also user-friendly. In SQL Server, it has the views, security management and so on. Besides, Microsoft SQL Server also offers the following features as below: Database Mirroring It is a function that mirrors the current database to another one. So, the system will always availability if one of the database is down. Online Restore Database administrator can restore the databases even though an instance of SQL Server is running. Integration Services (SSIS) SQL Server Integration Services is a next generation data integration platform that can integrate data from any sources. Data Mining It is a tool that allows you to identify rules and patterns in yours data. So, you can determine why the things happen and what will happen in the future. 3.7.3 Why Use Adobe Photoshop Adobe Photoshop is chosen because it can create high quality image with significant new creative tools, workflow options and editing functions. Besides, it can support most of the images format such JPEG, GIF, BMP and so on. Photoshop is integrated with adjustments panel. This is simplifying image adjustment by easily accessing every tool needed to nondestructively adjust and enhance the color and tone of the images. 30
In addition, Adobe Photoshop also offers other features as below: Black-and-white Conversion Perspective-based editing Flexible Layers Quick Selection tool 31