Friday, March 26, 2010

System Development Life Cycle

To develop small application, software development consisted of a programmer writing code to solve a problem or automate a procedure. But now,the systems are so big and complex that teams of architects, analysts, programmers, testers and users must work together to create the millions of lines of custom-written code to develop a software.But it we be good even if we follow SDLC for small application development.

To manage this, a number of system development life cycle (SDLC) models have been created: waterfall, fountain, spiral, build and fix, rapid prototyping, incremental, and synchronize and stabilize.

The image below is the classic Waterfall model methodology, which is the first SDLC method and it describes the various phases involved in development.


Briefly on different Phases:

Project planning, feasibility study:
The feasibility study is used to determine if the project should get the go-ahead. If the project is to proceed, the feasibility study will produce a project plan and budget estimates for the future stages of development.


Systems analysis, requirements definition:
Analysis gathers the requirements for the system. This stage includes a detailed study of the business needs of the organization. Options for changing the business process may be considered. Design focuses on high level design like, what programs are needed and how are they going to interact, low-level design (how the individual programs are going to work), interface design (what are the interfaces going to look like) and data design (what data will be required). During these phases, the software's overall structure is defined. Analysis and Design are very crucial in the whole development cycle. Any glitch in the design phase could be very expensive to solve in the later stage of the software development. Much care is taken during this phase. The logical system of the product is developed in this phase.

Implementation
In this phase the designs are translated into code. "My area :).." C,C++,Java,.net etc are used here only.

Testing
In this phase the system is tested. Hope you know about following testings,
Unit Testing where individual modules are tested,Integration Testing where individual modules brought to gather and tested,alpha testing and beta testing etc.


Maintenance
Inevitably the system will need maintenance. Software will definitely undergo change once it is delivered to the customer. change is really inevitable. so we need Maintenance . "Most of the people(developers) working in big companies will work in this phase only. AFAIK they wont develop from the core, They maintain the existing delivered software."


But Waterfall Doesn't Work!

The waterfall model is well understood, but it's not as useful as it once was. "it works very well when we are automating the activities of clerks and accountants. It doesn't work nearly as well, if at all, when building systems for knowledge workers people at help desks, experts trying to solve problems, or executives trying to lead their company into the Fortune 100."

Another problem is that the waterfall model assumes that the only role for users is in specifying requirements, and that all requirements can be specified in advance Unfortunately, requirements grow and change throughout the process and beyond, calling for considerable feedback and iterative consultation. Thus many other SDLC models have been developed.

Anyhow waterfall is to understand the SDLC , and other models are based on it.

Finally a video : http://www.youtube.com/watch?v=OfgfnZZdMlI&feature=channel

***
Here i'm share what i learned about SLDC.Will see more about the SDLC in future posts.I'm going to concentrate on this area.
***

I hereby declare that all the above information are stolen from various site and altered.

No comments:

Post a Comment