Large Scale Systems Design G52LSS Lecture 2 – Large Systems Development •Phases of the SDLC •Methodologies for SDLC •Selecting Methodologies Learning outcomes: describe phases, steps and deliverables of the SDLC; understand the different structured and non-structured SDLC methodologies; appreciate advantages and disadvantages of the different SDLC methodologies. University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 1 Phases of the SDLC The Systems Development Life Cycle is a gradual refinement process traditionally consisting of 4 phases: • • • • Planning Analysis Design Implementation Each phase is composed of steps that rely on techniques Each step is meant to produce a specific deliverable University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 2 Planning Phase Opportunity Identification System Request Feasibility Analysis (technical, economic, organisational) Project Management Project Workplan University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 3 Analysis Phase Develop Analysis Strategy Define Requirements Use Cases, Process Model, Data Model Systems Proposal University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 4 Design Phase Design Selection Architecture Design Interface Design Data Storage Design Program Design System Specification University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 5 Implementation System Construction Installation Process Support Plan Functional, Efficient and Robust System University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 6 Methodologies for SDLC •Structured − − Waterfall development Parallel Development •Rapid − − − − Application Development Phased Development Prototyping Throwaway Prototyping •Agile − Design Development Extreme programming Other agile methodologies include: Crystal, Scrum, Adaptive Software Development, Dynamic Systems Development, Feature Driven Development. University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 7 Waterfall Development Sequential process University of Nottingham School of Computer Science Diagram from (Dennis et al. 2006) Large Scale Systems Design Dr Dario Landa-Silva 8 Parallel Development Division into subprojects Diagram from (Dennis et al. 2006) High level design More specific designs University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 9 Phased Development Versions-based process University of Nottingham School of Computer Science Diagram from (Dennis et al. 2006) Large Scale Systems Design Dr Dario Landa-Silva 10 Prototyping Diagram from (Dennis et al. 2006) Performs phases concurrently and repeatedly Co n cu r re nt ly Prototype (not a 1st version) User tries a finished system University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 11 Throwaway prototyping Diagram from (Dennis et al. 2006) Uses disposable design prototypes Co n cu r re nt ly High level design Not fully working system University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 12 Extreme Programming System grows iteratively University of Nottingham School of Computer Science Diagram from (Dennis et al. 2006) Large Scale Systems Design Dr Dario Landa-Silva 13 Exercise 2.1 Suppose you are a project manager using the waterfall development methodology on a large and complex project. Your manager has just read a recent article in a magazine that advocates replacing the waterfall methodology with prototyping and comes to your office requesting you to switch approaches. What would you say? Exercise taken from (Dennis et al. 2006) Justify the use of waterfall methodology for current project considering the strengths of that approach. Consider if prototyping would really be better for this scenario, so questions like the following need to be asked: •users are available? •risk of poor analysis and design? •time available for development? University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 14 Selecting Methodologies •Difficult because no methodology is always the best •Standards and practices vary between organisations •Important criteria are the following Ability to develop systems that… WF PA PH PR TP XP Unclear requirements P P G E E E Unfamiliar technology P P G P E P Complex G G G P E P Reliable G G G P E G Short schedule P G E E G E Schedule visibility P P E E G G University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 15 The above methodologies can also be combined to produce hybrid SDLC methodologies that would be more adequate for certain project development scenarios. Exercise 2.2 Suppose you were to combine throwaway prototyping with parallel development. What diagram would illustrate the hybrid methodology? What would be the pros and cons of the hybrid methodology? Exercise taken from (Dennis et al. 2006) University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 16 Exercise 2.2 (cont.) Subproject 1 Planning Analysis Analysis Design Implementation Design Design Prototype Subproject 2 Design Analysis Design Implementation Design Prototype Implementation Design Implementation Implementation System Hybrid Methodology – Parallel and Throwaway Prototyping University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 17 Additional Reading Chapter 1 of (Dennis, Wixom and Roth, 2006) Chapter 1 of (Kendall and Kendall, 2005) University of Nottingham School of Computer Science Large Scale Systems Design Dr Dario Landa-Silva 18