Software development methodologies also known as system development methodologies, software development life cycle, software process or the software development process is a framework of software engineering concerned with the structure, control and plan in the process of developing an information system. The methodology is concerned with the organizational aspects surrounding software creation.
The Software Development Methodologies You Need to Know
A Real Case
In the creation of software, especially at the beginning, there are many unknowns. Sometimes the clients’ thinks they know what they want until it come to the creation process and they too get lost in the process. In other cases, the clients know what they want, yet the developer does not understand the basics and the specifics and thus end up doing the complete opposite of what the client required.
In other cases the developer stops development mid-way and hands it over to a new team, the new team has no idea where to begin and the project is ruined all the same. In many cases, however, the developer and the client know exactly what kind of information system is needed and what features it should contain. However, the method used and the time taken to create the project become a problem since changes cannot be implemented accordingly.
The emergence of software development ideas
The software development methodologies did not emerge until in the 1960 where the need to pursue the creation of information systems in deliberate, methodical and structured ways emerged. They required that each stage of development from the adaptation of the ideas to the development of the final product be done rigidly and in a sequence of events. It targeted the creation of large-scale business systems that would serve the era of large-scale business information systems that mostly involved the processing of large amount of data.
Many methodologies have developed over time, all useful in the development of business information systems. This article will explain a few methodologies, occasionally giving real life examples for clearer understanding.
The Waterfall Model
The waterfall model is a sequential development plan where the process is seen to be flowing downwards from one stage to another like a waterfall. It follows several steps. These are requirement analysis, software design, implementation, testing, integration, installation and maintenance.
The traditional waterfall model is strict and has been criticized for not allowing developers and clients to revisit and revise the function in previous phrases. In other words, in this method once a phrase has been completed there is no turning back; the development has to continue until the end.
This method can only be successful if the clients knows exactly what they want and have no doubts about it. We assume that the developer has read and understood the customer’s needs. It requires that things go exactly as planned and no changes are made in between. The biggest problem is that projects rarely go according to plan.
The Prototype Method
This is one of the most powerful Software development methodologies. It is an approach, which allows flexibility. Unlike the waterfall model, the prototyping model allows the clients, analysts and developers to go back to the previous stage. This model is a great way to create software, which has many unknowns. It does require, however, that there is great basic understanding of what the software requires to prevent solving the wrong problems.
Allows change if a prototype does not work how the clients expects it to and the changes to be made on coming prototypes is not much. There some disadvantages though. There could be many unwanted features in the products. These features could have been carried forward from previous phases of the prototype. Lastly, the methodology is not a good development model for large projects
The 4GL Approach
This approach encompasses a wide array of software tools, which have one thing in common: each enables the software developer to specify some characteristic of software at a high level. The tool then automatically generates source codes based on the developers’ specification. Its features include Database query, Report generation, Data manipulation, Screen interaction, Code generation and Graphics.
Disadvantages of 4GL Approach
- The results are not as satisfactory as those of other methods.
- Rapid software development is only feasible for bigger projects
- The current application of the 4GL technology is very limited thus not many developers know how you us it.
- It is expensive to develop
The Spiral Model
This methodology combines some aspects of the rapid prototyping and waterfall model methodologies. It tries to combine the advantages of bottom up and top down concepts. Its major focus is on the identification and reduction of risks in the development process of the information system. The project spiral begins on a small scale exploring the risks involved, making plans on how to handle the risks and deciding whether to take the next step of the project- move to the next phase of the project.
The ability of this model to make rapid developments does not depend on increasing the speed of the project but rather on reducing the risk levels, the project will be facing.
This model can only be successful if the developers and the management are knowledgeable, attentive and conscientious. There are four quadrants in the spiral:
- Determine objectives, constraints and alternatives
- Evaluate the alternatives to identify the risks and find solutions for them
- To develop variables and verify them
- To plan the next iteration
The Agile Model
This is perhaps the only people centered software development methodologies. Although it uses iterative approaches to the development of software, it also includes feedback from the groups. Unlike other methods where the customer may have to wait for the product to know whether it works the way they desire it or not, the agile model allows that there are teams involved throughout the creation process.
The developers in the end are happy because they do not just get the software to the end. They are allowed to navigate through it to know that everything will go smoothly and according to customer specifications. The customer is happy because even when the software delivery will be late, they know for sure it will be what they wanted and it will work how they wanted it to.
The Software development methodologies used should allow both the developer and the clients to interact so they know what it is the other wants and how to do it right. It should also consider accidents and miscommunications that may happen in between.