How They Do It in Switzerland Outsource the Code, Insource the Quality



Similar documents
SourceMeter SonarQube plug-in

Fundamentals of Measurements

An Introduction to SAS Enterprise Miner and SAS Forecast Server. André de Waal, Ph.D. Analytical Consultant

Baseline Code Analysis Using McCabe IQ

Sage Accpac ERP 5.6A. CRM Analytics for SageCRM I User Guide

Unit Testing webmethods Integrations using JUnit Practicing TDD for EAI projects

Source Code Translation

Welcome to PowerClaim Net Services!

Acolyst VENELegal Matter Management Application

Measuring Software Product Quality

EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS

Software Engineering & Architecture

BarTender Integration Methods. Integrating BarTender s Printing and Design Functionality with Your Custom Application WHITE PAPER

Oracle Managed File Getting Started - Transfer FTP Server to File Table of Contents

Metric Tools for Java

tools that make every developer a quality expert

SQLFlow: PL/SQL Multi-Diagrammatic Source Code Visualization

Chapter 2: Getting Started

PHP Code Design. The data structure of a relational database can be represented with a Data Model diagram, also called an Entity-Relation diagram.

Sitecore InDesign Connector 1.1

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

Participant Guide RP301: Ad Hoc Business Intelligence Reporting

White Paper Software Quality Management

Oracle Utilities Meter Data Management Business Intelligence

The Real Challenges of Configuration Management

HR Systems. e-appraisal Usage Report User Guide DOCUMENT CONTROL. Change Control Table. Version Amendment Description Release Date Updated by

XpoLog Center Suite Log Management & Analysis platform

How To Retire A Legacy System From Healthcare With A Flatirons Eas Application Retirement Solution

Basic Unix/Linux 1. Software Testing Interview Prep

8 Steps to Measure ADM Vendor Deliverables

Figure 1. perfsonar architecture. 1 This work was supported by the EC IST-EMANICS Network of Excellence (#26854).

AVAILABLE CASE TOOLS I. SYSTEM FLOWCHART AND ER-DIAGRAM GENERATION TOOL

A Case study based Software Engineering Education using Open Source Tools

Microsoft Windows PowerShell v2 For Administrators

Unit 11: Software Metrics

Testing Metrics. Introduction

Estimating the Size of Software Package Implementations using Package Points. Atul Chaturvedi, Ram Prasad Vadde, Rajeev Ranjan and Mani Munikrishnan

The Advantages of Enterprise Historians vs. Relational Databases

Optimizing Business Continuity Management with NetIQ PlateSpin Protect and AppManager. Best Practices and Reference Architecture

STATGRAPHICS Online. Statistical Analysis and Data Visualization System. Revised 6/21/2012. Copyright 2012 by StatPoint Technologies, Inc.

TITANXR Multi-Switch Management Software

QAD Business Intelligence Dashboards Demonstration Guide. May 2015 BI 3.11

EMC Smarts Network Configuration Manager

ithenticate User Manual

6 th Annual EclipseCon Introduction to BIRT Report Development. John Ward

Distance-Learning Remote Laboratories using LabVIEW

Video, film, and animation are all moving images that are recorded onto videotape,

TDAQ Analytics Dashboard

Desktop, Web and Mobile Testing Tutorials

CSTE Mock Test - Part I - Questions Along with Answers

Instructor Özgür ZEYDAN BEU Dept. of Enve. Eng. CIV 112 Computer Programming Lecture Notes (1)

A methodology for measuring software development productivity using Eclipse IDE

Mainframe Managed Tools as a Service (MFMTaaS) Accelerating Growth

Improved Software Testing Using McCabe IQ Coverage Analysis

Recovering Business Rules from Legacy Source Code for System Modernization

IBM Software Group. IBM WebSphere Process Integration Technical Overview

Information Server Documentation SIMATIC. Information Server V8.0 Update 1 Information Server Documentation. Introduction 1. Web application basics 2

Introduction to Cube Cloud (CC) Introduction. Senior Transportation Engineer

estatistik.core: COLLECTING RAW DATA FROM ERP SYSTEMS

A Tool for Mining Defect-Tracking Systems to Predict Fault-Prone Files

TEST AUTOMATION FRAMEWORK

Reducing Technical Debt Using Maintainability Index

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

The software shall provide the necessary tools to allow a user to create a Dashboard based on the queries created.

WIRIS quizzes web services Getting started with PHP and Java

Web Presentation Layer Architecture

COGNOS 8 Business Intelligence

Data Sheet VISUAL COBOL WHAT S NEW? COBOL JVM. Java Application Servers. Web Tools Platform PERFORMANCE. Web Services and JSP Tutorials

Business Process Management

Portal Factory CMIS Connector Module documentation

CASE TOOLS. Contents

Red Hat Network Satellite Management and automation of your Red Hat Enterprise Linux environment

Oracle Utilities Mobile Workforce Management Business Intelligence

Red Hat Satellite Management and automation of your Red Hat Enterprise Linux environment

How To Use Mindarray For Business

DITA Adoption Process: Roles, Responsibilities, and Skills

Visionet IT Modernization Empowering Change

BluWave crm Product Fact Sheet

Solution Park Support for Visual Dashboards

isupport 15 Release Notes

QAD Customer Relationship Management Demonstration Guide. May 2015 EE2015 / CRM 6.7

White Paper Profile migration for a system upgrade to Microsoft Windows Server 2008 R2 and Citrix XenApp 6

Database Studio is the new tool to administrate SAP MaxDB database instances as of version 7.5.

LICENSE4J FLOATING LICENSE SERVER USER GUIDE

The 2-Tier Business Intelligence Imperative

QAD Enterprise Asset Management BI Metrics Demonstration Guide. May 2015 BI 3.11

March Module 3 Processing MOVES Output

User Guide. Analytics Desktop Document Number:

A Program for PCB Estimation with Altium Designer

When a Process Diagram is not Enough

The Beginner s Guide to CRM

Writers: Joanne Hodgins, Omri Bahat, Morgan Oslake, and Matt Hollingsworth

SAP Predictive Analysis Installation

Test Run Analysis Interpretation (AI) Made Easy with OpenLoad

4) How many peripheral devices can be connected to a single SCSI port? 4) A) 8 B) 32 C) 1 D) 100

Analysis Of Source Lines Of Code(SLOC) Metric

2 SQL in iseries Navigator

Toad for Oracle 8.6 SQL Tuning

MicroStrategy Course Catalog

Transcription:

McCabe IQ Analyzes and Visualizes Software Quality in Critical International Financial Systems

Introduction This paper examines how a major Swiss financial services company analyzes and monitors the quality of its software developed with its offshore development partner. The software being maintained forms a critical part of the Swiss financial infrastructure and is maintained with the now legendary quality for which Switzerland is renowned the world over. The implemented process is based around the measurement and monitoring of 20+ quality metrics for COBOL and 50+ quality metrics for Java, covering both conventional software metrics and code grammar observations. These metrics are based on industry standards with the aim of providing both partners with a software quality benchmark to work towards. The process is, apart from the source code download from the CM repository, entirely automated up to the point of report production. Initial Analysis Following an external review, the Swiss software company commissioned a firm of consultants to review their Software Development Life Cycle (SDLC) and suggested a series of quality indicators that should be used to monitor the quality of the code being maintained and produced. Due to both the volume of legacy code and new code being written in an ever changing financial landscape, this became an imperative if costs and rework were to be minimized over time. The volumes of code are substantial, comprising some 24MLOC of COBOL (expanded COPY) and some 2.5MLOC of JAVA, both growing at a rate of 2% or more annually. Formal naming standards were reinforced with equally formal coding standards to produce a sound base from which to start. The enforced naming standards helped greatly in automating the whole process, enabling analysis by component to be produced with limited human intervention. There are two major releases each year, and each is analyzed and the metrics trends monitored. The Quality Indicators As stated earlier, there are 20+ COBOL and 50+ Java quality indicators, too many to list in a short paper, but to give a feel what is being measured, here are a few for each programming language: COBOL Q-Metric (1): There must be no undocumented COBOL programs. Q-Metric (2): There must be no undocumented COBOL copy books. Q-Metric (3): Comment to line count ratio of a COBOL program must not be below 15%. Q-Metric (4): Comment to line count ratio of a COBOL copy book must not be below 15%. Q-Metric (5): COBOL programs must not be longer than 2000 code lines. Q-Metric (6): COBOL copy books must not be longer than 1000 code lines. Q-Metric (7): COBOL paragraphs must not have a cyclomatic complexity greater than 15. 2

Q-Metric (8): COBOL sections (without embedded paragraphs) must not have a Cyclomatic Complexity greater than 15. Q-Metric (9): Modules must not have too deep control flow nesting depth (depth > 4). Java Q-Metric (1): The length of an artifact name must not be less than 2 characters. Q-Metric (2): The length of an artifact name must not be greater than 50 characters. Q-Metric (3): A code fragment of 40 lines or more must not occur identically somewhere else in the system. Q-Metric (4): Every package must contain at most 50 public classes or interfaces. Q-Metric (5): Source files must not be longer than 2000 LOC. Q-Metric (6): Cyclic dependencies between classes are forbidden. Q-Metric (7): A method should not contain more than 200 Lines of Code (LOC). Q-Metric (8): The cyclomatic complexity of a method should be less than 10. Q-Metric (9): Methods must not have too deep control flow nesting depth (depth > 4). Q-Metric (10): Class/Package names must match the regular expression ([a-z][a-za-z0-9]+)+ Q-Metric (11): There must not be missing default branches in switch statements. Q-Metric (12): There must not be any empty catch blocks. Using the mix of source code analysis and Java grammar checking, and an XML interface, the metrics are combined in one database with a single GUI. This single database is then used to aggregate the metrics and derive the trending data, thus enabling teams to focus on the high risk, high incident components when they are identified. The Software The Swiss financial services company selected McCabe IQ as the source code analysis tool of choice for both COBOL & Java, for its graphical insights into the code, ability to provide the widest range of metrics both inbuilt and derived, and ability to be fully scripted. In addition, McCabe IQ was shown to be flexible enough to allow extensions to be added for the more exotic quality indicators and further programming languages to be added in the future if required. Checkstyle was chosen as the Java grammar checker of choice. McCabe IQ has been further extended to process the observation output from Checkstyle, convert the data to code metrics and import these metrics into both the McCabe IQ project and enterprise databases. The tools are driven by a hierarchy of Windows Command files that unpack the source files into their component folders, build a McCabe IQ analysis, process any log files and upload the accumulated metrics into the McCabe IQ enterprise database. Further processing takes place, providing management an unambiguous view of trends by component, by system, and by release. 3

The Results Reports can now be produced to focus on particular areas of concern or risk. The development partner has the information they require to improve code quality when that particular code is modified. The reports are both textual and graphic, summarizing the vast quantity of data into a series of pie and bar charts. Red or amber arrow indicators are added manually to provide a more human touch. 4

Summary When needing to analyze and monitor the software quality of their substantial and growing code base, this Swiss financial services company selected McCabe IQ, based not only on its unrivalled metrics capability, extensive visualization and scripting for ease of use, but also on its inherent flexibility in accepting metrics from other processes. McCabe IQ provides the management team with a birds eye view of their code quality irrespective of programming language and method of gathering the data. The implemented process is simple to run and requires little manual intervention, giving the Swiss owner and their offshore partner industry standard metrics to view within their joint process and helping each party understand what is happening with the code quality over time. Item Nov-Year 1 Spring Year 2 COBOL Source programs 6,844 7 008 Thousand Lines of Code 19,220 19,801 COBOL Copybook programs 45,999 47,538 Thousand Lines of Code 5,418 5,616 Avg. Complexity/Paragraph 4.07 4.08 Avg. Structuredness/Paragraph 1.13 1.13 Avg. Design/Paragraph 1.97 1.97 5