1 / 16

Unified CodeCounter (UCC) with Differencing Functionality

Unified CodeCounter (UCC) with Differencing Functionality. Marilyn Sperka 1 , Vu Nguyen 2 , Ryan Pfeiffer 1 1 The Aerospace Corporation 2 University of Southern California 24 th International Forum on COCOMO 10/03/2009. What Does a Code Counter Do?. Determines software size

ivie
Download Presentation

Unified CodeCounter (UCC) with Differencing Functionality

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Unified CodeCounter (UCC) with Differencing Functionality Marilyn Sperka1, Vu Nguyen2, Ryan Pfeiffer1 1 The Aerospace Corporation 2 University of Southern California 24th International Forum on COCOMO 10/03/2009

  2. What Does a Code Counter Do? • Determines software size • Leads to more reliable metrics: • Cost • Schedule • Productivity • Valuable analysis of existing projects • Better predictions for new software systems cost and schedule

  3. Don’t We Do That Already? • Many code counters available now • Various problems: • Some are proprietary, others are public domain • Inconsistent counting rules • May or may not be maintained • Big problem: they count differently • Inconsistent or biased conclusions

  4. Why Develop Yet Another? • NRO Cost Group (NCG) needed a tool to: • Count software lines of code • Consistently • With documented standards • Ability to easily add new languages • Support and maintenance • Compare different baselines of software • Determine addition, modification, deletion • Identify duplicate files • Determine complexity

  5. How Did It Get Started? • USC wanted real-world projects for students • USC CSSE: University of Southern California Center for Systems and Software Engineering • Non-biased, industry-respected • Aerospace management recognized the potential of a USC/Aerospace team • A collection of existing code counting tools was donated to USC • Northrop Grumman, TRW, Boeing

  6. Where Is It Now? • CodeCount is developed and maintained at USC • Graduate students get credit for directed research while interning • Code counters are continuously being checked and updated by USC students • New languages are added every semester • Aerospace provides validation and verification • Active involvement in class projects

  7. Latest Release: UCC • The latest release of UCC unifies the code counters and differencing functions into a single application • UCC = Unified CodeCounter • Common interface • Easy to use • Consistent output reports

  8. Links • http://sunset.usc.edu/research/CODECOUNT/ • Open source code and documentation • http://sunset.usc.edu/csse/affiliate/private/codecount.html • Beta release code to affiliates • http://brown.usc.edu:8080/ • Wiki information • nguyenvu@usc.edu • To report bugs or make suggestions

  9. Features • Platform independent • Command line interface • Modes: Code counting only or counting plus differencing • Counts multiple files and languages in a single pass • Output reports • Robust processing • Options to improve performance • Error log

  10. Code Counting • Counts logical and physical SLOC, comments, and blank lines • Counts multiple languages in one run • Creates separate output reports for each language • Also creates grand total report • Identifies duplicate files • Reports those counts separately

  11. Differencing • Compares two baselines of files • Counts each same as in code counting • Matches files between baselines • Compares the code and counts: • SLOC added to second baseline • SLOC deleted from first baseline • SLOC modified in second baseline • SLOC unmodified between baselines

  12. Differencing, Continued • Reports on files in one baseline but not the other • Identifies duplicate files in each baseline • Reports counts separately • Options for performance enhancement

  13. Languages Supported Code Counting: Differencing: C/C++ C# Java SQL Ada Perl ASP • JSP • HTML • CSS • JavaScript • VB • VBScript • PhP • C/C++ • C# • Java • SQL • Ada • Perl • ASP • JSP • HTML • CSS • JavaScript • VB • VBScript Code counters are developed first, then differencing is added

  14. Output Reports • A variety of reports are output • Counting, differencing, duplicates, complexity, errors • Users can customize their reports • Several .csv reports • Load directly into Excel

  15. Current Projects • Code counters and differencing for Python, Unix shell script, Ruby, ColdFusion, Fortran, PhP, X-Midas, Assembly, COBOL • Add GUI front end interface • Improve complexity counting

  16. Questions and Comments

More Related