Software development life cycle (SDLC)

Software development life cycle (SDLC)

Introduction

Software development life cycle is a framework for producing high-quality software in an organized and cost-effective way. SDLC can be used by both big and small organizations.

SDLC stands for software development life cycle. It is the process of improving the development process. SDLC has a detailed plan for software development which describes how to plan, build, deploy, and maintain the software. Each phase of SDLC has its own process and objectives. Applying software development life cycle phases can increase and enhance development speed.

There is a huge benefit of using software development life cycle. It helps you to decrease the project risk. The SDLC aims to produce high-quality software that meets the requirements of customer expectations, reaches completion within times and cost estimates. The figure below shows the different phases of the software development life cycle (SDLC).

software development life cycle

The phases of Software development life cycle are described below.

Requirement Analysis

Requirement analysis is the first phase and important stage in SDLC. It starts with gathering the requirements from customers. This phase includes background reading, plan, goal, schedule, and budget requirement of the system. It is conducted by the senior team members. This phase provides a clear scope of the entire project. Also, system analysis is done which is the study of a problem domain.

New system cannot be developed without analyzing the resources, ideas, effectiveness, limitations of the existing system. The necessity of system analysis can be understood by interviewing different persons. While building the required system, system analysis is necessary while implementing new ideas to solve the existing problems.


Feasibility Study

After the requirement analysis is completed the next step of the software development cycle is the feasibility study. Feasibility is the measure of how beneficial a system will be to an organization. It is the process where the feasibility is measured. There can be many solutions of a system and the feasibility study selects the best one that meets the software requirement specification (SRS). The feasibility study must consider the following areas:

Operational Feasibility – It is a measure of how well the solution will work in an organization and people feel about the system. It is a criterion to measure the urgency of the problem.

Technical Feasibility – It is the measure of the practicality of a specific technical solution and the availability of the technical resource and expertise. In this feasibility determination is made of the system can be developed and implemented using existing technology.

Economic Feasibility – It refers to the analyzing of how beneficial will be the system with regards to time, money and other resource required.

Schedule Feasibility – It is the measure of how responsible the project timetable is. Projects are usually initiated with specific deadlines.


Design

The third phase is the design. It is an important part of the software development life cycle. The design is done according to the gathered requirements. This phase develops the technical blueprint and specification required to implement database, programs, and user interfaces for the system. Necessary software and hardware are purchased in this phase. For the purpose of design, system designers user various type of design tools such as, Charts, Data Flow Diagram, ER Diagram, decision table, UML, context diagram etc.


Development

In this phase, the designed system is delivered to the development process. While developing the developer must follow the coding guidelines and designs of the system. Different high-level programming such as PHP, Python, Java, C is used for coding. A developer gives priority to database design as well as interface designs. The programming language is selected according to the type of software being developed.


Testing

After the development, testing is done. System design is the process of analyzing the system with the intention to find the errors. This phase is the most complex and time-consuming phase of software development life cycle. There are two popular testing methods.

Black box testing

In black box testing, internal working of the item being tested are not known by the tester. The tester is only concerned about the outcomes from the system when some specific inputs are given.

White box testing

In white box testing, internal working of the items, programming language code, being tested is visible. The tester uses knowledge of programming code to examine outputs.


Implementation

System implementation refers to putting the tested system into operations. The final software is released. The main component of every software product is people. Training should be given as per the need of the system user. Some system users may be reluctant to replace old system by the new one completely.


Maintenance

After the system is implemented, the users may face various difficulties or new errors. This is the last phase of the software development life cycle. There is a need of system maintenance and review. The maintenance can be bug fixing because some parts are not tested properly. Maintenance can be upgrading the system to the new versions tackling all the bugs and errors. Enhancing the system by adding new security features to the existing system.