1 October 2012

SDLC [Software Development Life Cycle ]

SDLC :

System Development Life Cycle or Software Development Life Cycle :

       SDLC is the process of developing information systems through investigation, analysis, design, implementation and maintenance. SDLC is also known as information systems development or application development. It is also known as Waterfall Model.
       The software development life cycle (SDLC) is the entire process of formal, logical steps taken to develop a software product. The phases of SDLC can vary somewhat but generally include the following
      SDLC is a System Development Life Cycle or Software Development Life Cycle.SDLC is the process of software development. This is the simplest definition of SDLC. There are so many methodologies which are involved in SDLC. The important stages are project planning, requirement gathering/analysis, designing, coding, testing and maintenance.



The six stages of SDLC:

       The stages of the SDLC are designed to depend on one another, taking the outputs from the previous stage, adding additional effort, and producing results that leverage the previous stage effort.

Planning:

      Planning stage is used to establish the basic project structure and plan, feasibility study such as economical, operational, and technical, quality assurance, and risks associated with the project, and describe appropriate management and technical approaches.

Requirement Analysis:

       The objective of requirement analysis is to determine where the problem is and how to fix it. This phase is also known as Feasibility study. This steps includes breaking down the system in different parts and drawing diagrams to analyze the situation, analyzing project goals, breaking down what needs to be created and attempting to appoint users so that definite requirements can be defined. The development team examines the need for possible software in the given system. At the end of the feasibility study, the team furnishes a document that holds the different specific recommendations for the candidate system.

Designing:

         In this phase of software development process, the overall software’s structure and layouts are designed. The design stage takes its initial inputs from the approved requirements document. In this phase, in terms of the client/server technology, the number of layers needed for the package architecture, the database design, the data structure design etc are all defined. Thus, an overall software development model is created. So, analysis and designing is very essential in the entire development cycle. The output of this stage describes the new system as a collection of modules.

Coding:

       The actual programming code is generated during this stage. If the design is performed in a detailed manner, code generation can be accomplished without much complication. Programming tools like compilers, interpreters, debuggers etc are used to generate the code. Different high level programming languages such as C, C++, Pascal,Java, and PHP are used for coding. The programming language is chosen with respect to the type of application.

Testing:

      Once the coding is done, the software program testing begins. Different testing methodologies are available to fix the bugs that were committed during the previous phases. Different testing tools and methodologies are already available but some companies build their own testing tools that are tailor made for their own development operations.

Maintenance:

       The maintenance of software is an important aspect of SDLC. The software will definitely undergo change once it is delivered to the customer. Change could happen because of some unexpected input of values into the system/software or the changes in the system could directly affect the software operations. Sometimes new changes are implemented which requires the system updates.



The learning above has been from my readings on the web, and from the various reputed software companies in India. If you feel that I have missed anything, please feel free to share your feedback.