Determining Requirements-to-Code Expansion Factors – The Magical Number Seven? Annual Research Review

advertisement
University of Southern California
Center for Systems and Software Engineering
Determining Requirements-to-Code
Expansion Factors
– The Magical Number Seven?
Ali Afzal Malik, Supannika Koolmanojwong, Barry Boehm
USC-CSSE
{alimalik, koolmano, boehm} @usc.edu
Annual Research Review
March 17, 2009
3/17/2009
©USC-CSSE
1
University of Southern California
Center for Systems and Software Engineering
Cockburn’s Use Case Expansion Levels
(Cockburn, Writing Effective Use Cases, 2001)
3/17/2009
©USC-CSSE
2
University of Southern California
Center for Systems and Software Engineering
What are the Level-to-Level Expansion
Factors?
•
•
•
•
•
Cloud to Kite
Kite to Sea Level
Sea Level to Fish
Fish to Clam
Clam to Lava
3/17/2009
©USC-CSSE
3
University of Southern California
Center for Systems and Software Engineering
IBM-UK Expansion Factor Experience
Business Objectives
5
Cloud
Business Events/Subsystems
35
Kite
Use Cases/Components
250
Sea level
Main Steps/Main Operations
2000
Fish
Alt. Steps/Detailed Operations
15,000
Clam
1,000K – 1,500K
Lava
SLOC*
*(70 – 100 SLOC/Detailed Operation)
(Hopkins & Jenkins, Eating the IT Elephant, 2008)
3/17/2009
©USC-CSSE
4
University of Southern California
Center for Systems and Software Engineering
Testing Applicability to Small E-Services
Projects
• Graduate level
• 12 weeks in Fall; 12 weeks in Spring
• Team size: 6 on-campus, 2 off-campus
students
• Real Clients: Neighborhoods and USC
departments
3/17/2009
©USC-CSSE
5
University of Southern California
Center for Systems and Software Engineering
Empirical Study
•
•
•
•
•
20 projects
Architected Agile
2004 - 2006
Custom-development
Analyzed
– Requirements elaboration
– Effort elaboration
– Documentation size elaboration
3/17/2009
©USC-CSSE
6
University of Southern California
Center for Systems and Software Engineering
Mapping
Cockburn
Metaphor*
Project Data
Document(s)
Cloud
Organizational goals Operational Concept Description
Kite
Top-level services
Operational Concept Description
Sea Level
Use cases
System and Software Requirements Definition
System and Software Architecture Description
Fish
Main steps
System and Software Architecture Description
Lava
SLOC
Source code
*Clam level skipped.
3/17/2009
©USC-CSSE
7
University of Southern California
Center for Systems and Software Engineering
14
Top-Level Services (Kite)
1
2
y = 1.5935x
R2 = -0.0917
12
10
8
6
4
2
Use Cases (Sea Level)
Requirements Elaboration
0
0
1
2
3
4
5
6
7
8
20
18
16
14
12
10
8
6
4
2
0
y = 1.1039x
R2 = -0.4221
0
2
4
Organization Goals (Cloud)
Expansion from Cloud to Kite
12
14
6000
y = 3.7535x
R2 = 0.7397
80
y = 74.268x
R2 = 0.2244
7000
SLOC (Lava)
Main Steps (Fish)
10
8000
4
100
60
40
5000
4000
3000
2000
20
1000
0
0
0
5
10
15
20
0
Use Cases (Sea Level)
20
40
60
80
100
120
Main Steps (Fish)
Expansion from Sea Level to Fish
3/17/2009
8
Expansion from Kite to Sea Level
120
3
6
Top-Level Services (Kite)
Expansion from Fish to Lava
©USC-CSSE
8
University of Southern California
Center for Systems and Software Engineering
Effort & Documentation Size Elaboration
Expansion of Project Effort
3/17/2009
Expansion of Document Size
©USC-CSSE
9
University of Southern California
Center for Systems and Software Engineering
Expansion Factors Summary
Expansion
Stage
Elaboration Factors
Number of
Requirements
Relative
Effort
Relative Documentation
Size
Cloud to Kite
1.59
2.30
1.94
Kite to Sea Level
1.10
14.06
7.82
Sea Level to Fish
3.75
1.04
2.60
Fish to Lava
74.27
3.89
6.13
3/17/2009
©USC-CSSE
10
University of Southern California
Center for Systems and Software Engineering
Conclusions
• Magical number seven not a good fit to
architected agile projects
– Fewer actual expansion levels
• Some confounding factors
– Student teams motivated to work out details
early
– Wide variation in OTS solution components
3/17/2009
©USC-CSSE
11
Download