Eclipse A Case Study in Software Visualization Based on Static Analysis

Size: px
Start display at page:

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

Transcription

1 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 In this paper, we present a visualization approach for the reverse engineering of object-oriented (OO) software systems and its implementation in MetricAttitude, an Eclipse Rich Client Platform application. The goal of our proposal is to ease both the comprehension of a subject system and the identification of fault-prone classes. The approach graphically represents a suite of object-oriented design metrics (e.g., Weighted Methods per Class) and traditional codesize metrics (e.g., Lines Of Code). To assess the validity of MetricAttitude and its underlying approach, we have conducted a case study on the framework Eclipse 3.5. The study has provided indications about the tool scalability, interactivity, and completeness. The results also suggest that our proposal can be successfully used in the identification of fault-prone classes. Categories and Subject Descriptors H.5.2 [Information Interfaces and Presentation]: Graphical User Interface; I.3.6 [Computer Graphics]: Methodology and Techniques Interaction Techniques Keywords Program Comprehension, Reverse Engineering, Software Maintenance, Metrics, Software Visualization 1. INTRODUCTION Many activities in the software engineering field involve existing software. Software maintenance, testing, quality assurance, reuse, and integration are only few examples of software processes that involve existing systems [1]. A crucial issue of these processes entails the reverse engineering of these systems. The term reverse engineering has been defined in the context of software engineering as: the process of analyzing a subject system to (i) identify the system s components and their inter-relationships and (ii) create representations of the Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. AVI 12 May 21-25, 2012, Capri Island, Italy Copyright 2012 ACM /12/05...$ Giuseppe Scanniello Dipartimento di Matematica e Informatica Università della Basilicata Potenza, Italy giuseppe.scanniello@unibas.it system in another form or at a higher level of abstraction [2]. To summarize, this process entails the gathering of information in software artifacts (not only source code). On the basis of that information, a reverse engineering process builds more understandable representations of software artifacts. In the reverse engineering field, software visualization [3], [4] is extensively and successfully explored and used. Researchers have proposed approaches/techniques and supporting tools based on 2D and 3D environments [5], [6], [7], [8]. These approaches visualize either static information, performing static analysis (e.g., [9]), or dynamic information, relying on the execution of the system (e.g., [10]). Dynamic information is affected by the execution scenarios that should be as much as possible representative of the system s typical usage [11]. This concern is the weakness of visualization approaches based on dynamic analysis. Whatever is the information to be visualized, a relevant concern of visualization is the way information is presented. The choice of a proper visualization is straightforward, when a well known and highly adopted representation is used, e.g., the notations of the UML [12]. In other cases, a visualization is the essence of a technique because it has to highlight relevant information at a proper level of detail. The kind of representation adopted impacts on the usefulness of the technique [1]. In this paper 1, we present an approach for software visualization based on static analysis. The approach provides a mental picture by viewing an object oriented (OO) software system by means of polymetric views [9], i.e., lightweight software visualizations enriched with software metrics. The approach has been implemented in a prototype of a supporting tool, intended as an Eclipse Rich Client Platform (RCP). We named this prototype MetricAttitude. To assess the validity of both the approach and the prototype, we have conducted a case study on the framework Eclipse 3.5. The case study provided indications about the tool scalability, interactivity, and completeness. Further, to assess whether our proposal eases the identification of fault-prone classes, we have studied the visual representation of Eclipse 3.5 with respect to data associated with changes in response to bug reports in a public repository. The main contributions of the paper are: A visualization approach for the reverse engineering of OO software. It is based on OO metrics and traditional code-size metrics; 1 Please read the paper on-screen or as a color-printed paper version, we make extensive use of color pictures.

2 A prototype of a supporting system. To increase the comprehension of a subject system, it implements several views, filtering, and display/editing operations; A novel static analysis based approach to recover relationships among classes. Relationships are used in the visualization together with the metrics collected on the system; A case study on a large open source software system implemented in Java. The results of this study reveled that the prototype has the following main characteristics: scalability, interactivity, and completeness; The bug reports of Eclipse 3.5 has been used to assess whether MetricAttitude and the underlying approach can be used to identify fault-prone classes. The remainder of the paper is organized as follows: in Section 2, we review previous software visualization approaches and techniques. In Section 3, we describe our approach, while we present MetricAttitude in Section 4. In Section 5, we outline the preliminary results of the conducted empirical evaluation. Finally, Section 6 concludes and discusses possible future directions for our research. 2. RELATED WORK There are a number of approaches/techniques for software visualization based on Synthetic Natural Environment (SNE) (e.g. [13], [14], [15], [16], [17]). In the first subsection, we discuss these techniques. In the literature, visualization techniques based on graph representations and on polymetric views have been also proposed [9], [18], [19]. We present some of them in the second subsection. Due to the huge number of software visualization techniques, a deep and exhaustive discussion of related work is not possible and it is also out of the scope of the paper. An extensive taxonomy of software visualization, with several examples and tools is available in [20]. 2.1 SNE based Techniques Among the SNE based techniques, the city metaphor is one of the most used (e.g., [13], [14], [15], [16]). Wettel and Lanza [21] propose such a kind of metaphor for the comprehension of object oriented software systems. Classes are represented as buildings and packages as districts. The authors implement the metaphor in the CodeCity tool. In a more recent paper, the same authors [22] present a controlled experiment to assess the validity of the metaphor and CodeCity. The experiment was conducted with software professionals. The results indicate that the tool leads to a statistically significant improvement in terms of task correctness. The results also indicate the task completion time statistically decrease when using the tool. Graham et al. [23] propose a solar system metaphor. Suns represent a package, planets are classes, and orbits represent the inheritance level within the package. Martínez et al. [24] suggest a metaphor based on landscape. The main objective of that proposal is to visually represent a number of aspects related to software development processes. Ghandar et al. [25] propose a jigsaw puzzle metaphor. Each software component is a piece of a jigsaw puzzle. The system complexity is represented as a pattern on the surface of the pieces. Erra and Scanniello [8] present an approach based on a forest metaphor to ease the comprehension of OO software. A software is depicted as a forest of trees. Each tree is a class. The trunk, the branches, the leaves, and their color represent characteristic of the class (e.g., a method is a branch of the tree). CodeTrees is the name of the tool implementing the metaphor. Several are the differences between our proposal and the approaches discussed above. The most remarkable one is that our approach enriches lightweight visualizations with metrics information and relationships among classes. 2.2 Polymetric and Graph Views Lanza and Ducasse [9] present the polymetric views. These views are lightweight visualizations enriched with software metrics. This approach presents a number of similarities with our approach, e.g., the structure of hierarchies is enriched with software metrics information. Differently, our approach is able to (i) visual represent more metrics at the same time and (ii) show instance level relationships and structure of hierarchies in the same view. In this paper, we also propose a novel static analysis based technique to recover relationships among classes. The validity of our tool and the underlying approach is assessed on a large open source software system. Reniers et al. [26] present SolidSX, an integrated tool for visualizing large software compound attributed graphs. Our approach is different because it is able to visually represent more metrics in the same view. The software engineer can apply filters to hide useless information for the problem at the hand. 3. THE APPROACH It is essential to decide which goals have to pursuit, when defining a new visualization approach for the reverse engineering of a subject system [9]. We have focused on the following goals of primary importance for our proposal: Getting an overview of the system in terms of size, complexity, and structure. Locating the most important classes and inheritance hierarchies. This allows comprehending the classes and hierarchies that represent a core part of the system. Identifying classes that exchange a huge number of messages and make strong usage of delegations. These classes could require refactoring operations to improve the quality of the subject system. Identifying exceptional classes in terms of size and/or complexity compared to all classes. These classes may be candidate for a further inspection or for the application of refactoring. Suggesting the presence of design patterns or occasions where design patterns could be introduced. The approach provides a large-scale understanding of a software system visualizing all classes together and handles class instance level relationships and structure of hierarchies. We also provide a fine-grained representation of individual classes (e.g., the name of the class and its methods).

3 In the following, we describe the selected metrics and the static analysis based approach we defined to get relationships among classes. The section concludes presenting the mapping proposed between the graphical properties of classes (or more generally software entities) and the selected metrics as well as the representations used for class instance level relationships and structure of hierarchies. 3.1 Metrics A reverse engineering process should not only present a list of problematic classes or subsystems [9], but its result should also facilitate the identification of valuable piece of information for the quality attributes (i.e., complexity, efficiency, re-usability, testability, and maintainability) of the subject system [27]. To this end, software metrics have been proposed [28], [29], [30], [31]. The concept of software metrics is well established in the software engineering community [32]. Recently, an increasing interest in OO metrics [33] has been showed thanks to the increasing popularity of OO analysis and design methodologies. We considered the most popular OO metrics firstly presented by Chidamber and Kemerer [34] and more traditional code-size metrics: Weighted Methods per Class (WMC). It is defined as being the number of all member functions and operators defined in each class. WMC measures the complexity of individual classes. Depth of Inheritance Tree (DIT). It measures the number of ancestors of a class. DIT primarily evaluates efficiency and re-usability. Number Of Children (NOC). It gives the number of direct descendants for a class. NOC is used to assess efficiency, re-usability, and testability. Coupling Between Object classes (CBO). It represents the number of classes to which a given class is coupled. CBO evaluates efficiency and re-usability. Response For a Class (RFC). It measures the number of methods that can be potentially executed in response to a message received by an object of that class. This metric evaluates understandability, maintainability, and testability. Flow Info (FI). It is computed on fan-in and fan-out as follows: L (fan in fan out) 2. L is a codesize metric. We used the LOC metric. Fan-in measures the number of methods called in a software component. We considered here a class as a component. Conversely, Fan-out is defined as the number of local flows out of a component. As for Fan-in, we considered a class as a component. FI is employed to measure testability. Number of Message Sends (NMS). It measures the number of messages from a method. This metric is designed to be a unbiased measure of the size of a method. The value for a class is achieved by summing the NMS values of all the methods in the class. This metric is used to evaluate re-usability and testability. Number of Methods (NM). It represents the number of method of a class and is used to determine the complexity. Lines Of Code (LOC). It indicates the number of all nonempty and non-comment lines of the class and its methods. LOC is useful to estimate maintainability. Number of Comments (NC). It represents the number of comment lines of the body of a class and its methods. NC can be used to evaluate understandability, re-usability, and maintainability. As shown in [27] and recalled above, these design metrics provide useful information on software quality attributes (e.g., complexity and maintainability). 3.2 Reverse Engineering the Subject System We highlight here the new static analysis approach proposed to identify relationships among abstract classes, interfaces, concrete classes, and inner classes. Our proposal has been inspired from the work presented by Sundaresan et al. in [35]. Several are the differences with respect to that approach. The most remarkable one is that we work on Java source code, while byte-code is used in [35]. Our choice makes our approach more flexible and easily modifiable for subject systems implemented with programming languages different from Java. We first build a call graph, where each node represents an abstract class, an interface, a concrete class, or an inner class. For simplicity reasons, we will refer to them as class or software entity. We will distinguish among abstract class, interface, concrete class, and inner class only if needed. Directed edges in the call graph are invocations from a method in a class to another method in the same class or in a different class. Special attention is needed when adding an edge representing a call to a virtual method (i.e., a method without a concrete implementation). We did that by using an approximation of run-time types of receivers. In particular, we find all the possible targets of a method call of a class by looking down the class hierarchy of the receiver. Directed edges are added from the caller to each possible target receiver. We called this kind of edges as Virtual Delegation. At run-time only a call to a target method is present. This is the difference between the type resolution at run-time and an approximation of run-time types. We observed on the system used in the case study (i.e., Eclipse 3.5) that only in a few cases the number of possible target receivers is greater than one. For example, the class FileHandle through the method handlenotification calls the virtual method exists of the interface ChainedHandle. The found target methods are those implemented in the FileHandle and LinkedResourceHandle classes, that implement the ChainedHandle interface. In the case study, similar conditions happened in 132 cases out of 682. There could be also the case that no target receivers are found using an approximation of run-time types. Then, we add a directed edge from the caller to the class containing the virtual method. This kind of directed edge is named Abstract Delegation. An example of this edge and how it can be used in the identification of a design pattern is shown in Figure 1. Directed edges in the call graph are also added on the basis of the access to public fields. Accesses to public fields are managed similarly to the invocations from a method in a class to another method either in the same class or in another class. For space limits, details are not provided.

4 Figure 1: Virtual Delegation and Abstract Delegation in a command design pattern in Eclipse Graphical Representation of Software Entities and their Relationships The chosen mapping and graphical representations are inspired by well known software visualization techniques (e.g. [9],[18]) and the experience the authors gained in the program comprehension field and software visualization and development. We also tried as much as possible to find intuitive mappings to ease the comprehension of both high and low experienced software engineers. Each software entity is represented with a node, which is graphically represented with an ellipse and a rectangle placed just below. As shown in Figure 2 and Table 1, the properties of ellipse summarize OO metrics, while the properties of the rectangle traditional code-size metrics. Table 1 also shows how the kind of relationships among classes are graphically represented. The dimension of ellipse denotes WMC. The convention is that the larger the ellipse, the higher the metric value is. We used the flattening of ellipse to represent DIT. The more the flattening, the higher the metric value is. The color of the border of ellipse is used to denote NOC. The color is between light red and dark red. The higher the metric value, the darker the border is. We used the thickness of the border of ellipse to represent CBO. The larger the thickness, the higher the metric value is. To avoid loosing information about NOC, a thin border is drawn even if CBO is 0. The color of ellipse denotes RFC. The color ranges between black to white. Dark gray represents a smaller metric measurement than light gray. The color of rectangle denotes FI. Similar to RFC, the color ranges between black and white. The lower the metric value, the darker the color is. We used the thickness of the border of rectangle to represent NMS. The larger the thickness, the higher the metric value is. We used the color of the border of rectangle for NM. The color ranges between light and dark red. Light red represents a smaller metric measurement than dark red. The height of rectangle denotes LOC. The convention is that higher the metric value, the more the height of the rectangle is. The width of rectangle is used for NC. The higher the metric value, the more the width is. Relationships between classes are showed as lines: simple, arrowed, and hollow. These lines can assume different colors (see Table 1). With regard to the instance level relationships, we also considered the thickness of the lines associated. More the thickness, the larger the number of links between a source class to a target one is. Figure 2: Visual properties of nodes OO Metrics WMC (Weighted Methods per Class) Size of ellipse DIT (Depth of Inheritance Tree) Flatten the ellipse NOC (Number Of Children) Color of ellipse border CBO (Coupling Between Object classes) Thickness of ellipse border RFC (Response For a Class) Color of ellipse Traditional Code-size Metrics FI (Flow Info) Color of rectangle NMS (Number of Message Sends) Thickness of rectangle border NM (Number of Methods) Color of rectangle border LOC (Lines Of Code) Height of rectangle NC (Number of Comments) Width of rectangle Relationships Hierarchy Hollow triangle shape Delegation Blue arrowed line Field Access Cyan arrowed line Abstract Delegation Orange arrowed line Virtual Delegation Green arrowed line Method Call Loop Blue line Field Access Loop Cyan line Table 1: Metrics and visual mapping 4. METRICATTITUDE The approach has been implemented in a prototype of a supporting system intended as an Eclipse RCP 2 application. We named this prototype as MetricAttitude. It is composed of three main software components. The former component enables the selection of the subject system and visualizes it. The second component extracts the metrics, while the latter builds the graphical representation of the subject system (i.e., call graph). To improve the readability of the graphical representation of the subject system. Relationships among classes can be filtered. Figure 3 shows all the filters available for the relationships between pairs of software entities. Filters can be combined to better handle the reversers engineering task at the hand. Our tool also provides metrics based filters. Ellipses and rectangle can be shown separately or together. It is also possible to show the subject system in terms of a 2 A sample video of the execution of the approach and the prototype is available at people/risi/www/metricattitude/. The prototype is also available for downloading.

5 Figure 3: Filters implemented for the relationships among software entities Figure 4: Graphical layouts for disposing the elements of a subject systems UML class diagram. Figure 1 shows an excerpt of the class diagram obtained from Eclipse 3.5. MetricAttitude also implements various graphical layouts for disposing the graphical elements of the subject system. The implemented layout algorithms are those shown in Figure 4. For each entity, the tool also shows: the name, the fields, and the methods. The values of all the metrics are shown as a tooltip when the mouse pointer is over the associated graphical object. The technologies used to implement MetricAttitude are: JDT (Java Development Tools) Core 3. It is included in the Eclipse SDK and offers a built-in incremental Java compiler to run and debug code which still contains unresolved errors. JDT Core also provides a model for Java source code. The model offers API for navigating elements like package fragments, compilation units, binary classes, types, methods, fields, and so on. Although JDT Core implements a number of features, our system exploits the incremental Java compiler to make independent the subject system from the libraries it uses. Our prototype also uses the Java 3 source code model to identify class instance level relationships (as shown in Section 3.2) and structure of hierarchies. JGraphT 4. It is a Java library for graph visualization. It supports drag and drop operations, selection modes, and display/editing options. The graphical appearance of the nodes can be easily modified and used. To automatically position nodes, JGraphT implements a number of layout algorithms. Examples of available layouts are: hierarchical, organic, and tree. JGraphT easily allows defining new layouts. This is was one of the reasons because we chose that library. The prototype uses that technology to visualize the subject system. Eclipse RCP 5.This technology allows developers to use the Eclipse platform to create flexible and extensible desktop applications. The Eclipse RCP applications are build upon a plug-in architecture. We used this technology because it easily allows integrating Java based technologies. The use of the Eclipse RCP technology made the prototype platform independent. 5. EVALUATION To validate MetricAttitude, we conducted a case study on the core of the framework Eclipse 3.5. It is an open source multi-language software development environment. The Eclipse framework is implemented in Java and has an extensible plug-in architecture. It has been also used in the past to assess the validity of various software visualization tools (e.g., [21]). The core of the framework has: 331 classes, 2313 methods, and 1580 attributes. The number of lines of code is 73809, while the number of line comments is Figure 5 shows Eclipse 3.5 as it appears in MetricAttitude. There is a software entity that represent the core part of the subject system. This entity is that on the top of the class hierarchy. The height and width of the rectangle associated to this entity indicates high values for LOC and NC. Further, the dimension of this rectangle is greater than the other rectangles. As suggested by the thickness of the rectangle border the represented software entity is an abstract class or an interface. We inspected the source code to confirm that assumption. It is an interface, whose name is IResources. Figure 1 shows an excerpt of the class diagram of Eclipse 3.5. It represent a command design pattern of Eclipse 3.5. There is an Abstract Delegation from the class BuildManager to the ICommand interface. MetricAttitude adds a Virtual Delegations to the concrete class BuildClass. This result gives credit to the fact that our approach could suggest the presence of design patterns or occasions where design patterns could be introduced. The use of MetricAttitude on Eclipse 3.5 leads to the following considerations: Scalability. The tool scales up well in terms of the size of the software systems to be visualized. On a very large software systems (i.e., Eclipse) the tool did not slow down. The good scalability is due to the use of both JDT Core for the reverse engineering of Eclipse and JGraphT for its visualization

6 Figure 5: The framework Eclipse 3.5 in MetricAttitude with the Tree Layout Navigation and Interactivity. The tool enables the visualization of the name of each class through a label associated to the corresponding node. For each node, the tool also shows attributes and methods. Furthermore, double-clicking on the node the source code can be inspected or modified. The modified source code is automatically compiled and the graphical representation of the subject system is modified according to the modifications performed. This is possible due to the use of JDT Core. Several layouts and filtering operations are also available to improve interactivity. The tool provides moving and selection modes as well as display/editing options. Completeness. A number of features for analyzing single nodes are available. For example, the tool visualizes the values of all metrics, the kind of node (abstract class, interface, concrete class, and inner class), the fields, and the signatures. The approach and MetricAttitude also provide a fair amount of information for an overview of the subject system. In fact, nodes can be graphically compared each others to get indications about the relevance of abstract class, interface, concrete class, and inner class. 5.1 Identification of Fault-Prone Classes The goal of this part of the evaluation is to analyze whether MetricAttitude provides support to the identification of faultprone classes. The perspective of the study is both from the point of view of the researcher, evaluating whether the visualization approach is able to identify fault-prone classes, and from the point of view of the project manager, who wants to evaluate the possibility of adopting the proposed approach within his/her own organization. Mappings between 43 bug reports and the changes that implemented the fixes were extracted from their repository and bug tracking system (available at bugs.eclipse.org). Past changes in Eclipse provide us with actual changes in the code done (i.e., classes and methods) in response to a bug. The total number of (non unique) methods changed for the 43 bugs was 144. Changed methods for a bug could be in more than one class. In particular, the classes involved in the change methods were 54. Based on our choices and assumptions, the evaluation consists of a case study where our tool and the underlying approach are used to ease the localization of classes associated with past changes. We have studied the classes that include these changes looking at the metrics empirical validated in [28], [29], [30], and [31]. The results of these studies are summarized in Table 2. The symbol + denotes that the effect of the metric was significant in the prediction of faultproneness class in direct way, while in inverse way. The symbol ++ means that the metric was a more useful predictor. The symbol indicates that the metric was more useful in the built model, but in inverse way. The symbol 0 denotes that the effect of the metric was not significant. A blank entry means that the effect of the metric was not investigated. As shown in Table 2, only a subset of the metrics used in our approach has been empirical validated on commercial and open source software systems to determine whether they can be used as fault predictors. To identify the classes involved in the change methods, we implemented a new feature in MetricAttitude. This feature highlights these classes in yellow. Figure 6 shows the framework Eclipse 3.5 (by applying the radial layout) and its

7 Metric [28] [29] [30] [31] WMC (Weighted Methods per Class) DIT (Depth of Inheritance Tree) NOC (Number Of Children) ++ 0 CBO (Coupling Between Object) RFC (Response For a Class) LOC (Lines Of Code) ++ + Table 2: Fault predictor metrics Figure 6: A view of the Framework Eclipse 3.5 to identify fault-prone classes changed classes that implemented the fixes extracted from the public repository used. The visualization of the subject system indicates that the entities with the larger graphical objects (both considering the dimensions of ellipses and rectangles) are highlighted in yellow, so suggesting that these entities are fault-prone classes. This result gives strength to the validity of our approach and further confirming the metrics as good fault predictors. Due to the preliminary nature of this study further investigations are needed. 5.2 Threats to Validity To comprehend the strengths and limitations of the empirical evaluation of our approach, the threats that could affect the validity of the results and their generalization are presented and discussed here. Despite our efforts to mitigate as many threats to validity as possible, some are unavoidable. The second part of our evaluation is based on reenactment with user actions being simulated. Using actual developers could result to different results. We plan to conduct studies with developers in the future. The software systems used in the study represent another threat. It was chose primarily because of the availability of data and previous studies. We cannot estimate the effect of attributes, such as, programming language, domain, and so on. With regard to the system studied, other possible threats are related to the fact that it is open source. This kind of software is usually developed by volunteers and the development process used is different from those applied in the industry. 6. CONCLUSION AND FUTURE WORK Software visualization allows studying multiple aspects of complex problems like in reverse engineering, when comprehension tasks are performed. The available techniques and approaches are often too simplistic and lack visual cues to correctly interpret software systems [9]. In other cases, visualizations are too complex to be useful in practice. In this paper, we have presented a visualization approach based on static analysis that easily shows complex information in OO software. Our proposal provides a mental picture by viewing a software through several views based on OO metrics and traditional code-size metrics (e.g, LOC) and relationships among classes (e.g., delegation and inheritance). To ease the comprehension of a subject system, we have chosen an intuitive mappings between the visual representation of classes and the ten metrics selected. We implemented the approach in MetricAttitude. The current implementation of this tool only supports software written Java. However, the prototype can be extended to software written in different programming languages. For example, the use of ADT and CDT with respect to JDT will make our prototype suitable for ADA and C/C++, respectively. To assess the validity of the approach and the supporting tool, we have conducted a preliminary empirical investigation as a case study. This investigation was performed in two steps on the framework Eclipse 3.5. In the first step, we assessed the supporting tool with respect to: scalability, navigation and interactivity, and completeness. In the second step, we verified whether our approach is useful to identify fault-prone classes. To this end, data associated with changes in response to bug reports were used. For both the steps of the evaluation, we achieved promising results. The main future direction for our research consists in conducting users studies to evaluate the effectiveness of our proposal in the execution of maintenance or software comprehension tasks. These studies will also enable us to identify possible concerns in the actual use of the tool. Finally, future work will be devoted to replicate the study presented here with commercial software systems. 7. REFERENCES [1] G. Canfora and M. Di Penta. New frontiers of reverse engineering. In Future of Software Engineering, FOSE, pages IEEE Computer Society, [2] E. J. Chikofsky and J. H. Cross II. Reverse engineering and design recovery: A taxonomy. IEEE Software, 7:13 17, [3] J. Stasko, J. Domingue, B. Price, and M. Brown. Software visualization: programming as a multimedia experience [4] S. Diehl, editor. Software Visualization, International Seminar Dagstuhl Castle, Revised Lectures, volume 2269 of Lecture Notes in Computer Science. Springer, [5] R. Wettel and M. Lanza. Program comprehension through software habitability. In In Proc. of the International Conference on Program Comprehension, ICPC, pages , [6] S. Ducasse and M. Lanza. The class blueprint: Visually supporting the understanding of classes. IEEE Trans. Software Eng., 31(1):75 90, 2005.

8 [7] A. Marcus, L. Feng, and Maletic J. I. Comprehension of software analysis data using 3d visualization. In International Conference/Workshop on Program Comprehension, IWPC, pages , [8] U. Erra and G. Scanniello. Towards the visualization of software systems as 3d forests: the codetrees environment. ACM Symposium On Applied Computing, page to appear, [9] M. Lanza and S. Ducasse. Polymetric views - a lightweight visual approach to reverse engineering. IEEE Trans. on Software Engineering, 29: , [10] R. J. Walker, G. C. Murphy, B. Freeman-Benson, D. Wright, D. Swanson, and J. Isaak. Visualizing dynamic software system information through high-level models. In In Proc. of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, OOPSLA, pages ACM, [11] M. Salah, S. Mancoridis, G. Antoniol, and M. Di Penta. Scenario-driven dynamic analysis for comprehending large software systems. In European Conference on Software Maintenance and Reengineering, CSMR, pages IEEE Computer Society, [12] OMG. Unified modeling language (UML) specification, version 2.0. Technical report, Object Management Group, July [13] C. Knight and M. Munro. Virtual but visible software. In In Proc. of the IEEE International Conference on Information Visualization, pages , [14] S. M. Charters, C. Knight, N. Thomas, and M. Munro. Visualisation for informed decision making; from code to components. In In Proc. of the 14th International Conference on Software Engineering and Knowledge Engineering, SEKE, pages ACM, [15] T. Panas, R. Berrigan, and J. Grundy. A 3d metaphor for software production visualization. In In Proc. of the 7th International Conference on Information Visualization, pages IEEE Computer Society, [16] B. Kot, B. Wuensche, J. Grundy, and J. Hosking. Information visualisation utilising 3d computer game engines case study: a source code comprehension tool. In In Proc. of the 6th ACM SIGCHI New Zealand chapter s international conference on Computer-human interaction: making CHI natural, CHINZ, pages ACM, [17] A. R. Teyseyre and M. R. Campo. An overview of 3d software visualization. IEEE Trans. on Visualization and Computer Graphics, 15:87 105, January [18] M. Lanza. Codecrawler - polymetric views in action. In In Proc. of the IEEE International Conference on Automated Software Engineering, ASE, pages IEEE Computer Society, [19] P. Martin, G. Harald, and F. Michael. Towards an integrated view on architecture and its evolution. Electr. Notes Theor. Comput. Sci., 127(3): , [20] B. A. Price, R. M. Baecker, and I. S. Small. A principled taxonomy of software visualization. Journal of Visual Lang. and Computing, 4(3): , [21] R. Wettel and M. Lanza. Codecity: 3d visualization of large-scale software. In Companion of the 30th international conference on Software engineering, ICSE Companion, pages ACM, [22] R. Wettel, M. Lanza, and R. Robbes. Software Systems as Cities: A Controlled Experiment. In In Proc. of International Conference on Software Engineeering), ICSE, page to be published, [23] H. Graham, H. Y. Yang, and R. Berrigan. A solar system metaphor for 3d visualisation of object oriented software metrics. In In Proc. of the Australasian symposium on Information Visualisation, APVis, pages Australian Computer Society, Inc., [24] A. Martínez, J. D. Cosín, and C. P. García. A landscape metaphor for visualization of software projects. In In Proc. of the 4th ACM symposium on Software visualization, SoftVis, pages , New York, NY, USA, ACM. [25] A. Ghandar, A. S. M. Sajeev, and X. Huang. Pattern puzzle: a metaphor for visualizing software complexity measures. In In Proc. of the Asia-Pacific Symposium on Information Visualisation, APVis, pages Australian Computer Society, Inc., [26] D. Reniers, L. Voinea, and A. Telea. Visual exploration of program structure, dependencies and metrics with solidsx. In In Proc. of IEEE Vissoft, pages 1 4. IEEE, [27] L. H. Rosenberg and L. E. Hyatt. Software Quality Metrics for Object-Oriented Environments, [28] V. R. Basili, L. C. Briand, and W. L. Melo. A validation of object-oriented design metrics as quality indicators. IEEE Trans. on Software Engineering, 22: , October [29] T. Gyimothy, R. Ferenc, and I. Siket. Empirical validation of object-oriented metrics on open source software for fault prediction. IEEE Trans. on Software Engineering, 31: , [30] P. Yu, T. Systä, and H. A. Müller. Predicting fault-proneness using oo metrics: An industrial case study. In In Proc. of the 6th European Conference on Software Maintenance and Reengineering, CSMR, pages , Washington, DC, USA, IEEE Computer Society. [31] R. Subramanyam and M. S. Krishnan. Empirical analysis of ck metrics for object-oriented design complexity: Implications for software defects. IEEE Trans. on Software Engineering, 29: , April [32] T. DeMarco. Controlling Software Projects: Management, Measurement and Estimation. Yourdon, New York, NY, [33] M. Lanza and R. Marinescu. Object-Oriented Metrics in Practice. Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object-oriented Systems. Springer Verlag, [34] S. R. Chidamber and C. F. Kemerer. A metrics suite for object oriented design. IEEE Trans. on Software Engineering, 20: , [35] V. Sundaresan, L. Hendren, C. Razafimahefa, R. Vallée-Rai, P. Lam, E. Gagnon, and C. Godin. Practical virtual method call resolution for java. SIGPLAN Not., 35: , 2000.

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

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

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

Program Understanding with Code Visualization

Program Understanding with Code Visualization Program Understanding with Code Visualization Arif Iftikhar Department of Computer Science National University of Computer and Emerging Sciences 852-B Faisal Town, Lahore, Pakistan l060802@lhr.nu.edu.pk

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

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

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

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

VisCG: Creating an Eclipse Call Graph Visualization Plug-in. Kenta Hasui, Undergraduate Student at Vassar College Class of 2015

VisCG: Creating an Eclipse Call Graph Visualization Plug-in. Kenta Hasui, Undergraduate Student at Vassar College Class of 2015 VisCG: Creating an Eclipse Call Graph Visualization Plug-in Kenta Hasui, Undergraduate Student at Vassar College Class of 2015 Abstract Call graphs are a useful tool for understanding software; however,

More information

Quality prediction model for object oriented software using UML metrics

Quality prediction model for object oriented software using UML metrics THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS TECHNICAL REPORT OF IEICE. UML Quality prediction model for object oriented software using UML metrics CAMARGO CRUZ ANA ERIKA and KOICHIRO

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

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

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

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

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

A Tool for Visual Understanding of Source Code Dependencies

A Tool for Visual Understanding of Source Code Dependencies The 16th IEEE International Conference on Program Comprehension A Tool for Visual Understanding of Source Code Dependencies Martin Pinzger, Katja Gräfenhain, Patrick Knab, and Harald C. Gall Department

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

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

Software Visualization Tools for Component Reuse

Software Visualization Tools for Component Reuse Software Visualization Tools for Component Reuse Craig Anslow Stuart Marshall James Noble Robert Biddle 1 School of Mathematics, Statistics and Computer Science, Victoria University of Wellington, New

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

Modifying first person shooter games to perform real time network monitoring and control tasks

Modifying first person shooter games to perform real time network monitoring and control tasks Modifying first person shooter games to perform real time network monitoring and control tasks Warren Harrop, Grenville Armitage {wazz,garmitage}@swin.edu.au Outline The problem Previous work Metaphors

More information

Tool Support for Inspecting the Code Quality of HPC Applications

Tool Support for Inspecting the Code Quality of HPC Applications Tool Support for Inspecting the Code Quality of HPC Applications Thomas Panas Dan Quinlan Richard Vuduc Center for Applied Scientific Computing Lawrence Livermore National Laboratory P.O. Box 808, L-550

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

Chap 4. Using Metrics To Manage Software Risks

Chap 4. Using Metrics To Manage Software Risks Chap 4. Using Metrics To Manage Software Risks. Introduction 2. Software Measurement Concepts 3. Case Study: Measuring Maintainability 4. Metrics and Quality . Introduction Definition Measurement is the

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

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

Processing and data collection of program structures in open source repositories

Processing and data collection of program structures in open source repositories 1 Processing and data collection of program structures in open source repositories JEAN PETRIĆ, TIHANA GALINAC GRBAC AND MARIO DUBRAVAC, University of Rijeka Software structure analysis with help of network

More information

Bayesian Inference to Predict Smelly classes Probability in Open source software

Bayesian Inference to Predict Smelly classes Probability in Open source software Research Article International Journal of Current Engineering and Technology E-ISSN 2277 4106, P-ISSN 2347-5161 2014 INPRESSCO, All Rights Reserved Available at http://inpressco.com/category/ijcet Heena

More information

The software developers view on product metrics A survey-based experiment

The software developers view on product metrics A survey-based experiment Annales Mathematicae et Informaticae 37 (2010) pp. 225 240 http://ami.ektf.hu The software developers view on product metrics A survey-based experiment István Siket, Tibor Gyimóthy Department of Software

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

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

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

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

GSPIM: Graphical Visualization Tool for MIPS Assembly

GSPIM: Graphical Visualization Tool for MIPS Assembly GSPIM: Graphical Visualization Tool for MIPS Assembly Programming and Simulation Patrick Borunda Science University of Arizona pborunda@u.arizona.edu Chris Brewer Science University of Arizona brewer@u.arizona.edu

More information

Exploring the Differing Usages of Programming Language Features in Systems Developed in C++ and Java

Exploring the Differing Usages of Programming Language Features in Systems Developed in C++ and Java Exploring the Differing Usages of Programming Language Features in Systems Developed in C++ and Java Michael English 1 and Patrick McCreanor 2 1 Lero, Computer Science and Information Systems Department,

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

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

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

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

Visual Analysis Tool for Bipartite Networks

Visual Analysis Tool for Bipartite Networks Visual Analysis Tool for Bipartite Networks Kazuo Misue Department of Computer Science, University of Tsukuba, 1-1-1 Tennoudai, Tsukuba, 305-8573 Japan misue@cs.tsukuba.ac.jp Abstract. To find hidden features

More information

A hybrid approach for the prediction of fault proneness in object oriented design using fuzzy logic

A hybrid approach for the prediction of fault proneness in object oriented design using fuzzy logic J. Acad. Indus. Res. Vol. 1(11) April 2013 661 RESEARCH ARTICLE ISSN: 2278-5213 A hybrid approach for the prediction of fault proneness in object oriented design using fuzzy logic Rajinder Vir 1* and P.S.

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

Integrating TAU With Eclipse: A Performance Analysis System in an Integrated Development Environment

Integrating TAU With Eclipse: A Performance Analysis System in an Integrated Development Environment Integrating TAU With Eclipse: A Performance Analysis System in an Integrated Development Environment Wyatt Spear, Allen Malony, Alan Morris, Sameer Shende {wspear, malony, amorris, sameer}@cs.uoregon.edu

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

Gadget: A Tool for Extracting the Dynamic Structure of Java Programs

Gadget: A Tool for Extracting the Dynamic Structure of Java Programs Gadget: A Tool for Extracting the Dynamic Structure of Java Programs Juan Gargiulo and Spiros Mancoridis Department of Mathematics & Computer Science Drexel University Philadelphia, PA, USA e-mail: gjgargiu,smancori

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

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

An Introduction to Software Visualization. Visualization. Types of Software Visualization. Course Overview

An Introduction to Software Visualization. Visualization. Types of Software Visualization. Course Overview An Introduction to Software Dr. Jonathan I. Maletic Software DevelopMent Laboratory Department of Computer Science Kent State University Course Overview Introductory Lectures Software visualization

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

SourceMeter SonarQube plug-in

SourceMeter SonarQube plug-in 2014 14th IEEE International Working Conference on Source Code Analysis and Manipulation SourceMeter SonarQube plug-in Rudolf Ferenc, László Langó, István Siket, Tibor Gyimóthy University of Szeged, Department

More information

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

Keywords Class level metrics, Complexity, SDLC, Hybrid Model, Testability Volume 5, Issue 4, April 2015 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com A Review of Static

More information

A Survey Paper on Software Architecture Visualization

A Survey Paper on Software Architecture Visualization A Survey Paper on Software Architecture Visualization Yaser Ghanam and Sheelagh Carpendale Department of Computer Science University of Calgary, Canada T2N 1N4 {yghanam, sheelagh}@ucalgary.ca ABSTRACT

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

An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases

An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases Paul L. Bergstein, Priyanka Gariba, Vaibhavi Pisolkar, and Sheetal Subbanwad Dept. of Computer and Information Science,

More information

TOWARDS PERFORMANCE MEASUREMENT AND METRICS BASED ANALYSIS OF PLA APPLICATIONS

TOWARDS PERFORMANCE MEASUREMENT AND METRICS BASED ANALYSIS OF PLA APPLICATIONS TOWARDS PERFORMANCE MEASUREMENT AND METRICS BASED ANALYSIS OF PLA APPLICATIONS Zeeshan Ahmed University of Wuerzburg, Wuerzburg Germany zeeshan.ahmed@uni-wuerzburg.de ABSTRACT This article is about a measurement

More information

Software Visualization

Software Visualization Software Visualization CS 4460 Last Revision: November 2015 Software Visualization Definition The use of the crafts of typography, graphic design, animation, and cinematography with modern humancomputer

More information

A Framework of Model-Driven Web Application Testing

A Framework of Model-Driven Web Application Testing A Framework of Model-Driven Web Application Testing Nuo Li, Qin-qin Ma, Ji Wu, Mao-zhong Jin, Chao Liu Software Engineering Institute, School of Computer Science and Engineering, Beihang University, China

More information

Software Visualization

Software Visualization Software Visualization Information Visualization June 30, 2008 Carsten Görg Slides adapted from John Stasko Housekeeping Assignment 5: Understanding Analytics due this Wednesday, July 2 nd Poster Grading

More information

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

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

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

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

Empirical study of software quality evolution in open source projects using agile practices 1 Empirical study of software quality evolution in open source projects using agile practices Alessandro Murgia 1, Giulio Concas 1, Sandro Pinna 1, Roberto Tonelli 1, Ivana Turnu 1, SUMMARY. 1 Dept. Of

More information

Software Development Kit

Software Development Kit Open EMS Suite by Nokia Software Development Kit Functional Overview Version 1.3 Nokia Siemens Networks 1 (21) Software Development Kit The information in this document is subject to change without notice

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

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

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

Vragen en opdracht. Complexity. Modularity. Intra-modular complexity measures Vragen en opdracht Complexity Wat wordt er bedoeld met design g defensively? Wat is het gevolg van hoge complexiteit icm ontwerp? Opdracht: http://www.win.tue.nl/~mvdbrand/courses/se/1011/opgaven.html

More information

Enterprise Integration: operational models of business processes and workflow systems *

Enterprise Integration: operational models of business processes and workflow systems * Enterprise Integration: operational models of business processes and workflow systems. 1 Enterprise Integration: operational models of business processes and workflow systems * G.Bruno 1, C.Reyneri 2 and

More information

Understanding Software Static and Dynamic Aspects

Understanding Software Static and Dynamic Aspects Understanding Software Static and Dynamic Aspects Welf Löwe IPD, Universität Karlsruhe PF 6980, 76128 Karlsruhe Germany loewe@ira.uka.de Andreas Ludwig IPD, Universität Karlsruhe PF 6980, 76128 Karlsruhe

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

Research Article An Empirical Study of the Effect of Power Law Distribution on the Interpretation of OO Metrics

Research Article An Empirical Study of the Effect of Power Law Distribution on the Interpretation of OO Metrics ISRN Software Engineering Volume 213, Article ID 198937, 18 pages http://dx.doi.org/1.1155/213/198937 Research Article An Empirical Study of the Effect of Power Law Distribution on the Interpretation of

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

Comprehending Software Architecture using a Single-View Visualization

Comprehending Software Architecture using a Single-View Visualization UCRL-CONF-227293 Comprehending Software Architecture using a Single-View Visualization T. Panas, T. G. W. Epperly, D. J. Quinlan, A. Saebjoernsen, R. W. Vuduc January 17, 2007 12th IEEE Int. Conference

More information

Dynamic Analysis. The job of the reverse engineer is similar to the one of the doctor, as they both need to reason about an unknown complex system.

Dynamic Analysis. The job of the reverse engineer is similar to the one of the doctor, as they both need to reason about an unknown complex system. Dynamic Analysis Tudor Gîrba www.tudorgirba.com The job of the reverse engineer is similar to the one of the doctor, as they both need to reason about an unknown complex system. One way to gain insights

More information

Visually Encoding Program Test Information to Find Faults in Software

Visually Encoding Program Test Information to Find Faults in Software Visually Encoding Program Test Information to Find Faults in Software James Eagan, Mary Jean Harrold, James A. Jones, and John Stasko College of Computing / GVU Center Georgia Institute of Technology Atlanta,

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

RETRATOS: Requirement Traceability Tool Support

RETRATOS: Requirement Traceability Tool Support RETRATOS: Requirement Traceability Tool Support Gilberto Cysneiros Filho 1, Maria Lencastre 2, Adriana Rodrigues 2, Carla Schuenemann 3 1 Universidade Federal Rural de Pernambuco, Recife, Brazil g.cysneiros@gmail.com

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

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

Tracking the Evolution of Object-Oriented Quality Metrics on Agile Projects

Tracking the Evolution of Object-Oriented Quality Metrics on Agile Projects Tracking the Evolution of Object-Oriented Quality Metrics on Agile Projects Danilo Sato, Alfredo Goldman, and Fabio Kon Department of Computer Science University of São Paulo, Brazil {dtsato, gold, kon}@ime.usp.br

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

Towards Collaborative Requirements Engineering Tool for ERP product customization

Towards Collaborative Requirements Engineering Tool for ERP product customization Towards Collaborative Requirements Engineering Tool for ERP product customization Boban Celebic, Ruth Breu, Michael Felderer, Florian Häser Institute of Computer Science, University of Innsbruck 6020 Innsbruck,

More information

Péter Hegedűs, István Siket MTA-SZTE Research Group on Artificial Intelligence, Szeged, Hungary {hpeter,siket}@inf.u-szeged.hu

Péter Hegedűs, István Siket MTA-SZTE Research Group on Artificial Intelligence, Szeged, Hungary {hpeter,siket}@inf.u-szeged.hu QualityGate SourceAudit: A Tool for Assessing the Technical Quality of Software Tibor Bakota FrontEndART Software Ltd. Zászló u. 3 I./5. H-6722 Szeged, Hungary bakotat@frontendart.com Péter Hegedűs, István

More information

A Framework for Dynamic Software Analysis & Application Performance Monitoring

A Framework for Dynamic Software Analysis & Application Performance Monitoring A Framework for Dynamic Software Analysis & Application Performance Monitoring Dr. Ashish Oberoi 1, Pallavi 2 1 (Cse, / M.M Engineering College, India) 2 (Cse, / M.M Engineering College, India) Abstract

More information

WebSphere Business Modeler

WebSphere Business Modeler Discovering the Value of SOA WebSphere Process Integration WebSphere Business Modeler Workshop SOA on your terms and our expertise Soudabeh Javadi Consulting Technical Sales Support WebSphere Process Integration

More information

Measurement, Analysis with Visualization for Better Reliability

Measurement, Analysis with Visualization for Better Reliability Measurement, Analysis with Visualization for Better Reliability Zeeshan Ahmed and Saman Majeed Department of Bioinformatics, Biocenter University of Wuerzburg, Germany 1 Introduction Software industry

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

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

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

Detecting Defects in Object-Oriented Designs: Using Reading Techniques to Increase Software Quality Detecting Defects in Object-Oriented Designs: Using Reading Techniques to Increase Software Quality Current Research Team: Prof. Victor R. Basili Forrest Shull, Ph.D. Guilherme H. Travassos, D.Sc. (1)

More information

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

Design methods. List of possible design methods. Functional decomposition. Data flow design. Functional decomposition. Data Flow Design (SA/SD) Design methods List of possible design methods Functional decomposition Data Flow Design (SA/SD) Design based on Data Structures (JSD/JSP) OO is good, isn t it Decision tables E-R Flowcharts FSM JSD JSP

More information

Simulating the Structural Evolution of Software

Simulating the Structural Evolution of Software Simulating the Structural Evolution of Software Benjamin Stopford 1, Steve Counsell 2 1 School of Computer Science and Information Systems, Birkbeck, University of London 2 School of Information Systems,

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

Software Evolution Analysis & Visualization

Software Evolution Analysis & Visualization Software Evolution Analysis & Visualization Harald C. Gall s.e.a.l. - software evolution & architecture lab University of Zurich, Switzerland http://seal.ifi.uzh.ch/gall University of Zurich Department

More information

Compiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding

Compiling Object Oriented Languages. What is an Object-Oriented Programming Language? Implementation: Dynamic Binding Compiling Object Oriented Languages What is an Object-Oriented Programming Language? Last time Dynamic compilation Today Introduction to compiling object oriented languages What are the issues? Objects

More information

Extracting Facts from Open Source Software

Extracting Facts from Open Source Software Extracting Facts from Open Source Software Rudolf Ferenc, István Siket and Tibor Gyimóthy University of Szeged, Department of Software Engineering {ferenc siket gyimi}@inf.u-szeged.hu Abstract Open source

More information

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

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53 Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software

More information

Call Graph Based Metrics To Evaluate Software Design Quality

Call Graph Based Metrics To Evaluate Software Design Quality Call Graph Based Metrics To Evaluate Software Design Quality Hesham Abandah 1 and Izzat Alsmadi 2 1 JUST University; 2 Yarmouk University heshama@just.edu.jo, ialsmadi@yu.edu.jo Abstract Software defects

More information

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

BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT. March 2013 EXAMINERS REPORT. Software Engineering 2 BCS HIGHER EDUCATION QUALIFICATIONS Level 6 Professional Graduate Diploma in IT March 2013 EXAMINERS REPORT Software Engineering 2 General Comments The pass rate this year was significantly better than

More information

Structural Complexity Evolution in Free Software Projects: A Case Study

Structural Complexity Evolution in Free Software Projects: A Case Study Structural Complexity Evolution in Free Software Projects: A Case Study Antonio Terceiro and Christina Chavez Computer Science Department Universidade Federal da Bahia {terceiro,flach}@dcc.ufba.br Abstract.

More information

VISUALIZING HIERARCHICAL DATA. Graham Wills SPSS Inc., http://willsfamily.org/gwills

VISUALIZING HIERARCHICAL DATA. Graham Wills SPSS Inc., http://willsfamily.org/gwills VISUALIZING HIERARCHICAL DATA Graham Wills SPSS Inc., http://willsfamily.org/gwills SYNONYMS Hierarchical Graph Layout, Visualizing Trees, Tree Drawing, Information Visualization on Hierarchies; Hierarchical

More information

Development/Maintenance/Reuse: Software Evolution in Product Lines

Development/Maintenance/Reuse: Software Evolution in Product Lines Development/Maintenance/Reuse: Software Evolution in Product Lines Stephen R. Schach Vanderbilt University, Nashville, TN, USA Amir Tomer RAFAEL, Haifa, Israel Abstract The evolution tree model is a two-dimensional

More information