A Comparison of Tee Shirt, Functional, and SLOC Sizing on a Current Federal Agile Software Development Programs
\Presentation For
Boehm CSSE and Practical Software and systems Measurement Group
by
Bob Hunt, 703-201-0651, bhunt@n-s-i.us
1
Outline
ISSUES
2
What Is Agile
3
Agile is a Mindset*
* From David DeWitt of Galorath
4
Practical Applications of Agile�Full or Hybrid Agile (Water-Scrum-Fall) Development
Agile
Testing and Sustainment (sometimes in the Sprint sometimes a separate activity)
Two classes of Federal programs
5
Agile Software Development Metrics*
*Jack Flynn, 16 Amazing Agile Statistics (2023),
6
Issues with SLOC
7
Fundamentals of Software Estimation
(Today the exponent varies in commercial models from about 0.9 to 1.2).
8
Preliminary COCOMO III
Results Summary
Sep 14, 2023
Copyright 2023 Software Metrics Inc.
| Models | Adj R2 |
1 | PM’ = 0.185 + 0.09*FP + 0.015*SP | 0.57 |
2 | PM’ = 0 + 0.094*FP + 0.015*SP | 0.68 |
3 | PM’ = 0.056 * (FP + SP)0.81 | 0.52 |
4 | PM’ = 0.075 * (FP + 0.16*SP)1.02 | 0.66 |
9
Model Estimation Summary
10
Size Continues to be a Driver�in Software effort estimation
SLOC
Functional Size
Story Points*
Use Cases
User Stories
T-Shirt Sizes
BUT
Environmental, Productivity, Complexity, and other effort drivers are critical.
11
Sizing Is Still A Key Driver
Approaches to Software Sizing
.
12
Physical Sizing
13
Relative Effort Size
14
A Structured Approach to� Tee Shirt Sizing
15
Functional Size
16
Military Requirements
“Military software requirements are usually the most precise and exacting of any class of software. This is due to the long-standing requirement of traceability…. Although these military requirements documents are large and sometimes ambiguous, the specificity and completeness of the military software requirements makes it easier to derive function point totals than for any other kind of software application.”
17
Automated FP Counters
*Adjustment made by applying the average FP count to each zero-count requirement.�
18
Cost to Calculate Function Points
19
Size Comparison
SIZING COMPARISON | | | |
| | | |
Model | Estimated Total Hours | Delta from Tee Shirt Hours | |
Tee Shirt Hours (Developer's Estimate) | 1,879,136 | 0% | from software development team |
SEER total Hours (full LCCE)* | 2,363,461 | 26% | full LCCCE |
Seer Hours less Development** | 1,844,010 | -2% | comparison to developer’s logic |
Tee Shirt Hours (Developer's Estimate) | 1,879,136 | 0% | |
NEMO Hours | 1,255,500 | -33% | NEMO not full LCCE need to reconcile |
COCOMO II SLOC Web Tool | 1,410,758 | -25% | using 152 hours per person month |
COCOMO II FP Web Tool | 1,959,158 | 4% | using 152 hours per person month |
COCOMO III FP Model 4 | 358,211 | -81% | PM=0.075*((FP+0.16*SP))^1.02 |
COCOMO III FP Model 2 | 366,099 | -81% | PM=0+0.094*FP+0.015SP |
20
Software Reuse
21
Proposed Reuse Model for Functional Size
COCOMO II Reuse Model:�For generated code:�PM = (ASLOC * AT/100)/ATPROD�ASLOC is the number of lines of generated code�AT is the percentage of code automatically generated.�ATPROD is the productivity of engineers in integrating this code.
The Functional Reuse model would replace APROD is replaced with ATFUN – the functionality of engineers in integrating the function
22
Summary
Summary
23
Recommendations
Recommendations
Where: A = a “complexity” modifier, FP = number of function points, b = a derived exponent, C = a “productivity” modifier
24
BACKUP
25
SEER by Galorath
Model is based on the Jensen SEER/Sage equation
SE = CTE * (K)1/2 * td
Where: SE = Product Size in ESLOC
CTE = Effective Technology Constant (based on cost driver inputs)
K = total software life-cycle effort in person-years
td= development time in years
Software development effort = 0.3945 * K
SEER Effort Formula: K = (SE / (CTE)(td))2
SEER Schedule Formula: td = D-0.2 (SE / CTE)0.4
Where:
D = Staffing Complexity Constant (i.e., How hard is it to get the staff required to code this type of software?). Note that the default value for D = 15
26
Unison Cost Engineering�TruePlanning for Software
TruePlanning® CER:
𝐸𝑓𝑓𝑜𝑟𝑡 (𝐻𝑜𝑢𝑟𝑠) = 𝐴 ∗ 𝑆𝑖𝑧𝑒 ^𝐵
Where:
A = influence of the drivers in the model (Functional Complexity, Technology, People, Reuse, Organizational Productivity, etc. - 33 numerical cost drivers + 10 nominal cost drivers)
Size = software size in specified Size Units (SLOC, IFPUG FP, COSMIC FP, etc.)
B = economy or diseconomy of scale as a function of Organizational Productivity (B ranges between 1.077 and 1.117)
Example: Military Avionics in SLOC with default values: 𝐸𝑓𝑓𝑜𝑟𝑡 = 0.252 ∗ 𝑆𝑖𝑧𝑒 1.107
𝑆𝑐ℎ𝑒𝑑𝑢𝑙𝑒 (𝑀𝑜𝑛𝑡ℎ𝑠) = 𝐶 ∗ 𝐸𝑓𝑓𝑜𝑟𝑡 ^0.33
Where:
C = efficiency/inefficiencies in developing the software based on model inputs (Functional Complexity, Technology, People, Organizational Productivity, etc., 33 numerical drivers and 19 nominal drivers – C ranges from 0.41 to 0.9)
27
Simple Function Points�SiFP
28
Simple Function Point Analysis�(Validated by a DHS Study referenced below)
“Lets Go Agile: Data-Driven Agile Software Costs and Schedule Models for DHS Projects”, ICEAA 2022, Wilson Rosa, Sara Jardine, Kimberly Roye, Kyle Eaton, and Chad Lucas
29
Functional Size Issues
30
Backfiring FP to SLOC
* Applied Software Measurement 3rd Edition,, Capers Jones, page 80
| QSM SLOC/FP Data | |||
Language | Avg | Median | Low | High |
ABAP (SAP) * | 28 | 18 | 16 | 60 |
ASP* | 51 | 54 | 15 | 69 |
Assembler * | 119 | 98 | 25 | 320 |
Brio + | 14 | 14 | 13 | 16 |
C * | 97 | 99 | 39 | 333 |
C++ * | 50 | 53 | 25 | 80 |
C# * | 54 | 59 | 29 | 70 |
COBOL * | 61 | 55 | 23 | 297 |
| | | | |
| | | | |
31