UNIFIED CODE COUNT (UCC) ARR 2015
USC CSSE Anandi Hira, Hnanadi
Mardah, Shreya Sharma
What is UCC?
• Counts lines of code in so;ware source files • Key coun?ng capabili?es • Physical/Logical SLOC • Blank Lines, Comments • Compiler Direc?ves, Executable Instruc?ons • Keywords • Cycloma?c Complexity • Differencing • Duplicates • Custom extensions
Opera?onal Concepts
USC DR Students
• 40-‐50 Graduate students • 5-‐10 hours/week • 5 – 8 projects per semester
• Added Func?onality • Addi?onal Metrics • New Language Support • Maintenance • Integra?on • Process Improvement
The Aerospace Corpora@on
• Evaluate code for buffer overflows and vulnerabili?es
• Work closely with client to pass security filters, making required changes
• Independent Verifica?on & Valida?on
UCC Development and Deliverables
Development Phases
• Research and Documenta?on
• Implementa?on and Tes?ng • Extensive Tes?ng and
Documenta?on • Integra?on and System
Tes?ng
Semester Deliverables
• Timesheets (hours) • Project Plan • Weekly Status Reports • Source Code • Test Cases • Test Code • Final Report
UCC Data Analysis Process Gather, Organize
Deliverables Determine Collectable Factors
Formulate Dataset
Analyze
Iden@fy Groups
COCOMO® II Comparison y"="1559x0.91"R²"="0.73674"
y"="446.88x1.1"
y"="874.86x1.1098"
0"
200"
400"
600"
800"
1000"
1200"
1400"
1600"
1800"
2000"
0" 0.2" 0.4" 0.6" 0.8" 1" 1.2" 1.4"
Effort&(hrs)&
KSLOC&
Project""Total"Effort""(hours)"
COCOMO"Effort"(hrs)"
COCOMO"Effort"(hrs)"with"Parameter"Adjustments"
Power"(Project""Total"Effort""(hours))"
Power"(COCOMO"Effort"(hrs))"
Power"(COCOMO"Effort"(hrs)"with"Parameter"Adjustments)"
• FLEX = Low • Conformance with pre-‐established requirements
• ACAP = Low • Low-‐level understanding of high-‐level requirements/effects
• PCON = Very Low • PLEX = Low • TOOL = Very Low
• Edit, Code, Debug
Documenta?on Effort
y"="67.918x"+"66.467"R²"="0.93545"
0"
200"
400"
600"
800"
1000"
1200"
0" 2" 4" 6" 8" 10" 12" 14" 16"
Project(T
otal(Effo
rt((h
rs)(
#(of(Project(Report(Pages(
Project(Total(Effort((
Project""Total"Effort""(hours)"
Linear"(Project""Total"Effort""(hours))"
Linear"(Project""Total"Effort""(hours))"
Documenta?on Linear Regression
Effort = 372.602 + 23.699 * # of Project Report Pages Source Value T Pr > |t| Intercept 372.602 4.139 0.001
Project Report 23.699 2.007 0.066
0.000#
200.000#
400.000#
600.000#
800.000#
1000.000#
1200.000#
0.000# 5.000# 10.000# 15.000# 20.000# 25.000#
Project(T
otal(Effo
rt((h
rs)(
#(of(Project(Report(Pages(
Project##Total#Effort##(hours)#
Predicted#Linear#Regression#
IDPD Observa?on
0"
5"
10"
15"
20"
25"
30"
35"
1" 2" 3" 4" 5" 6"
Normalized
+Produ
c/vity+
Total+SLO
C/Eff
ort+h
ours+
Semester+
Objec.ve"C"
Jovial"
Cobol"
0"
0.2"
0.4"
0.6"
0.8"
1"
1.2"
1" 2" 3" 4" 5" 6"
Normalized
+Produ
c/vity+
Total+SLO
C/Eff
ort+h
ours+
Semester+
MIPS"
GUI"
Matlab"
Word/Text"
Reduc?on in IDPD Factor
!140%
!120%
!100%
!80%
!60%
!40%
!20%
0%
20%
40%
60%
80%
0% 0.2% 0.4% 0.6% 0.8% 1% 1.2% 1.4% 1.6% 1.8% 2%
IDPD
$Factor$%
$over$2
$semesters$
Semesters$with$no$Only9Test$sessions$$$$$$$$$$$$$$$$$$$$Semesters$with$Only9Test$sessions$in$between$
!400$
!350$
!300$
!250$
!200$
!150$
!100$
!50$
0$
50$
100$
0$ 0.2$ 0.4$ 0.6$ 0.8$ 1$ 1.2$ 1.4$ 1.6$ 1.8$ 2$
IDPD
$Factor$%
$over$3
$semesters$
Semesters$with$no$Only9Test$sessions$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Semesters$with$Only9Test$sessions$in$between$
IDPD Factor Sta?s?cs
IDPD Factor %
F-‐value p-‐value
2 semesters 5.0656 0.0481
3 semesters 6.7635 0.0265
IDPD Factor %
With no Test-‐only Semester
With Test-‐Only Semester
Mean Median Mean Median 2
semesters 37.5344 34.1349 -‐39.8803 -‐71.1138
3 semesters 44.6844 43.3956 -‐155.7607 -‐196.6872
FUTURE STEPS AND ANALYSES • Re-‐use SLOC • Re-‐use SLOC calibra?on • Re-‐use Documenta?on • Group Analyses • Test Data • Defects • Addi?onal Factors:
• ACAP • PCAP • SITE