Simple metrics to assess code quantity and quality

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

XS - Platform What is XS – Manager ?
Describing Process Specifications and Structured Decisions Systems Analysis and Design, 7e Kendall & Kendall 9 © 2008 Pearson Prentice Hall.
By SAG Objectives Cross platform QA Automation for web applications Scheduling the automation Automatically build the test scripts Generate the.
System Design and Memory Limits. Problem  If you were integrating a feed of end of day stock price information (open, high, low, and closing price) for.
Documentation Generators: Internals of Doxygen John Tully.
1 Web Wizards Guide To PHP David Lash Chapter 1 Introduction to PHP.
UNIT-V The MVC architecture and Struts Framework.
Doxygen: Source Code Documentation Generator John Tully.
This chapter is extracted from Sommerville’s slides. Text book chapter
Introduction to.Net and ASP.Net Course Introduction Build Your Own ASP.Net Website: Chapter 1 Microsoft ASP.Net Walkthrough: Creating a Basic Web Forms.
Advanced File Processing
MAVEN-BLUEMARTINI Yannick Robin. What is maven-bluemartini?  maven-bluemartini is Maven archetypes for Blue Martini projects  Open source project on.
BIRT: general info and initial experience Katia Danilova 02/27/2008.
THE BIG PICTURE. How does JavaScript interact with the browser?
Introduction to ASP.NET 1www.tech.findforinfo.com.
Describing Process Specifications and Structured Decisions Systems Analysis and Design, 7e Kendall & Kendall 9 © 2008 Pearson Prentice Hall.
The WinMine Toolkit Max Chickering. Build Statistical Models From Data Dependency Networks Bayesian Networks Local Distributions –Trees Multinomial /
XP Tutorial 10New Perspectives on Creating Web Pages with HTML, XHTML, and XML 1 Working with JavaScript Creating a Programmable Web Page for North Pole.
DTS Conversion to SSIS Conversion Best Practices Mike Davis
Intro and Review Welcome to Java. Introduction Java application programming Use tools from the JDK to compile and run programs. Videos at
Tutorial 7 Working with Multimedia. New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 2 Objectives Explore various multimedia applications.
Tutorial 7 Working with Multimedia. New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 2 Objectives Explore various multimedia applications.
1 Evaluating Code Duplication Detection Techniques Filip Van Rysselberghe and Serge Demeyer Lab On Re-Engineering University Of Antwerp Towards a Taxonomy.
] COREY PEARSON [ ASUG INSTALLATION MEMBER MEMBER SINCE: 2008 CHAVONE JACOBS [ ASUG INSTALLATION MEMBER MEMBER SINCE: 2003 ALLAN FISHER [ ASUG INSTALLATION.
Apache JMeter By Lamiya Qasim. Apache JMeter Tool for load test functional behavior and measure performance. Questions: Does JMeter offers support for.
Guide to Linux Installation and Administration, 2e1 Chapter 11 Using Advanced Administration Techniques.
Alarm Help. Points to discuss (from Clara) Display Only one line per DPE (fatal, error, warning) Background colour should fill whole row Simple version.
HELP COMPONEN SYSTEM WinCC CERN SUBJECTS - GENERATE HTML COMPONENT FILES - FULL COMPONENTS FRAMEWORK HELP - CENTRAL HELP REPOSITORY - ACCESIBLE.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
Software Metric Tools Joel Keyser, Jacob Napp, Carey Norslien, Stephen Owings, Tristan Paynter.
8 th Semester, Batch 2009 Department Of Computer Science SSUET.
CPSC 372 John D. McGregor Module 6 Session 4 Sonar.
JCOP Framework and PVSS News ALICE DCS Workshop 14 th March, 2006 Piotr Golonka CERN IT/CO-BE Outline PVSS status Framework: Current status and future.
Customizing Share Document Previews Will Abson Senior Integrations Engineer and Share Extras Project Lead
A Presentation Presentation On JSP On JSP & Online Shopping Cart Online Shopping Cart.
UAB Requirements for 2016 Ivan Prieto Barreiro 18/04/2016 UAB Requirements for
CS223: Software Engineering Lecture 34: Software Maintenance.
1 Requirements Management - II Lecture # Recap of Last Lecture We talked about requirements management and why is it necessary to manage requirements.
Advanced BIML topics Be a W.I.S.E. A.S.S. Me ! Self-employed BI consultant Author Trainer MCT
SOFTWARE TESTING TRAINING TOOLS SUPPORT FOR SOFTWARE TESTING Chapter 6 immaculateres 1.
UNICOS Application Builder Architecture
A toolkit for filtering and data processing in WinCC OA
Useful Tools for Testing
Computer Organization and Architecture + Networks
CMS DCS: WinCC OA Installation Strategy
Dependency Analysis Use Cases
Introduction to programming
WinCC OA Ultra Thin Client
Topics Introduction to Repetition Structures
Sizing With Function Points
Redundancy Switching Components
WinCC-OA Upgrades in LHCb.
CMS Operational Experience
TOTEM Configuration Tools
Dependency Analysis Use Cases
PL/SQL Scripting in Oracle:
JDXpert Workday Integration
Number and String Operations
New FSM v24r1.
Software Metrics “How do we measure the software?”
Pierluigi Paolucci & Giovanni Polese
Smart Integration Express
Charles Tappert Seidenberg School of CSIS, Pace University
User Specific Framework Component
Configuration management
Introduction to Computer Science
L L Line CSE 420 Computer Games Lecture #3 Introduction to Python.
Software Re-engineering and Reverse Engineering
PYTHON - VARIABLES AND OPERATORS
Presentation transcript:

Simple metrics to assess code quantity and quality Oliver Holme CMS ECAL DCS Group

How big is my (sub-)project? Easy measurements Files DPs FSM object or object types Very basic indication of size svnplot provides a bit of information too Number of files, average file size...

Lines of code (LOC) LOC How to determine LOC? Two languages Good indicator of required maintenance load LOC measure can be physical or logical Logical LOC counts the number of executable statements Logical analysis is harder and must be language aware How to determine LOC? Two languages CONTROL SML

Where is the code? Code may not be stored in these locations... Tool to strip code from panels and DPL files Tool to count code, whitespace and comments Panels Scripts & Libs DPL files (FSM object types) .postInstall .pnl .dpl .ctl

Extracting panel code Advantage Disadvantage .pnl .xml CONTROL code only PVSS00ui Custom Tool Advantage XML panel code is as seen in GEDI In XML panel " is shown as " In PNL files " is shown as \" Disadvantage Some panels do not automatically convert to XML Submitted to ICE Support

Extracting FSM code Extract code from DPL files Search for _FwFsmObjectType DPs CONTROL code from DU types (.components) SML code from CU/LU types (.actions and .states) Restore code formatting as seen in FSM tools FSM SML code only .dpl Custom Tool FSM CONTROLcode only

Counting the code Counting is not really language aware Compromise between physical and logical LOC Scripts & Libs Panel CONTROL code HTML Report Custom Tool FSM SML code FSM CONTROLcode

Quality assessment Investigated ConQAT Continuous Quality Assessment Toolkit Multi-lingual or C++ modes work with CONTROL Nice presentation of results Explored some metrics so far Code duplication Code : Comment ratio Block length Nested block depth Run from WinCC OA Run manually (in Eclipse)

ConQAT Configuration ConQAT Config File

Integration of ConQAT WinCC OA Tool to configure and execute ConQAT Can take raw panels or stripped code from panels ConQAT Config File Custom Tool Custom Tool ConQAT .pnl .postInstall Stripped panel code .ctl HTML Reports

Current status Standard Output ConQAT Examples

Summary WinCC OA Tool counts lines of CONTROL & SML Reasonable accuracy in counting May be fooled sometimes by /* or */ in literal strings Integration of ConQAT into WinCC OA Configuration and execution Only used to analyse CONTROL Presentation of WinCC OA and ConQAT results in HTML Requires no installation of components Can analyse code taken directly from SVN