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 Colin Higgins 1 Phases of the SDLC The Systems Development Life Cycle is a gradual refinement process traditionally consisting of 4 phases: • • • • Planning Analysis Design Implementation Why? What? When? Where? Who? How? Delivery 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 Colin Higgins 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 Colin Higgins 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 Colin Higgins 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 Colin Higgins 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 Colin Higgins 6 Methodologies for SDLC •Structured − − − − − Application Development Focuses on quick development Phased Development Prototyping Throwaway Prototyping •Agile − Formal step-by-step approach Waterfall development Parallel Development •Rapid − Design Development Eliminates modelling and documentation overhead 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 Colin Higgins 7 Waterfall Development Sequential process Diagram from (Dennis et al. 2006) Pros • System requirements are identified well in advance to programming • Minimises changes to requirements as project progresses Cons • Design must be specified on paper before programming begins • Long time between system proposal and delivery of new system • Significant rework if changes needed University of Nottingham School of Computer Science Large Scale Systems Design Dr Colin Higgins 8 Parallel Development Division into subprojects Diagram from (Dennis et al. 2006) Pros • Tries to reduce schedule time • Less chance of rework High level design More specific designs Cons • Uses paper documents • It is difficult to integrate subprojects University of Nottingham School of Computer Science Large Scale Systems Design Dr Colin Higgins 9 Phased Development Versions-based process Diagram from (Dennis et al. 2006) Pros • First system delivered quickly • User can identify additional needs for later versions Cons •The user works with an intentionally incomplete system University of Nottingham School of Computer Science Large Scale Systems Design Dr Colin Higgins 10 Prototyping Diagram from (Dennis et al. 2006) Performs phases concurrently and repeatedly Pros • Prototype delivered quickly • User can identify changes in needs and requirements can be refined Prototype (not a 1st version) Cons • Risk of superficial analysis • Poor initial design decisions University of Nottingham School of Computer Science User tries a finished system Large Scale Systems Design Dr Colin Higgins 11 Throwaway prototyping Diagram from (Dennis et al. 2006) Uses disposable design prototypes Pros • Helps to minimise risks • Understand important issues before proper design High level design Cons • Needs more time than prototyping Not fully working system University of Nottingham School of Computer Science Large Scale Systems Design Dr Colin Higgins 12 Extreme Programming System grows iteratively Diagram from (Dennis et al. 2006) Pros • Results delivered fast • Good for projects with undefined and changing requirements Cons • Requires considerable input from users • Requires great discipline University of Nottingham School of Computer Science Large Scale Systems Design Dr Colin Higgins 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 Colin Higgins 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 Colin Higgins 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 Colin Higgins 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 Colin Higgins 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 Colin Higgins 18