Transcript waterfall spiral
Software Development Life Cycle
Lesson Objectives
To understand the software development life cycle To be able to explain what commonly occurs at each stage of the software development life cycle To be able to identify at which stage of the software development life cycle a given step would occur To understand that there are several life cycle models that can be used (e.g. cyclical, waterfall, spiral) To be able to discuss the advantages and disadvantages of these lifecycle models
How is software created?
First comes the idea….everything has to start somewhere… Requirements / Analysis Testing Design Implementation
Requirements/Analysis
This is the first and most important step. Questions must be answered such as: Why is the software system required?
Who is the software system for?
What must the software system do?
What are the constraints? (budget/timescale/particular needs)
Design
Now we know what the system is for, we must set about designing it. The aim being to achieve everything that we established in the previous phase. Again, more questions will need to be addressed: What programming language, operating system or hardware requirements are there?
What data is required?
What file structures are required?
What user interface is there?
….and many more
Implementation
So now we actually create the software: Each step of the design is created using the appropriate technical capability
Testing
Obviously – need to test it works!
Different Types of Approach
Spiral / Cyclical Waterfall / Sequential Waterfall and spiral model are different types software development methodologies. These methodologies assist the developer in building a system efficiently. Each of the methodologies has a set of rules or discipline that needs to be followed in order to develop a system. Both of the methodologies posses their own pros and cons.
Waterfall Model
The waterfall model consists of the usual main phases, namely: Requirements/Analysis Design Implementation Testing Each phase has its own set of tasks that should be accomplished by the developer. The developer must complete each stage before moving to the next stage in a
sequential
manner. Due to this, the waterfall model is sometimes also referred to as
sequential
software development process. The model approach is from top to bottom as how a waterfall would flow down.
Analysis Design Implementation Testing
Spiral Model
Analysis / Requirements Testing Design Implementation (next iteration planned here)
Spiral Model
The spiral model again contains four main stages. However the approach is more cyclical as seen in the diagram on the previous slide: It is an output driven methodology where each circle produces a
prototype
better than the previous one. In the spiral model, it is not necessary for the developer to complete each stage before moving to another stage. The developer can finish a short portion in a stage and shift to next stage and then come back again on next round to finish remaining task in the stages. It is a continuous process, in which each time the developed application gets more complex. At the same time the process also gets bigger and bigger.
Waterfall or Spiral?
WATERFALL
Must complete a stage before moving onto next No feedback from client until software delivery Document driven – well planned in advance (could result in less errors at later stages but time consuming at initial stages) Sequential
SPIRAL
Can work on any stage at any time Constant interaction with client feedback and prototype development – More ‘build it’ and see approach – less advance planning (could result in problems – but more time to fix due to less planning at start) Cyclical
Let’s Play A Game!
Divide into teams (5 or 6 per team) Decide on a team manager Team manager to collect challenge resources and info from client (me!) You have 50 minutes to complete the challenge