Monday, December 19, 2011

Identifying 3 Systems Development Models

The world of Information Technology has already been under software crisis for almost four decades now and most of the software being developed were product of the traditional system development cycle that was proposed ages ago. This kind of software can support the needs of the business organization if the requirements are not that complex enough to be handled by the system. But what if as time goes on, business organization needs are getting complex that the software they have are not suitable anymore to the requirements they need? There would probably be a need of system modification; adding or changing functionality that could be difficult to deal with, other unexpected problems are bugs that can be encountered as modification of the system goes, and span of time concerning the modification of system must be on the top of the things that are needed to consider because it would take the time of the business organization to operate their business.

One way of dealing this complex problem is through the adoption of the system development life cycle that is made to aid the development of a system. It emphasizes the structuring of the step by step phases on developing a system. According to an editor in National Institute of Standards and Technology, Shirley Radack, a System Development Life Cycle is a multistep process on developing a system. It starts with the initiation, analysis, design, and implementation and followed by the maintenance and disposal of the working system. It is a conceptual model that is used in project management that depicts the step by step phases included in a system project, starting from the initial feasibility study through the deployment and maintenance of the system.

Aside from the traditional System Development Life Cycle (SDLC) model that the IT world embraces are other SDLC methodologies that have been developed to guide the processes involved in developing the system. Most common methodologies are the Waterfall Model, the Agile Model, the Rapid Application Development (RAD), Joint Application Development (JAD), the spiral model, the fountain model, and the typical build and fix model. My main objective in making this paper is to identify at least three system development models and discuss each. I will be focusing on Waterfall model, Agile Model, and the Spiral Model for my discussion in this paper.

WATERFALL MODEL

Waterfall model, as what was presented by the reporters, is a System Development Life Cycle approach that assumes a sequential method of handling the various phases of a project, that is, one phase must be polished and done first before going to the next phase. This waterfall model or should I say those models mentioned above including the waterfall model, according to Sir Randy Gamboa, are actually based on the traditional System Development Life Cycle that we had. The ones that are known today are just adaptation on the previous life cycle model. In waterfall model, in order to proceed to the next phase, the output on the previous phase must be done first because the output of the previous phase would be the input for the next phase.

I repeatedly mentioned the word phase here and clueless on what the following phases are so to clear this one out, here are the following phases under waterfall model:

Project Definition

Project definition phase in a simple understanding is the phase where a systems analyst must define the goals of the project, the requirements, and its specification. By defining the goal means investigating first the need of the client. In dealing with this phase, we must be able to interpret what the client wants through communicating with them and sometimes communicating with them may not be as easy as picking up the phone and list the orders that the client wants to be delivered, some say that it is the crucial part of the first phase since misinterpretation at this phase may give rise to the software that is being developed. After the goal has been defined and the requirements have been noted, we must be critical enough to make sure that the specified needs of the client are detailed and accurate in order for us not to meet any ambiguity as we get along with the system. By doing this, it will make the clients confident enough to rely on the system that is handled by you. In this phase also, we as systems analysts must not only meet the need of the clients, that is, to have a new system or an improved system, but consider also that the main reason why they made decision on having a new system is that in order for them to gain more profit than what they have on their previous systems.

System Design

System design phase is the phase where we as systems analysts identify the software requirements along with the hardware requirements because as what was acquired from the previous phase, the requirements are broken down into logical units so that the software process can be easily implemented. In this phase also, we must also interpret the design used to create the system. the accumulated logical units are interrelated to each other so that there would be connection on all the parts needed to create the system and to do that, we are to recognize different algorithms and providing diagrams on the plan can make the work easier to understand and follow. In other words, this phase would focus on the fundamental work for programming and implementation. Documentations are present in this phase because this phase is considered as the crucial phase on developing a working system.

Coding and Implementation

It is clear in this phase that we are to deal with coding after the design has been identified. The source code of the program is written in this phase. It is where the algorithms and diagrams are translated into a functional system. After arriving from a functional system, implementation takes place to check in the produced system has met the need of the client. Any revisions on the system would occur on the next phase which is the testing phase.

Integration and Testing

Integration and testing phase would not be possible if the system has not been implemented. Implementing a system does not necessarily mean that the system is ready for operation but implementation phase is done to check whether certain conditions from the clients are met and if so, testing phase is next to it. It is now the work of the client to test the system according to its, functionality, integrity, capacity to perform the desired outcome, that is to make the lives of the client easier in order for them to gain profit easier also. If the clients noticed some bugs along the implementation, further revision may be done and most probably the system would undergo to another repetitive step or the phases and start in the designing phase to identify the bug and fix it for improvements.

Deployment and Maintenance

This is probably the last phase of the Waterfall Model, where the system has being tested and is checked by the clients for the acceptance, is now ready for deployment. The work would not end here for it is necessary for the systems analyst to execute maintenance on every system that they deploy because as clients go along with the system, they may be stumbled on a foreign procedure on the system and it is the work of the systems analyst to explain each part of the system so that clients would be familiarized to it and would be dependent to the systems analyst just for a short while. Other changes and improvements that the client wants for their system would make the entire process under revision and also it will start again from the first phase of the Waterfall model.

Advantages of the Waterfall Model
Here are some advantages of the Waterfall model that I read on the internet:
  • ·         The system requires the output of the first phase for it would be used as the input for the next phase. In this manner, any mistake on the previous phase would be checked and corrected before moving on to the next phase.
  • ·          As said earlier, documentations are emphasized in this model and with that, when the previous workers handed out the system to the new set of workers, it would be easier for them to deal with the system because the documented developmental process is present and they could traced up what part of the system they would follow.
  • ·         The Waterfall model is said to be the most well known methods to the software developers therefore it must be considered as easy to use method.

Disadvantages of the Waterfall Model
Having advantages on the method would make it different to other methods but there are also disadvantages that the Waterfall model deals with:
  • ·         The Waterfall model is known for its step by step process in developing a system but it is difficult for the systems analyst and other team members when clients start to change their requirement in the system. An alteration in the specified plan would greatly affect the whole phase of the system. The waterfall model is not suitable for any alterations after the plan has been identified.
  • ·         One of the important aspects that need to consider is time. The waterfall model could waste a huge amount of time in developing a system because as mentioned above, it is a step by step process and one could not go on to the next phase until the previous phase have been settled. It is on the part of the workers that this matter would waste time, by looking at the phases, when the work is still on the analysis phase, systems analyst would work but other workers like the designer, software developers, and other team members would just waste their time waiting for the previous phase to finish.
  • ·         The testing phase of the Waterfall model is said to be late on the process of implementing the system. Other methods would test the system as soon as they arrive with the system. This would waste time, effort and would take extra cost on reevaluating the said system.

Now that I have defined already the Waterfall model, enumerated the different phases of it, and even cited some of the advantages and disadvantages of the said method, let us now deal with another model, the Spiral Model developed by Boehm.

SPIRAL MODEL

Spiral model is sad to be an adaptation on the evolutionary approach towards the development of the world of Information Technology. It is more on the procedure, rather than a lifecycle because it deals mainly on the concern of process rather than the concern of the product. The method, spiral model, would literally mean a spiral shape. The spiral model consists of four quadrants based on the spiral shape created. Quadrant 1 is where determining of objectives, alternatives, and constraints take place, Quadrant 2 comprises evaluating alternatives, identify and solve risks, Quadrant 3 develops and verifies the next-level product, and the Quadrant 4 which deals with  planning the next phase. In order for us to understand the scopes of each quadrant, let us tackle it one by one.

Quadrant 1: Determine Objectives, Alternatives, and Constraints
The activities executed in this quadrant are:  understanding the system of the system objective – the functionalities of the system, the performance and can easily adopt change whenever possible changes are done, alternatives for implementing the system should also consider – that is, investigating the design, whether it needs to undergo modification, and investigating constraints required on the alternatives – cost of the development of system, the schedule for each working phase, and the risk should be considered in this quadrant. After quadrant 1 has been identified and understood, we may now proceed to the next quadrant which is the quadrant 2.

Quadrant 2: Evaluate Alternatives, Identify, Resolve Risks
The primary focus on this quadrant would be the risk improvement because risks in developing a system are inevitable. That is why evaluating alternatives are investigated to reduce risk as we go along with the development process. According to Boehm, this quadrant would include prototyping, reference checking, conduct simulations, create user questionnaires for further guidelines on the system, analytic modeling, and other risk resolution technique would make up the quadrant 2. Prototyping is a risk reduction mechanism and developers can produce prototypes in each cycle in the spiral model to define a framework on user-developer communication.
After determining the alternatives and resolving risks, next step would be processed next. When performance and operability, for instance, the performance externally and internally, risks remains, it is necessary to undergo thorough prototyping before heading to the next step.

Quadrant 3: Develop, Verify, Next-Level Product
After the process of quadrant 2 where risks are probably resolved, activities to develop, verify, next-level product will be performed. Same in the waterfall model that the verification phase follows as development phase has done. After these following phases would derive the next-level product that serves as the answer to the problem of the client.

Quadrant 4: Plan Next Phases
One of the characteristics of the spiral model that is also present in some models is the repetitive rounds of technical planning and reviews in order to obtain the expected outcome of the system. It is necessary to conclude the system with a technical review that assesses the status, progress, risks, and review plans and identify technical issues to be resolved in the next cycle of the spiral.

Advantages of the Spiral Model
  • ·         Based on the mentioned procedures of the Spiral Model, it could be concluded that it estimates the time needed, the budget, and schedule to develop the system. By this manner, it becomes more realistic as the work progresses, because important issues like the constraints and the risks are determined earlier.
  • ·         Unlike with the waterfall model that other worker cannot proceed to their part because the first phases must be finished first before touching to the next phase but in Spiral model, all works can be done simultaneously because of the spiral process of the model.

Two models are already discussed in my paper and the last one would be the Agile Model. According to the reporters in the previous topic, Agile Modeling is one of the current trends in development and it is under the adoptive approaches of the traditional methodologies.

AGILE MODEL

Agile Model is known to the method that “moves quickly” because of the word agile. This model is actually based on iterative and incremental model of the software development. The most important principle that Agile Model must attain is the customer satisfaction, basically the main reason why software is developed. The system must satisfy the customer with its useful software in a small span of time developing it. It is the collection of innovative, user-centered approach to the system development.

Four Basic Activities of Agile Development
The Agile Model deals with the four basic activities namely; the coding, testing, listening, and designing, in order to identify the amount of effort that is needed to complete the system.

Coding. There would be no system developed if coding would not be present in the system. Coding is the process of expressing what is in your mind and communicates it to the computer, and let the computer interpret what you have in mind. Coding is one of the essential parts in developing a system.
Testing. The second activity that is needed in the development of the system is the testing. It is essential to test what system may be deployed to determine any flaws of it and to solve problems as early as possible. The Agile approach views this activity as critical. It badly needs to undergo checking and testing to eliminate fallbacks on the system.
Listening. The third one is listening. The primary concern in this model is the customer satisfaction and one of attaining it is though interpreting their needs and wants correctly. Listening is an essential part in communication because it is where the developers and the client exchange their thoughts and ideas and most likely the important detail of the conversation, the product or the software they want in their company.
Designing. The last activity in the Agile Model is designing. It is where the organization of all logical structure in the system is created. The designs should be flexible enough to handle changes when the client wants other output from the derived design. Design should be useful to those who needs it as the process of development goes, including the clients and as well as the other members of the development team.

Agile Model Advantages and Disadvantages
Agile model comes in a unique method on dealing with system development lifecycle but let us define the edge of the Agile Model over other structured methodologies and also the fallback of Agile Model that could have negative feedback upon embracing it.

Advantages of the Agile Model
One of the advantages of the Agile Model is the flexibility of the model because it has an ability to respond to the changing requirements of the project quickly. This would result to immediate changes which solve trouble in the future approach. This would also ensure that the effort of the team is not wasted because problems are resolved earlier before it gets worse. In this manner, the produced software can be delivered to the client in the shortest period of time that leads to customer satisfaction.

Disadvantages of the Agile Model
Agile Model can be profitable if the developed system is small because it would take less effort on the part of the developers but in dealing with large systems, Agile Model cannot handle this matter. It is difficult to predict the necessary things needed like the time and effort of the developers because certain changes may arise as they develop the system. Large systems comprise complex modules and parts that is why Agile Model cannot be used here. When pushing through with Agile Model on large systems, the developers must watch and determine carefully the bugs and problem that may come along in order for them to eliminate it resolve right away.

The mentioned systems development models are indeed useful in order to develop a system, whether it is small or large system you are dealing with. Each model have their edges and fallbacks over the other and in order to achieve the desired output, it is up to the developers to mix the phases and procedures of the different models to perform a high quality service to the clients, that is to produce an efficient and working system that would last long until certain updates are needed.

No comments:

Post a Comment