How can SDLC help?

advertisement
CS3215: Software Engineering Project
CS3215, LN set #3: SDLC for the project
SDLC: Software Development Lifecycle
•
j planning
p
g and executingg
SDLC is a framework for pproject
– who is doing what, when and how?
– for managers: to tell how things should be done, define project tasks
– for developers: to follow the plan, provide feedback to managers
•
SDLC addresses people, product, process, technology
– organization of the project team, communication channels
– project phases, activities, milestones
– software system architecture
– methods and tools to be used
•
SDLC helps us manage project complexities
CS3215 Set#3 SDLC
1
How can SDLC help?
• Benefit from 50 years of project experiences
– learn from project management experiences that work
– learn from development strategies
– avoid common mistakes
• Standardize routine tasks
– use creativity to solve novel problems rather than to reinvent the wheel
• Reduce risk of failure, increase project predictability
– 25% of large projects fails
– 20% implemented on time but 70% experience 100% cost overruns
– 50% of projects run over planned schedule and budget
• Types of SDLC:
– waterfall, spiral, incremental, RAD (rapid application development)
CS3215 Set#3 SDLC
2
–1
Waterfall SDLC with feedback loops
system
engineering
user needs
software
requirements
analysis
business
analysis
changed user
needs
design
specification
coding
testing
maintenance
• Problems
P bl
with
ith th
the waterfall
t f ll SDLC
SDLC:
–
–
–
–
fuzzy and changing requirements
late detection of errors
easy to say, difficult to do
high risk, high failure rate
CS3215 Set#3 SDLC
3
Iterative, incremental SDLC
mini-system S1
mini-system S2
complete product
requirements:
R1
R2
R2
design:
D1
D2
D2
code:
C1
C2
C2
time
iteration 1
iteration 2
iteration n
• System is developed in pieces rather than in one big-bang
• Project is divided into mini-projects (iterations)
• Each iterations delivers fully tested and integrated mini-system,
implementing a subset of the complete product
CS3215 Set#3 SDLC
4
–2
Why the incremental SDLC
works better?
• You can gradually learn about the problem and program
solution
– you can better deal with complex problems - decomposition
– you can identify major problems early and work on them
– in each iteration you check if all basic project elements are in sync
• Early validation of requirements
• Early validation of design decisions
• Incremental development encourages “design for change”
• Incremental SDLC effectively reduces project risks related
to:
– requirements, technical issues, personnel and politics.
CS3215 Set#3 SDLC
5
Phases in incremental SDLC
• You must perceive a problem as a whole before you can plan
development iterations
Analysis
Incremental
development
Architectural
design
1
•
•
•
•
2
3
Transition
4 ...
Analysis: understand the problem, scope the project
Architectural design:
g create a blueprint
p
for a system
y
Incremental development through iterations
Transition:
– beta-testing, performance tuning, user training, packaging the product
CS3215 Set#3 SDLC
6
–3
An SDLC for SPA project
• First, we must understand the problem and solution
• Analysis: understand the problem
– play with models on paper
– draw AST and CFG for sample programs
– compute other design abstractions to be derived from
sources
– write program queries and evaluate queries by hand
• Architectural design: understand the solution
– identify
id if major
j SPA components andd their
h i interactions
i
i
– sketch design abstractions in PKB as ADTs:
• model associations among ADTs
• define interface operations
– look into a strategy for evaluating program queries
CS3215 Set#3 SDLC
7
A sketch of the SPA architecture
SPA consists of four subsystems:
• SPA front-end
• query processing
• PKB
• user interface
SPA
front-end
program entry
user interface
query result viewing
user interface
query entry
user interface
query result
formattedz
query result
projector
query in PQL
design extractor
parser
query result
raw format
AST
AST
design abstractions
query
evaluator
query tree
query
pre-processor
design abstractions
CS3215 Set#3 SDLC
Program
Knowledge Base
PKB
tables describing program design
model of SIMPLE:
design entities, attributes,
relationships
8
–4
Team structure
Group-PKB
– design of the SPA front-end to parse a SIMPLE program and build an
AST
– design of the algorithms to derive procedure call, control flow and
other program design information, as described in the program design
model
– design of the data structures to store the program design abstractions in
the PKB
• Group-PQL
– validating a query
– design a query evaluation mechanism
• Both groups:
– design the PKB API
– design algorithms to compute program design abstractions on demand,
such as Calls*, Next*, Affects and Affects*.
CS3215 Set#3 SDLC
9
Strategy 1: Depth-first iterations
• take one function at a time
• develop solution for that problem in a given iteration
f
u
n
c
t
i
o
n
f
u
n
c
t
i
o
n
f
u
n
c
t
i
o
n
f
u
n
c
t
i
o
n
1
2
3
4
1
CS3215 Set#3 SDLC
2
3
4
release of the product
10
–5
Example
1. develop a parser for SIMPLE
2. implement ADT for AST, CFG, etc.
3. generate an AST
4. generate CFG
5 develop parser for program queries
5.
6. develop query evaluator
CS3215 Set#3 SDLC
11
Strategy 2: Breadth-first iterations
• in a given iteration, work on a set of related functions, but in
a simplified form
• select iterations so that the whole team works closely together
re le a se o f th e p ro d u ct
4
3
2
f
u
n
c
t
i
o
n
f
u
n
c
t
i
o
n
f
u
n
c
t
i
o
n
f
u
n
c
t
i
o
n
1
2
3
4
1
ite ra tio n s
CS3215 Set#3 SDLC
12
–6
Example
First iteration:
• select a small subset of SIMPLE and PQL
Group-PKB:
p
– develop a parser for that subset
– generate simplified AST, CFG
Group-PQL:
– work on queries in a fixed, simple format only
– consider queries that mostly require program design information
computed by Group-PKB
Subsequent iteration:
2. extend the subset of SIMPLE
3. refine PKB API
4. develop query evaluator for more query formats
CS3215 Set#3 SDLC
13
Which strategy is better for the
SPA project?
Evaluate strategies, plan and justify the choice of your
development strategy in assignment #2
--- The end ---
CS3215 Set#3 SDLC
14
–7
Download