Knowledge Module

Software Development Lifecycle

The purpose of using a Software Development Life-Cycle is to ensure that that product/service is of high quality and that it meets the customers expectations. SDLC is used by developers all over the world to plan, design, build, test and deploy systems.

Some more specific takes on SDLC include:

  • RAD – Rapid application developement
  • TDD – Test driven development
  • Waterfall model
  • Agile

Typically there are 7 phases to the cycle. Starting with analysis and requirement gathering/refining and ending with the implementation.

What are 7 phases?

  • Planning
  • Analysis and Requirements
  • Design 
  • Development
  • Testing 
  • Implementation 
  • Support and Maintenance

Planning

The first stage of the cycle is used to find the scope of the problem, potential solutions. The resources, costs, estimated time, benefits should all be discussed and considered at this point to determine whether the project is do-able and feasible.

Analysis and Requirements

This phase is critical to the success of the project. Requirements need to be heavily discussed and documented. This stage of the cycle relies heavily on communication between managers, stakeholders, and potential end users. The following techniques can be used to gather requirements. At the end of this phase the developers should have a clear Requirement Specification document.

Design 

Technical design requirements are prepared in this phase by the developers. The Business Requirements are used to define how the application will be written. There are several tools and techniques used for describing the system design. Some of the tools and techniques are: Flowchart, Data flow diagram, Data dictionary, Structured English and Pseudo-code – All of which will be taken forward and utilised in the next stage to make the development process as smooth as possible.

Some of the activities involved at this stage are:

  • Risk analysis 
  • Functional Specifications 
  • Non-functional Specifications

Development 

This phase is usually the longest of the phases as this is when the developers begin to the program the application. After each stage, the developer may demonstrate the work accomplished to the some of the parties involved to seek feedback and approval. The finished product here is input to the Testing phase.

Testing

Once the application is migrated to a test environment, different types of testing will be performed including integration and system testing. User acceptance testing is the last part of testing and is performed by the end users to ensure the system meets their expectations.  At this point, bugs, errors or general improvements may be identified. Once all parties involved approve of the solution the project can move on to the next and final stage.

Implementation/Deployment

During this phase the project will be installed on live servers and available to the World Wide Web. All of the internal workings such as database connections are flipped from their test to live environments.

Support and Maintenance 

Everything that happens after the application has been deployed: updates, changes, additions and more.

What is the agile development method?

Agile is an iterative methodology which puts emphasis on incremental delivery, team collaboration, planning and communication. Agile development is usually done in stages 1-4 weeks long, these are called ‘Sprints’.

Before a sprint begins the development team will have a meeting and determine what ‘user stories’ to take from the backlog and take through to the sprint.  It is the job of the product owner to ensure that the developers have clearly defined user stories to work – this a common problem for projects using the Agile methodology to fail.

An advantage of the agile method is that working pieces of software are delivered quickly and consistently which is great for the clients. Unlike the waterfall model changes can to the requirements can be easily incorporated at any stage of the process.

A disadvantage of this model is that developers will need more time to understand and implement correctly than the waterfall model and if implemented incorrectly can lead to inefficiencies throughout projects.

What is the waterfall development method?

The waterfall model is a traditional model which is used to create a system with a linear and sequential approach. By looking at the diagram below you can probably tell why it is called the waterfall model – as it moves from phase to phase in a downwards fashion. The output of any stage is used as the input for the next stage in the cycle.

An advantage of the waterfall model is that heavy emphasis is put on requirements and documentation which in turn leads to reassured developers. Also because it is a relatively straight forward approach it is easier to understand especially for the parties involved which aren’t developers.

One of the biggest disadvantages for the waterfall model is that the clients don’t always know up front what is needed within the project or what is even possible with the technology available. Therefore the project is always susceptible to change which could be costly using this approach.

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s