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
Cockburn’s Use Case Expansion Levels (Cockburn, Writing Effective Use Cases, 2001) 3/17/2009 ©USC-CSSE
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
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 SLOC* 1,000K – 1,500K Lava *(70 – 100 SLOC/Detailed Operation) (Hopkins & Jenkins, Eating the IT Elephant, 2008) 3/17/2009 ©USC-CSSE
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
Empirical Study 20 projects Architected Agile 2004 - 2006 Custom-development Analyzed Requirements elaboration Effort elaboration Documentation size elaboration 3/17/2009 ©USC-CSSE
Mapping Cockburn Metaphor* Project Data Document(s) Cloud Organizational goals Operational Concept Description Kite Top-level services Sea Level Use cases System and Software Requirements Definition System and Software Architecture Description Fish Main steps Lava SLOC Source code *Clam level skipped. 3/17/2009 ©USC-CSSE
Requirements Elaboration 1 2 Expansion from Cloud to Kite Expansion from Kite to Sea Level 3 4 Expansion from Sea Level to Fish Expansion from Fish to Lava 3/17/2009 ©USC-CSSE
Effort & Documentation Size Elaboration Expansion of Project Effort Expansion of Document Size 3/17/2009 ©USC-CSSE
Expansion Factors Summary 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
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