Percerons: A web-service suite that enhance software development process



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

Quality prediction model for object oriented software using UML metrics

Chapter 24 - Quality Management. Lecture 1. Chapter 24 Quality management

Chap 4. Using Metrics To Manage Software Risks

Definitions. Software Metrics. Why Measure Software? Example Metrics. Software Engineering. Determine quality of the current product or process

II. TYPES OF LEVEL A.

Synopsis: Title: Software Quality. Theme: Information Systems. Project Term: 9th semester, fall Project Group: sw907e13

Open Source Software: How Can Design Metrics Facilitate Architecture Recovery?

Empirical study of software quality evolution in open source projects using agile practices

Object Oriented Design

Quantitative Evaluation of Software Quality Metrics in Open-Source Projects

Design methods. List of possible design methods. Functional decomposition. Data flow design. Functional decomposition. Data Flow Design (SA/SD)

Analyzing Java Software by Combining Metrics and Program Visualization

STAN. Structure Analysis for Java. Version 2. White Paper. Fall 2009

Unit Test Case Design Metrics in Test Driven Development

How To Calculate Class Cohesion

Quality Analysis with Metrics

Vragen en opdracht. Complexity. Modularity. Intra-modular complexity measures

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

Predicting Class Testability using Object-Oriented Metrics

Software Defect Prediction Tool based on Neural Network

Karunya University Dept. of Information Technology

Using Code Quality Metrics in Management of Outsourced Development and Maintenance

EPL603 Topics in Software Engineering

How Designs Differ By: Rebecca J. Wirfs-Brock

Assessing Internal Software Quality Attributes of the Object-Oriented and Service-Oriented Software Development Paradigms: A Comparative Study

A methodology for measuring software development productivity using Eclipse IDE

Research Article Predicting Software Projects Cost Estimation Based on Mining Historical Data

Keywords Class level metrics, Complexity, SDLC, Hybrid Model, Testability

Time evolution and distribution analysis of software bugs from a complex network perspective

Fault Prediction Using Statistical and Machine Learning Methods for Improving Software Quality

The «SQALE» Analysis Model An analysis model compliant with the representation condition for assessing the Quality of Software Source Code

Reducing Technical Debt Using Maintainability Index

Program Understanding in Software Engineering

Detecting Defects in Object-Oriented Designs: Using Reading Techniques to Increase Software Quality

THE EFFECT OF SOFTWARE DESIGN PATTERNS ON OBJECT-ORIENTED SOFTWARE QUALITY AND MAINTAINABILITY

Paul Zenden Sioux Technische Software Ontwikkeling Science Park Eindhoven EP Son Tel: +31 (0)

Quality Management. What is quality? Managing the quality of the software process and products ISO 9000

Software Metrics as Benchmarks for Source Code Quality of Software Systems

How To Validate An Isos 9126 Quality Model

A Comprehensive Assessment of Object-Oriented Software Systems Using Metrics Approach

Baseline Code Analysis Using McCabe IQ

Evaluating the Relevance of Prevailing Software Metrics to Address Issue of Security Implementation in SDLC

The Concern-Oriented Software Architecture Analysis Method

A COMPARATIVE STUDY OF VARIOUS SOFTWARE DEVELOPMENT METHODS AND THE SOFTWARE METRICS USED TO MEASURE THE COMPLEXITY OF THE SOFTWARE

Software Engineering 1

Software Engineering & Architecture

PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design

Agile Software Development

Research Paper. (Received 25 August 2009; Accepted 31 December 2009) 1. Introduction

Auditing UML Models. This booklet explains the Auditing feature of Enterprise Architect. Copyright Sparx Systems Pty Ltd

Design and Code Complexity Metrics for OO Classes. Letha Etzkorn, Jagdish Bansiya, and Carl Davis. The University of Alabama in Huntsville

ProxySG TechBrief Implementing a Reverse Proxy

Detecting Critical Defects on the Developer s Desktop

AN EMPIRICAL REVIEW ON FACTORS AFFECTING REUSABILITY OF PROGRAMS IN SOFTWARE ENGINEERING

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

Web Service Implementation Methodology

visualizations for code metrics

STATE-OF-THE-ART IN EMPIRICAL VALIDATION OF SOFTWARE METRICS FOR FAULT PRONENESS PREDICTION: SYSTEMATIC REVIEW

BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs

Progress Report Aspect Oriented Programming meets Design Patterns. Academic Programme MSc in Advanced Computer Science. Guillermo Antonio Toro Bayona

BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT. March 2013 EXAMINERS REPORT. Software Engineering 2

NASCIO EA Development Tool-Kit Solution Architecture. Version 3.0

IJCSMS International Journal of Computer Science & Management Studies, Special Issue of Vol. 12, June 2012 ISSN (Online):

Real Time Embedded Software Development Using Agile Technology An Experience Report

A metrics suite for JUnit test code: a multiple case study on open source software

MicroStrategy Products

Asset Based Development

Agile Software Engineering, a proposed extension for in-house software development

Computing Concepts with Java Essentials

CSC408H Lecture Notes

Software project management. and. Maven

Head First Object-Oriented Analysis and Design

Mining Metrics to Predict Component Failures

BusinessObjects Enterprise XI Release 2 Administrator s Guide

Transcription:

Percerons: A web-service suite that enhance software development process Percerons is a list of web services, see http://www.percerons.com, that helps software developers to adopt established software engineering approaches in their product development. At this point there are three main service categories that are available inside Percerons: Percerons Reuse Repositories, Percerons Quality Dashboard, and Percerons Design Expert All the provided services are available through Percerons Client, i.e. a desktop application, which locally inspects your Java byte code, performs all available forms of analysis and stores data such as structural quality metrics on a web repository. Respecting the copyrights of your application, neither the source code, or the byte code of your applications are stored online. Finally, the results of analyzing your application are available only to you through a private (authentication protected) web interface. We note that the public interface of Percerons, is populated with data from open source projects, only for demonstration reasons. The layout and the information provided by the public web-interface is completely the same as the private one. Percerons Reuse Repositories Percerons Reuse Repositories aim at promoting systematic in-house reuse for software development companies. Software reuse is a well-known technique that is proposed so as to increase the productivity of software development and testing. Reusing already developed and tested components is significantly reducing the time to market of a new product. The two most widely used pools of reusable software components are: Open source software components, and In-house software components The major issues that hinder from reusing open source software components is that their internal structure is vague, that their structure is not familiar to the software developers, and there is no established way of accessing and searching for components that might fit the needs of a software development company. On the other hand, in-house reuse, which solves the abovementioned problems is usually hurdled by the lack of systematic documentation, while developing a system, which leads to the lack of in-house components repositories. The abovementioned problems are solved by using Percerons Reuse Repositories as follows: We provide the infrastructure for building an in-house reuse repository by components, reverse engineered from binary code. These components include domain specific knowledge, in the sense that they are retrieved from projects of the company itself, and therefore are more

understandable to your software engineers. Additionally, these components are automatically retrieved and offered to you without own cost, from a search engine that enables filtering and sorting the retrieved components. We provide a search engine that enables access to 250.000 open source components. These components are qualified as easy to compile and understandable. Also, these components are reversed engineered to class diagram, and assessed with all possible evaluations offered by the Percerons Quality Dashboard. Percerons Quality Dashboard Percerons Quality Dashboard is a "one-stop-quality" set of tools for Java software. We provide first class reliable assessments covering all aspects of source quality. Through our repertoire of on-line scalable services you will be able to assess different perspectives of quality. The quality attributes that are being assessed at this point are: Design Quality, Reuse Capabilities, and Instability Software design quality refers to how the product meets non-functional requirements that support the delivery of the functional requirements, such as robustness or maintainability, and therefore the degree to which the software was produced correctly. Design quality is assessed by the use of one of the most known OO metrics suite, the one introduced by Chidamber and Kemerer (CK metrics suite). The suite is based on the following metrics: NOC: Count of number of classes in the system. WMC: A class's weighted methods per class is the average of the complexities of its methods. As a measure of complexity we use the cyclomatic complexity. DIT: The depth of inheritance tree (DIT) metric provides for each class a measure of the inheritance levels from the object hierarchy top. NOCC: A class's number of children (NOC) metric measures the number of immediate descendants of the class. CBO: The coupling between object classes (CBO) metric represents the number of classes coupled to a given class. This coupling can occur through method calls, field accesses, inheritance, arguments, return types, and exceptions. RFC: The metric called the response for a class (RFC) measures the number of different methods that can be executed when an object of that class receives a message (when a method is invoked for that object).

LCOM: A class's lack of cohesion in methods (LCOM) metric counts the sets of methods in a class that are not related through the sharing of some of the class's fields. The definition of this metric considers all pairs of a class's methods. In some of these pairs both methods access at least one common field of the class, while in other pairs the two methods to not share any common field accesses. The lack of cohesion in methods is then calculated by subtracting from the number of method pairs that don't share a field access the number of method pairs that do. Software reuse capability refers to the extent to which the artifacts of a specific product can be reused in different products of the company. Reuse capability is synthesized by three very important factors, while reusing software: Structural Reusability: Is calculated based on the QMOOD model, where reusability is defined as the extent to which a product can be reused in different software. Functionality: Represents the portion of the current system to which the specific component is used. As much functionality the component offers to the system, the more probable is for the component to be reused in a different application. External Dependencies: Represents the hardness to compile the specific component, if reused in a different project. A zero value of this variable represents components that can be reused as is in different systems. Finally, software instability refers to the probability of a class to change in the next version of the system, due to the ripple effect. Instability is calculated according to a published model in a top journal of the software engineering domain. The above-mentioned evaluations can be used for: Perfective maintenance prioritization: Classes that lack design quality and are more change prone should be prioritized in company s refactoring activities Preventive maintenance prioritization: Classes that provide the more functionality to the system, and classes that are change prone should be more seriously considered, while performing activities to identify bugs. Adaptive maintenance: The extendibility (related to design quality) of classes that provide the most functionality to the system and are change prone should have priority in refactoring activities, so as to ease future adoptions to the system and decrease technical debt. Applying the reuse strategy: The classes/components/project that are characterized from high reuse capabilities should have higher priority when selecting classes from the Percerons Reuse Repositories.

Percerons Design Expert Percerons Design Expert provides a set of tools that help software engineers and more specifically designers and architects, to perform the optimum design decisions. At this point the Design Pattern Advisor service, enables designers to consider the quality trade-offs while using GoF design patterns.