Program Understanding with Code Visualization
|
|
|
- Christina Summers
- 10 years ago
- Views:
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 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
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
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
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 [email protected] Stéphane Ducasse Software Composition
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
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
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
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.
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 [email protected]
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
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
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
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
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
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
IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS
IMPROVING JAVA SOFTWARE THROUGH PACKAGE STRUCTURE ANALYSIS Edwin Hautus Compuware Europe P.O. Box 12933 The Netherlands [email protected] Abstract Packages are an important mechanism to decompose
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 [email protected] Abstract The integrated development
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,
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
Big Data: Rethinking Text Visualization
Big Data: Rethinking Text Visualization Dr. Anton Heijs [email protected] Treparel April 8, 2013 Abstract In this white paper we discuss text visualization approaches and how these are important
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
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
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
Using Library Dependencies for Clustering
Using Library Dependencies for Clustering Jochen Quante Software Engineering Group, FB03 Informatik, Universität Bremen [email protected] Abstract: Software clustering is an established approach
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
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
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
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
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
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
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
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
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 [email protected]
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
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
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,
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...
<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
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,
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
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
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...
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
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,
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
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
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
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
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
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
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
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
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
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
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
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
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 -
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
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
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
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
Requirements engineering
Learning Unit 2 Requirements engineering Contents Introduction............................................... 21 2.1 Important concepts........................................ 21 2.1.1 Stakeholders and
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
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
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 [email protected] Abstract. Architectural principles such
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 [email protected] Abstract During
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
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: [email protected] ABSTRACT: A major problem
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
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:
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
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.
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
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
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
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
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.
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
Domain-Specific Modelling for Cross-Platform Product Families
Domain-Specific Modelling for Cross-Platform Product Families Steven Kelly & Risto Pohjonen MetaCase Consulting, [email protected], [email protected] Abstract. Domain-specific modelling has proved its
Towards Software Configuration Management for Test-Driven Development
Towards Software Configuration Management for Test-Driven Development Tammo Freese OFFIS, Escherweg 2, 26121 Oldenburg, Germany [email protected] Abstract. Test-Driven Development is a technique where
