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