Processes and Life- Cycles Kristian Sandahl

advertisement
Processes and LifeCycles
Kristian Sandahl
Maintenance
Validate Requirements, Verify Specification
Acceptance Test
Requirements
(Release testing)
Verify System Design
System Design
System Testing
(Architecture,
High-level Design)
(Integration testing of modules)
Module Design
(Program Design,
Detailed Design)
Verify Module Design
Module Testing
(Integration testing of units)
Verify Implementation
Implementation
of Units (classes, procedures,
functions)
Unit testing
Project Management, Software Quality Assurance (SQA), Supporting Tools, Education
2
Project Managment/Kristian Sandahl
SEPTEMBER 17, 2015
Remember the necessary parts of a project?
3
Processes/Kristian Sandahl
SEPTEMBER 17, 2015
Processes are reoccurring
• Ordered set of activities
• May contain sub-processes
• Goal of each activity
• Each activity has entry/exit criteria and input/output
• Constraints
4
SEPTEMBER 17, 2015
Processes/Kristian Sandahl
Remember our life-cycle model?...
Abstraction
Carol
the customer
Diana
the developer
Time
5
SEPTEMBER 17, 2015
Processes/Kristian Sandahl
Maintenance
… also known as the V-model
Validate Requirements, Verify Specification
Requirements
6
Acceptance Test
(Release testing)
Verify System Design
System Design
(Architecture,
High-level Design)
System Testing
(Integration testing of modules)
Module Design
Verify Module Design
Module Testing
(Program Design,
Detailed Design)
(Integration testing of units)
Verify Implementation
Implementation
of Units (classes, procedures,
functions)
Time
Unit testing
SEPTEMBER 17, 2015
Processes/Kristian Sandahl
7
Maintenance
Now, remove the abstraction level …
Validate Requirements, Verify Specification
Requirements
Acceptance Test
(Release testing)
Verify System Design
System Design
(Architecture,
High-level Design)
System Testing
(Integration testing of modules)
Module Design
Verify Module Design
Module Testing
(Program Design,
Detailed Design)
(Integration testing of units)
Verify Implementation
Implementation
of Units (classes, procedures,
functions)
Time
Unit testing
Processes/Kristian Sandahl
SEPTEMBER 17, 2015
… and we got the waterfall model!
 One of the first lifecycle models
(Royce, 1970)
 The waterfall
development model
originates in the
manufacturing and
construction
industries
 Very common, very
criticized
8
The classical waterfall model
Requirements
Finish each phase before continue to next.
System Design
Module Design
Implementation
Unit
Testing
Module Testing
Milestone and deliverable at each
step. (Artifacts such as Design
document, Req. Specification. etc.).
Time
System Testing
Acceptance Test
Maintenance
Processes/Kristian Sandahl
SEPTEMBER 17, 2015
Problems with the waterfall model
• Software requirements change, hard to sign-off on a SRS.
• Early commitment. Changes at the end, large impact.
• Feedback is needed to understand a phase. E.g.
implementation is needed to understand some design.
• Difficult to estimate time and cost for the phases.
• Handling risks is not an explicit part of the model. Pushes
the risks forward.
• Software "is not" developed in such a way. It evolves when
problems are more understood. Little room for problem
solving.
10
Processes/Kristian Sandahl
SEPTEMBER 17, 2015
Advantages with the waterfall model
• Simple, manageable and easy to understand
• Fits to common project management practices
(milestones, deliverables etc.)
• Can be suitable for short projects (some weeks)
• Can be used at a large system level (several years)
• Can be suitable for "stable" projects, where requirements
do not change
• Focus on documents, saves knowledge which can be
reused by other people.
• Can be suitable for fixed-price contracts
11
SEPTEMBER 17, 2015
Processes/Kristian Sandahl
12
Do it twice (Royce, 1970)
Requirements
System Design
Second round, do it
right.
Program Design
Implementation
First round, a
prototype
Unit
Testing
Module Testing
System Testing
Input to the
phases in the
second round
Acceptance Test
Maintenance
SEPTEMBER 17, 2015
Processes/Kristian Sandahl
Iterative
and
methods
Incremental
13
SEPTEMBER 17, 2015
Processes/Kristian Sandahl
14
Iterative development
When should the releases take place?
What should be included in the
release?
Prioritized functionality - Do the most
important parts first.
Time-boxing - The time period is fixed
for each iteration.
Customer Feedback
Customer Feedback
R1
R2
design
implementation
Iteration 1
Time
Iteration 2
3
test Iteration
deployment
Final Release!
SEPTEMBER 17, 2015
Processes/Kristian Sandahl
Dependent project parameters revisited
Calendar time and
resources are
fixed
Calendar
Time
Resources
Project
Features
Select the most
important
functions
Select quality.
E.g. how general
should we
be?
Quality
15
SEPTEMBER 17, 2015
Processes/Kristian Sandahl
Prioritization of requirements
Customer
Value
High
Sweet Spot
Low
Avoid
Low
High
Development Effort
16
Processes/Kristian Sandahl
SEPTEMBER 17, 2015
17
Problems with iterative development

Problem with current business contracts, especially
fixed-price contracts.

With short iterations it can be hard to map customer
requirements to iterations.

Overhead added

Requirements selection problem
Processes/Kristian Sandahl
SEPTEMBER 17, 2015
Advantages with iterative development
• Misunderstandings and inconsistency are made clear
early (e.g. between requirement, design, and
implementation)
• Encourage to use feedback -> elicit the real requirements
• Forced to focus on the most critical issues
• Continuous testing offers project assessment
• Workload is spread out over time (especially test)
• The team can get "lesson learned" and continuously
improve the process
• Stakeholders get concrete evidence of progress
18
SEPTEMBER 17, 2015
Processes/Kristian Sandahl
19
Processes, models, methodologies…
Process Models
Waterfall
model
"what" at a high level
of abstaction
Prototype model
V- model
Spiral model
Which is the "best" approach?
agile
Extreme Programming (XP)
Rational Unified
Process (RUP)
Scrum
Methodologies
and defined
Processes
Kanban
"what" and to a certain
level "how"
Processes/Kristian Sandahl
SEPTEMBER 17, 2015
The Rational Unified Process (RUP)
• The Rational Unified Process (RUP) is an iterative
software development process framework
• Defined in 1997 by Grady Booch, Ivar Jacobson and
James Rumbaugh
• Recognized to be particularly applicable to large
projects with large teams
• Open/UP is a downsized method with agile
components
20
SEPTEMBER 17, 2015
Processes/Kristian Sandahl
RUP – Disciplines and Phases
Inception
Business Modeling
Core
Technical
Disciplines
Requirements
Analysis and Design
Implementation
Test
Deployment
Change & Config. Mgm.
Core
Supporting
Project Mgm.
Disciplines
Environment.
Elaboration Construction
Transition
21
www.liu.se
Download