Large Systems Development - School of Computer Science

advertisement
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
Download