There a lot of system development models in which I chose only three, the waterfall model, the spiral model, and the prototyping model. But let us first define system development. It is a process designing, planning and implementing a new system or software. There can be database involved. In the system development, there is a life cycle that explains deeper the roles and responsibilities. It has life cycle to have a pattern to follow in order to have a uniform structure to follow. There are system development models that are existed now. It helps to organize the process of system development. There are different kinds of different models in system developments in which they have different approach in organizing each processes.
In this discussion, it will tackle the 3 different kinds of system development models. As I have I read different models in system development, I chose the waterfall model, the spiral model, and the prototyping model.
· The Waterfall Model
The waterfall lifecycle is the traditional approach to system development. It is used by most system analysts and project managers. It is the earliest method of structured system development. The waterfall model is widely used today because it is the generic model for system development. The waterfall model has different phases. Each phase must be completed before you can proceed to the next phase.
The different phases of Waterfall model:
· Requirement Analysis
In this phase and as I understand, it is the phase where the gathering of data or information occurs. It is said to be the most crucial stage. It is because in this phase, you will meet the client and ask them some questions relating to the system. There is a possibility that miscommunication occurs and maybe you will misinterpret what the clients said to you. In this phase also, includes the visit of the company that you want to analyze. It is important to make sure the requirements are detailed and accurate because it can easily determine the problem of the system and the needed things to improve. In this phase also, you need to analyze the problem of a certain system of the company based on the data that you gathered. The requirement analysis phase is more on the gathering of data and analyzing part. It is important that in this stage is completed before can proceed to the next one.
· Design
The design phase is related to requirement analysis. The design that made is based upon the data that you collected on the first phase. You cannot proceed in this phase without completing the collection of data phase or the requirement analysis. It is very important that the data you gather is be specific and be precise because the more specific the design for the given problem. In this phase, it will be a back and forth a lot of times with the requirement analysis and the collection of data. The design should of course be based on the analysis, and for the project to be the project will be complete. The data that are gathered in the requirement analysis phase are broken down into logical units, so that the software process becomes easy for implementation. To have an effective design for the project, you need to gather all the data needed by the system to improve the system and solve the problem of the system. In design phase also, you need to select the language to use to implement the system, the hardware needed in the system. Also, third parties software is chose in this phase. Every type of data which will be required for the designing of the software is done here in this phase. What type of database will be required, what type of data should be supported are some of the important aspects that are decided in this phase. The algorithm of the process in which the software needs to be designed is made in this phase. This algorithm is used for the actual coding part in the next phase. To sum it up, this is the phase, where the fundamental work for actual programming and implementation is done.
· Implementation
In the implementation phase, this is where the project starts to build. In this phase, the actual development of the software takes place. This phase is also known as coding and verification phase. Like other phases, you cannot proceed to implementation phase without completing the design phase. The algorithms will be use is based upon the product made on the design phase. In implementing the system takes place and very difficult to implement, there is a chance that you will go back to the design phase and have another design to be simple and yet the client will satisfied his or her standards.
· Test
In this phase, the system will be test before it will be given to the clients. This is where the bugs and all the error will occur. The system testing is done. They are normally a series of tests, which are run to check the performance of the software, the user-friendly of the system, how to use it and also to find if any new bugs were introduced into the system, after the previous bugs were fixed. The waterfall model in testing is start all over again, to make the software bug free, as far as possible. In this phase also, the codes designed by programmers are integrated and it is tested if the software works as the specifications provided, according also to the data gathered and according to the specifications of the clients. The setup of the final software which needs to be installed at the clients system is also designed and tested so that the client does not face any problem during the installation of the software. After the test phase and all the bugs are fixed and will meet the client’s specifications and needs, the system is then handed over to the client.
· Maintenance
This is the last phase of the Waterfall model in which the system is given to the client after checking all the bugs of the system. After the deployment of the system, maintenance of it is needed. The system needs to be maintained because to fix the errors when it was turnover to the clients. This is also the phase where change occurs. If the clients want to change something or add something this is the updates happens. Some system needs to improve due to the fact that it is old and needed to be updated. Some system also, those errors will occur during on the client’s time to use. This time, maintenance is needed. During the maintenance phase, support and debugging is provided for all such problems.
We all know now the phases of the Waterfall model, each phases were discussed. Waterfall model has its advantage and disadvantage. Mainly, the advantage of waterfall model is it is used widely by most people around the world and it is easy to use. Also, waterfall model is linear kind of model and we all know those linear models are the simplest model to be implemented. Based on what I have read, one advantage of waterfall model is that the amount of resources required to implement this model is minimal. One great advantage of the waterfall model is that documentation is produced at every stage of the waterfall model development. This makes the understanding of the product designing procedure simpler. Also, after every major stage of software coding, testing is done to check the correct running of the code. Another advantage of this model is that the phase in this model is done one at a time in which you can focus on one phase.
If we have advantage on waterfall model, we also have disadvantage on it. We can say that it is the most perfect model I read but unfortunately there are some disadvantage on it, one of them is that we cannot go back, if the design phase has gone wrong, things can get very complicated in the implementation phase. In this case, we must start all over again and again to come up with a good system design. Another factor is that it happens when the client is not very clear of what he exactly wants from his or her software. Any changes that he mentions in between may cause a lot of confusion and a lot of time to do it. It is a waste of time. Also, small changes or errors that arise in the completed software or system may cause a lot of problem. It may be the cause of malfunctioning of the system. The greatest disadvantage of the waterfall model is that until the final stage of the system development cycle is complete, a working model of the software does not lie in the hands of the client. Thus, he or she is hardly in a position to mention if what has been designed is exactly what he or she had asked for.
In waterfall model, this is most widely used because of its simplicity and easy to understand. Each phase is done one at a time in order for the system analyst or the project manager can focus one phase at a time. Despite the disadvantage of the waterfall model, its advantages is the reason why it is consider the most widely used by most people
· The Spiral Model
Another model on system development is what we called the Spiral Model. Spiral model was defined by Barry Boehm in his 1988 article on A Spiral Model of Software Development and Enhancement. This model was not the first model to discuss iterative development, but it was the first model to explain why the iteration matters. The Spiral Model is also known as the Spiral lifecycle model. The Spiral Model was designed to include the best features from the Waterfall and Prototyping Models, and introduces a new component, the risk-assessment. It combines two system development models to have a better performance in system development. The term spiral is used to describe the process that is followed as the development of the system. Like to the Prototyping Model, an initial version of the system is developed, and then modified based on input received from the client evaluation and recommendation. Unlike the Prototyping Model, the development of each version of the system is designed using the steps involved in the Waterfall Model, the requirement analysis, design, implementation, test and maintenance phase.
The spiral model consists of four quadrants. In quadrant one, it consists of Determining the objectives, alternatives and constraints in which it establish an understanding of the system or product objectives. It also investigates implementation alternatives. In quadrant two, it is more on evaluating Alternatives, Identify and resolve risks. The reason in this quadrant is that to reduce the risk associated with the development decisions. In quadrant three, or Develop, Verify, Next-Level Product. In this quadrant, developing the system occurs. The basic waterfall approach may be employed in which concept of operations, design, development, integration, and test of the next system or product iteration. If appropriate, incremental development approaches may also be applicable. And in the quadrant four, or also known as planning the next phase. In this phase, because it is spiral, the next phase will be plan. The spiral model also consists of four steps, the project objectives, Risk Assessment, Engineering and Production, and Planning and Management.
· Project objectives
In this steps, designing and analyzing is needed. Objective is determined in this step. Planning is also needed. Like the waterfall model, there is a phase whose job is to determine the problem, analyze it and formulate a solution in it. It is just the same in the project objectives. Identifying the possible obstacles are on this steps and alternative approaches are evaluated.
· Risk Assessment
Risk is related to the amount and quality of available information. The less of collection of data, the higher the risk. This is where it examines the risk based upon the data we collected. It is also evaluating each version of the system to determine whether or not development should continue. Example of this after collecting the data it will come up to the solution to increase a cost in money in a project completion and also the span of time to complete the project. In this case, the risk was identified. The client or the developer may decide that it does not make sense to continue with the project.
· Engineering & Production
In this steps, hardware needed is determined, the database used, and also what language to be used. In this phase also is where the implementation takes part. This is where the developers’ time to work. This is also where coding takes place. Software piece is developed.
· Planning and Management
The client is given an opportunity to analyze the results of the version created in the Engineering and Production step. The client can decide if there is something needed to add in the system.
The spiral model has also its advantages and disadvantages. Its advantage is that it can easily estimates the budget needed in the project, the time consume to finish the project. In this way, work will be more progressive because important issues are discovered earlier. Another advantage is that it is more able to cope with the changes that software development. It can easily cope up what will be the change needed. Developers can get their hands in and start working on a project earlier is one of its advantages. There are also disadvantages of spiral model. One disadvantage is that the risk of not meeting budget or schedule on completing the project. Also highly customized limiting re-usability is one of the disadvantages of spiral model.
· Prototyping Model
Another system development model is the prototyping. It is often difficult to know all of your requirements at the beginning of a project. That is why Prototyping model was developed. The development of the program is not based on strict planning, but it is based on the response of the users. The prototyping system development model is based by creating a prototype of a system and continues to create a prototype after a prototype until a perfect system or software is created. The Prototype Model builds from a simple concept of what a program is. From a little concept, the software is updated and tested in a real time environment. The clients will be able to test the system or software and improve the system as it was created. It is different from other system development models.
There are four types of Prototype Models based on their development planning: the Patch-Up Prototype, Nonoperational Prototype, First of a Series Prototype and Selected Features Prototype.
· Patch Up Prototype
This prototype is having more developers. Each developer will work on a specific part of the program. It is subdivided into its developers. After the developers completed the task and finish their work on part of the program, the program will be integrated with each other resulting in a whole new program. It will be combined all the programs. Since every developer is working on different part of the program, Patch up Prototype is a fast development model. If each developer is highly skilled, there is no need to overlap in a specific function of work. This type of prototype needs a strong project manager who can monitor the development of the program.
· Non-Operational Prototype
A non-operational prototype model is used when only a certain part of the program should be updated. Not the whole program will used but a certain part of it. In order the specific part of the program, the other is used using dummy program. Each developer who is assigned with different stages will have to work with the dummy prototype. This kind of prototype is used when there is a certain problems will occur on a certain part of the program.
· First of a Series Prototype
This type of prototype is also known as beta version. This Prototype Model could be very efficient if properly launched. The beta version of the program is deployed and introduced to the clients for testing not the fully completed program. In this case the objective of this kind of prototype is to have feedbacks, suggestions of the system or software. It is a big help for the developers to know in what area of the program they need to focus or may be improve the system or change something.
· Selected Features Prototype
This kind of prototype is more likely on First of a Series Prototype, in which a beta version of the system or software is deployed or launched. Their difference is that instead of giving the public the full version of the software in beta, only selected features or limited access to some important tools in the program is introduced. This is usually done to test the independent feature of the software.
There are advantages of using Prototyping model. One of it is the client does not need to wait long as in the Linear Model. Another advantage is that it can easily receive feedbacks and suggestion from the clients to improve the system. Another factor is that error and bugs of the programs can be detected ahead of time. There is also disadvantage of using prototyping model. One of it is that the client could believe the prototype as the working version. For most developers create a prototype and stick to it even though it has errors. Since the prototype changes from time to time, it’s very difficult to create a document for this software. There are many things that are removed, changed and added in a single update of the prototype and documenting each of them has been proven difficult. The documentation should be updated if something is changed in the system.
There are many system development models out there; they have different approach in implementing a certain system. It depends on the system analyst or the project manager what to use because it depends on the flexibility of system analyst.
References:
No comments:
Post a Comment