Understanding The Software Development Life Cycle (SDLC)
The first question to be asked, should be, “What is The Software Development Life Cycle?”
Wikipedia defines SDLC as, “In systems engineering, information systems and software engineering, the systems development life cycle (SDLC), also referred to as the application development life-cycle, is a process for planning, creating, testing, and deploying an information system. The systems development life cycle concept applies to a range of hardware and software configurations, as a system can be composed of hardware only, software only, or a combination of both. There are usually six stages in this cycle: requirement analysis, design, development and testing, implementation, documentation, and evaluation.”The main purpose of SDLC is to provide the customer with a high-quality product according to their needs.
What is the SDLC life-cycle?
The SDLC life-cycle is best explained in the form of a diagram.
Now we can further discuss these SDLC phases in detail.
What is the first step in the Software Development Life Cycle?
The first phase of SDLC is requirement analysis. The first phase includes collection of all the data from the customer. This includes the expectations of the customer. An understanding of what the product is, who the target audience are, why the product is being built is considered. Once the requirements are gathered, they are analysed. An analysis of how feasible the creation will be is made. Any further ambiguity is discussed. Once the requirement is understood clearly and the analysis made, the SRS (Software Requirement Specification), is created. This document is for the benefit of both the software developers and the customer. It can be referred to by both parties for convenience.
What is the second step in the SDLC?
The second step is designing. Once the requirements are understood, the software developers can move onto designing the software. The SRS document is kept as reference material while designing the software. All the agreements made in the SRS document are turned into a plan called Design specification. The team of software developers as well as the team of the customer reviews this. Any feedback or suggestion from either party is taken into consideration at this point. It is of utmost importance to have inputs from the customers at this stage. Failing at this stage will ensure either over expenditure or overall failure of the software.
What follows the Designing phase?
The Design phase is followed by the Implementation and Coding Phase. Here, the different methodologies come into play. A choice can be made between the agile, waterfall or any other more suitable method. All the planning and decisions have been finalised at this point and a blueprint is drawn up. The actual implementation of the ideas in the blueprint is done in this stage of SDLC. Tasks are divided into modules to be distributed among the developers according to their strengths. This is the longest phase of the SDLC life cycle. It is very important to keep the customers involved in every step of the way to avoid any kind of mis-communication.
What is the Testing phase of the SDLC?
Once the basic software is created it is released to be tested. It is screened for any kinds of bugs or malfunctions. If any of these are found they are quickly worked on. The reworking is continued till there are no more functional issues with the software. This process of working and re-working could go on for quite some-time, till a stable and bug-free software is established. Once the functionality of the software is proved, a quick check with the SRS document is done. This is to ensure that the software will meet all the needs of the customer and all specifications are met.
What follows the Testing phase?
Testing is followed by deployment. In this stage the aim is to deploy the product for maximum production. Though it could be deployed to run in other environments like a testing or staging environment. This allows the customer to evaluate the product before it is released. It also ensures there are no mistakes when the product is finally launched. This is the stage where the software is secured.
What is the final phase of the SDLC process?
The final phase of the SDLC process is Maintenance. A software-developer's work, for a soft he/she has created, is never truly over. Not in the absolute sense of the word. The task of maintenance and fixing issues is always taken to the developer. Only the team or person that has created a software will know its nuances well enough to fix issues. The software has to be monitored to ensure a smooth operation.
These are the phases of the SDLC process but it is not all that is needed to truly understand SDLC. The next thing we need to discuss is SDLC Models.
What are the most popular SDLC models that are used?
Among the variety of models, the Agile and Waterfall models have gained much popularity.
What is the Waterfall Model of SDLC?
The very first model used in SDLC, the waterfall model is sometimes called linear sequential model.
The result of one step in this model is the reference for the next step. The production of the next phase only starts when the preceding phase is complete.
First, the collection and review of the specifications is completed. Once the requirement has been frozen, the Device Design will start only then. Here the generated SRS document is the product for the Requirement process and it serves as the system design input.
In the architecture and design of system design software, documents are generated which function as input for the next step, i.e. Implementation and Coding.
Coding is done in the Implementation stage, and the software created is the input for the next step i.e. testing.
The developed code is carefully checked during the testing process to identify the defects in the program. Defects are logged into the database for monitoring defects, and are retested until patched. Bug logging, Retesting, regression testing continues until the program is in go-live state.
The produced code is pushed into production in the Implementation process after the customer gives the sign off.
The developers that come under maintenance must fix any problems in the development process.
Advantages of the Waterfall Model:
Waterfall model is the basic model that can be easily understood and is the one where step by step all the phases are completed.
Deliverables are well established for each step and this leads to no difficulty and makes the project simple to manage.
Disadvantages of Waterfall model:
Waterfall model is time-consuming & cannot be used in the short duration projects as in this model a new stage cannot be started until the ongoing stage is completed.
The waterfall model cannot be used for projects with unclear specifications or where the requirement tends to change because this model assumes the requirement to be evident during the requirement selection and review process itself and any adjustments in the later phases will result in higher costs as the improvements will be required in all phases.
What is the Agile Model in SDLC?
This model is more focused on versatility when designing a product than it is on requirements.
Through Agile, a project splits into tiny incremental constructions. It isn't produced in one go as a whole package. The next build is focused on preceding functionality.
Iterations are termed as Sprints in Agile. Each sprint has a period of 2-4 weeks. The product owner reviews the product at the end of each sprint, and it is delivered to the customer after approval.
The customer feedback is taken for development, and the next sprint works on his suggestions and upgrades. In each sprint testing is performed to mitigate the probability of failures.
Advantages of Agile Model:
It allows for greater flexibility in adjusting to the changes.
The newest feature will easily be added.
Customer satisfaction is taken at any point as reviews and suggestions.
It lacks documentation.
Agile requires experienced, highly trained people.
When a client doesn't know exactly how they want the product to be, then the campaign will fail.
What are some of the other models used?
- Iterative Model. Repetition is emphasised in this SDLC model. It is easy to create and can be created relatively fast. It is also quite inexpensive to create. The mode used is testing, retesting and finalising after several successive versions. One big disadvantage here is that it can consume resources really fast if it is left without supervision.
- V-Shaped Model. It is an extension of the waterfall model. Tests are run at each stage of development in this SDLC method. This method is prone to roadblocks, just as the Waterfall method, which it is similar to.
- Big Bang Model. The Big Bang model works best for smaller projects. It spends most of its resources on development. It does not have the thorough requirements definition stage that the other models have.
- Spiral Model. In its emphasis on repetition, this model is similar to the Iterative model. It is also the most flexible of all the models. The Spiral Model makes improvements as it goes through all the phases repeatedly. The end result is a smooth-running and bug-free software ready to be released to the public.
What is the key difference between SDLC vs Agile?
- SDLC is the process of designing and creating a product or service to be provided to the customer. It is practiced in website and software development agencies for software or systems projects. On the other hand, Agile is a technique that can be applied using Scrum framework for project management purposes.
- SDLC is an amalgamation of a variety of models, each unique in its own way. While, Agile includes a collection of best engineering practices and professional principles. As well as, saves resources, increases predictability, reduces failure and enhances project delivery efficiency.
- SDLC contains LLD (Low Level Design) and HLD (High level Design). They are used to differentiate between different levels of difficulty in projects. Projects are assigned on this basis. The Agile model has different phases such as Planning, Requirements, Analysis, Design, Coding, Unit Testing, System Integration Testing, Non-Functional Testing, and Acceptance Testing.
- SDLC enables us to understand what needs to be done in a project. Whereas Agile helps the implementation of the project.
- SDLC is more difficult when it comes to management and flexibility. Agile is easier. This is because of the difference in scale of operations.
- SDLC describes the activities to be performed, to ensure the smooth delivery of a project. Whereas the Agile manifesto has different principles.
- SDLC is more systematic in building a software within a given timeframe. Agile has a faster development approach and speeds up the development process efficiently.
- SDLC documents each of its steps at every level of creation. Agile offers continuous integration by providing minor improvements in applications with regular deliveries. This depends on the requirements as per the complex design improvements.
What are the benefits of using the SDLC method of creating a software?
SDLC performed correctly will provide the highest degree of monitoring and documentation of the management. Developers understand what and why they should be constructing it. Both parties decide up front on the target, and see a concrete plan to achieve the aim. Everyone understands the necessary costs and resources needed.
The full form SDLC is Software Development Lifecycle.
The SDLC is a systematic software development process which ensures the consistency and accuracy of the built software.
The SDLC cycle offers a uniform structure for a series of operations and deliverables.
Five different SDLC stages are:-
- Requirement collection and analysis
- Design and Coding
- Installation/Deployment and
The members higher up in the hierarchy conduct the requirement analysis phase.
Feasibility Study stage encompasses anything that must be planned and produced during the life cycle of the project.
The device and software design documents are prepared in the design phase according to the specifications document.
Developers start constructing the entire system in the coding process by writing code using the programming language chosen.
Testing is the next step to check that the whole software operates as per the client requirements.
Installation and deployment start when the software testing phase is over, and there are no bugs or flaws present in the program.
Bug repair, modifying and executing action are included in the maintenance face.
Waterfall, Incremental, Agile, V model, Spiral, Big Bang are some of the popular SDLC models.
SDLC consists of a comprehensive plan that outlines how to design, build and maintain complex software.
Answers to frequently asked SDLC related interview questions.
- What is SDLC?
SDLC is an abbreviation of Software Development Life Cycle. SDLC is a step by step process providing a specified model for the creation and implementation of an application's life cycle.
- Name five Models used in SDLC
i) Waterfall model
ii) Rapid Application Development (RAD) model
iii) Agile model
iv) Iterative model
v) Spiral model
- Explain Phases of the waterfall model
The five-main phases of the waterfall model are:
a) Requirements gathering
e) Implementation & Maintenance
- State the importance of the Design phase?
The specifications are laid down in a document. It is then converted into a logical structure that needs to be implemented in a specific programming language.The design process also helps to define the specifications for the hardware & program. This also helps you to describe the complete architecture of your program. The output is intended for recording, and serves as a reference for all following SDLC phases.
- What are the tasks performed in Coding phase?
The specification document is translated to an operational programming language during the coding process. The coding stage output is the source code that can serve as the input for the monitoring and management process.
- What is a feasibility study?
Feasibility allows deciding how a software project would be for a company. The software analyst performs a thorough analysis to understand every project's organizational, economic and technological viability.
- What are the Maturity levels in CMM?
Capability Maturity Model is a framework for assessing the complexity of the software development company process within an enterprise. This is a method used to optimize the process of software creation within a business. This is used to measure each organization based on their Key Process Areas on a scale of five different rates. It speaks of the company's maturity dependent on the project the company is concerned with.
Initial, Managed, Defined, Quantitatively Managed and Optimizing are the five levels which determine CMM levels of any company.
- State some benefits of using the V model?
a) Simple and easy to use.
b) The V model is more successful since test plans are created early. This lowers the cost of security fixes.
c) Works most effectively with small projects where requirements are small.
- What is the 'scope' of a project?
The project's framework is nothing more than the project's priorities, priorities, and aspirations. The scope of software is a well-defined boundary which includes all the processes used to create and deliver the software product. The scope of the software consists of all the features and objects to be supplied to the program. The complexity of the program also helps to decide what the device can do and what it won't.
- According to you, when should users be trained on a new system?
During process of implementation
- Name the phase where the performance of the new system is monitored?
The system is continuously supervised throughout the Evolution and Maintenance stage.
- What is a computer-based information system?
It is a system where the computers execute certain operations.
- Explain Low Level or Detailed Design concerning SDLC
High-level design is divided into components and applications in Low-Level Design. For each program logic design will be created and recorded as software parameters.
- What is the use of a JAD session?
JAD (Joint Application Design) session is used to collect application information and data.
- State the Difference Between SDLC and STLC
SDLC includes the full Project Testing and Validation. The SDLC stage involves an evaluation, model, development process, screening process, and management of the business requirements.
While STLC only includes validation.
- Who are the people involved in the phases of the Waterfall Model?
The people involved in the waterfall model depend upon the structure of the organization. Here, there are professionals who are:
a) Business analyst
b) Technical Manager or Senior Developers
c) Technical Lead or System Architect in Design Phase
d) Developers in the Coding phase
e) Testers in Testing Phase.
f) Project Manager and Maintenance Team in the Maintenance phase
- What is level-0 DFD?
Level 0 DFD (Data Flow Diagram) is considered the highest degree of abstraction. Also known as DFD context stage, it gives requirements as one diagram about the entire information system that has all the specifics about the system.
- Explain the team Requirement Gathering concerning SDLC
Requirement Collecting is an essential process of SDLC. Business requirements are gathered in this level. During this phase the project's timeline and cost are also evaluated.
- Briefly explain Testing Phase
Different testing methodologies are practiced for detecting the software bugs, which happen to arise during the previous phases. Today, there are many types of testing tools and methodologies available. Few firms are also building their testing tools, which are custom made as per the need of their organizations.
- What are problems faced in the waterfall model?
Some of the common problems that the waterfall model faces are:
a) It's not suitable for complicated projects where the specifications are not transparent.
b) It takes time and effort to accomplish each level.
c) There are some defects in this model which have never been rectified.
- What is the detailed study of the existing system?
The detailed study of the existing system is called System analysis.
- What is the main aim of prototyping?
Prototyping provides a miniature design of the device being proposed.
- In which step of the SDLC project early termination could be done?
In the SDLC framework, project completion can be carried out in the phase of feasibility study.
- According to you which is the most creative and challenging phase of the system life cycle?
The design is amongst the more difficult stages of the SDLC lifecycle.
- Name the type of feasibility where the cost saving and additional profits will exceed the investment required.
It is called as Economic Feasibility
- Can bug fixes also include software maintenance?
Indeed, bug repairs often include management of applications.
- Cost of error correction is least in which stage of SDCL life cycle?
The cost of error correction at the preliminary phase of the requirement analysis is quite reduced.