IL Marking Get out your CPU / Memory answers Swap with someone else Mark each question Discuss with each other how you would improve your marks
Objectives Understand the software development lifecycle Be able to explain what commonly occurs at each stage of the software development lifecycle Be able to identify at which stage of the software development lifecycle a given step would occur.
SDLC The development of software is very complex and can take years! The purpose of the SDLC is to break the making of software down into manageable steps, that: produces a piece of software that meets the users’ needs is produced within budget is finished on time
Problem – Mrs Morton is hungry… What are the steps you might take to help me out in my hunger?
Sandwich Development Cycle Feasibility Study Analysis Design Implement Evaluation Maintenance
Software Development Life Cycle It is possible and can it be done? Remember TELOS Technical – does the technology exist to do what we want to do? Economical – does it make financial sense? Will we save money in the long run? Legal – are there any copyright/licencing issues? Operational – Will people be able to use it? Schedule – Can it be made in time?
Sandwich Development Cycle It is possible to make me a sandwich? Do we have the correct equipment? What will the costs be? When does the sandwich need to be made by?
Software Development Life Cycle What will the software need to do? Use interviews / questionnaires / observe people / find existing documentation. Draw diagrams that identify processes and show how data will flow around the system. The end product is the specification and user requirements (explains what the software must do)
Software Development Life Cycle Data Dictionaries A data dictionary is used to capture what each data item looks like (data item name, data type, any formatting needed, any restrictions on range etc). Here is an example of part of a Data Dictionary:
Sandwich Development Cycle Research needs to happen as to what sandwich fillings I like, what fillings are available. Use questionnaires / interviews to help your research.
Software Development Life Cycle The software design will include: A detailed Data Dictionary that defines any data in the system. Input screens/user interface Output screens and reports How the data will be processed: main algorithms as flow charts and pseudocode. How the software will be tested: typically a formal test plan will be drawn up at the design stage to make sure the software is tested objectively.
Sandwich Development Cycle Think about the shape of the sandwich e.g. triangles / squares? Think about the layers of the sandwich e.g. ham then lettuce and tomato on top?
Software Development Life Cycle Implementation includes the following activities: Coding & Testing the software Writing documentation: technical documentation, for whoever has to support and maintain the software later, and a user guide Installing the software for the user (if this software is written for a particular customer, as opposed to commercial off-the-shelf software).
Sandwich Development Cycle Make the sandwich!
Software Development Life Cycle Does it do what it is supposed to do? The software must be evaluated against the original specification/User Requirement document. This is also called Acceptance Testing. If everything works the developer can get paid!
Sandwich Development Cycle Taste the sandwich and tell you what I think about it. Do I like it? Would I like to change it next time? What would I take away or add?
Software Development Life Cycle Corrective maintenance – fix any bugs that come up. Adaptive maintenance – when the software needs to change to meet new requirements. Perfective maintenance – the user might want request performance improvements or changes to how it looks to make it easier to use. Remember CAP!
Sandwich Development Cycle Clean up any crumbs that have dropped. Put any rubbish in the bin.
B A C D E F G H I J Identify problems with existing data Test the new system B A Evaluate the new system Carry out a Feasibility Study C D Maintain the new system Analyse the new system’s requirements E F Implement the new system Build the new system Put these into order. G H Produce Documentation for the users Design the new system I J
A C D E F J G H B I System Life Cycle Answers Identify problems with existing data Evaluate the new system Carry out a Feasibility Study System Life Cycle Answers E Analyse the new system’s requirements Maintain the new system F J G Implement the new system Design the new system Produce Documentation for the users Test the new system Build the new system H B I
Review Can you create a method that will help you to remember the order of the SDLC? Song Limmerick Rhyme What problems might there be with the SDLC?
Challenge: Waterfall Model You have 5 minutes to find out what the waterfall model is. And an advantage / disadvantage. 5 minutes End
Waterfall Model
Waterfall Model Steps completed one at a time Each step should have an output Can go back but then the steps will need redoing User has little impact after analysis until the evaluate stage.
Waterfall Model Advantages Disadvantages Self-contained steps are easy to manage Defined processes and output per step Good model for managing large groups of developers working in parallel Requirement changes mean going back to an earlier stage that had already been completed Changes can be costly in money and time Lack of customer involvement after Analysis means issues are not highlighted until the Evaluation
Challenge: Cyclical Model You have 5 minutes to find out what the cyclical model is. And an advantage / disadvantage. 5 minutes End
Cyclical Model
Cyclical Model Similar to waterfall model Knows that once a version of software has come out, then ideas for a new version are already being made taking it back to the feasibility study.
Cyclical Model Advantages Disadvantages Self-contained steps are easy to manage Defined processes and output per step Good model for managing large groups of developers working in parallel Maintenance, logically starts the next cycle of the process so it maps better on to the real lifecycle of a complex piece of software. Requirement changes mean going back to an earlier stage that had already been completed Changes can be costly in money and time Lack of customer involvement after Analysis means issues are not highlighted until the Evaluation
Challenge: Spiral Model You have 5 minutes to find out what the spiral model is. And an advantage / disadvantage. 5 minutes End
Spiral Model
Spiral Model Developing the software in iterative (repeating) stages After each run through a prototype is made Keeps refining the software Used for larger projects
Spiral Model Advantages Disadvantages Well defined steps in the process make it easy to manage Interim prototypes highlight issues quickly so that the end product is more likely to be what the customer wants Iterative nature of the process means changes can be easily incorporated as feedback is received It takes time to build prototypes and get feedback, so it takes longer to get the product to the customer Longer timescale means it costs more to develop
Match Up! Spiral Model Waterfall Model Cyclical Model Agile Model A – Used for large projects, after going through each stage a prototype is made. B – When you get to maintenance it starts the steps all over again (to develop a new version). C – If you go back to a step you have to follow through the other steps again. D – Where small group of developers work together, great if the requirements might change Spiral Model Waterfall Model Cyclical Model Agile Model
Actual Exam Question – 8 marks!
Way to Remember Each Model? Can you come up with a unique way of remembering the difference between each model?
Remember Waterfall Large groups of developers working at once. (large waterfall – lots of people jumping off it at once!) Each step produces an output (like water coming out). Steps need doing one at a time like the water going down each step in a waterfall one at a time. Problems not highlighted until water gets to the end?
Remember Cyclical Cycle Wheel goes round and a new version is created.
Remember Spiral Prototypes on each layer of the spiral. Time and cost to get down the spiral
Questions to Answer in Book What are the 3 stages of the maintenance stage in the SDLC? Corrective – fix bugs Adaptive – requirements change Perfective – look better / work better What happens in the feasibility study? TELOS (Technology? Economical? Legal? Operational? Schedule?) How do software developers carry out the analysis stage? Questionnaires Interview Observe What happens in the implementation stage? Coding Testing Write documentation Installation PC
Questions to Answer in Book What is the waterfall model? Name 3 advantages and disadvantages of the waterfall model? What is the spiral model? Name 3 advantages and disadvantages of the spiral model? PC
Further resources Revision booklet https://www.youtube.com/watch?v=bG-UzWtB6Ac
Review Can you simplify each model to 10 words? Now 5?