- How to fix ‘system thread exception not handled’ error in windows 10 - December 19, 2020
- How to think like an engineer – On a daily basis - December 17, 2020
- The frightened engineer – Side quest – The Outer Worlds - December 16, 2020
Are you interested in what a software tester or quality assurance analyst does? You first need to understand the behind process by which the software is conceptualized developed and maintained. The process is known as software development lifecycle shortly known as SDLC. Today we gonna talk about the software development life cycle model.
To understand the SDLC model first, talk about What is Software development life cycle.
What is Software Development Life Cycle Model
SDLC aims to produce a high-quality system that meets or exceeds customer expectations, works effectively and efficiently in the current and planned information technology infrastructure and is inexpensive to maintain and cost-effective to enhance.
The process followed in a software project is SDLC. Each phase of SDLC produces deliverables acquired by the next phase in the lifecycle. Requirements are translated into design, code is produced according to the design and testing should be done to developing the product based on requirement deployment. Should be done once the testing was completed.
Phases in the Software Development Life Cycle Model
There are seven key points to understanding software development life cycle Model.
- Requirement Phase
- Analysis Phase
- Design Phase
- Implementation & Coding Phase
- Testing Phase
- Deployment Phase
- Maintenance phase
So it all starts with a person. This guy that has the business idea for our invoice application and the money to get it started. He’s going to reach out to multiple different tech companies until he finds one that he likes. Finally, he’s going to meet the company’s product owner or project manager, they’re going to discuss terms of their agreement sign a deal and accept the project.
After this our seven phases of software development life cycle model will start.
1. Requirement Phase
Requirement Phase is the initial phase of the software development life cycle model. Planning the requirements together with the customer and the product owner will outline the requirements of the application.
Business enlist collects the requirement from the customer or client as per the client’s business needs and documents. The requirements in the business requirement specification document Let’s imagine that the requirements that they’ve both agreed upon are as follows
- User Registration
Requirement number one the User Registration will need a user name input field, a password field, a checkbox to accept the terms and conditions, a submit button and the ability to save the user into our database.
Requirement number two the Login will need a login page to allow returning users to log back into our system. For this we need another user name input field, a password field along with a submit button. From this, we’ll need to read the users information out of the database and log them into our database.
Requirement number three Logout will require a logout button usually located around the same area where the user was logging into the dashboard. When they press the logout button a should clear their session out of the browser to prevent other people from returning and logging back into their accounts.
2. Analysis Phase
Once the requirement gathering then the analysis is the next step in the software development life cycle model. To define and document the product requirements and get them approved from the customer. This is done to software requirement specification document (SRS).
Consists of all the product requirements to be designed and developed during the project lifecycle keep it will involve in this phase our project managers business analyst and senior members in the team for this phase. The outcome of this phase is software requirement specification.
3. Design Phase
After analysis, we’ll move into the design phase of the software development life cycle model. The design phase takes all the requirements and starts to plan the product. The design phase may include the business rules, the user interface layouts, colour schemes but programming languages to use frameworks system server design. Database relationships architect of the application mobile aspects supported browsers and much more.
This phase has two steps –
High Level Design(HLD). It gives the architecture of the software product to be developed and is done by architects or senior developers.
Low Level Design(LLD). It is done by senior developers. It describes how each and every feature in the product should work and how every component should work.
Here only the design will be final and not the code. The outcome from this phase is a high-level document and low-level document which works as an input to the next phase of the software development life cycle model.
4. Implementation & Coding Phase
Next phase in Software development life cycle model is the Implementation and Coding phase. The implementation and coding phase is where developers start building the software and start writing the code for the product. Developers of all levels seniors juniors freshers involved in this phase.
The operations team will set up the physical hardware for the servers and the developers will start writing the code. The designers would continue planning the user interface and the testers will analyze the requirements and start building test cases for their test plans.
Even in this stage testers are incredibly valuable they start to imagine the usability of the application and see how everything flows together. Sometimes while writing test cases they can discover things don’t make sense and help free design fundamental flaws in the early stages of the application. The outcome from the space is a source code document.
5. Testing Phase
Next phase in Software Development life cycle model is Testing Phase. When the software is ready it is sent to the testing department, where testing team test it thoroughly. They either test the software manually or using automated testing tools depends on the process defined in SDLC and ensure that each and every component of the software works properly. The output of this phase is the quality & error-free product
The testing phase is one of the most important phase in the Software development life cycle model. Why is the testing phase so important?
- All the bugs in the software appear in the testing phase that needs to be fixed before handover the product to the customer.
- This is the final phase before the launch. So this needs to be perfect to get the best product.
- The software has to be error-free.
6. Deployment Phase
Next phase in software development life cycle model is Deployment Phase In the deployment phase the operations team will end up near the staging or development environment systems. That we’ve been testing in and get them ready for production meaning that they’ll install new hardware or brand new servers.
Have everything scalable for production this includes setting up the links setting up the databases for real users seeking up with the development teams and release managers. Once they’ve completed all of these tasks our software will go live to real users.
7. Maintenance Phase
The last phase to the software development life cycle model is Maintenance Phase. So imagine that we’ve launched our product and our application became so successful. We’re just getting millions of users logging in and registering and using this application.
When the customer starts using the software then the actual problems will come up and needs to be solved from time to time. The process where the care is taken for the developed product is known as maintenance. 100% testing is not possible because the way testers test the product is different from the customers use the product. Maintenance should be done as per service level agreement
So we need to maintain the servers in the environment they need to monitor the load, the stress everything coming on the servers. So many users logging in and using it, it doesn’t bring down the system. Maybe we need to make larger servers, larger databases or need to get faster computers. There’s a lot of stuff that goes on during the maintenance phase.
There will be bugs found in production it’s called production support. Frequently users will email with their issues and developers can stop and investigate what they’re complaining about or what their issue is. Figure them out, writes up a bug get it resolved and do another deployment to production with issues fixed.
Types of software development life cycle model
- Agile Model
- Waterfall Model
- Spiral Model
- V-Shaped Model
The Agile Software development life cycle model separates the product into cycles and delivers an error-free product very quickly. This model produces a succession of releases. Testing of each release feeds back information that’s incorporated into the next version. The drawback of this model is that the heavy emphasis on customer interaction can lead the project in the wrong direction in some of the cases.
The Waterfall SDLC model is the oldest and most to the point. With this model, we finish one phase and then start the next. Each phase has its own small plan and each phase “waterfalls” into the next. The biggest drawback of this model is that small details left incomplete can mess up the entire process.
The Spiral is the most flexible of the SDLC models. The spiral model goes through the planning, design, build and test phases over and over again, with gradual improvements at each compeletion.
V=Shaped is an extension of the waterfall model, this SDLC model tests at each stage of development. As with the waterfall, this process can run into roadblocks.
So this is the detailed explanation of the Software development life cycle model. Hope you like it and will be helpful to you to understand the SDLC.