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