Software Development Models describe the various phases of the development process and their sequence in which they occur. There are various Software development models or methodology.
They are as follows:
Software Development Models can be categorized into five main groups: Imperative, Adaptive, Lean, Traditional Scrum and Custom. In this article we will discuss the advantages and disadvantages of each one. We will explore the main characteristics of each and provide a brief overview of their strengths and limitations.
In this section we shall discuss the first two software development models, the waterfall, and the agile scrum. The waterfall methodologies attempt to achieve a certain goal by meeting a series of activities. For instance, a requirement might be stated, and all the relevant requirements needs to be analysed and validated.
Then a corresponding action plan will be written down, describing the work that needs to be done, when it needs to be done, how it should be done, who should be involved in it, the quality needed etc. It is also necessary to document the status of each activity in the schedule.
The basic advantage of the waterfall methodologies is that it tries to provide a flexible way of managing the software development project.
It tries to define a simple relationship between the stakeholders and the developers. It tries to create a working group of people, each having responsibility for specific tasks. Read more about software development process models in this post.
Based on this, a schedule can be developed. The primary disadvantage of these software development models is that they are usually followed the project has already started.
The third option, called agile scrum, tries to shorten the overall time required for the whole software development model by removing some of the optional steps. Agile also tries to define a release candidate (RC) as a complete program, with no incomplete features. This makes it possible to develop software quickly by testing it thoroughly in the development stages.
This agile software development models are less successful than the waterfall method since it does not define the scope or quantity of work to be done. Instead, the role of a scrum master is very important, who is responsible for documenting and tracking the progress of a software release candidate.
Software Development Cycle:
The software development life cycle models often undervalue the role of testers in their overall process. For them to become meaningful, these methods must test the functional requirements and deliverables of software.
If this testing is performed without adequate knowledge, the software could either fail to meet the end users’ requirements or be defective. Therefore, the use of automated tools to automate the testing process is a disadvantage.
On the other hand, there are also some techniques that make the use of testing methods such as boundary value analysis, bug hunting, refactoring and code verification more relevant to the overall success of a product.
Software Development Models
Some of the well-known agile software development models include the following: The waterfall method, the iterative method, the model-based method, the scoping tree method, and the double-folding model-based methodology. Read more about software and technology post .
In the waterfall method, there is no distinction made between the planning and testing phases, which mean that every stage of the project is equally important and can be handled in parallel.
The waterfall method was originally developed by Bill Atkinson and Bruce Eckel, who later came up with the acronym WEB-A, which stands for “what you see is what you get”. Using this methodology, the release is prioritized based on its risk factors. It also has a strong dependency on white box testing and well-defined acceptance criteria.
While the agile model covers a wide range of approaches and makes use of many tools, it also has its own set of strengths and weaknesses. One of the strengths is that it makes use of cross-functional teams, which means that there is a better integration of ideas.
Another advantage is that the business owner gets to hire the people best suited for his project, regardless of their expertise. There are disadvantages, too, such as the need to provide training and supervision to all members of the cross-functional teams involved.
On the other hand, these disadvantages have been pointed out and have been considered by developers and software designers since the early stages of the development of web applications.