Exploiting Dynamic Information in IDEs Eases Software Maintenance
|
|
|
- Anastasia Jasmine Bates
- 10 years ago
- Views:
Transcription
1 Exploiting Dynamic Information in IDEs Eases Software Maintenance David Röthlisberger Software Composition Group, University of Bern, Switzerland Abstract The integrated development environment (IDE) is the primary tool used by developers to maintain software systems. The IDE, however, narrowly focuses on the static structure of a system, neglecting dynamic behavior and dynamic relationships between static source artifacts such as classes and methods. Developers often have difficulties to understand the dynamic aspects of a system just based on the static source perspectives provided by IDEs. Existing IDE tools to analyze the running of software systems such as debuggers or profilers present volatile dynamic information from specific system executions, requiring developers to manually trigger debugging or profiling sessions. To better support the understanding and maintenance of software systems, we developed several extensions to traditional IDEs to incorporate dynamic information in the static source perspectives. In this paper we describe these extensions and report on the empirical experiments we conducted to evaluate the practical usefulness of these IDE extensions. Keywords: dynamic analysis, development environments, software maintenance, program comprehension 1 Introduction Object-oriented language features such as inheritance, abstract types, late-binding, or polymorphism lead to distributed and scattered code, rendering a software system hard to understand and maintain when just looking at its static source artifacts such as classes or methods [1, 3, 13]. By means of dynamic analysis developers can explore the dynamic aspects of software systems and hence better understand the implementation of these systems [2, 13]. Even though the concept of dynamic analysis has been widely studied [2, 3, 8, 12, 13], traditional integrated development environments (IDEs), the primary tools used by developers to maintain software systems, still purely operate on static source code and do not reveal dynamic relationships between distributed source artifacts, which makes it difficult for developers to understand and navigate software systems in these IDEs [10, 11]. Due to the lack of dynamic information in IDEs developers are forced to build up a mental model of a system s dynamic behavior based on a static view of the system. Such a mental model, however, is errorprone as it is very difficult to understand a large objectoriented system without having available information about its running [1, 3]. In this paper we propose to enhance the Eclipse IDE [4] for Java with dynamic information in order to help developers during program comprehension and software maintenance activities. To achieve the goal of supporting developers to more efficiently maintain object-oriented code, we augment the static source perspectives of IDEs with dynamic information. We contribute several different techniques to integrate dynamic information seamlessly into the IDE. The implemented techniques are: Source code enrichments to embed dynamic information such as runtime types of variables or callers of methods directly in an IDE s source code view Presenting dynamic metrics such as number of method invocations or number of objects created in a method next to the source code perspectives Collaboration view, a navigable view showing the dynamic collaborators of source artifacts, for instance all callers and callees of a method We validate these techniques by means of empirical experiments with professional developers to assess the practical usefulness of the availability of dynamic information in the traditional perspectives of IDEs. In the following we first describe these techniques in detail and subsequently report on how we evaluated their practical usefulness. The paper is structured as follows: In Section 2 we present the enrichments to the IDE s source code view to present dynamic information, Section 3 reports on the integration of various dynamic metrics, and Section 4 explores the collaboration view we integrated into the IDE. In Section 5 we describe the conducted empirical experiment to evaluate the implemented techniques embedding dynamic information in IDEs. Section 6 concludes the paper and outlines ideas for further work.
2 2 Source Code Enrichments All techniques to present dynamic information have been implemented for the Eclipse IDE. We opted for this IDE since it is the most widely adopted IDE in industry [5], at least for developing Java software. The dynamic information that is exploited by these techniques typically stems from different system executions. We aggregate dynamic information over multiple executions to obtain a more complete picture of the dynamics of a system compared to debuggers or profilers that just focus on a specific execution. The aggregation of dynamic information in the IDE supports developers in understanding the general execution patterns of a system whereas the traditional debugger can be applied to study the execution flow of a specific scenario. As a technique to complement source code with dynamic information without impeding its readability we opted to use hovers, small windows that pop up when the mouse hovers over a source element (a method name, a variable, etc.). Hovers are interactive, which means the developer can for instance open the class of a receiver type by clicking on it. We now describe the integration of dynamic information into the source code: Figure 1. Hover appearing for a method name in its declaration. Figure 2. Hover for a message send occurring in a method. Method header. The hover that appears on mouse over the method name in a method header shows (i) all senders invoking that particular method, (ii) all callees, that is, all methods invoked by this method, and optionally (iii) all argument and return value types. For each piece of information we also show how often a particular invocation occurred. For instance for a sender, we display the qualified name of the method containing the send (that is, the calling method) and the number of invocations from this sender. Optionally, we also display the type of object to which the message triggering the invocation of the current method was sent, if this is a sub-type of the class implementing the current method. For a callee we provide similar information: The class implementing the invoked method, the name of the message, and how often a particular method was invoked. Additionally, we can show concrete receiver types of the message send, if they are not the same as the class implementing the called method. Figure 1 shows a concrete method name hover for method readfileentrieswithexception. In a method header, we can optionally show information about argument and return types, if developers have chosen to gather such data. Hovers presenting this information appear when the mouse is over the declared arguments of a method or the defined return type. These hovers also include numbers about how often specific argument and return value types occurred at runtime. Method body. We also augment source elements in the method body with hovers. For each message send defined in the method, we provide the dynamic callee information similarly as for the method name, optionally along with argument or return types that occurred in this method for that particular message send at runtime, as shown in Figure 2. Of course all these types listed are always accompanied with the number of occurrences and the relative frequency of the specific types at runtime. 3 Dynamic Metrics There are two kind of rulers next to the source editor: (i) the standard ruler on the left showing local information and (ii) the overview ruler on the right giving an overview over the entire file opened in the editor. In the traditional Eclipse IDE these rulers denote annotations for errors or warnings in the source file. Ruler (i) only shows the annotations for the currently visible part of the file, while the overview ruler (ii) displays all available annotations for the entire file. Clicking on such an annotation in (ii) brings the developer to the annotated line in the source file, for instance to a line containing an error. We extended these two rulers to also display dynamic metrics. For every executed method in a Java source file the overview ruler presents, for instance, how often it has been executed on average per system run using three different icons colored in a hot/cold scheme: blue means only a few, yellow several, and red many invocations. Clicking on such an annotation icon causes a jump to the declaration of the method in the file. The ruler on the left side provides more detailed information: It shows on a scale from 1 to 6 the
3 frequency of invocation of a particular method compared to all other invoked methods. A completely filled bar for a method denotes methods that have been invoked the most in this application. The dynamic metrics in these two rulers allow developers to quickly identify hot spots in their code, that is, methods being invoked frequently. The applied heat metaphor allows different methods to be compared in terms of number of invocations. Figure 3. Rulers left and right of the editor view showing dynamic metrics. To associate the continuous distribution of metric values to a discrete scale with for instance three representations (e.g., red, yellow, and blue), we use the k-means clustering algorithm [7]. To see fine-grained values for the dynamic metrics, the annotations in the two columns are also enriched with hovers. Developers hovering over a heat bar in the left column or over the annotation icon in the right bar get a hover displaying precise metric values, for instance exact total numbers of invocations or even number of invocations from specific methods or receiver types. Furthermore, developers can choose between different dynamic metrics to be visualized in the rulers. Besides the number of invocations of methods, we also provide metrics such as the number of objects a method creates, the number of bytecodes it executes, and the amount of memory it allocates, either on average or in total over all executions. Such metrics allow developers to quickly assess the runtime complexity of specific methods and thus to locate candidate methods for optimization. Changing the dynamic metrics to be displayed is done in the Eclipse preferences; the chosen metric is immediately displayed in the rulers. The following dynamic metrics are collected at runtime and can be visualized in the ruler columns: Number of invocations. This dynamic metric helps the developer quickly identify hot spots in code, that is, very frequently invoked methods or classes containing such methods. Furthermore, methods never invoked at runtime become visible, which is useful when removing dead code or extending the test coverage of the application s test suite. Related to this metric is the number of invocations of other methods triggered from a particular method. Number of created objects. By reading static source code, a developer usually cannot tell how many objects are created at runtime in a class, in a method or in a line of source code. It is unclear whether a source artifact creates one or one thousand objects or none at all. This dynamic metric, however, is useful to assess the costs imposed by the execution of a source artifact, to locate inefficient code, or to discover potential problems, for instance inefficient algorithms creating enormous numbers of objects. Allocated memory. Different objects vary in memory size. Having many but very tiny objects might not be an issue, whereas creating a few but very huge objects could be a sign of an efficiency problem. Hence, we also provide a dynamic metric recording memory usage of various source artifacts such as classes or methods. This metric can be combined with the number of created objects metric to reveal which types of objects consume most memory and thus are candidates for optimization. Number of executed bytecode instructions. The static source code does not disclose how many bytecode instructions have to be executed during the runtime of the code. Calling a particular method in a piece of code might trigger the execution of very complex code, that is, many bytecode instructions. To assess the complexity of the execution of a piece of code we also gather the number of bytecode instructions executed when invoking a particular method. This metric is also an estimator for the execution time of a particular method invocation. 4 Collaboration View In a separate view next to the source code editor of Eclipse (Figure 4), we present all dynamic collaborators for the currently selected artifact. For instance, if a method has been selected, the collaboration view shows the collaborators at the package, class, or method level; that is, it lists all packages or classes invoking methods of the package or class in which the selected method is declared (callers). The collaboration view also shows all packages or classes with which the package or class declaring the method is actively communicating (callees). For the method itself, the collaboration view lists all direct callers and callees. This collaboration view allows developers to navigate the callers and calleers. If for instance a caller of a method is selected, the view is refreshed to show all callers of the selected caller, and so on. Like this, developers can easily navigate through all dynamic callers of source artifacts of interest.
4 Figure 4. A view of all collaborators of the selected artifact (package, class, or method). 5 Validation We conducted a controlled experiment with 30 professional Java developers to evaluate the benefits for software maintenance that arise from the three presented means to integrate dynamic information into IDEs. Experimental Procedure. We asked the experiment subjects to solve five typical software maintenance tasks and analyzed the time spent to solve these tasks and the correctness of the solutions. Each subject was either assigned to the control group or to the experimental group. The experimental group had available dynamic information integrated with the aforementioned techniques while the control group used a standard Eclipse IDE. With an expertise questionnaire we collected information about a developer s expertise concerning software development, software analysis, Java, or Eclipse. Based on the results of this questionnaire we assigned developers to either the experimental or the control group to obtain two groups of nearly equal expertise. As all subjects were unfamiliar with the tools integrating dynamic information into Eclipse we gave the subjects of the experimental group a 30 minutes introduction to the extensions to Eclipse. As a subject system we had chosen jedit 1, an opensource text editor written in Java. JEdit consists of 32 pack- 1 ages with 5275 methods in 892 classes totaling more than 100 KLOC. The tasks we gave the subjects are concerned with analyzing and gaining an understanding for various features of jedit. We selected tasks representative for real maintenance scenarios and not being biased towards dynamic analysis by following the framework of Pacione et al. [9]. For solving the tasks, subjects had to provide an answer in free text, they could not select from multiple choices. The dynamic information shown in Eclipse to the subjects of the experimental group was obtained by executing all actions from the menu bar of jedit to make sure that this pre-recorded information is not biased towards the experiment tasks. As the control group did not receive any dynamic information, we clearly stated in the task descriptions how to run and analyze the feature under study with the conventional debugger in Eclipse. The two dependent variables studied in this experiment, time the subjects spent to answer the questions, and correctness of the answers, were manually determined by the experimenters. The time spent on a task is the time span between the starting time of one task and the next. Correctness is measured using a score from 0 to 4 according to the overlap with the model answers, which forms a set of expected answer elements that have been identified by the experimenters beforehand. To determine whether dynamic information has a statistically significant effect on the variables time spent and correctness, we applied the parametric, one-tailed Student s t- test at a confidence level of 95% (α=0.05). Results. The results of the experiment were promising. On average, the experimental group spent significantly less time solving the maintenance tasks, we could measure a 17.5% decrease in time spent on the tasks for the experimental group compared to the control group. With the Student s t-test we verified whether the availability of dynamic information in the IDE had an impact on the time to solve the maintenance tasks. The p-value resulting from the t-test is with considerably lower than α=0.05, which means that the time spent is statistically significantly reduced by the availability of dynamic information. For the correctness variable we could discover a 33.5% increase for the subjects having available dynamic information compared to those using a traditional Eclipse IDE. Applying the t-test to the correctness variables shows that this increase is statistically significant: the t-test gives a p- value of which is clearly below α=0.05. This means that having available dynamic information during software maintenance activities helps developers to more correctly solve maintenance tasks. Qualitative Feedback. In a debriefing questionnaire the subjects provided qualitative feedback about the usefulness of dynamic information integrated into the IDE. On a Likert scale from 0 (useless) to 4 (very useful), the subjects
5 rated the various techniques to embed dynamic information in the IDE. The source code enrichments obtained an average rating of 3.6, the dynamic metrics embedded in the ruler columns were rated with 3.2, and the collaboration view got an average rating of 3.7. These ratings clearly show that subjects considered all techniques to be useful for solving the software maintenance tasks of this experiment. In particular the collaboration view but also the source code enrichments have been an important aid to quicker and more accurately complete the imposed tasks. Subjects also gave feedback about how often they used what kind of dynamic information during the experiment. It turned out that information about dynamic collaborators has been used the most, nearly by all subjects in all tasks, while dynamic information shown in the source code views, e.g., information about runtime types has been used less often. Most subjects have just occasionally used dynamic metrics, for instance for tasks where they had to assess performance aspects of the application. These results from the controlled experiment make us confident that the implemented techniques to embed dynamic information seamlessly and tightly in the IDE are indeed helpful for developers to more efficiently and more correctly solve typical software maintenance tasks. A more detailed report on this experiment is available in the Masters thesis of Marcel Haerry [6]. 6 Conclusions In this paper we described three different techniques we implemented to seamlessly integrate dynamic information into the Eclipse IDE to help developers to easier and more accurately understand the dynamic behavior of Java systems. These three techniques are (i) source code enrichments embedding dynamic information such as runtime types, callers or callees of a method; (ii) dynamic metrics such as number of created objects, memory size of these objects, or number of executed bytecode instructions; and (iii) a collaboration view presenting the dynamic collaborators, that is, the callers and callees of particular source artifacts such as packages, classes, or methods. We evaluated the practical usefulness of these three contributed techniques by means of a controlled experiment with 30 professional software developers solving typical software maintenance tasks in a large unfamiliar application (i.e., jedit). The results of this experiment show that developers can 17.5% faster and 33.5% more correctly solve the maintenance tasks when Eclipse is enhanced with the aforementioned dynamic information compared to a standard Eclipse installation. In the future we aim at extending the integration of dynamic information into Eclipse, for instance by embedding visualizations of the collaboration between source artifacts to ease the navigation and understanding of collaboration patterns. Furthermore, we plan to apply the proposed techniques to large industrial systems such as rich client platform systems in the finance sector to gather more empirical feedback from practice. Acknowledgments. We gratefully acknowledge the financial support of the Swiss National Science Foundation for the projects Bringing Models Closer to Code (SNF Project No , Oct Sept. 2010) References [1] S. Demeyer, S. Ducasse, K. Mens, A. Trifu, and R. Vasa. Report of the ECOOP 03 workshop on object-oriented reengineering. In Object-Oriented Technology (ECOOP 03 Workshop Reader), LNCS, pages Springer-Verlag, [2] S. Demeyer, S. Ducasse, and O. Nierstrasz. Finding refactorings via change metrics. In Proceedings of 15th International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 00), pages , New York NY, ACM Press. [3] A. Dunsmore, M. Roper, and M. Wood. Object-oriented inspection in the face of delocalisation. In Proceedings of ICSE 00 (22nd International Conference on Software Engineering), pages ACM Press, [4] Eclipse platform: Technical overview, [5] G. Goth. Beware the march of this IDE: Eclipse is overshadowing other tool technologies. IEEE Software, 22(4): , [6] M. Haerry. Augmenting eclipse with dynamic information. Master s thesis, University of Bern, May [7] S. P. LLoyd. Least squares quantization in pcm. IEEE Transactions on Information Theory, 28: , [8] W. Löwe, A. Ludwig, and A. Schwind. Understanding software static and dynamic aspects. In 17th International Conference on Advanced Science and Technology, pages 52 57, [9] M. Pacione, M. Roper, and M. Wood. A novel software visualisation model to support software comprehension. In Proceedings of the 11th Working Conference on Reverse Engineering, pages IEEE Computer Society, Nov [10] D. Röthlisberger, O. Greevy, and O. Nierstrasz. Exploiting runtime information in the IDE. In Proceedings of the 16th International Conference on Program Comprehension (ICPC 2008), pages 63 72, Los Alamitos, CA, USA, IEEE Computer Society. [11] D. Röthlisberger, M. Härry, A. Villazón, D. Ansaloni, W. Binder, O. Nierstrasz, and P. Moret. Augmenting static source views in IDEs with dynamic metrics. In Proceedings of the 25th International Conference on Software Maintenance (ICSM 2009), pages , Los Alamitos, CA, USA, IEEE Computer Society. [12] T. Systä. On the relationships between static and dynamic models in reverse engineering java software. In Working Conference on Reverse Engineering (WCRE99), pages , Oct [13] N. Wilde and R. Huitt. Maintenance support for objectoriented programs. IEEE Transactions on Software Engineering, SE-18(12): , Dec
Understanding Software Static and Dynamic Aspects
Understanding Software Static and Dynamic Aspects Welf Löwe IPD, Universität Karlsruhe PF 6980, 76128 Karlsruhe Germany [email protected] Andreas Ludwig IPD, Universität Karlsruhe PF 6980, 76128 Karlsruhe
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
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,
Checking Access to Protected Members in the Java Virtual Machine
Checking Access to Protected Members in the Java Virtual Machine Alessandro Coglio Kestrel Institute 3260 Hillview Avenue, Palo Alto, CA 94304, USA Ph. +1-650-493-6871 Fax +1-650-424-1807 http://www.kestrel.edu/
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
Johannes Sametinger. C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria
OBJECT-ORIENTED DOCUMENTATION C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria Abstract Object-oriented programming improves the reusability of software
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
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
Editors Comparison (NetBeans IDE, Eclipse, IntelliJ IDEA)
České vysoké učení technické v Praze Fakulta elektrotechnická Návrh Uživatelského Rozhraní X36NUR Editors Comparison (NetBeans IDE, Eclipse, ) May 5, 2008 Goal and purpose of test Purpose of this test
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
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
SCC Online Web Edition
THE SUREST WAY TO LEGAL RESEARCH SCC Online Web Edition User Guide Welcome to SCC Online Make your legal research easier, quicker, and more effective Thank you for choosing SCC Online Web Edition as your
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
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
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]
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 [email protected]
MultiExperiment Viewer Quickstart Guide
MultiExperiment Viewer Quickstart Guide Table of Contents: I. Preface - 2 II. Installing MeV - 2 III. Opening a Data Set - 2 IV. Filtering - 6 V. Clustering a. HCL - 8 b. K-means - 11 VI. Modules a. T-test
Software Testing & Analysis (F22ST3): Static Analysis Techniques 2. Andrew Ireland
Software Testing & Analysis (F22ST3) Static Analysis Techniques Andrew Ireland School of Mathematical and Computer Science Heriot-Watt University Edinburgh Software Testing & Analysis (F22ST3): Static
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
DYNAMIC QUERY FORMS WITH NoSQL
IMPACT: International Journal of Research in Engineering & Technology (IMPACT: IJRET) ISSN(E): 2321-8843; ISSN(P): 2347-4599 Vol. 2, Issue 7, Jul 2014, 157-162 Impact Journals DYNAMIC QUERY FORMS WITH
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 [email protected] Péter Hegedűs, István
Modeling Turnpike: a Model-Driven Framework for Domain-Specific Software Development *
for Domain-Specific Software Development * Hiroshi Wada Advisor: Junichi Suzuki Department of Computer Science University of Massachusetts, Boston [email protected] and [email protected] Abstract. This
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
Model Simulation in Rational Software Architect: Business Process Simulation
Model Simulation in Rational Software Architect: Business Process Simulation Mattias Mohlin Senior Software Architect IBM The BPMN (Business Process Model and Notation) is the industry standard notation
creating a text-based editor for eclipse
creating a text-based editor for eclipse By Elwin Ho Contact author at: [email protected] June 2003 2003 HEWLETT-PACKARD COMPANY TABLE OF CONTENTS Purpose...3 Overview of the Eclipse Workbench...4 Creating
A Thread Monitoring System for Multithreaded Java Programs
A Thread Monitoring System for Multithreaded Java Programs Sewon Moon and Byeong-Mo Chang Department of Computer Science Sookmyung Women s University, Seoul 140-742, Korea [email protected], [email protected]
Tales of Empirically Understanding and Providing Process Support for Migrating to Clouds
Tales of Empirically Understanding and Providing Process Support for Migrating to Clouds M. Ali Babar Lancaster University, UK & IT University of Copenhagen Talk @ MESOCA, Eindhoven, the Netherlands September,
NetBeans Profiler is an
NetBeans Profiler Exploring the NetBeans Profiler From Installation to a Practical Profiling Example* Gregg Sporar* NetBeans Profiler is an optional feature of the NetBeans IDE. It is a powerful tool that
Creating and Using Links and Bookmarks in PDF Documents
Creating and Using Links and Bookmarks in PDF Documents After making a document into a PDF, there may be times when you will need to make links or bookmarks within that PDF to aid navigation through the
Lecture 1 Introduction to Android
These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy
Module 2 Using the Database
Health Information System (HIS) Part Three: Data Management Module 2 Using the Database CONTENTS 2.1 Before you start...................................................11 2.2 The first time you start..............................................12
A Case Study of Calculation of Source Code Module Importance
A Case Study of Calculation of Source Code Module Importance Takaaki Goto 1, Setsuo Yamada 2, Tetsuro Nishino 1, and Kensei Tsuchida 3 1 Graduate School of Informatics and Engineering, The University of
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
Fan Fu. Usability Testing of Cloud File Storage Systems. A Master s Paper for the M.S. in I.S. degree. April, 2013. 70 pages. Advisor: Robert Capra
Fan Fu. Usability Testing of Cloud File Storage Systems. A Master s Paper for the M.S. in I.S. degree. April, 2013. 70 pages. Advisor: Robert Capra This paper presents the results of a usability test involving
Interaction and Visualization Techniques for Programming
Interaction and Visualization Techniques for Programming Mikkel Rønne Jakobsen Dept. of Computing, University of Copenhagen Copenhagen, Denmark [email protected] Abstract. Programmers spend much of their
Visual Scoring the 360 View: 5 Steps for Getting Started with Easier, Faster and More Effective Lead Scoring
Visual Scoring the 360 View: 5 Steps for Getting Started with Easier, Faster and More Effective Lead Scoring Authors: Elissa Fink Wade Tibke Tableau Software p2 Lead Scoring For Most a Great Idea in Concept,
A methodology for measuring software development productivity using Eclipse IDE
Proceedings of the 9 th International Conference on Applied Informatics Eger, Hungary, January 29 February 1, 2014. Vol. 2. pp. 255 262 doi: 10.14794/ICAI.9.2014.2.255 A methodology for measuring software
Handling of "Dynamically-Exchanged Session Parameters"
Ingenieurbüro David Fischer AG A Company of the Apica Group http://www.proxy-sniffer.com Version 5.0 English Edition 2011 April 1, 2011 Page 1 of 28 Table of Contents 1 Overview... 3 1.1 What are "dynamically-exchanged
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions. Outline. Performance oriented design
PART IV Performance oriented design, Performance testing, Performance tuning & Performance solutions Slide 1 Outline Principles for performance oriented design Performance testing Performance tuning General
TESTING FRAMEWORKS. Gayatri Ghanakota
TESTING FRAMEWORKS Gayatri Ghanakota OUTLINE Introduction to Software Test Automation. What is Test Automation. Where does Test Automation fit in the software life cycle. Why do we need test automation.
Security visualisation
Security visualisation This thesis provides a guideline of how to generate a visual representation of a given dataset and use visualisation in the evaluation of known security vulnerabilities by Marco
Part I. Introduction
Part I. Introduction In the development of modern vehicles, the infotainment system [54] belongs to the innovative area. In comparison to the conventional areas such as the motor, body construction and
GAZETRACKERrM: SOFTWARE DESIGNED TO FACILITATE EYE MOVEMENT ANALYSIS
GAZETRACKERrM: SOFTWARE DESIGNED TO FACILITATE EYE MOVEMENT ANALYSIS Chris kankford Dept. of Systems Engineering Olsson Hall, University of Virginia Charlottesville, VA 22903 804-296-3846 [email protected]
AndroLIFT: A Tool for Android Application Life Cycles
AndroLIFT: A Tool for Android Application Life Cycles Dominik Franke, Tobias Royé, and Stefan Kowalewski Embedded Software Laboratory Ahornstraße 55, 52074 Aachen, Germany { franke, roye, kowalewski}@embedded.rwth-aachen.de
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
Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI)
Sonatype CLM Enforcement Points - Continuous Integration (CI) i Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI) ii Contents 1
How Programmers Use Internet Resources to Aid Programming
How Programmers Use Internet Resources to Aid Programming Jeffrey Stylos Brad A. Myers Computer Science Department and Human-Computer Interaction Institute Carnegie Mellon University 5000 Forbes Ave Pittsburgh,
The Evolution of Load Testing. Why Gomez 360 o Web Load Testing Is a
Technical White Paper: WEb Load Testing To perform as intended, today s mission-critical applications rely on highly available, stable and trusted software services. Load testing ensures that those criteria
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
Create an Excel BI report and share on SharePoint 2013
2013 Create an Excel BI report and share on SharePoint 2013 Hands-On Lab Lab Manual This document is provided as-is. Information and views expressed in this document, including URL and other Internet Web
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
Sonatype CLM Server - Dashboard. Sonatype CLM Server - Dashboard
Sonatype CLM Server - Dashboard i Sonatype CLM Server - Dashboard Sonatype CLM Server - Dashboard ii Contents 1 Introduction 1 2 Accessing the Dashboard 3 3 Viewing CLM Data in the Dashboard 4 3.1 Filters............................................
IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules
IBM Operational Decision Manager Version 8 Release 5 Getting Started with Business Rules Note Before using this information and the product it supports, read the information in Notices on page 43. This
Part 1 Foundations of object orientation
OFWJ_C01.QXD 2/3/06 2:14 pm Page 1 Part 1 Foundations of object orientation OFWJ_C01.QXD 2/3/06 2:14 pm Page 2 1 OFWJ_C01.QXD 2/3/06 2:14 pm Page 3 CHAPTER 1 Objects and classes Main concepts discussed
Metadata in Microsoft Office and in PDF Documents Types, Export, Display and Removal
White Paper Metadata in Microsoft Office and in PDF Documents Types, Export, Display and Removal Copyright 2002-2009 soft Xpansion GmbH & Co. KG White Paper Metadata in PDF Files 1 Contents Term Definitions
A QUICK OVERVIEW OF THE OMNeT++ IDE
Introduction A QUICK OVERVIEW OF THE OMNeT++ IDE The OMNeT++ 4.x Integrated Development Environment is based on the Eclipse platform, and extends it with new editors, views, wizards, and additional functionality.
COMPARISON OF OBJECT-ORIENTED AND PROCEDURE-BASED COMPUTER LANGUAGES: CASE STUDY OF C++ PROGRAMMING
COMPARISON OF OBJECT-ORIENTED AND PROCEDURE-BASED COMPUTER LANGUAGES: CASE STUDY OF C++ PROGRAMMING Kuan C. Chen, Ph.D. Assistant Professor Management Information Systems School of Management Purdue University
MASCOT Search Results Interpretation
The Mascot protein identification program (Matrix Science, Ltd.) uses statistical methods to assess the validity of a match. MS/MS data is not ideal. That is, there are unassignable peaks (noise) and usually
PLA 7 WAYS TO USE LOG DATA FOR PROACTIVE PERFORMANCE MONITORING. [ WhitePaper ]
[ WhitePaper ] PLA 7 WAYS TO USE LOG DATA FOR PROACTIVE PERFORMANCE MONITORING. Over the past decade, the value of log data for monitoring and diagnosing complex networks has become increasingly obvious.
DEVELOPMENT OF AN ANALYSIS AND REPORTING TOOL FOR ORACLE FORMS SOURCE CODES
DEVELOPMENT OF AN ANALYSIS AND REPORTING TOOL FOR ORACLE FORMS SOURCE CODES by Çağatay YILDIRIM June, 2008 İZMİR CONTENTS Page PROJECT EXAMINATION RESULT FORM...ii ACKNOWLEDGEMENTS...iii ABSTRACT... iv
POOSL IDE User Manual
Embedded Systems Innovation by TNO POOSL IDE User Manual Tool version 3.0.0 25-8-2014 1 POOSL IDE User Manual 1 Installation... 5 1.1 Minimal system requirements... 5 1.2 Installing Eclipse... 5 1.3 Installing
orrelog Ping Monitor Adapter Software Users Manual
orrelog Ping Monitor Adapter Software Users Manual http://www.correlog.com mailto:[email protected] CorreLog, Ping Monitor Users Manual Copyright 2008-2015, CorreLog, Inc. All rights reserved. No part
tools that make every developer a quality expert
tools that make every developer a quality expert Google: www.google.com Copyright 2006-2010, Google,Inc.. All rights are reserved. Google is a registered trademark of Google, Inc. and CodePro AnalytiX
Chapter 3 Application Monitors
Chapter 3 Application Monitors AppMetrics utilizes application monitors to organize data collection and analysis per application server. An application monitor is defined on the AppMetrics manager computer
vrealize Operations Manager User Guide
vrealize Operations Manager User Guide vrealize Operations Manager 6.0.1 This document supports the version of each product listed and supports all subsequent versions until the document is replaced by
Teaching Object-Oriented Programming with Games
2009 Sixth International Conference on Information Technology: New Generations Teaching Object-Oriented Programming with Games Lu Yan School of Computer Science, University of Hertfordshire Hatfield, Hertfordshire
JustClust User Manual
JustClust User Manual Contents 1. Installing JustClust 2. Running JustClust 3. Basic Usage of JustClust 3.1. Creating a Network 3.2. Clustering a Network 3.3. Applying a Layout 3.4. Saving and Loading
Source Code Translation
Source Code Translation Everyone who writes computer software eventually faces the requirement of converting a large code base from one programming language to another. That requirement is sometimes driven
Department of Veterans Affairs. Open Source Electronic Health Record Services
Department of Veterans Affairs Open Source Electronic Health Record Services MTools Installation and Usage Guide Version 1.0 June 2013 Contract: VA118-12-C-0056 Table of Contents 1. Installation... 3 1.1.
Bulk Upload Tool (Beta) - Quick Start Guide 1. Facebook Ads. Bulk Upload Quick Start Guide
Bulk Upload Tool (Beta) - Quick Start Guide 1 Facebook Ads Bulk Upload Quick Start Guide Last updated: February 19, 2010 Bulk Upload Tool (Beta) - Quick Start Guide 2 Introduction The Facebook Ads Bulk
Instrumentation Software Profiling
Instrumentation Software Profiling Software Profiling Instrumentation of a program so that data related to runtime performance (e.g execution time, memory usage) is gathered for one or more pieces of the
Tips and Tricks SAGE ACCPAC INTELLIGENCE
Tips and Tricks SAGE ACCPAC INTELLIGENCE 1 Table of Contents Auto e-mailing reports... 4 Automatically Running Macros... 7 Creating new Macros from Excel... 8 Compact Metadata Functionality... 9 Copying,
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
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
Model-based approach to design web application testing tool
American Journal of Software Engineering and Applications 2014; 3(5): 63-67 Published online November 20, 2014 (http://www.sciencepublishinggroup.com/j/ajsea) doi: 10.11648/j.ajsea.20140305.12 ISSN: 2327-2473
Outline. Lecture 13: Web Usability. Top Ten Web Design Mistakes. Web Usability Principles Usability Evaluations
Lecture 13: Web Usability Outline Web Usability Principles Usability Evaluations Wendy Liu CSC309F Fall 2007 1 2 What Makes Web Application Development Hard? Target audience can be difficult to define
Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder
Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder Matt Department of Computer Science and Engineering University of Minnesota [email protected] Abstract We present
GETTING STARTED WITH COVALENT BROWSER
GETTING STARTED WITH COVALENT BROWSER Contents Getting Started with Covalent Browser... 1 What is the Browser Version?... 4 Logging in... 5 The URL address... 5 Home page... 5 Menu bar... 5 Go To button...
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
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,
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
Cedalion A Language Oriented Programming Language (Extended Abstract)
Cedalion A Language Oriented Programming Language (Extended Abstract) David H. Lorenz Boaz Rosenan The Open University of Israel Abstract Implementations of language oriented programming (LOP) are typically
Visualizing the Top 400 Universities
Int'l Conf. e-learning, e-bus., EIS, and e-gov. EEE'15 81 Visualizing the Top 400 Universities Salwa Aljehane 1, Reem Alshahrani 1, and Maha Thafar 1 [email protected], [email protected], [email protected]
A Comparison of Google and Yahoo: Which is More Cost Effective When Using Sponsored Links for Small Companies?
CS-BIGS 2(2): 114-119 2009 CS-BIGS http://www.bentley.edu/csbigs/vol2-2/kennedy.pdf A Comparison of Google and Yahoo: Which is More Cost Effective When Using Sponsored Links for Small Companies? Kristin
Departamento de Investigación. LaST: Language Study Tool. Nº 143 Edgard Lindner y Enrique Molinari Coordinación: Graciela Matich
Departamento de Investigación LaST: Language Study Tool Nº 143 Edgard Lindner y Enrique Molinari Coordinación: Graciela Matich Noviembre 2005 Para citar este documento: Lindner, Edgard; Enrique Molinari,
USING THE RETENTION CENTER
USING THE RETENTION CENTER The Retention Center provides an easy way for you to discover which students in your course are at risk. Based on preconfigured rules and rules you create, students engagement
