Program Understanding with Code Visualization

Size: px
Start display at page:

Download "Program Understanding with Code Visualization"

Transcription

1 Program Understanding with Code Visualization Arif Iftikhar Department of Computer Science National University of Computer and Emerging Sciences 852-B Faisal Town, Lahore, Pakistan Abstract -Software is invisible, disappearing into files on disks. The invisible nature of software contributes to low programmer productivity by hiding system complexity, particularly for large team-oriented projects. The data regarding the components of a software system consists of a large amount of information such as version history, number of lines, defect density, and complexity measures. The ability to quickly grasp a comprehensive view of the evolution and dependencies of such information is the key to making informed decisions about future developments of the system. Code Visualization provides techniques and tools to understand the overall software and its complexity. It also contributes to identify any design defects that may be present in software. In the current paper, we present our study that we conducted to comprehend different techniques that aim to ease the task of code understanding. We present these techniques for our case study software and provide a comparative study of the studied visualization techniques. Keywords: Object-oriented programming, software visualization, reverse engineering, visual patterns. I. INTRODUCTION: The ever-increasing complexity of software systems together with the advent of lightweight development methodologies, such as extreme programming [8], tend to shift development costs from early stages, such as architecture and design, towards later stages, Today s industrial software systems are tremendously complex, with size counting in millions of lines of code. One way to cope with complexity is to represent information hierarchically in several levels of abstraction. Fortunately, software systems are often structured hierarchically as systems, subsystems and components located in packages and/or directories. However contained information does not tell us much about the complexity of the contained elements. Visual representation is an appealing way to represent lots of information simultaneously. Information Visualization is a recent and emerging technology which attempts to adopt graphics techniques for visualizing abstract entities that have no concrete shapes. Information visualization has proven to be an effective solution for understanding and uncovering information embedded in large datasets. Many software visualization tools have been designed to help revealing the structure of software systems by extracting information from their source code. In the current paper, we present our study that we conducted to comprehend different techniques that aim to ease the task of object-oriented code understanding. These techniques extract information regarding classes, methods, attributes, and inheritance links from code. The extracted information is then represented in the form of graphical entities. We have studied these techniques for object-oriented systems and compared their effectiveness for code understanding. This paper is organized as follow. Section 2 presents the visualization techniques that are used for code visualization. Section 3 presents a case study that is visualized using the techniques mentioned in the Section 2. Section 4 presents comparative study for visualization techniques used in the case study. As a conclusion, section 5 presents an outlook of the future work. II. VISUALIZATION TECHNIQUES A. Software Metrics: Merging Boxes & Classes Software Metrics are commonly used by researchers to analyze code. There is a technique that maps metrics on the 3D boxes. This technique aims at providing visualization with respect to cohesion, coupling and number of methods in the class. It is a fact that there are core problems faced while reviewing and understanding code. Code visualization can be done through object-oriented metrics [7] by 1

2 representing them in the form of 3D Box[1]. Box is used as it has evident characteristics of the being shown as tall. Metrics are mapped to color, twist and size of the box. In a study three kinds of matrix have been considered namely[7]: Coupling Between Objects (CBO) Lack Of Cohesion in method (LCOM5) Weighted Methods Per Class (WMC) Size complexity is measured by WMC and hence it is mapped to size of box. Coupling is measured by CBO and that is mapped to color of box from blue to red with red showing highly coupled. Lastly the cohesion is depicted by twist of the box more twist would indicated more lack of cohesion. Figure 1(a) shows a box representing class which loosely coupled, highly cohesive and with lesser weighted methods. Figure 1(b) shows a class which a bit more coupled, less cohesive and has more weighted methods per class as compared to class in Figure1(a). Figure 1(c) depicts an extreme case where the class is highly coupled, completely lacks cohesion and has more weighted methods per class. B. Evolutionary Software Visualization: The Evolution Matrix This technique aims at providing historical evolution of the software. This undoubtedly helps a lot in maintenance and support of large software systems. Many people have researched on getting knowledge about the evolution of software system. Evolution matrix helps understanding code by depicting evolution of classes within object-oriented software systems and the evolution of the systems themselves [2]. Further it acts a revealer of certain specific situations that occur during system evolution such as pulsating classes that grow and shrink during the lifetime of the system. With the evolution matrix view we want to achieve the following evolutionary reverse engineering goals: Understand the evolution of object-oriented software systems in terms of size and growth rate. Understand at which point in time classes have been introduced into a system and at which moment they have been removed. See if there are patterns in the evolution of classes. Such patterns help to understand the condition of a class in a time perspective, e.g., how resistant to software evolution processes is a class, is it changed with every release of a system, or are there classes which are virtually immune to software evolution? Figure 1(a) Figure 1(b) Figure 1(c) Figure 2(a) System level evolution aspects using the Evolution Matrix. 2

3 Figure 2(a) shows evolution matrix that displays the evolution of the classes of a software system. It has the following properties: Each column of the matrix represents a version of the software. Each row represents the different versions of the same class. Two classes in two different versions are considered the same if they have the same name. Within the columns the classes are sorted alphabetically in case they appear for the first time in the system. Otherwise they are placed at the same vertical position as their predecessors. This order is important because it allows one to represent the continuous flow of development of existing classes and stresses the development of new ones. In Figure 2(b) below we can see the evolution matrix of MooseFinder. We see that the first version on the left has a small number of classes and that of those only few survived until the last version, i.e., are Persistent classes. We can also see there have been two major leaps and one long phase of stabilization. Note that the second leap is in fact a case of massive class renaming: many classes have been removed in the previous version and appear as added classes in the next version. There is also a version with a few Dayfly classes. The classes themselves rarely change in size except the class annotated as a renamed Pulsar class, which at first sight seems to be one of the central classes in the system. C. Coarse Grained AgeMap When visualizing the code of a software system it is helpful to know that which portions evolved later and which were the part of the original implementation.coarse Grained Agemap is aimed getting started with evolution analysis of the code [5]. It basically intended to get the overall feel of the system how it evolved and how it was changed through the course of time. Figure 3 shows the coarse grained age map for ArgoUML. The newly born classes are shown in yellow where as the older one as shown in dark blue color. So it a glance we can have an idea of how and when system evolved looking back in time. The main shortcoming of the AgeMap is that it is showing the current visualization, however, for fully comprehending the process evolution it is necessary to travel in time as the system evolved and for that we would need a lot intermediary visualizations of the age map instead of only having one visualization. D. System Complexity View. Class Hierarchy Diagrams are preferred way of getting a quick glance of how the system is designed. This view not only gives the hierarchy view but also additionally provides a view of attributes,methods and line of codes which further enhance the analysis of large software system. It is thus named as System Complexity View providing an insight about the complexity of the system. It is a polymetric view that shows the classes of the system, organized in inheritance hierarchies[6]. Each class is represented by a node: width = the number of attributes of the class height = the number of methods of the class color = the number of lines of code of the class Figure 4 shows a system complexity view diagram. In diagram each class is represented by a node. The dark colored classes show more lines of code where as the light colored classes are have less lines of code. Similarly the classes with more height have more methods then the one having short height. Wider classes are the one having more attributes. E. Distribution Map The Distribution Map is an eclectic approach that combines an intuitive visualization and straightforward metrics into a generic and easy-to-use tool[4]. This combination makes the Distribution Map an effective starting point to reason about the results of automated algorithms, and should as such belong to any reverse engineering toolkit. Figure 4 shows a distribution map each color depicts different kind of class. Table 1 what different color shows the characteristics each color depicts. For example orange color in lower right corner shows the classes have same property. 3

4 . Figure 2(b): The Evolution Matrix of MooseFinder Figure 3 Coarse Grained Age Map for ArgoUML Figure 4 System Complexity Diagram 4

5 Figure 5 Distribution Map Table 1: Color coding for distribution map Figure 6 Fine Grained AgeMap 5

6 F. Fine Grained Agemap This is finer and in depth view of the system. It addresses the problem of viewing the evolution of classes how they grew in size, methods and attributes over the period of time. This technique highlights the class which has been incremented or changed over the years as against the class created in one shot. This is because the class created in one shot would tend to be more robust and loosely coupled as against the one which has to be altered over the time. This is because if class highly coupled then with every change it would also require a change in itself. In Figure 6 above the newly born methods are shown in yellow so all those classes having the yellow spots in them are the one which are highly coupled and one with blue are loosely coupled. Further the incremented parts in the classes are shown in yellow so this also shows the classes which have been altered more over the time. G. Class Blueprint a) Description: Class blueprint is very effective way of segmentation of the methods. It s give information about the role played by methods in the class. It distinguishes the core functionality methods, interfacing methods and methods only accessing variables of the classes. One the main aims in support of the old systems is to get to the core of the class which is addressed by this approach. It s a visual way of understating the classes. It is structured in layers that groups methods and attributes. The nodes that represent method and attributes are colored with respect to semantic representation. Sizes of nodes are corresponding to source code metrics information. Figure 7(a) shows the layered structure. Initialization Layer methods creates and initializes objects. Interface Layer Methods are the one interacting with other classes. Implementation Layer methods contain the core functionality of the class. Accessor Layer contains accessor methods i.e getters and setters for attributes. Lastly the Attribute Layer contains attributes. b) Class Blueprint Patterns Class blueprint vary with respect size, distribution layer and other factors. For our study we focused on size and distribution. Figure 7(b) describes a class with only one method. Its difficult to find such classes as they often represents a dead code. Figure 7(c) on the other hand represents a large class. It has implementation layers containing many nodes and probably would be having several sub-layers. Figure 7(a) Layered Structure Of Class Blueprint 6

7 Figure 7 (b) Class with one Method. Figure 7 (c ) Large Implementation 7

8 III. CASE STUDY A. Description JHotDraw 7 is a Java framework for structured drawing editors and for document-oriented applications. The framework for structured drawing editors can be used to realize drawing editors for sketches, diagrams, and artistic drawings. Drawings can be animated and interactive. It is possible to back a drawing with a data model, allowing a structured drawing editor to be used as a user interface for a data mode B. System Complexity View We generated System Complexity View for draw module of JHotDraw7 as shown in Figure 8(a). We have five classes which have more lines code shown by their dark grey color and these are the ones which have most number of methods. Inheritance hierarchy is also visible in the diagram below. However, there are many small spots in the diagram which shows short classes and they are the end nodes of the tree so these are the one which are loosely coupled Figure 8(a) System Complexity View Figure 8(b) 3 D Box view 8

9 C. Merging Boxes & Classes Second view generated for JHotDraw7 was using VERSO tool which is shown in the Figure 8 (b) below. The figure shows the Boxes view based on the three matrix that are WMC, CBO and LCOM5. In the Figure we can see that all the modules have twist which shows that they are lacking cohesion.. However the good thing we observe is about the blue color boxes in the shows that most of the application is tightly coupled. The two purple boxes the show that they are loosely coupled and size clearly depicts that these are the classes with more number of methods. Further they are twisted which indicates that they lack cohesion as well. accessor and last one are the attributes of the class. We can see that it has a long list of methods having interface. As it seems to be parent of some classes and children must be implementing the interface methods. Cyan color link are the links between interface methods and attributes where as dark blue color links are showing calls from interface methods to accessor and implementation methods. D. Code City Figure 8 (c) shows a code city for the JhotDraw7. In the figure, Classes are represented by orange blocks at the bottom of the yellow pillars which indicated that methods in the class. We have represented method in yellow as we need to see that which classes are having more methods. Packages are colored in purple Figure 8(d) Class Blueprint of AbstractCompositeFigure F. Comparison Figure 8(c) Fine Grained Code City For JhotDraw. E. Class Blueprint Visualization Figure 8 (d) shows a class blue print of the AbstractCompositeFigure class in JhotDraw7. We can see four layers in this with first from the left are interface methods, second is implementation, third a) Lack of Cohesion which is evident the 3D Box view is not evident from the System Complexity View. As system complexity view does shows the more line of codes but that doesn t always mean that it would have less cohesive as well. However we can t see cohesion in the code city view. Well this is a major short coming in code city view as given the fine grained visualization we should have this included in the view. Class blueprint can t effectively show lack of cohesion as it only focuses on the inside calls of the class.while visualizing code if we upfront know 9

10 the classes that lack cohesion we would have an idea that these classes may require change and attention. b) Inheritance Hierarchy which is presented by System Complexity View is not evident from 3D Box View. Inheritance is important aspect which must be shown in every visualization. So in this case second view lacks the inheritance structure. Code City also doesn t provide a view for inheritance. Class blueprint also does shows the inheritance hierarchy.this is one other aspect that is fundamental while refactoring the software code. If we know the inheritance hierarchies, we can easily know that change in parent would affect the child and so on. c) Number of Methods is measure which is present in all of the views. Class Blueprint in this case really helps by not only providing number of the methods but also their interacting with in the systems. According my own experience only number of methods doesn t help a lot in refactoring the code or understanding the software. A utility class may have a lot of methods but that really doesn t help in understanding the overall flow of the use case. d) Coupling is a measure which is present in System Complexity and 3D Box View however, in case of System Complexity view it is not that evident however 3D Box gives a straightforward view of that. Code city however doesn t provide any information on coupling. If you know that a class is loosely coupled you know that you should be very careful altering anything in the class as it would be referenced at a lot many places. e) Sytem Flow is one very vital point which is only covered by class blueprint view. This is another factor which helps a lot in the understanding the code and refactoring the code. f) Design Pattern is not addressed by any of the views. For instance an application is designed using the MVC pattern. None of the views so far discussed gives the view according to design pattern. This is future work that tool may be developed to address that part. g) Scattered Code is not pointed by any of the approach. Sometime it so happens that core class is having functionality which may not be related to it. For example a class implementing a grading functionality which requires some basic computations like rounding off the results. If the rounding off functionality is also implemented with the main algorithm it s not a good design. Such rounding off should be handled in utility classes. h) Method Segmentation for a class really helps to comprehend the functionality. If we can easily IV. see that which functions are implementing the core functionality we are half way ahead in comprehending the code. Class blueprint provides an excellent visualization in this case. CONCLUSION & FUTURE WORK We have presented in this paper most common code visualization techniques which have been used in past. We have also studied three different tools namely Moose, Code City and Metric Visualization. The study also includes MSE File generation for Moose. Further there is a lot of other views that can be generated by further scripting in moose. One of the future works is to get more insight on the moose scripting and generate other valuable views. Metric Visualization Tool effectively displays graphical representation into 3D Box. The features of the box explicitly depict the metrics result which at a glance gives the idea of the code. However, there is a lot more to do in this dimension. V. ACKNOWLEDGMENT VI. We would like to pay gratitude to Dr. Usman Bhatti, National University of Computer and Emerging Sciences, Lahore, Pakistan for his valuable insight and ideas, for his guidance in every phase of our study and helping us out whenever we were wedged with problems. REFERENCES [1] Langelier, G., Sahraoui, H., and Poulin, P. Visualizationbased analysis of quality for large-scale software systems. In Proceedings of the 20th IEEE/ACM international Conference on Automated Software Engineering ACM, New York, NY, [2] Michele Lanza. Object-Oriented Reverse Engineering, University of Bern, Switzerland, [3] Alexandre Bergel.Mondrian Manual Tutorial for Moose. [4] Ducasse, S., Girba, T., and Kuhn, A. Distribution Map. In Proceedings of the 22nd IEEE international Conference on SoftwareMaintenance (September 24-27, 2006). ICSM. IEEE Computer Society, Washington, DC, [5] Wettel, R. and Lanza, M. CodeCity: 3D visualization of large-scale software. In Companion of the 30th international Conference on Software Engineering ICSE Companion '08. ACM, New York, NY, [6] Lanza, M. and Ducasse, S. Polymetric Views-A Lightweight Visual Approach to Reverse Engineering. IEEE Trans. Softw. Eng. 29, 9 (Sep. 2003), [7] Fenton, N. E. and Neil, M. Software metrics: roadmap. In Proceedings of the Conference on the Future of Software Engineering (Limerick, Ireland, June 04-11, 2000). ICSE '00. ACM, New York, NY,

11 11 [8] Kent Beck and Cynthia Andres. Extreme Programming Explained: Embrace Change, Second Edition, Addison- Wesley.

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

BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs César Couto 1,2, Pedro Pires 1, Marco Túlio Valente 1, Roberto S. Bigonha 1, Andre Hora 3, Nicolas Anquetil 3 1 Department

More information

Visualization of Software Metrics Marlena Compton Software Metrics SWE 6763 April 22, 2009

Visualization of Software Metrics Marlena Compton Software Metrics SWE 6763 April 22, 2009 Visualization of Software Metrics Marlena Compton Software Metrics SWE 6763 April 22, 2009 Abstract Visualizations are increasingly used to assess the quality of source code. One of the most well developed

More information

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

CodeCrawler An Extensible and Language Independent 2D and 3D Software Visualization Tool CodeCrawler An Extensible and Language Independent 2D and 3D Software Visualization Tool Michele Lanza Software Engineering Group Department of Informatics University of Zurich, Switzerland Stéphane Ducasse

More information

Comprensione del software - principi base e pratica reale 5

Comprensione del software - principi base e pratica reale 5 Prologue C era una volta Comprensione del software - principi base e pratica reale Reverse engineer 1 200 000 lines of C++ code in ca. 2300 classes * 2 = 2 400 000 seconds / 3600 = 667 hours 667 hours

More information

Génie Logiciel et Gestion de Projets. Evolution

Génie Logiciel et Gestion de Projets. Evolution Génie Logiciel et Gestion de Projets Evolution 1 Roadmap Evolution: definitions Re-engineering Legacy systems Reverse engineering Software Visualisation Re-engineering Patterns 2 Evolution: Definitions

More information

Software Bugs and Evolution: A Visual Approach to Uncover Their Relationship

Software Bugs and Evolution: A Visual Approach to Uncover Their Relationship Software Bugs and Evolution: A Visual Approach to Uncover Their Relationship Marco D Ambros and Michele Lanza Faculty of Informatics University of Lugano, Switzerland Abstract Versioning systems such as

More information

The Class Blueprint A Visualization of the Internal Structure of Classes

The Class Blueprint A Visualization of the Internal Structure of Classes The Class Blueprint A Visualization of the Internal Structure of Classes Michele Lanza Software Composition Group University Of Bern Bern, Switzerland lanza@iam.unibe.ch Stéphane Ducasse Software Composition

More information

Software Engineering & Architecture

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

More information

EvoSpaces: 3D Visualization of Software Architecture

EvoSpaces: 3D Visualization of Software Architecture EvoSpaces: 3D Visualization of Software Architecture Sazzadul Alam, Philippe Dugerdil HEG - Univ. of Applied Sciences, Geneva, Switzerland Sazzadul.Alam@hesge.ch, Philippe.Dugerdil@hesge.ch Abstract This

More information

Software Analysis Visualization

Software Analysis Visualization 28th International Conference on Software Engineering Software Analysis Visualization Harald Gall and Michele Lanza !oftware Visualiza"o# Tutorial F7 Software Evolution: Analysis and Visualization 2006

More information

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

BugMaps-Granger: a tool for visualizing and predicting bugs using Granger causality tests Couto et al. Journal of Software Engineering Research and Development 2014, 2:1 SOFTWARE Open Access BugMaps-Granger: a tool for visualizing and predicting bugs using Granger causality tests Cesar Couto

More information

II. TYPES OF LEVEL A.

II. TYPES OF LEVEL A. Study and Evaluation for Quality Improvement of Object Oriented System at Various Layers of Object Oriented Matrices N. A. Nemade 1, D. D. Patil 2, N. V. Ingale 3 Assist. Prof. SSGBCOET Bhusawal 1, H.O.D.

More information

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

Component visualization methods for large legacy software in C/C++ Annales Mathematicae et Informaticae 44 (2015) pp. 23 33 http://ami.ektf.hu Component visualization methods for large legacy software in C/C++ Máté Cserép a, Dániel Krupp b a Eötvös Loránd University mcserep@caesar.elte.hu

More information

VISUALIZATION APPROACH FOR SOFTWARE PROJECTS

VISUALIZATION APPROACH FOR SOFTWARE PROJECTS Canadian Journal of Pure and Applied Sciences Vol. 9, No. 2, pp. 3431-3439, June 2015 Online ISSN: 1920-3853; Print ISSN: 1715-9997 Available online at www.cjpas.net VISUALIZATION APPROACH FOR SOFTWARE

More information

Automatic software measurement data collection for students

Automatic software measurement data collection for students Automatic software measurement data collection for students 1. Automatic software measurement within a software engineering class Software is invisible and complex, so it is difficult to understand the

More information

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

EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS Umamaheswari E. 1, N. Bhalaji 2 and D. K. Ghosh 3 1 SCSE, VIT Chennai Campus, Chennai, India 2 SSN College of

More information

Baseline Code Analysis Using McCabe IQ

Baseline Code Analysis Using McCabe IQ White Paper Table of Contents What is Baseline Code Analysis?.....2 Importance of Baseline Code Analysis...2 The Objectives of Baseline Code Analysis...4 Best Practices for Baseline Code Analysis...4 Challenges

More information

Software visualization. Why visualization?

Software visualization. Why visualization? Software visualization Tudor Gîrba www.tudorgirba.com Software Visualization is the use of typography, graphic design, animation, and cinematography with human-computer interaction and computer graphics

More information

How To Calculate Class Cohesion

How To Calculate Class Cohesion Improving Applicability of Cohesion Metrics Including Inheritance Jaspreet Kaur 1, Rupinder Kaur 2 1 Department of Computer Science and Engineering, LPU, Phagwara, INDIA 1 Assistant Professor Department

More information

Software Visualization and Model Generation

Software Visualization and Model Generation Software Visualization and Model Generation Erik Doernenburg Software Developer ThoughtWorks, Inc. Gregor Hohpe Software Engineer Google, Inc. Where are the most defects? 2006 Erik Doernenburg & Gregor

More information

A Practical Approach to Software Quality Management visualization

A Practical Approach to Software Quality Management visualization Visualization-based Analysis of Quality for Large-scale Software Systems Guillaume Langelier Houari Sahraoui Pierre Poulin DIRO, Université de Montréal Montréal, QC Canada ABSTRACT We propose an approach

More information

Program Understanding in Software Engineering

Program Understanding in Software Engineering Taming the complexity: The need for program understanding in software engineering Raghvinder S. Sangwan, Ph.D. Pennsylvania State University, Great Valley School of Graduate Professional Studies Robert

More information

IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS

IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS Edwin Hautus Compuware Europe P.O. Box 12933 The Netherlands edwin.hautus@nl.compuware.com Abstract Packages are an important mechanism to decompose

More information

Exploiting Dynamic Information in IDEs Eases Software Maintenance

Exploiting Dynamic Information in IDEs Eases Software Maintenance Exploiting Dynamic Information in IDEs Eases Software Maintenance David Röthlisberger Software Composition Group, University of Bern, Switzerland roethlis@iam.unibe.ch Abstract The integrated development

More information

The Use of Information Visualization to Support Software Configuration Management *

The Use of Information Visualization to Support Software Configuration Management * The Use of Information Visualization to Support Software Configuration Management * Roberto Therón 1, Antonio González 1, Francisco J. García 1, Pablo Santos 2 1 Departamento de Informática y Automática,

More information

DAHLIA: A Visual Analyzer of Database Schema Evolution

DAHLIA: A Visual Analyzer of Database Schema Evolution DAHLIA: A Visual Analyzer of Database Schema Evolution Loup Meurice and Anthony Cleve PReCISE Research Center, University of Namur, Belgium {loup.meurice,anthony.cleve}@unamur.be Abstract In a continuously

More information

Big Data: Rethinking Text Visualization

Big Data: Rethinking Text Visualization Big Data: Rethinking Text Visualization Dr. Anton Heijs anton.heijs@treparel.com Treparel April 8, 2013 Abstract In this white paper we discuss text visualization approaches and how these are important

More information

Exploring the Evolution of Software Quality with Animated Visualization 0

Exploring the Evolution of Software Quality with Animated Visualization 0 Exploring the Evolution of Software Quality with Animated Visualization 0 Guillaume Langelier Houari Sahraoui Pierre Poulin Université de Montréal Abstract Assessing software quality and understanding

More information

A Visualization Approach for Bug Reports in Software Systems

A Visualization Approach for Bug Reports in Software Systems , pp. 37-46 http://dx.doi.org/10.14257/ijseia.2014.8.10.04 A Visualization Approach for Bug Reports in Software Systems Maen Hammad 1, Somia Abufakher 2 and Mustafa Hammad 3 1, 2 Department of Software

More information

JRefleX: Towards Supporting Small Student Software Teams

JRefleX: Towards Supporting Small Student Software Teams JRefleX: Towards Supporting Small Student Software Teams Kenny Wong, Warren Blanchet, Ying Liu, Curtis Schofield, Eleni Stroulia, Zhenchang Xing Department of Computing Science University of Alberta {kenw,blanchet,yingl,schofiel,stroulia,xing}@cs.ualberta.ca

More information

Chapter 8 Approaches to System Development

Chapter 8 Approaches to System Development Systems Analysis and Design in a Changing World, sixth edition 8-1 Chapter 8 Approaches to System Development Table of Contents Chapter Overview Learning Objectives Notes on Opening Case and EOC Cases

More information

Using Library Dependencies for Clustering

Using Library Dependencies for Clustering Using Library Dependencies for Clustering Jochen Quante Software Engineering Group, FB03 Informatik, Universität Bremen quante@informatik.uni-bremen.de Abstract: Software clustering is an established approach

More information

Visualization methods for patent data

Visualization methods for patent data Visualization methods for patent data Treparel 2013 Dr. Anton Heijs (CTO & Founder) Delft, The Netherlands Introduction Treparel can provide advanced visualizations for patent data. This document describes

More information

VISUALIZATION. Improving the Computer Forensic Analysis Process through

VISUALIZATION. Improving the Computer Forensic Analysis Process through By SHELDON TEERLINK and ROBERT F. ERBACHER Improving the Computer Forensic Analysis Process through VISUALIZATION The ability to display mountains of data in a graphical manner significantly enhances the

More information

sql-schema-comparer: Support of Multi-Language Refactoring with Relational Databases

sql-schema-comparer: Support of Multi-Language Refactoring with Relational Databases sql-schema-comparer: Support of Multi-Language Refactoring with Relational Databases Hagen Schink Institute of Technical and Business Information Systems Otto-von-Guericke-University Magdeburg, Germany

More information

Customer Analytics. Turn Big Data into Big Value

Customer Analytics. Turn Big Data into Big Value Turn Big Data into Big Value All Your Data Integrated in Just One Place BIRT Analytics lets you capture the value of Big Data that speeds right by most enterprises. It analyzes massive volumes of data

More information

Modeling the User Interface of Web Applications with UML

Modeling the User Interface of Web Applications with UML Modeling the User Interface of Web Applications with UML Rolf Hennicker,Nora Koch,2 Institute of Computer Science Ludwig-Maximilians-University Munich Oettingenstr. 67 80538 München, Germany {kochn,hennicke}@informatik.uni-muenchen.de

More information

Parsing Technology and its role in Legacy Modernization. A Metaware White Paper

Parsing Technology and its role in Legacy Modernization. A Metaware White Paper Parsing Technology and its role in Legacy Modernization A Metaware White Paper 1 INTRODUCTION In the two last decades there has been an explosion of interest in software tools that can automate key tasks

More information

OrionPlanning: Improving Modularization and Checking Consistency on Software Architecture

OrionPlanning: Improving Modularization and Checking Consistency on Software Architecture OrionPlanning: Improving Modularization and Checking Consistency on Software Architecture Gustavo Santos, Nicolas Anquetil, Anne Etien, and Stéphane Ducasse RMoD Team INRIA, Lille, France {firstname.lastname}@inria.fr

More information

Coordinated Visualization of Aspect-Oriented Programs

Coordinated Visualization of Aspect-Oriented Programs Coordinated Visualization of Aspect-Oriented Programs Álvaro F. d Arce 1, Rogério E. Garcia 1, Ronaldo C. M. Correia 1 1 Faculdade de Ciências e Tecnologia Universidade Estadual Paulista Júlio de Mesquita

More information

An Interactive Visualization Tool for the Analysis of Multi-Objective Embedded Systems Design Space Exploration

An Interactive Visualization Tool for the Analysis of Multi-Objective Embedded Systems Design Space Exploration An Interactive Visualization Tool for the Analysis of Multi-Objective Embedded Systems Design Space Exploration Toktam Taghavi, Andy D. Pimentel Computer Systems Architecture Group, Informatics Institute

More information

An Approach for Extracting Modules from Monolithic Software Architectures

An Approach for Extracting Modules from Monolithic Software Architectures An Approach for Extracting Modules from Monolithic Software Architectures Ricardo Terra, Marco Túlio Valente, Roberto S. Bigonha Universidade Federal de Minas Gerais, Brazil {terra,mtov,bigonha@dcc.ufmg.br

More information

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

Percerons: A web-service suite that enhance software development process 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

More information

VISUALIZATION TECHNIQUES OF COMPONENTS FOR LARGE LEGACY C/C++ SOFTWARE

VISUALIZATION TECHNIQUES OF COMPONENTS FOR LARGE LEGACY C/C++ SOFTWARE STUDIA UNIV. BABEŞ BOLYAI, INFORMATICA, Volume LIX, Special Issue 1, 2014 10th Joint Conference on Mathematics and Computer Science, Cluj-Napoca, May 21-25, 2014 VISUALIZATION TECHNIQUES OF COMPONENTS

More information

Analyzing Java Software by Combining Metrics and Program Visualization

Analyzing Java Software by Combining Metrics and Program Visualization Analyzing Java Software by Combining Metrics and Program Visualization Tarja Systä Software Systems Laboratory Tampere University of Technology P.O. Box 553, FIN-33101 Tampere, Finland tsysta@cs.tut.fi

More information

What Questions Developers Ask During Software Evolution? An Academic Perspective

What Questions Developers Ask During Software Evolution? An Academic Perspective What Questions Developers Ask During Software Evolution? An Academic Perspective Renato Novais 1, Creidiane Brito 1, Manoel Mendonça 2 1 Federal Institute of Bahia, Salvador BA Brazil 2 Fraunhofer Project

More information

Treemaps for Search-Tree Visualization

Treemaps for Search-Tree Visualization Treemaps for Search-Tree Visualization Rémi Coulom July, 2002 Abstract Large Alpha-Beta search trees generated by game-playing programs are hard to represent graphically. This paper describes how treemaps

More information

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

International Journal of Software Engineering and Knowledge Engineering c World Scientific Publishing Company International Journal of Software Engineering and Knowledge Engineering c World Scientific Publishing Company Rapid Construction of Software Comprehension Tools WELF LÖWE Software Technology Group, MSI,

More information

MicroStrategy Analytics Express User Guide

MicroStrategy Analytics Express User Guide MicroStrategy Analytics Express User Guide Analyzing Data with MicroStrategy Analytics Express Version: 4.0 Document Number: 09770040 CONTENTS 1. Getting Started with MicroStrategy Analytics Express Introduction...

More information

Presented by Peiqun (Anthony) Yu

Presented by Peiqun (Anthony) Yu Presented by Peiqun (Anthony) Yu A Multi-Scale, Multi-Layer, Translucent Virtual Space Henry Lieberman, IEEE International Conference on Information Visualization, London, September 1997. Constant Information

More information

<no narration for this slide>

<no narration for this slide> 1 2 The standard narration text is : After completing this lesson, you will be able to: < > SAP Visual Intelligence is our latest innovation

More information

1-04-10 Configuration Management: An Object-Based Method Barbara Dumas

1-04-10 Configuration Management: An Object-Based Method Barbara Dumas 1-04-10 Configuration Management: An Object-Based Method Barbara Dumas Payoff Configuration management (CM) helps an organization maintain an inventory of its software assets. In traditional CM systems,

More information

Guide for Data Visualization and Analysis using ACSN

Guide for Data Visualization and Analysis using ACSN Guide for Data Visualization and Analysis using ACSN ACSN contains the NaviCell tool box, the intuitive and user- friendly environment for data visualization and analysis. The tool is accessible from the

More information

Business Modeling with UML

Business Modeling with UML Business Modeling with UML Hans-Erik Eriksson and Magnus Penker, Open Training Hans-Erik In order to keep up and be competitive, all companies Ericsson is and enterprises must assess the quality of their

More information

Visionet IT Modernization Empowering Change

Visionet IT Modernization Empowering Change Visionet IT Modernization A Visionet Systems White Paper September 2009 Visionet Systems Inc. 3 Cedar Brook Dr. Cranbury, NJ 08512 Tel: 609 360-0501 Table of Contents 1 Executive Summary... 4 2 Introduction...

More information

Human-Readable BPMN Diagrams

Human-Readable BPMN Diagrams Human-Readable BPMN Diagrams Refactoring OMG s E-Mail Voting Example Thomas Allweyer V 1.1 1 The E-Mail Voting Process Model The Object Management Group (OMG) has published a useful non-normative document

More information

Visualization of bioinformatics workflows for ease of understanding and design activities

Visualization of bioinformatics workflows for ease of understanding and design activities Visualization of bioinformatics workflows for ease of understanding and design activities H.V. Byelas and M.A.Swertz Genomics Coordination Center, Department of Genetics, University Medical Center Groningen,

More information

Francisco J. Garcia COMBINED VISUALIZATION OF STRUCTURAL AND ANALYSIS

Francisco J. Garcia COMBINED VISUALIZATION OF STRUCTURAL AND ANALYSIS Antonio Gonzalez, Roberto Theron, AlexandruTeleaand Francisco J. Garcia COMBINED VISUALIZATION OF STRUCTURAL AND METRIC INFORMATION FOR SOFTWARE EVOLUTION ANALYSIS Combined Visualization of Structural

More information

RADFORD UNIVERSITY. Radford.edu. Content Administrator s Guide

RADFORD UNIVERSITY. Radford.edu. Content Administrator s Guide RADFORD UNIVERSITY Radford.edu Content Administrator s Guide Contents Getting Started... 2 Accessing Content Administration Tools... 2 Logging In... 2... 2 Getting Around... 2 Logging Out... 3 Adding and

More information

Aspect Mining in Procedural Object-Oriented Code

Aspect Mining in Procedural Object-Oriented Code Aspect Mining in Procedural Object-Oriented Code Muhammad Usman BHATTI 1 Stéphane DUCASSE 2 Awais RASHID 3 1 CRI, Université de Paris 1 Sorbonne, France 2 INRIA - Lille Nord Europe, France 3 Computing

More information

SCADE System 17.0. Technical Data Sheet. System Requirements Analysis. Technical Data Sheet SCADE System 17.0 1

SCADE System 17.0. Technical Data Sheet. System Requirements Analysis. Technical Data Sheet SCADE System 17.0 1 SCADE System 17.0 SCADE System is the product line of the ANSYS Embedded software family of products and solutions that empowers users with a systems design environment for use on systems with high dependability

More information

A Software and Hardware Architecture for a Modular, Portable, Extensible Reliability. Availability and Serviceability System

A Software and Hardware Architecture for a Modular, Portable, Extensible Reliability. Availability and Serviceability System 1 A Software and Hardware Architecture for a Modular, Portable, Extensible Reliability Availability and Serviceability System James H. Laros III, Sandia National Laboratories (USA) [1] Abstract This paper

More information

FIVE STEPS FOR DELIVERING SELF-SERVICE BUSINESS INTELLIGENCE TO EVERYONE CONTENTS

FIVE STEPS FOR DELIVERING SELF-SERVICE BUSINESS INTELLIGENCE TO EVERYONE CONTENTS FIVE STEPS FOR DELIVERING SELF-SERVICE BUSINESS INTELLIGENCE TO EVERYONE Wayne Eckerson CONTENTS Know Your Business Users Create a Taxonomy of Information Requirements Map Users to Requirements Map User

More information

Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102

Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102 Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102 Interneer, Inc. Updated on 2/22/2012 Created by Erika Keresztyen Fahey 2 Workflow - A102 - Basic HelpDesk Ticketing System

More information

MassArt Studio Foundation: Visual Language Digital Media Cookbook, Fall 2013

MassArt Studio Foundation: Visual Language Digital Media Cookbook, Fall 2013 INPUT OUTPUT 08 / IMAGE QUALITY & VIEWING In this section we will cover common image file formats you are likely to come across and examine image quality in terms of resolution and bit depth. We will cover

More information

Content Management Implementation Guide 5.3 SP1

Content Management Implementation Guide 5.3 SP1 SDL Tridion R5 Content Management Implementation Guide 5.3 SP1 Read this document to implement and learn about the following Content Manager features: Publications Blueprint Publication structure Users

More information

Object Oriented Databases. OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar

Object Oriented Databases. OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar Object Oriented Databases OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar Executive Summary The presentation on Object Oriented Databases gives a basic introduction to the concepts governing OODBs

More information

Eclipse 3.5 - A Case Study in Software Visualization Based on Static Analysis

Eclipse 3.5 - A Case Study in Software Visualization Based on Static Analysis MetricAttitude: A Visualization Tool for the Reverse Engineering of Object Oriented Software ABSTRACT Michele Risi Dipartimento di Matematica e Informatica Università di Salerno Fisciano, Italy mrisi@unisa.it

More information

Working with Data from External Sources

Working with Data from External Sources Working with Data from External Sources Bentley WaterCAD V8i supports several methods of exchanging data with external applications, preventing duplication of effort and allowing you to save time by reusing

More information

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

Chapter 24 - Quality Management. Lecture 1. Chapter 24 Quality management Chapter 24 - Quality Management Lecture 1 1 Topics covered Software quality Software standards Reviews and inspections Software measurement and metrics 2 Software quality management Concerned with ensuring

More information

Analizo: an Extensible Multi-Language Source Code Analysis and Visualization Toolkit

Analizo: an Extensible Multi-Language Source Code Analysis and Visualization Toolkit Analizo: an Extensible Multi-Language Source Code Analysis and Visualization Toolkit Antonio Terceiro 1, Joenio Costa 2, João Miranda 3, Paulo Meirelles 3, Luiz Romário Rios 1, Lucianna Almeida 3, Christina

More information

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

Definitions. Software Metrics. Why Measure Software? Example Metrics. Software Engineering. Determine quality of the current product or process Definitions Software Metrics Software Engineering Measure - quantitative indication of extent, amount, dimension, capacity, or size of some attribute of a product or process. Number of errors Metric -

More information

Self-adaptive e-learning Website for Mathematics

Self-adaptive e-learning Website for Mathematics Self-adaptive e-learning Website for Mathematics Akira Nakamura Abstract Keyword searching and browsing on learning website is ultimate self-adaptive learning. Our e-learning website KIT Mathematics Navigation

More information

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

Hierarchical Data Visualization. Ai Nakatani IAT 814 February 21, 2007 Hierarchical Data Visualization Ai Nakatani IAT 814 February 21, 2007 Introduction Hierarchical Data Directory structure Genealogy trees Biological taxonomy Business structure Project structure Challenges

More information

Final Software Tools and Services for Traders

Final Software Tools and Services for Traders Final Software Tools and Services for Traders TPO and Volume Profile Chart for NinjaTrader Trial Period The software gives you a 7-day free evaluation period starting after loading and first running the

More information

Kyubit Business Intelligence OLAP analysis - User Manual

Kyubit Business Intelligence OLAP analysis - User Manual Using OLAP analysis features of Kyubit Business Intelligence www.kyubit.com Kyubit Business Intelligence OLAP analysis - User Manual Using OLAP analysis features of Kyubit Business Intelligence 2016, All

More information

OOT Interface Viewer. Star

OOT Interface Viewer. Star Tool Support for Software Engineering Education Spiros Mancoridis, Richard C. Holt, Michael W. Godfrey Department of Computer Science University oftoronto 10 King's College Road Toronto, Ontario M5S 1A4

More information

Requirements engineering

Requirements engineering Learning Unit 2 Requirements engineering Contents Introduction............................................... 21 2.1 Important concepts........................................ 21 2.1.1 Stakeholders and

More information

Visualizing Software Architecture Evolution using Change-sets

Visualizing Software Architecture Evolution using Change-sets Visualizing Software Architecture Evolution using Change-sets Andrew McNair, Daniel M. German, and Jens Weber-Jahnke Computer Science Department University of Victoria Victoria, Canada {amcnair,dmg,jens}@cs.uvic.ca

More information

Aspect-Oriented Programming

Aspect-Oriented Programming Aspect-Oriented Programming An Introduction to Aspect-Oriented Programming and AspectJ Niklas Påhlsson Department of Technology University of Kalmar S 391 82 Kalmar SWEDEN Topic Report for Software Engineering

More information

The Project Matrix: A Model for Software Engineering Project Management

The Project Matrix: A Model for Software Engineering Project Management The Project Matrix: A Model for Software Engineering Project Management Sally Shlaer Diana Grand Stephen J. Mellor Project Technology, Inc. 10940 Bigge Street San Leandro, California 94577-1123 510 567-0255

More information

ITERATIVE DEVELOPMENT: KEY TECHNIQUE FOR MANAGING SOFTWARE DEVELOPMENTS. Dwayne Read Strategic Systems (WA) Pty Ltd dwayne@ss.com.

ITERATIVE DEVELOPMENT: KEY TECHNIQUE FOR MANAGING SOFTWARE DEVELOPMENTS. Dwayne Read Strategic Systems (WA) Pty Ltd dwayne@ss.com. ITERATIVE DEVELOPMENT: KEY TECHNIQUE FOR MANAGING SOFTWARE DEVELOPMENTS Dwayne Read Strategic Systems (WA) Pty Ltd dwayne@ss.com.au Abstract Iterative development provides the fundamental structure that

More information

Software Service Engineering Architect s Dream or Developer s Nightmare?

Software Service Engineering Architect s Dream or Developer s Nightmare? Software Service Engineering Architect s Dream or Developer s Nightmare? Gregor Hohpe Google, 1600 Amphitheatre Parkway, Mountain View, CA 94043 gregor@hohpe.com Abstract. Architectural principles such

More information

Supporting Software Development Process Using Evolution Analysis : a Brief Survey

Supporting Software Development Process Using Evolution Analysis : a Brief Survey Supporting Software Development Process Using Evolution Analysis : a Brief Survey Samaneh Bayat Department of Computing Science, University of Alberta, Edmonton, Canada samaneh@ualberta.ca Abstract During

More information

Animated Visualization of Software History using Evolution Storyboards

Animated Visualization of Software History using Evolution Storyboards Animated Visualization of Software History using Evolution Storyboards Dirk Beyer EPFL, Switzerland Ahmed E. Hassan University of Victoria, Canada Abstract The understanding of the structure of a software

More information

SQLFlow: PL/SQL Multi-Diagrammatic Source Code Visualization

SQLFlow: PL/SQL Multi-Diagrammatic Source Code Visualization SQLFlow: PL/SQL Multi-Diagrammatic Source Code Visualization Samir Tartir Department of Computer Science University of Georgia Athens, Georgia 30602 USA Email: startir@uga.edu ABSTRACT: A major problem

More information

Understanding Cultural Variations of E-Commerce Websites in A Global Framework

Understanding Cultural Variations of E-Commerce Websites in A Global Framework Global Journal of Finance and Management. ISSN 0975-6477 Volume 6, Number 3 (2014), pp. 275-280 Research India Publications http://www.ripublication.com Understanding Cultural Variations of E-Commerce

More information

Software Refactoring using New Architecture of Java Design Patterns

Software Refactoring using New Architecture of Java Design Patterns Software Refactoring using New Architecture of Java Design Patterns Norddin Habti, Prashant 1, 1 Departement d informatique et de recherche operationnelle, Universite de Montreal, Quebec, Canada (Dated:

More information

Object Oriented Design

Object Oriented Design Object Oriented Design Kenneth M. Anderson Lecture 20 CSCI 5828: Foundations of Software Engineering OO Design 1 Object-Oriented Design Traditional procedural systems separate data and procedures, and

More information

A Capability Model for Business Analytics: Part 2 Assessing Analytic Capabilities

A Capability Model for Business Analytics: Part 2 Assessing Analytic Capabilities A Capability Model for Business Analytics: Part 2 Assessing Analytic Capabilities The first article of this series presented the capability model for business analytics that is illustrated in Figure One.

More information

Webropol 2.0 Manual. Updated 5.7.2012

Webropol 2.0 Manual. Updated 5.7.2012 Webropol 2.0 Manual Updated 5.7.2012 Contents 1. GLOSSARY... 2 1.1. Question types... 2 1.2. Software Glossary... 3 1.3. Survey Glossary... 3 1.4. Reporting Glossary... 5 1.5. MyWebropol Glossary... 5

More information

SimFonIA Animation Tools V1.0. SCA Extension SimFonIA Character Animator

SimFonIA Animation Tools V1.0. SCA Extension SimFonIA Character Animator SimFonIA Animation Tools V1.0 SCA Extension SimFonIA Character Animator Bring life to your lectures Move forward with industrial design Combine illustrations with your presentations Convey your ideas to

More information

White Coats: Web-Visualization of Evolving Software in 3D

White Coats: Web-Visualization of Evolving Software in 3D White Coats: Web-Visualization of Evolving Software in 3D Cédric Mesnage Département d informatique Université de Caen, France Michele Lanza Faculty of informatics University of Lugano, Switzerland Abstract

More information

Basic Trends of Modern Software Development

Basic Trends of Modern Software Development DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering

More information

FreeWave Launches FreeWave CommControl, the most sophisticated, Windows-based network management software available

FreeWave Launches FreeWave CommControl, the most sophisticated, Windows-based network management software available FreeWave Technologies, INC. 1880 South Flatiron Court Boulder, CO 80301 FreeWave Launches FreeWave CommControl, the most sophisticated, Windows-based network management software available FreeWave is launching

More information

Working with Excel in Origin

Working with Excel in Origin Working with Excel in Origin Limitations When Working with Excel in Origin To plot your workbook data in Origin, you must have Excel version 7 (Microsoft Office 95) or later installed on your computer

More information

Hierarchical Clustering Analysis

Hierarchical Clustering Analysis Hierarchical Clustering Analysis What is Hierarchical Clustering? Hierarchical clustering is used to group similar objects into clusters. In the beginning, each row and/or column is considered a cluster.

More information

Efficient Management of Tests and Defects in Variant-Rich Systems with pure::variants and IBM Rational ClearQuest

Efficient Management of Tests and Defects in Variant-Rich Systems with pure::variants and IBM Rational ClearQuest Efficient Management of Tests and Defects in Variant-Rich Systems with pure::variants and IBM Rational ClearQuest Publisher pure-systems GmbH Agnetenstrasse 14 39106 Magdeburg http://www.pure-systems.com

More information

Domain-Specific Modelling for Cross-Platform Product Families

Domain-Specific Modelling for Cross-Platform Product Families Domain-Specific Modelling for Cross-Platform Product Families Steven Kelly & Risto Pohjonen MetaCase Consulting, stevek@metacase.com, rise@metacase.com Abstract. Domain-specific modelling has proved its

More information

Towards Software Configuration Management for Test-Driven Development

Towards Software Configuration Management for Test-Driven Development Towards Software Configuration Management for Test-Driven Development Tammo Freese OFFIS, Escherweg 2, 26121 Oldenburg, Germany tammo.freese@offis.de Abstract. Test-Driven Development is a technique where

More information