Thursday, January 5, 2012

Software Development Life Cycle (SDLC)

Visit Quality Testing

Introduction

Software Development Life Cycle (SDLC) is a methodology that is typically used to develop, maintain and replace information systems for improving the quality of the software design and development process. The typical phases are analysis, estimation, design, development, integration and testing and implementation. The success of software largely depends on proper analysis, estimation, design and testing before the same is implemented. This article discusses SDLC in detail and provides guidance for building successful software.

The Software Development Life Cycle (SDLC) steps

The Software Development Life Cycle is the cycle in which the business analysts, the software developers, the database designers and/or the database developers, the QA developers and end users collaborate to build the application software. Basically, it involves designing the application from scratch, documenting everything, adding the improvements and fixing the bugs that occur in the SDLC. It is the lifecycle of Software from concept to obsolescence.

A quality software system is based on the following three principles:

· Modeling of the software development process (process)


· Modeling of the measurement of product (product)


· Modeling of the management and human interactions (people)

The software development life cycle (SDLC) may be divided into the following steps:

1. Requests from customers/original idea


2. Creation of feature lists based on item 1


3. Technical design of features based on item 2


4. Software design and time evaluation based on item 3


5. Code implementation based on item 4


6. Software Testing


7. Beta release/ bug fixes


8. Final release


The following section discusses each of these steps briefly.

Requests from customers/original idea

All the information relevant to the system and its scenarios, the occurrence and the behavior is gathered in this phase from the customer or the client who can provide the valuable information. These are basically raw facts or materials collected from the customer’s point of view by his or her observation over a period of time.

Creation of feature lists based on item 1

The information collected from the discussions mentioned on item1 is considered for a refinery process that varies from company-to-company depending on the standardization and the methodology that they do adopt. It lists all the details of the proposed items in an organized manner.

Technical design of features based on item 2

Here the technical aspects come into the picture and the designing of those aspects in terms of computer terminology. It involves the designing of the architecture and the sources that influence them like UML, OOAD, etc.

Software design and time evaluation, based on item 3


The software design phase in the software development life cycle is produced from the results of the requirements phase. It contains detailed design of the software in terms of the interfaces that it will provide and also the relevant functionalities that have to be implemented. It also involves the designing of the database. In this phase it is equally important to estimate the duration required based on the number of resources available in hand.

Code implementation, based on item 4

The coding phase involves writing the source code based on the required functionality by adhering the coding standards, code optimization, etc.

Software Testing

After developing the software it is important to ensure that the functioning of it is perfect. Software testing involves a mechanism that is used to report the bugs/undesired results that may occur in the SDLC.

Beta release/ bug fixes


The newly developed software will be released to undergo the tests for issues like the performance and its behavior under different circumstances. The bugs that occurred earlier in the cycle are rectified.

The Final release


After the clearance of the bugs reported during the beta release, the software is now ready to be released and delivered to the customer