Gadget: A Tool for Extracting the Dynamic Structure of Java Programs
|
|
|
- Adela George
- 9 years ago
- Views:
Transcription
1 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 Abstract Source code analysis and inspection does not provide enough information to describe the structure of an objectoriented program completely because there are components and relations that only exist during its runtime. This paper presents a tool, called Gadget, that helps software engineers extract the dynamic structure of objectoriented programs written in the Java programming language. The tool uses program profiling, filtering, and graph clustering techniques. In this work we show how Gadget is used to analyze a standard graphical user interface library for Java, called Swing. This library has a complex structure, part of which we expose using data gathered by Gadget during the execution of a simple Java program that uses Swing. 1. Introduction As the size of a software system increases, so does the complexity of its structure. The use of object-oriented (OO) development techniques and languages helps programmers manage this complexity by supporting data abstraction, encapsulation, polymorphism, and reuse. However, the OO approach makes understanding the structure of these systems more difficult because of features such as dynamic binding and polymorphism. Understanding the dynamic structure of a system is helpful during software maintenance. The dynamic structure of an OO program shows which objects are created and what messages are sent between these objects at runtime. Dynamic analysis can be used to complement static sourcelevel inspection and analysis, which may not provide all of the information software engineers need in order to understand an OO system. For example, the Factory OO design pattern [3] is used to manufacture objects and make these objects accessible to client objects through an abstract interface at runtime. Static analysis, using a tool such as Chava [6], would only reveal part of the complete design. Specifically, it would reveal the relationship between the client class and the Factory class but not between the client and the objects that were created by the Factory at runtime. This paper describes a tool, called Gadget, to help software engineers extract the dynamic structure of Java programs. In the profiling phase the tool gathers runtime data from the executing program. This data captures class loading, object creation, and method invocation events. In the analysis phase the tool uses filtering and abstraction techniques to select classes of interest. The instances of these classes and their runtime relations are then displayed as a graph. In general, one or more features of the target program is analyzed at a time (e.g., the Save feature of a word processing program). The recording of events that occur during the execution of a feature is called tracing, and the collection of trace data is called a profile. The profile is analyzed by the tool and the dynamic structure of the objects and relations involved in the trace is shown as a DDG (Dynamic Dependency Graph). A DDG is a graph where nodes represent classes or objects and edges represent relations (i.e., method invocation) between two objects or between a static class and an object. A method invocation can be an object creation (i.e., call to a constructor method) or a simple method call. Gadget uses a tool from AT&T Research called dotty [4] to display the DDGs. An example of a DDG is shown in Figure 7. Additionally, Gadget uses a clustering algorithm to partition the DDGs, thus presenting the dynamic structures in a modular fashion that is easier to understand. Figure 1 shows the architecture of Gadget, which consists of three main components: Control, Repository, and Profiler. The Control and Profiler components execute on different Java Virtual Machines (JVMs). The Control component contains Gadget s execution and analysis engines (i.e., Gadget Executor and Gadget Analyzer). The execution engine is in charge of the execution of Gadget and has some control of the execution of the target program being
2 Profiler Target Application SergProf JVMPI JVM2 stantiation patterns during the execution of a program. His approach requires tracing the execution of the program being analyzed and then visualizing the dynamic data captured by the trace. This work is concerned with searching for solutions to the problem of visualizing large data sets of runtime data. It also focuses on detecting inconsistencies between the design and implementation of software systems. Repository Control Profiling Data (file) Gadget Executor De Paw, Helm, Kimelman and Vlissides [12] have created a library for extracting and animating the behavior of OO systems. They present summary information about the execution of a program using a chart-like visualization. They also present techniques to instrument OO programs so that their executions can be traced. Gadget Analyzer USER JVM1 Richner, Duccasse and Wuyts [10] use logic programming to filter data that is generated by execution traces. Their approach also requires code instrumentation. Figure 1. Software Architecture of Gadget. analyzed. The analysis engine is in charge of managing the analysis process logic. This includes the interaction with the repository and the interaction with the user interface. Gadget s repository is an external file that contains data about the execution of the target program. This file is first written by the profiler and then read by the analysis engine. The Profiler component is in charge of running the target program through the SergProf profiling interface, which is our implementation of Sun Microsystem s Java Virtual Machine Profiling Interface (JVMPI) [13]. SergProf traces class loading, object allocation, method invocation and stack information at the time an object is allocated. The structure of the rest of this paper is as follows: Section 2 provides an overview of related research. Section 3 provides background information about the Pluggable Look and Feel (PLAF) feature of the Java Swing library. Section 4 uses Gadget to extract the structure of the PLAF feature. This section presents the basic features of Gadget and shows screen captures of the tool, as well as the results of the PLAF feature s analysis. Section 5 concludes with a summary of the paper, an outline of the contributions made, and a list of the limitations of the current version of Gadget. 2. Background In this section we outline the body of work that is most closely related to the work presented in this paper. At the end of the section we state the distinguishing characteristics of our work. Jerding s [5] approach to supporting OO program understanding is based on visualizing object interactions and in- Shilling and Stasko [11], and later Stasko and Mukherjea [9], worked on animating designs and algorithms, which can be helpful during the design process. Unlike the other work presented in this section, their work does not involve program tracing and does not take a reverse engineering approach. What distinguishes our work from the above research is the emphasis on filtering and clustering the trace data before producing design visualizations. Unlike Jerding s work, which tries to reduce complexity by providing better visualizations, our approach attempts to reduce complexity by filtering out only the runtime data that is relevant to the program feature being analyzed. Automatic clustering was identified by Belady and Evangelisti [1] as a means to produce high-level views of the structure of software systems. We use the Bunch [8] clustering system to group sets of objects and their interrelations in order to produce a high-level road map of the dynamic software structure. Another distinguishing characteristic is that our work does not rely on program instrumentation but rather on capturing trace data directly from the Java virtual machine using the JVMPI [13]. Finally, we are treating this work as an ongoing project and hope to receive feedback from users. For this reason we provide a free copy of Gadget from our web page ( and intend to maintain the tool if a significant user community materializes. Before we show how Gadget is used to extract the structure of Swing s PLAF feature in Section 4, we briefly provide some background material on this feature in the next section.
3 3. The Pluggable Look and Feel Feature of the Swing Library Swing is a Java library to support the development of graphical user interfaces for Java programs. One of Swing s goals is to support multiple platforms while preserving a consistent look and feel. The Swing pluggable look-and-feel (PLAF) design is the portion of a GUI component s implementation that deals with the presentation (the look) and event-handling (the feel). Note that the LAF can be changed at runtime [2]. Figure 2 shows three different GUI buttons, each with a different LAF. Figure 2. Example program with three different LAFs (default, Motif and Windows). Swing enables programmers to change the LAF of a GUI dynamically by means of a simple interface as shown in the following source code fragment, where the LAF is changed by using a command line argument if (args.length > 0 && args[0].equals("motif")) 6 UIManager.setLookAndFeel( "com.sun.java.swing.plaf.motif.motiflookandfeel"); 7 else if (args.length > 0 && args[0].equals("windows")) 8 UIManager.setLookAndFeel( "com.sun.java.swing.plaf.windows.windowslookandfeel");... As shown in lines 6 and 8 of the source code, the UIManager class is used change the PLAF dynamically. In order to explain the UIManager class let us consider the process for creating a JButton component (see Figure 3). The creation of the JButton component includes the installation of a corresponding UI delegate through the UIManager class. The UIManager then gets the name for the UI delegate class for this component, depending on the installed LAF. For example the UI delegate class of the Windows LAF JButton is WindowsButtonUI. Finally, a UI delegate object is created and the JButton component obtains a reference to it. This process is called UI Installation. The UI delegate is installed by the UIManager class, which is a static class that has knowledge of the current LAF. The UIManager class makes use of the UIDefaults class, which has methods for accessing specific types of information about look-and-feel. The UIDefaults class includes, among other things, default values for presentation-related properties (such as color, font, border, and icon) for each UI delegate. Figure 3 shows the class diagram for a program that uses a JButton with a PLAF. This diagram describes Swing s structure (for one component) showing the relations between the different classes. Examples of inheritance relations are the large edge relations between Motif- ButtonUI and WindowsButtonUI with BasicButtonUI (they both extend BasicButtonUI). The dotted edge relation between JButton and UIManager is an example of a relation between classes that depend on static calls made in the process of installing a PLAF to a component. The dashed edge relation between the JButton class and each of the specific LAF classes (MotifButtonUI and WindowsButtonUI) is an example of a runtime relation. 4. Analysis of Swing s PLAF Feature Using Gadget This section shows how Gadget can help programmers extract the structure of the PLAF feature of Swing, which was described in the previous section. As an example we will analyze a small program that displays a window with a button. The program contains only one class, called PLAFTester, which is also the name of the program. The PLAFTester program loads a JFrame and adds a JButton. To show a correlation between the extracted structure of a JButton, as produced by Gadget, and the design described in Figure 3, the Windows look and feel was set during runtime. We next go through the step-by-step process of extracting the structure of the PLAF feature using Gadget. Throughout the explanation of this process, screen shots of the tool will be shown. The Gadget GUI has two main panels (see Figures 4-6, 8). Each panel is selected by clicking on a tab. One tab reveals the tracing panel and the other the analysis panel. The analysis panel uses a wizard style interface, which helps users go through the correct sequence of steps via Next and Back buttons Step 1: Tracing The first step in the analysis is to run PLAFTester using Gadget s tracing capabilities. The execution involves starting the program until it displays a window. No further trac-
4 Figure 3. Architecture of the JButton UI Installation Process Figure 4. Profiling Screen
5 Figure 5. Package Filtering Screen ing is needed because all of the objects related to the PLAF are already loaded when the window is displayed. Figure 4 shows the name of the class containing the main method in the text field. The user can start running the target program by pressing Gadget s Start Program button. This action starts executing the program by displaying a new window (if the program has a GUI) or sends the output to the console from where Gadget was started. After the program starts running, the user can begin tracing by pressing the Begin Trace button. By doing this, the profiling interface starts tracing and the trace data is dumped to the profile file (e.g., serg.prof). By pressing the Pause Trace button, the profiler stops generating data. This option is useful when the user wants to analyze program features one at a time Step 2: Selecting Packages Once the trace is performed, Gadget s analysis tool is started. The first step in the analysis is to select the packages to be included in the analysis. Figure 5 shows a screenshot of the first analysis screen. On this screen the user specifies the profile file name and then the package names to include in the analysis. Users may specify which packages are to be included in the analysis either manually, using the Add and Remove buttons, or automatically using the Search button. The list in the center of the screen is the packages list, which shows the selected packages containing the classes to be analyzed Step 3: Selecting Classes After selecting the packages, the next step is to select the classes from the selected packages. By pressing the Next button on the Package Filtering Screen, Gadget performs the filtering of the profile. After the filtering is complete, the Class Filtering Screen is displayed, showing the classes that participated in the execution. The screen presented in Figure 6 contains two lists. One contains the selected classes to be included in the analysis and the other contains the classes that will be ignored Step 4: Showing the Dynamic Dependency Graph After selecting the classes, Gadget displays a DDG, which represents the runtime relations as edges and the objects as nodes. The graph is shown in Figure 7; dark nodes represent classes that were not instantiated, but that interact with objects via static methods, and light nodes represent objects that were created at runtime.
6 Figure 6. Class Filtering Screen Figure 7 essentially presents the same information as Figure 3 from a runtime perspective. The numbers on the edges of the DDG in Figure 7 indicate the order of the method invocations between the objects at runtime. For example, the JButton first sends a message to the UIManager, then the UIManager sends a message to the UIDefaults object, and so on. Unlike Figure 3, Figure 7 does not show inheritance relations because they are static not dynamic relations. In most cases, software engineers do not have access to documentation about the OO design of the system they are trying to understand. In the absence of such documentation, a tool such as Gadget can provide one of more DDGs that can serve as a good starting point for the program understanding process Step 5: Performing Clustering on the DDG By pressing the Next button in the Class Filtering Screen, the Clustering Screen (Figure 8) appears. Before showing this screen, Gadget calls the Bunch [7] tool to cluster the current DDG. The Bunch algorithm partitions the DDG so objects that are tightly linked via relations are grouped together, as such objects are more likely to be closely related. The algorithm also tries to minimize the number of relations across cluster boundaries. In essence, the algorithm balances the tradeoff between tight intra-cluster cohesion and loose inter-cluster coupling. In Figure 8 the user can see the clustered DDG by pressing the View Graph button. This view shows all of the clusters and the objects and relations in each cluster. If the View Cluster button is pressed, the classes within the selected cluster are displayed in the graph using dotty. This filtering option is useful when working with a large number of objects, whose complex DDG may be difficult to read. Gadget also shows the clusters using a directory tree representation, where each folder in the tree represents a cluster (see Figure 8). Users may show or hide the contents of each cluster by pressing the plus or minus sign on each folder icon, respectively. 5. Conclusions We described a tool called Gadget and showed how this tool can be used to extract the runtime structure of OO programs written Java. In order to study the PLAF feature, we applied Gadget to a small program that uses a Swing JButton. The paper concludes with the technical and research contributions of this work along with a description of this work s limitations, which present opportunities for future work.
7 javax.swing.plaf.basic.basicbuttonui plaf.plaftester 13 7 javax.swing.uimanager 11 com.sun.java.swing.plaf.windows.windowslookandfeel javax.swing.plaf.basic.basiclookandfeel javax.swing.uidefaults 4 3 com.sun.java.swing.plaf.windows.windowsbuttonui javax.swing.jbutton 5 22 javax.swing.jcomponent javax.swing.defaultbuttonmodel javax.swing.plaf.componentui Figure 7. The DDG of the PLAFTester program. Figure 8. Clustering Screen
8 5.1. Contributions Gadget s filtering features for reducing the size of program execution traces are essential when dealing with complex OO software. For the most part, the tool s filtering techniques take advantage of the way Java programs are organized into packages and classes. In addition to package and class filtering, the tool supports another type of filtering that enables users to trace individual features of a program by using Gadget s Begin Trace, Pause Trace, and End Trace buttons. Gadget uses software clustering techniques to make large dynamic structures more modular and, thus, easier to understand. Most of the work on software clustering has been on clustering static code artifacts such as methods, classes, modules, and files. Gadget allows software engineers to analyze Java programs without instrumenting the source code. Gadget is available, free of charge, from our web page Limitations Gadget uses files to store traces, thus, its performance is poor when large profiles are analyzed. The current version of Gadget only runs on the Windows platform because SergProf is implemented as a Windows dynamically linked library. Gadget only works with Java programs. One of goals is to support C++ in the near future. Acknowledgments This research is sponsored by two grants from the National Science Foundation (NSF): a CAREER Award under grant CCR and an Instrumentation Award under grant CISE Additional support was provided by grants from the research laboratories of AT&T and Sun Microsystems. Any opinions, findings, conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the NSF, the U.S. government, AT&T, or Sun Microsystems. References [1] L. Belady and C. Evangelisti. System partitioning and its measure. Journal of Systems and Software, 2, pages 23 29, [2] A. Fowler. A swing architecture overview: The inside story on jfc component design. architecture/index.html, August [3] E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design patterns: Elements of reusable object-oriented software. Addison -Wesley, [4] E. Gansner, E. Koutsofios, S. North, and K. Vo. A technique for drawing directed graphs. Transactions on Software Engineering, 19(3): , March [5] D. F. Jerding. Visualizing Interaction Patterns In Program Executions. PhD thesis, Georgia Institute of Technology, November [6] J. Korn, Y. Chen, and E. Koutsofios. Chava: Reverse engineering and tracking of java applets. Working Conference on Reverse Engineering, [7] S. Mancoridis, B. Mitchell, Y. Chen, and E. Gansner. Bunch: A clustering tool for the recovery and maintenance of software system structures. IEEE Proceedings of the 1999 International Conference on Software Maintenance (ICSM 99). IEEE, [8] S. Mancoridis, B. Mitchell, C. Rorres, Y. Chen, and E. Gansner. Using automatic clustering to produce high-level system organizations of source code. In Proceedings of the 6th Intl. Workshop on Program Comprehension, June [9] S. Mukherjea and J. Stasko. Toward visual debugging: Integrating algorithm animation capabilities within a source-level debugger. ACM Transactions on Computer-Human Interaction, Vol. 1 No. 3, pages , [10] T. Richner and S. Ducasse. Recovering high-level views of object-oriented applications from static and dynamic information. In Proceedings of the International Conference on Software Maintenance (ICSM), Oxford, pages 13 22, September [11] J. Shilling and J. Stasko. Using animation to design, document and trace object-oriented systems. Technical Report GIT-GVU-92-12, Graphics, Visualization, and Usability Center, Georgia Institute of technology, College of Computing, Atlanta, GA, June [12] R. H. W. De Paw, D. Kimelman, and J. Vlissides. Visualizing the behavior of object-oriented systems. In Proceedings of the ACM OOPSLA 93 Conference, Washington, D.C., pages , October [13] Jvmpi - java virtual machine profiling interface
Going Interactive: Combining Ad-Hoc and Regression Testing
Going Interactive: Combining Ad-Hoc and Regression Testing Michael Kölling 1, Andrew Patterson 2 1 Mærsk Mc-Kinney Møller Institute, University of Southern Denmark, Denmark [email protected] 2 Deakin University,
Computing Concepts with Java Essentials
2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Computing Concepts with Java Essentials 3rd Edition Cay Horstmann
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
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
PHP Code Design. The data structure of a relational database can be represented with a Data Model diagram, also called an Entity-Relation diagram.
PHP Code Design PHP is a server-side, open-source, HTML-embedded scripting language used to drive many of the world s most popular web sites. All major web servers support PHP enabling normal HMTL pages
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
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
UML for C# Modeling Basics
UML for C# C# is a modern object-oriented language for application development. In addition to object-oriented constructs, C# supports component-oriented programming with properties, methods and events.
Fundamentals of Java Programming
Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors
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
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
Oracle Service Bus Examples and Tutorials
March 2011 Contents 1 Oracle Service Bus Examples... 2 2 Introduction to the Oracle Service Bus Tutorials... 5 3 Getting Started with the Oracle Service Bus Tutorials... 12 4 Tutorial 1. Routing a Loan
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]
Java is commonly used for deploying applications across a network. Compiled Java code
Module 5 Introduction to Java/Swing Java is commonly used for deploying applications across a network. Compiled Java code may be distributed to different machine architectures, and a native-code interpreter
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
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
Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering
Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 2 GoF Design Patterns Creational 1 GoF Design Patterns Principles Emphasis on flexibility and reuse through decoupling of classes. The underlying
3D Animation of Java Program Execution for Teaching Object Oriented Concepts
3D Animation of Java Program Execution for Teaching Object Oriented Concepts Tim Storer September 23, 2006 Abstract The successful teaching of the object oriented programming paradigm has been identified
Online Construction of Dynamic Object Process Graphs
Online Construction of Dynamic Object Process Graphs Jochen Quante University of Bremen, Germany [email protected] Abstract A dynamic object process is a view on the control flow from the
Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation
Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm
JiST Graphical User Interface Event Viewer. Mark Fong [email protected]
JiST Graphical User Interface Event Viewer Mark Fong [email protected] Table of Contents JiST Graphical User Interface Event Viewer...1 Table of Contents...2 Introduction...3 What it does...3 Design...3
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
Manage Software Development in LabVIEW with Professional Tools
Manage Software Development in LabVIEW with Professional Tools Introduction For many years, National Instruments LabVIEW software has been known as an easy-to-use development tool for building data acquisition
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
Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.
Objectives To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system Chapter 2: Operating-System Structures
Java Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
COMPUTER SCIENCE COURSE OUTLINE
COMPUTER SCIENCE COURSE OUTLINE Grade 7 8 11/12 10/11/12 11/12 Course Introduction to Computer Essentials (focus on Applications) Part 1 Computer Applications Part 2- Computer Integration Advanced Computer
Chapter 12 Programming Concepts and Languages
Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Paradigm Publishing, Inc. 12-1 Presentation Overview Programming Concepts Problem-Solving Techniques The Evolution
Managing Variability in Software Architectures 1 Felix Bachmann*
Managing Variability in Software Architectures Felix Bachmann* Carnegie Bosch Institute Carnegie Mellon University Pittsburgh, Pa 523, USA [email protected] Len Bass Software Engineering Institute Carnegie
core. Volume I - Fundamentals Seventh Edition Sun Microsystems Press A Prentice Hall Title ULB Darmstadt
core. 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Volume I - Fundamentals Seventh Edition CAY S. HORSTMANN GARY
A TOOL FOR DATA STRUCTURE VISUALIZATION AND USER-DEFINED ALGORITHM ANIMATION
A TOOL FOR DATA STRUCTURE VISUALIZATION AND USER-DEFINED ALGORITHM ANIMATION Tao Chen 1, Tarek Sobh 2 Abstract -- In this paper, a software application that features the visualization of commonly used
Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces
Software Engineering, Lecture 4 Decomposition into suitable parts Cross cutting concerns Design patterns I will also give an example scenario that you are supposed to analyse and make synthesis from The
For Introduction to Java Programming, 5E By Y. Daniel Liang
Supplement H: NetBeans Tutorial For Introduction to Java Programming, 5E By Y. Daniel Liang This supplement covers the following topics: Getting Started with NetBeans Creating a Project Creating, Mounting,
A standards-based approach to application integration
A standards-based approach to application integration An introduction to IBM s WebSphere ESB product Jim MacNair Senior Consulting IT Specialist [email protected] Copyright IBM Corporation 2005. All rights
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
Verifying Business Processes Extracted from E-Commerce Systems Using Dynamic Analysis
Verifying Business Processes Extracted from E-Commerce Systems Using Dynamic Analysis Derek Foo 1, Jin Guo 2 and Ying Zou 1 Department of Electrical and Computer Engineering 1 School of Computing 2 Queen
Instructional Design Framework CSE: Unit 1 Lesson 1
Instructional Design Framework Stage 1 Stage 2 Stage 3 If the desired end result is for learners to then you need evidence of the learners ability to then the learning events need to. Stage 1 Desired Results
Syllabus for CS 134 Java Programming
- Java Programming Syllabus Page 1 Syllabus for CS 134 Java Programming Computer Science Course Catalog 2000-2001: This course is an introduction to objectoriented programming using the Java language.
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
Program Visualization for Programming Education Case of Jeliot 3
Program Visualization for Programming Education Case of Jeliot 3 Roman Bednarik, Andrés Moreno, Niko Myller Department of Computer Science University of Joensuu [email protected] Abstract:
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
KITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php [email protected] [email protected] Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
High-level Design. What is software architecture?
High-level Design Software Architecture What is it? Examples of common architectures Parnas KWIK index example of information hiding Model view controller in high level layered design 1 What is software
PHP FRAMEWORK FOR DATABASE MANAGEMENT BASED ON MVC PATTERN
PHP FRAMEWORK FOR DATABASE MANAGEMENT BASED ON MVC PATTERN Chanchai Supaartagorn Department of Mathematics Statistics and Computer, Faculty of Science, Ubon Ratchathani University, Thailand [email protected]
Creating a Network Graph with Gephi
Creating a Network Graph with Gephi Gephi is a powerful tool for network analysis, but it can be intimidating. It has a lot of tools for statistical analysis of network data most of which you won't be
NetBeans IDE Field Guide
NetBeans IDE Field Guide Copyright 2005 Sun Microsystems, Inc. All rights reserved. Table of Contents Introduction to J2EE Development in NetBeans IDE...1 Configuring the IDE for J2EE Development...2 Getting
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
How to Develop Accessible Linux Applications
Sharon Snider Copyright 2002 by IBM Corporation v1.1, 2002 05 03 Revision History Revision v1.1 2002 05 03 Revised by: sds Converted to DocBook XML and updated broken links. Revision v1.0 2002 01 28 Revised
XFlash A Web Application Design Framework with Model-Driven Methodology
International Journal of u- and e- Service, Science and Technology 47 XFlash A Web Application Design Framework with Model-Driven Methodology Ronnie Cheung Hong Kong Polytechnic University, Hong Kong SAR,
Object-oriented design methodologies
Object-oriented design methodologies An object-oriented methodology is defined as the system of principles and procedures applied to object-oriented software development. Five years ago, there was no standard
HP ALM Best Practices Series
HP ALM Best Practices Series For ALM Practitioners Business Process Models Best Practices Document Release Date: June 2015 Legal Notices Warranty The only warranties for HP products and services are set
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
E4 development: examples, methods and tools. Eclipse Con France 2014
E4 development: examples, methods and tools Eclipse Con France 2014 18-19 June 2014 Table des matières I - Eclipse 4 Workshop 5 A. OPCoach... 5 B. Workshop Eclipse 4 : Building an E4 application... 6
Configuring and Integrating Oracle
Configuring and Integrating Oracle The Basics of Oracle 3 Configuring SAM to Monitor an Oracle Database Server 4 This document includes basic information about Oracle and its role with SolarWinds SAM Adding
Software Design Document (SDD) Template
(SDD) Template Software design is a process by which the software requirements are translated into a representation of software components, interfaces, and data necessary for the implementation phase.
Model-View-Controller (MVC) Design Pattern
Model-View-Controller (MVC) Design Pattern Computer Science and Engineering College of Engineering The Ohio State University Lecture 23 Motivation Basic parts of any application: Data being manipulated
Programming and Software Development CTAG Alignments
Programming and Software Development CTAG Alignments This document contains information about four Career-Technical Articulation Numbers (CTANs) for Programming and Software Development Career-Technical
Business Process Management IBM Business Process Manager V7.5
Business Process Management IBM Business Process Manager V7.5 Federated task management for BPEL processes and human tasks This presentation introduces the federated task management feature for BPEL processes
Object Oriented Databases. OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar
Object Oriented Databases OOAD Fall 2012 Arjun Gopalakrishna Bhavya Udayashankar Executive Summary The presentation on Object Oriented Databases gives a basic introduction to the concepts governing OODBs
ABSTRACT. Keywords Virtual Reality, Java, JavaBeans, C++, CORBA 1. INTRODUCTION
Tweek: Merging 2D and 3D Interaction in Immersive Environments Patrick L Hartling, Allen D Bierbaum, Carolina Cruz-Neira Virtual Reality Applications Center, 2274 Howe Hall Room 1620, Iowa State University
Glossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
Dynamic Adaptability of Services in Enterprise JavaBeans Architecture
1. Introduction Dynamic Adaptability of Services in Enterprise JavaBeans Architecture Zahi Jarir *, Pierre-Charles David **, Thomas Ledoux ** [email protected], {pcdavid, ledoux}@emn.fr (*) Faculté
Course Title: Software Development
Course Title: Software Development Unit: Customer Service Content Standard(s) and Depth of 1. Analyze customer software needs and system requirements to design an information technology-based project plan.
Programming and Software Development (PSD)
Programming and Software Development (PSD) Course Descriptions Fundamentals of Information Systems Technology This course is a survey of computer technologies. This course may include computer history,
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
http://netbeans.org/kb/docs/java/gui-functionality.html?print=yes
Page 1 of 6 Introduction to GUI Building Contributed by Saleem Gul and Tomas Pavek, maintained by Ruth Kusterer and Irina Filippova This beginner tutorial teaches you how to create a simple graphical user
Course MS10975A Introduction to Programming. Length: 5 Days
3 Riverchase Office Plaza Hoover, Alabama 35244 Phone: 205.989.4944 Fax: 855.317.2187 E-Mail: [email protected] Web: www.discoveritt.com Course MS10975A Introduction to Programming Length: 5 Days
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
Search help. More on Office.com: images templates
Page 1 of 7 PowerPoint 2010 Home > PowerPoint 2010 Help and How-to > Getting started with PowerPoint Search help More on Office.com: images templates Basic tasks in PowerPoint 2010 Here are some basic
Analysis and Design of Software Systems Practical Session 01. System Layering
Analysis and Design of Software Systems Practical Session 01 System Layering Outline Course Overview Course Objectives Computer Science vs. Software Engineering Layered Architectures Selected topics in
Exploiting Dynamic Information in IDEs Eases Software Maintenance
Exploiting Dynamic Information in IDEs Eases Software Maintenance David Röthlisberger Software Composition Group, University of Bern, Switzerland [email protected] Abstract The integrated development
Software Refactoring using New Architecture of Java Design Patterns
Software Refactoring using New Architecture of Java Design Patterns Norddin Habti, Prashant 1, 1 Departement d informatique et de recherche operationnelle, Universite de Montreal, Quebec, Canada (Dated:
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
Tivoli Endpoint Manager for Remote Control Version 8 Release 2. User s Guide
Tivoli Endpoint Manager for Remote Control Version 8 Release 2 User s Guide Tivoli Endpoint Manager for Remote Control Version 8 Release 2 User s Guide Note Before using this information and the product
EVALUATION ONLY. WA2088 WebSphere Application Server 8.5 Administration on Windows. Student Labs. Web Age Solutions Inc.
WA2088 WebSphere Application Server 8.5 Administration on Windows Student Labs Web Age Solutions Inc. Copyright 2013 Web Age Solutions Inc. 1 Table of Contents Directory Paths Used in Labs...3 Lab Notes...4
Rational DOORS Next Generation. Quick Start Tutorial
Rational DOORS Next Generation Quick Start Tutorial 1 Contents 1. Introduction... 2 2. Terminology... 3 3. Project Area Preparation... 3 3.1 Creating the project area... 3 4 Browsing Artifacts and Modules...
Create, Link, or Edit a GPO with Active Directory Users and Computers
How to Edit Local Computer Policy Settings To edit the local computer policy settings, you must be a local computer administrator or a member of the Domain Admins or Enterprise Admins groups. 1. Add the
What's New in ADP Reporting?
What's New in ADP Reporting? Welcome to the latest version of ADP Reporting! This release includes the following new features and enhancements. Use the links below to learn more about each one. What's
Karunya University Dept. of Information Technology
PART A Questions 1. Mention any two software process models. 2. Define risk management. 3. What is a module? 4. What do you mean by requirement process? 5. Define integration testing. 6. State the main
Introduction to Eclipse
Introduction to Eclipse Overview Eclipse Background Obtaining and Installing Eclipse Creating a Workspaces / Projects Creating Classes Compiling and Running Code Debugging Code Sampling of Features Summary
Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB
September Case Studies of Running the Platform NetBeans UML Servlet JSP GlassFish EJB In this project we display in the browser the Hello World, Everyone! message created in the session bean with servlets
ABET General Outcomes. Student Learning Outcomes for BS in Computing
ABET General a. An ability to apply knowledge of computing and mathematics appropriate to the program s student outcomes and to the discipline b. An ability to analyze a problem, and identify and define
Object Instance Profiling
Object Instance Profiling Lubomír Bulej 1,2, Lukáš Marek 1, Petr Tůma 1 Technical report No. 2009/7, November 2009 Version 1.0, November 2009 1 Distributed Systems Research Group, Department of Software
Industrial Adoption of Automatically Extracted GUI Models for Testing
Industrial Adoption of Automatically Extracted GUI Models for Testing Pekka Aho 1,2 [email protected], Matias Suarez 3 [email protected], Teemu Kanstrén 1,4 [email protected], and Atif M. Memon
WebSphere Training Outline
WEBSPHERE TRAINING WebSphere Training Outline WebSphere Platform Overview o WebSphere Product Categories o WebSphere Development, Presentation, Integration and Deployment Tools o WebSphere Application
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
Computer Organization
Basics Machine, software, and program design JPC and JWD 2002 McGraw-Hill, Inc. Computer Organization CPU - central processing unit Where decisions are made, computations are performed, and input/output
Technical paper review. Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald.
Technical paper review Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald Garvit Pahal Indian Institute of Technology, Kanpur October 28, 2014 Garvit
CA Process Automation
CA Process Automation Glossary Service Pack 04.0.01 This Documentation, which includes embedded help systems and electronically distributed materials, (hereinafter referred to as the Documentation ) is
Chapter 1 Fundamentals of Java Programming
Chapter 1 Fundamentals of Java Programming Computers and Computer Programming Writing and Executing a Java Program Elements of a Java Program Features of Java Accessing the Classes and Class Members The
FileNet System Manager Dashboard Help
FileNet System Manager Dashboard Help Release 3.5.0 June 2005 FileNet is a registered trademark of FileNet Corporation. All other products and brand names are trademarks or registered trademarks of their
Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program.
Software Testing Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program. Testing can only reveal the presence of errors and not the
