Code Counter Suite - Difftool Overview Michael Lee - The Aerospace Corporation

advertisement
University of Southern California
Center for Systems and Software Engineering
Code Counter Suite Difftool Overview
Michael Lee - The Aerospace Corporation
Lori Vaughan - Northrop Grumman
University of Southern California
Center for Systems and Software Engineering
Agenda
USC CSSE CodeCount Suite
• Overview
• Team, Release Status and Goals
Difftool Overview
Difftool Timeline
Difftool example
Conclusion
University of Southern California
Center for Systems and Software Engineering
CodeCount Overview
 CodeCount is one of the most popular SLOC counting tools
publicly available
• About 20+ downloads per day
• Many CSSE Affiliates use CodeCount as the standard SLOC
counting tool
• SLOC counting rules are well-defined
 Latest Releases are only available to Affiliates members
 CodeCount toolset is the only tool that supports counting
logical SLOC for many languages (17+)
 CodeCount development and maintenance efforts are
supported by CSSE Affiliates
University of Southern California
Center for Systems and Software Engineering
CodeCount Team
 University of Southern California
• Dr. Barry Boehm: USC CSSE Director
• A Winsor Brown: USC CSSE Asst. Director
• Jim Alstad: CodeCount usage expert, also from Boeing
• Vu Nguyen: CodeCount Team Lead & Configuration Manager
• CS and EE directed research students
 NRO Cost Group
 The Aerospace Corporation
•
•
Marilee Wheaton: Industry Facilitator
Michael Lee: Software Engineer
 Northrop Grumman Mission Systems
•
Lori Vaughan: Industry Stakeholder
University of Southern California
Center for Systems and Software Engineering
CodeCount Suite Releases
July 2007
December 2007
CodeCount
CodeCount
Ada, Assembly, SQL,
July 2007 +
Fortran, Pascal, PL1,
C/C++, Java, C#,
JSP, ASP, Python
Unified CodeCount.
SQL, MUL, HTML, VB,
Counting Standards
JavaScript, VBScript,
New User Documents
Perl, Jovial.
Difftool
Counting Standards
July 2007 +
Difftool
Ada, SQL, JSP, ASP
C/C++, Java, C#
HTML, VB
GUI with the Count
University of Southern California
Center for Systems and Software Engineering
CodeCount Goals
 Develop and enhance CodeCount tools
• Maintain and enhance existing counters supporting 17
languages
• Future inclusion of ASP, PHP, Python
• Unify existing counters into one application
• Documentation and support
http://sunset.usc.edu/csse/affiliate/private/codecount.html
 Incorporate and enhance SLOC differencing tool
“Difftool” into CodeCount suite
University of Southern California
Center for Systems and Software Engineering
Difftool Overview
Quantification of Reuse code has led NRO Cost
Group in conjunction with Aerospace Corp. and
USC CSSE to develop Diff concept and tool
Source code differencing tool utilizing existing
USC CodeCounters.
Allows collection and comparison of physical and
logical source lines of code.
Captures: New, Deleted, Modified
University of Southern California
Center for Systems and Software Engineering
Difftool Timeline
http://csse.usc.edu/research/CODECOUNT
http://sunset.usc.edu/affiliates/private
Yesterday
Today
Tomorrow
Diff Tool code
Development
starts
Yesterday +
Today +
C/C++
The Count GUI
integration
Physical code
differential
Java
Last updated Q1
2006
Beta release Q2 2007
C#
Logical Code
differential
SQL, VB
HTML, Perl, Cobol
Performance
Enhancements
Unified Diff Tool **
** Ongoing Development
USC Center for Systems and Software Engineering (CSSE) DiffTool™
will be continually enhanced to support more languages paralleling the
CodeCount™ development effort.
University of Southern California
Center for Systems and Software Engineering
Demo
Old code
Physical changes
int main ()
{
int number, guess;
int a;
number = (rand() % 100) + 1;
printf ("Guess:");
scanf ("%d", &guess);
if (guess < number)
{
int main ()
{
int number, guess;
int a, b, c;
number = (rand() % 100) + 1;
printf("Guess:"); scanf("%d",&guess);
if (guess < number)
{
printf("\nThis is a new line.\
Continue the previous line.");
printf ("\nYour number is small.");
}
else if (guess > number
|| guess == 0 )
{
printf ("\nYour number is high.");
}
printf ("\nYour number is small.");
}
else if (guess > number)
{
printf ("\nYour number is high.");
}
number = number
+ rand() % 100 + 10;
if (number < 100) return number;
return (0);
}
New code
return (1);
}
Logical changes
1 modified
unchanged
1 added
1 modified
1 deleted
2 deleted
1 modified
University of Southern California
Center for Systems and Software Engineering
Demo - outfile_diff_results.txt
University of Southern California
Center for Systems and Software Engineering
Demo - outfile_cmplx.txt
University of Southern California
Center for Systems and Software Engineering
Demo - The Count (Boeing) GUI
University of Southern California
Center for Systems and Software Engineering
Demo - The Count (Boeing) GUI
University of Southern California
Center for Systems and Software Engineering
Conclusion
 USC DiffTool being developed and enhanced with industry
collaborative efforts
•
NRO Cost Group
 Redesign of Code Count and DiffTool to unify support for
multiple languages into common applications promoting ease
of scalability and maintenance.
 Standards and CodeCount tool for new programming
languages continuing
 Encourage Industry usage and involvement
 USC CSSE affiliate support well directed
Download