October 4, 2016

Software Development Life Cycle (SDLC)

What is SDLC?

                There are various software development approaches defined and designed which are used during development process of software, these approaches are we normally called as “Software Development Process Models” (e.g. Waterfall model, incremental model, V-model, iterative model, RAD model, Agile model, Spiral model, Prototype model etc.). Each process model follows a particular life cycle in order to ensure success in the process of software development.
Software life cycle models describe phases of the software cycle and the order in which those phases are executed. Each phase produces deliverables required for the next phase in the life cycle. i.e., the output of one phase will be the input for the next phase. For example once the requirements are collected we start the design phase and once the design phase is completed we will start developing/Code the application. Once the code is developed it will be assigned to the tester to test the application. If everything is properly developed we will deploy the code.
There are six phases in every Software development life cycle model:
  1. Requirement gathering and analysis
  2. Design
  3. Implementation OR coding
  4. Testing
  5. Deployment OR Installation
  6. Maintenance


 Requirement gathering and analysis
Business requirements are gathered in this phase. This phase is the main focus of the project managers and stake holders. Meetings with managers, stake holders and users are held in order to determine the requirements like: who is going to use the system? How will they use the system?  What data should be input into the system?  What data should be output by the system?  These are general questions that get answered during a requirements gathering phase. After requirement gathering these requirements are analyzed for their validity and the possibility of incorporating the requirements in the system to be development is also studied.
Output: Requirement Specification document is created which serves the purpose of guideline for the next phase of the model
Design
In this phase the system and software design is prepared from the requirement specifications which were studied in the first phase. System Design helps in specifying hardware and system requirements and also helps in defining overall system architecture.
Output: The system design specifications serve as input for the next phase of the model.
In this phase the testers comes up with the Test strategy, where they mention what to test, how to test.
Implementation / Coding
On receiving system design documents, the work is divided in modules/units and actual coding is started. Since, in this phase the code is produced so it is the main focus for the developer. This is the longest phase of the software development life cycle.
Output: Developed code/system as per the requirements in the system design and FRD for that release
Testing
After the code is developed it is tested against the requirements to make sure that the product is actually solving the needs addressed and gathered during the requirements phase. During this phase all types of functional testing like unit testing, integration testing, system testing, acceptance testing are done as well as non-functional testing are also done.
Output: Feedback on the developed code. Here there are two directions.
  • One is if the requirements are satisfied and the application is behaving as it is intended to then it will deployed to the production
  • Second is if many of the requirement are not satisfied or the application is not behaving as it is expected then it will be go the Coding phase
Deployment
After successful testing the product is delivered / deployed to the customer for their use.
As soon as the product is given to the customers they will first do the beta testing. If any changes are required or if any bugs are caught, then they will report it to the engineering team. Once those changes are made or the bugs are fixed then the final deployment will happen.
Output: End user experience on the deployed system, if he is facing any problem it will go to Maintenance Phase
Maintenance

Once when the customers starts using the developed system then the actual problems comes up and needs to be solved from time to time. This process where the care is taken for the developed product is known as maintenance.

Please find the below article to learn about the Agile software development guide 

1 comment:

  1. Great Article… I love to read your QA services articles because your writing style is too good, its is very helpful for all of us and I never get bored while reading your article because, they are becomes a more and more interesting from the starting lines until the end.

    ReplyDelete