Showing posts with label Software Engineering. Show all posts
Showing posts with label Software Engineering. Show all posts

Tuesday, 28 November 2017

Software development life cycle(SDLC)

  1. Requirement gathering and analysis
  2. Design
  3. Implementation or coding
  4. Testing
  5. Deployment
  6. Maintenance

Phase 1: Requirement gathering and analysis

This phase emphasizes on four question
  1. what?
  2. why?
  3. Collecting data and details?
  4. how? 
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. Finally, a Requirement Specification document is created which serves the purpose of guideline for the next phase of the model.

Phase 2: Defining Requirements

Once the requirement analysis is done the next step is to clearly define and document the product requirements and get them approved from the customer or the market analysts. This is done through an SRS (Software Requirement Specification) document which consists of all the product requirements to be designed and developed during the project life cycle.


Phase 3: Designing

Designing is a heart of SDLC. Once the planning is done the designing (programing) of the desired solution begins.

 Phase 4:Testing

Once the solution(software) is programmed it needs to be tested on different grounds with variable intensities. This stage is usually a subset of all the stages as in the modern SDLC models, the testing activities are mostly involved in all the stages of SDLC. However, this stage refers to the testing only stage of the product where product defects are reported, tracked, fixed and retested, until the product reaches the quality standards defined in the SRS.

Phase 5: Implementation

Final implementation is done after the proper testing and approval from the client.



Phase 6: Maintenance

After the deployment of solution the maintenance is a key point that should never be omitted. 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.
  • Monthly Maintenance
  • Quarterly Maintenance
  • Annual Maintenance





SDLC Models

SDLC models are a package of steps and procedure, which may differ model wise. Following are the most important and popular SDLC models followed in the industry:
  •  Waterfall Model
  • Iterative Model
  • Spiral Model
  • V-Model
  • Big Bang Model
Other related methodologies are Agile Model, RAD Model, Rapid Application Development and Prototyping Models.

Waterfall Model

Waterfall model is a basic approach of SDLC implementation. It is also know as linear sequential life cycle model. It is very easy to use and understand. In waterfall model each phase must be complete before next to be start. Top to down approach is followed. The flow of data and control is accomplished process by process.


Design:

Advantage:

  • It is easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process.
  • Waterfall model works well for smaller projects where requirements are very well understood.
  • This model is simple and easy to understand and use.
  • In this model phases are processed and completed one at a time. Phases do not overlap.

Disadvantage:

  • Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage.
  • No working software is produced until late during the life cycle.
  • High amounts of risk and uncertainty.
  • Not a good model for complex and object-oriented projects.
  • Poor model for long and ongoing projects.
  • Not suitable for the projects where requirements are at a moderate to high risk of changing