Introduction:
Computer software is a non-tangible component of the computer. It is a collection of scripts, codes and files required to perform a specified task. Software may be developed to perform one task or a collection of related tasks. It needs to be tailored to fulfill the requirements of the end user. A systematic framework is required to develop software without any glitches, user friendly and bug free. The process of developing software involves five phases and is referred to as the Software Development Lifecycle (SDLC). Technically, Software Development Lifecycle is a framework in which the tasks to be performed at each step are defined. The five phases of SDLC are requirement analysis, design, implementation, testing and release. SDLC follows an international standard ISO/IEC 12207.
A variety of life cycle models like waterfall model, V-shaped model, incremental and spiral life-cycle models are available. Each of these models carries the project through a series of primary phases. However, on a macroscopic level, all models involve the same set of five phases for software development. Each phase produces an output, which will affect the consecutive phase of the cycle. A substantive account of each phase of SDLC is as follows.
Phase 1: Requirement Analysis
Requirement analysis phase is the most important and fundamental stage of SDLC. Senior members of the team will participate in the requirement analysis phase. During this phase, the primary requirements of the end user will be collected. For instance, if the software is developed for an organization, personnel who will be using the software will be asked of their requirements mentioning the intended use of the software. Analysts will gather information regarding the type of data intended for use, method of data handling by the software and accessibility of data by the software on installation. Based on the gathered information, the basic approach to the software development will be developed; product feasibility study in terms of economical, operational and technical areas will be performed. The testing requirements for quality assurance and risk analysis are also done during the planning stage. At the end of planning stage, all the requirements will be defined and documented using Software Requirement Specification (SRS) document.
Phase 2: Design
The main objective of design phase is to create a practical working design for all the requirements defined in the requirement analysis phase. Design phase involves the software developing team to focus on methods of accomplishing the requirements defined in SRS. All the results of requirement analysis phase will be converted to a software design plan. In this process, many different criteria will be considered for the hardware and operating system to serve as a hosting platform for the software. Every design approach will define the architectural models of the product. All the proposed design approaches will be document in Design Document Specification (DDS). Main stakeholders, users of the software, will approve DDS.
Phase 3: Implementation
In the implementation phase, results of design phase will be transformed into programming codes. Software programmers will create program codes to fulfill the defined requirements in DDS. SDLC uses various models like waterfall, agile, V-shaped models for developing program codes. Developers will follow the coding rules defined by the organization and computer tools used to generate the code. High-level languages like C, C++, and Java can be used depending on the type of software to be developed.
Phase 4: Testing
A testing plan will be created to describe and perform unit tests and test on system components. The results of implementation phase will be subjected through a series of tests to examine and verify that the functions meet the goals of requirement analysis phase. Unit testing will be performed on individual software components. System components testing will be performed on software system as a whole. An integration of all these tests will create the entire software system. The product defects will be reported, tracked, fixed and retested until the quality standards as defined in SRS are met.
Phase 5: Release
After the required standards are met, the software will be released formally in the market or to the organization. Deployment of the product maybe done either before the release or according to the business strategy of the organization. Initially, the product will be released to a small segment to ensure that it is processing the functions as defined in SDS and get feedback about its real time usage. Based on the feedback, any enhancements will be made or released as it is to the targeting market. Once the software is made fully available to the targets, maintenance will be done for existing customer base.
Benefits of Software Development Life Cycle
- A well-structured step-by-step planning for software development helps in developing a bug free and less cumbersome final product.
- Various lifecycle models provide different advantages over software development.
- Waterfall model is the widely used model because of its easy linear structure. With this model, it will be easy to explain about the project to the client. Errors can be spotted early in every stage.
- V-shaped model is an extension of waterfall model. It has higher success rate compared to the waterfall model due to the development of test models from early stages of software development. Each phase has specific deliverables.
- The increment model provides the users with the advantage of introducing requirements in between any planned increments. It utilizes fewer resources if the project definition is clear. More focus on customer value compared to linear models.
- Spiral method facilitates its developers to estimate the project cost earlier than other models. It involves developers at an early stage itself. Risk management is easier using spiral model.
References
Beck, Kent. Extreme Programming. 2000.
Cohen, S, D Dori and U de Haan. "A Software System Development Life Cycle Model for Improved Stakeholders’ Communication and Collaboration." International Journal of Computers, Communication & Control (2010): 20-41.
Sami, Mohamed. Software Development Life Cycle Models and Methodologies. 15 March 2012. 6 February 2014 <http://melsatar.wordpress.com/2012/03/15/software-development-life-cycle-models-and-methodologies/>.
Tutorial Point. Software Development Life Cycle (SDLC). 2013.