Software Engineering & Architecture



Similar documents
Software Analysis Visualization

The Class Blueprint A Visualization of the Internal Structure of Classes

Génie Logiciel et Gestion de Projets. Evolution

CodeCrawler An Extensible and Language Independent 2D and 3D Software Visualization Tool

Program Understanding in Software Engineering

Program Understanding with Code Visualization

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

IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS

A Tool for Visual Understanding of Source Code Dependencies

CodeCrawler Lessons Learned in Building a Software Visualization Tool

Understanding Software Static and Dynamic Aspects

Hierarchy and Tree Visualization

Hierarchical Data Visualization

Polymetric Views A Lightweight Visual Approach to Reverse Engineering

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

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

Software visualization. Why visualization?

Baseline Code Analysis Using McCabe IQ

Hierarchical Data Visualization. Ai Nakatani IAT 814 February 21, 2007

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

Big Data: Rethinking Text Visualization

WebSphere Business Monitor

DEMONSTRATION OF THE SOFTVISION SOFTWARE VISUALIZATION FRAMEWORK

Quality Analysis with Metrics

Analyzing Java Software by Combining Metrics and Program Visualization

Visualization methods for patent data

An Architecture to Support Model Driven Software Visualization

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

Hyperbolic Tree for Effective Visualization of Large Extensible Data Standards

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

Using Library Dependencies for Clustering

Exploiting Dynamic Information in IDEs Eases Software Maintenance

An Open Framework for Reverse Engineering Graph Data Visualization. Alexandru C. Telea Eindhoven University of Technology The Netherlands.

Quality Management. Objectives

Quality Management. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 27 Slide 1

Comprehending Software Architecture using a Single-View Visualization

BugMaps-Granger: a tool for visualizing and predicting bugs using Granger causality tests

CodeMetropolis code visualisation in MineCraft

Quality Management. Objectives. Topics covered. Process and product quality Quality assurance and standards Quality planning Quality control

VISUALIZATION APPROACH FOR SOFTWARE PROJECTS

Software Metrics. Lord Kelvin, a physicist. George Miller, a psychologist

Architectural Visualization of C/C++ Source Code for Program Comprehension

LITCHFIELD PUBLIC SCHOOLS Core Curriculum Scope and Sequence {Interior Design}

Karunya University Dept. of Information Technology

How To Create A Visualization In Java 2D With A Model Of A Class Diagram In A Programmable Model (Programmer)

Recovering Business Rules from Legacy Source Code for System Modernization

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

Component visualization methods for large legacy software in C/C++

Industrial Adoption of Automatically Extracted GUI Models for Testing

visualizations for code metrics

International Journal of Software Engineering and Knowledge Engineering c World Scientific Publishing Company

Tool Support for Inspecting the Code Quality of HPC Applications

Development of a 3D tool for visualization of different software artifacts and their relationships. David Montaño Ramírez

Quality Management. Managing the quality of the software process and products

Section 1: Ribbon Customization

SQLFlow: PL/SQL Multi-Diagrammatic Source Code Visualization

OMC Study Group MEETING 3: NOTES. Section 1: Building Design Page 2 Section 2: Site Layout Page 9 Section 3: Summary Page 16

Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine

Oracle Database 10g: Building GIS Applications Using the Oracle Spatial Network Data Model. An Oracle Technical White Paper May 2005

Fireworks CS4 Tutorial Part 1: Intro

Signs And Graphics. Professional Signage and Graphics Solutions

Software Testing Strategies and Techniques

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

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

Measuring Software Product Quality

WINDOWS 2000 Training Division, NIC

Find the Information That Matters. Visualize Your Data, Your Way. Scalable, Flexible, Global Enterprise Ready

Software Requirements Metrics

Visualization of bioinformatics workflows for ease of understanding and design activities

A Visualization Approach for Bug Reports in Software Systems

Access 2007 Creating Forms Table of Contents

Problem-Solution Mapping for Forward and Reengineering on Architectural Level

Creating and Using Links and Bookmarks in PDF Documents

Microsoft PowerPoint 2010 Computer Jeopardy Tutorial

Analysis Of Source Lines Of Code(SLOC) Metric

Transcription:

Software Engineering & Architecture 11. QUALITY METRICS AND VISUALIZATION Martin Kropp University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems

References Some of the visualization stuff has been taken from H. Gall et al. Software Analysis Visualization, 28th International Conference on Software Engineering, Shanghai 2006 And S. Demeyer. SReengMaster. http://www.lore.ua.ac.be/teaching/sreengmaster/ 2

Learning Targets You Stimulate discussion and to pose hypotheses about the quality of code and software design using software quality metrics and visualization tools. can analyze quality attributes of code and software design can apply quality metrics for evaluation of code and design quality can apply software visualization as a method for evaluation of code and design quality can apply software visualization for gaining initial software understanding of legacy systems can collect information as a base re-engineering decisions 3

Content Motivation Quality Metrics Software Visualization Tools Summary 4

Why To Analyze Software Engineering Control quality of new work Legacy Code Determine quality of given work Where are the decay? 5

What to Analyze Code Design Architecture 6

Analysis Means Metrics Provide concrete figures about software quality Visualization Provide graphical view on the software quality 7

Metrics (Recap) Metric: a measurement scale and method to determine the value of an indicator of a certain software product. Indicator: Indicators are internal characteristics that can be related to an external characteristic Example: External characteristic: Analyzability Indicator: Complexity of functions/methods Metric: McCabe s cyclomatic number 8

Some Typical Metrics Size Metrics Lines of Code (LoC), Number of Classes, Number of Methods of Class, Halstead-Metric Logical Structure Metrics Cyclomatic Complexity McCabe Data Structure Metrics Number of Variables, Duration Style Metrics Naming Convention, Nesting Metrics for Cohesion and Coupling Fan-In, Fan-Out, Lack-of-Cohesion, Number of called Methods and many more 9

Evaluation of Metrics metrics for packages 10

Exercise 1: Pro s and Con s of Metrics Pro s Con s 11

Nonetheless You can't manage what you can't control, and you can't control what you don't measure But Don t make yourself a slave of the numbers! 12

Analysis Visualization From H. Gall, Software Analysis Visualization, 28th International Conference on Software Engineering, Shanghai 2006 13

Conceptual Problem Software is intangible, having no physical shape or size. [Thomas Ball] Software visualization tools use graphical techniques to make software visible by displaying programs, program artifacts and program behavior. 14

Visualization Approaches Euclidean cones Pros: More info than 2D Cons: Lack of depth Navigation Hyperbolic trees Pros: Good focus Dynamic Cons: Copyright Hierarchical Views 15

Visualization Approaches (contd) Bottom UP Approach All program entities and relations Filter 16

Goal of Visualization Engineering Get easy to read quality measures On various levels Scalable Reengineering Get easily a good understanding of the software On various levels Scalable Reduce Complexity 17

A Lightweight Approach The Polymetric View A combination of metrics and software visualization Visualize software using colored rectangles for the entities and edges for the relationships Render up to five metrics on one node: Size (1+2) Color (3) Position (4+5) Y coordinate Entities X coordinate color metric width metric Relationships height metric 18

Quiz: Where would you start looking? and why? 19

Polymetric View Example 1 System Complexity View Nodes: Edges: Width: Height: Color: Classes Inheritance Relationships Number of attributes Number of methods Number of lines of code 20

Polymetric View Example 2 Method Assessment LOC Nodes: Methods Edges: - Size: Number of method parameters Position X: Lines of code Position Y: Number of statements NOS 21

Polymetric View More Samples Inheritance Classification View Data Storage Class Detection View For more details see the paper from Michele Lanza, Stephane Ducasse. Polymetric Views - A Lightweight Visual Approach to Reverse Engineering, IEEE Transactions on Software Engineering, Volume 29, Issue 9, Sept. 2003 Page(s):782-795 22

Evaluation Polymetric View Benefits Views are customizable (context ) and easily modifiable Simple approach, yet powerful Scalability Fits very well for coarse-grained view Limits Visual language must be learned What s inside the classes and their structure? 23

Tools (just a view OSS) Metrics Metrics (for Eclipse) Checkstyle Emma CMT Many more Visualization CodeCrawler Evolizer Moose http://moose.unibe.ch/too ls Creole / Shrimp Rigi Jinsight Many more 24

Summary To ensure software quality you have to analyze the software Analysis can be numerical and graphical - or both Metrics are easy to use but have their limitations Software Visualization is very useful when used correctly An integrated approach is needed, just having nice pictures is not enough 25

Tasks Now apply metrics and visualization in a concrete project. http://wiki.hsr.ch/mastermodulsea/wiki.cgi?ex11_ 09 26

Retrospective Give your feedback on http://wiki.hsr.ch/mastermodulsea/wiki.cgi?lesso n11retrospective 27