Tuesday, January 23, 2007

Software Development Life Cycle

Software development life cycle (SDLC) is a process adopted and followed during the development of software. Also known as software life cycle and software process, there are quite a few stages for SDLC.

Requirements analysis

Being acquainted with the specific requirements of the desired software is the first important step. This requires skill and experience in software engineering so that the exact software is developed

Specification analysis

A software development process enters the specification stage once the deliverables are figured out. This is the stage when the software is properly described and written to understand. Specifications are most important for external interfaces that must remain stable.

Architectural analysis

Architecture refers to a conceptual representation of the software system. A well-defined architecture ensures that the software has all it needs to meet the requirements, and accommodate future requirements if any. The architecture step also addresses interfaces between the software system and other software products, as well as the underlying hardware or the host operating system.

Coding

The coding stage is a widely followed step in software development. Here the design is reduced to code for better understandability.

Testing

The coding stage is followed by the testing phase. This is the most important stage of any software development life cycle where extensive testing is done to ensure that coding done by different software developers work together in harmony.

An important part of software development is documentation. Many a times this step is overlooked, only to land up in problems whenever future maintenance and additions are a necessity. Meanwhile, many software projects are found to fail because of lack of training among end users. Ideally, training is an important part of the software development life cycle where end users have all their queries solved by the developers.

Earlier, the entire process of software development consisted only of a developer writing the code of software. However, today the scenario is quite big, complicated, and involves teams of architects, analysts, programmers, testers and users who work in tandem to create codes. This is the main reason why SDLC has become such important. In other words, without a well-defined development life cycle, software often have found to either fail, or lack performance.