What does the software development approach mean?
In software development, breaking down the process into small stages is termed a software development approach. These small stages are checkpoints at which the quality of the software could be controlled and assured. Generally, the ordered stages involved in a software development approach are plan, design, develop, test, and deploy. In software engineering, the software development approach is also termed software development life cycle (SDLC).
What are various software development methodologies?
The approach or methodology used in developing software depends on various parameters. Based on the parameters, we can categorize software development methodologies as follows:
- Waterfall model
- Agile development methodology
- DevOps methodology
- Scrum development methodology
- Prototype methodology
- Feature-driven development
- Rapid application development
- Spiral model
- Extreme programming
Waterfall model
One of the most commonly used software development methodologies is the waterfall model, a kind of unidirectional linear model. In this process, each stage’s output is linked to the successive stage, and reverse flow is not allowed. The ordered stages of the waterfall model are planning, designing, coding, testing, and maintaining.
V-model
In software development methodologies, V-model is an updated version of the waterfall model. In the waterfall model, backtracking is not allowed, whereas the V-model of SDLC works in the validation process of each phase. In the V-model, at each stage testing is applied and if the requirements are not met then backtracking is done. The following are the phases of validation in the V-model.
Unit testing
While designing the module development plan, Unit Test Plan (UTP) is inserted. UTP is helpful in identifying the bugs at unit level and it is the most efficient way of doing testing and bug identification as post unit level only the integration time bugs are possible. Bug found in any unit entity is isolated from the code to validate that the rest code is bug free.
Integration testing
During architectural design phase integration testing plan is inserted. This test is helpful in validating the functionality of units and coexistence of units which are developed independently.
System testing
System testing is the test of the functionality of the product concerning load, interdependence, and communication. The client’s business team execute the test.
User acceptance testing
During requirement analysis, User acceptance test (UAT) plans are developed. UAT plans target to business users to get realistic data and the experience of user environment to understand the validity of the software in in real time.
Agile development methodology
The agile method is a cyclic process of software development, which works on the concept of a feedback system. The major stages of software development in this methodology are requirements, planning, creating, launching, and feedback. Agile methodology is a basic software development technique.
The agile software development approach is an iterative process. Instead of delivering all at once, it focuses on incremental development. Various clients need this kind of development who cannot down their application to implement some changes. Consider applications like Netflix, Uber, Amazon, etc.; they have millions of users randomly accessing the applications. If these companies want to implement any changes into their application, they cannot down the application and apply changes. In such cases, an incremented version of the application is helpful. At this point, the need for an agile software development methodology arises.
DevOps methodology
DevOps approach of software development is a combination of development and operation stages. In this method of software development, the four major stages of agile development remain the same. Post launching of the software, are releasing on platform, deployment, operations, and monitoring.
The term DevOps is formulated as follows:
Development + IT Operations = DevOps
DevOps life cycle is a cyclic process which has ordered stages as Development, Integration, Testing, Deployment and Monitoring, respectively. All the stages are continuous in nature as it is a cyclic process.
Development
Development or continuous development involves planning and coding the software application’s functionality. The development team does the planning, and for coding, DevOps tools are used. The code for development stage is maintained by version control DevOps tools no matter in which language the code is written. Some of the popular tools are SVN, Mercurial, Jira and Git. To package the code into an executable file Maven, Gradle and ANT tools are used.
Integration
In the continuous integration stage new code for new feature or functionality is added to the existing code. As software is getting developed continuously, continuous integration has to be done for the updated code. While integrating the development team, make sure there is no run time error and changes reflect in the end user. Jenkins is a popular tool used at this stage.
Testing
For bugs identification testing is done continuously as continuous developments are happening. For continuous testing, automation testing tools such as Selenium, JUnit, etc., are used. Automation testing is the efficient way of testing as it saves time and effort and generates report of the testing.
Deployment
In continuous deployment, a code is deployed in the production environment. Deploying error-free code on all the servers is the task of the development team. Configuration management tools and container tools help us in achieving continuous deployment. To maintain performance and consistency of the software, configuration management tool is used. Some popular tools used in this stage are Puppet, Ansible, and Chef.
Docker and Vagrant are the most popular container tools used in code deployment. With the help of such tools packaging and processing of code for execution could be done easily.
Monitoring
Monitoring is a crucial stage of the DevOps life cycle in which the operation team keep observing the behavior of the application in terms of its performance and possible bug identification. Some popular tools used at this stage are Planck, ELT, Nagios, New Relic, etc.
Scrum development methodology
Scrum development methodology is an agile software development technique that is a fast-paced process of rectifying the issues and applying the changes. This technique is applied where frequent changes are expected. The process of software development remains the same here. It starts with briefings and planning, followed by design finalization through analysis, development, and deployment.
The flow chart of the scrum development technique is as follows:
The release of several incremental changes is called sprints. The development team repeats the sprints until the product functionality has reached the desired level. The general documents used in scrum are as follows:
Product backlog
The product backlog is the document in which the product owner provides a list of required features.
Sprint planning
In sprint planning, the development team, product owner, and scrum master discuss and prioritize top user stories to set up the sprint.
Sprint backlog
The sprint backlog is a list of top user stories that are planned for sprint. It is an output of sprint planning and a set of changes for the upcoming update cycle.
Prototype methodology
The prototype development process is a prototype-based software development methodology. It is an SDLC model in which the product is created first with limited functionality as a prototype. It is done to evaluate the user response.
Feature-driven development (FDD)
The feature-driven software development process requires the development team to focus on the features for the business. This model requires the development team to build a features list, and all the stages of SDLC are applied purely dedicated to features.
Rapid application development (RAD)
Rapid application development (RAD) is a further categorization of prototype-based software development. Using the RAD model, better quality could be assured using prototypes, and risk control is done from a user perspective to optimize the complexity of the software.
Spiral model
It is a risk-driven software development model. The spiral model is a combination waterfall and prototype model. Risk patterns are optimized using this model, and accordingly, the development team works.
Extreme programming methodology (XP)
Extreme programming is a kind of agile methodologies. Extreme programming follows the programming principles to develop high-quality software that can quickly respond to customer queries.
Common Mistakes
While applying software development methodologies, the common mistakes are
- Deviation from client requirements.
- The inputs from the client are not taken seriously.
- Absence of sync in process among the subsequent stages of a development team.
- The planning stage is not followed by analysis to understand the best fit methodology.
- Absence of research methodology.
- Poor teamwork.
Context and Applications
The topic is significant in the professional exams for both undergraduate and graduate courses, especially
Bachelor in Computer Science
Bachelor in Information Technology
Bachelor of Technology in Computer Engineering
Bachelor of Technology in Information Technology
Master in Computer Application
Practice Problems
Q. 1 Which of the following is not a software development methodology?
(A) Agile
(B) DevOps
(C) Waterfall
(D) Lake
Correct Option: (D)
Q. 2 Which of the following is not a stage in the DevOps process?
(A) Integration
(B) Testing
(C) Monitoring
(D) Processing
Correct Option: (D)
Q. 3 Which methodology does not allow backtracking?
(A) Waterfall
(B) DevOps
(C) Agile
(D) Scrum
Correct Option: (A)
Q. 4 Which of the following is not a monitoring tool?
(A) Planck
(B) ELT
(C) Jenkin
(D) Nagios
Correct Option: (C)
Q. 5 Integration, testing, deployment, and monitoring are continuous processes in:
(A) Scrum methodology
(B) Waterfall methodology
(C) Extreme Programming
(D) DevOps methodology
Correct Option: (D)
Want more help with your computer science homework?
*Response times may vary by subject and question complexity. Median response time is 34 minutes for paid subscribers and may be longer for promotional offers.
Search. Solve. Succeed!
Study smarter access to millions of step-by step textbook solutions, our Q&A library, and AI powered Math Solver. Plus, you get 30 questions to ask an expert each month.
Search. Solve. Succeed!
Study smarter access to millions of step-by step textbook solutions, our Q&A library, and AI powered Math Solver. Plus, you get 30 questions to ask an expert each month.