Visualizing Software Projects in JavaScript
|
|
- Roger Russell Tate
- 8 years ago
- Views:
Transcription
1 Visualizing Software Projects in JavaScript Tim Disney Abstract Visualization techniques have been used to help programmers deepen their understanding of large software projects. However the existing visualization techniques have focused on static languages where type information can only be determined at compile-time. This paper describes a new visualization tool aimed at the dynamic language JavaScript. 1 Introduction Programming is hard. As observed by Brooks [2] over 20 years ago there is an essential complexity to software that makes it so. Software developers spend much of their time managing the increasing complexities of their projects. Though there may be, as Brooks argues, no Silver Bullet to completely do away with all the painful complexity, there are techniques to alleviate at least some portion of the difficulty in building and understanding software projects. One technique has been the use of visualization tools. A number of tools have been created to help visualize the structure and relationships between packages and classes [7, 9] and dependencies [4, 8] in software systems. Unfortunately these tools only work for static languages where the types in the system can be determined at compile-time. To the best of my knowledge there are no visualization tools for dynamic languages which create and mutate their objects at runtime. This paper presents a visualization tool for JavaScript, a dynamic language used primarily in web browsers. This tool visualizes the structure of objects in a JavaScript application by using a node and link style graph. By capturing snapshots of the object structure at different points in the program execution, the visualization can display changes to the object structure at different points in time. This visualization tool allows developers to gain a deeper understanding of the structure of their application. This tool shows how objects are related, gives insight into object importance, and displays how structures change over the course of a running program. During development of this tool I was even able to discover a bug in a library by using the visualization. This paper is structured as follows: section 2 gives an overview of JavaScript, section 3 describes how the visualization is created, section 4 describes the author s experiences using the tool, section 5 gives an overview of related work, section 6 describes possible future work and section 7 concludes. 1
2 2 Background JavaScript [3] is a dynamic language primarily used in client-side web applications. Once regarded as a toy scripting language its popularity has increased in recent years due to its use in complex web applications such as Gmail and Google Maps. JavaScript provides support for object oriented techniques but uses a prototypebased object system as opposed to the more traditional class-based system found in languages such as Java or C++. Objects in JavaScript are collections of mutable key/value properties roughly analogous to maps in Java or dictionaries in Python. The potential objects an application might use are not defined before instantiation, instead objects are instantiated and then mutated into their necessary form as the application executes. When an object is created at the top level of a script (i.e. not locally scoped inside a function) it is added as a property to a global object (named window in the browser environment). For example after the code in snippet 1 is executed the window object will contain three properties: myobj which is an object with properties foo and baz, myfun which is a function, and globalvariable which is the number 22. Each property can be referenced with the familiar dot notation (e.g. window.myobj.foo gives bar ). Snippet 1 Example JavaScript code var myobj = { foo: "bar", baz: }; function myfun(){ var localvariable = 5; globalvariable = 22; } The reason globalvariable is added to the global object is because it was not declared with the var keyword. Any variable used in a function that has not been declared with var is added to the global object. This is a source of potential bugs when developers forget to use var since variable names might clash causing unexpected updates. Since JavaScript does not have a module system to partition the namespace, it is standard practice for developers to use objects as a replacement. The Yahoo User Interface library (YUI) [12] is a good example of this. Every object used in YUI is contained in the top level YAHOO object which is added to the global object. So for example if developers wish to use the calendar widget, they reference YAHOO.widget.Calendar. This use of objects as replacement modules provides a good place to begin visualization. Since most of the interesting objects in the system are available 2
3 by traversing the global object, we can get an understanding of the project s structure by visualizing how these objects are related. 3 Method The visualization tool was written in JavaScript and runs in a web browser. The code is meant to be added to any JavaScript application that a user wishes to visualize. A user simply adds a script to their page and the visualization is displayed. Figure 1: Global object three levels deep with interface To accomplish the visualization two main processes occur. First a process runs to collect the salient data. It accomplices this by starting with the global object window and doing a depth-first search through each of its contained objects. As it walks each node (object) in the graph, it constructs a separate object with the data necessary to display the visualization. Essentially it is simplifying the object data so that it can be more easily translated into the visualization. As this process is walking the object graph, it also does some filtering of the data. By default each browser provides a number of functions at the top level which are usually not very interesting to the developer since they are the same in every project. By default these are ignored. The collector process also 3
4 does not traverse any DOM elements. These are the objects that represent the display elements in the browser window. Since the focus of the visualization is on the application and not the display, these are currently being ignored. It also ignores objects that have been previously visited to prevent creating circular references. This is a potential issue since it is sometimes useful to know that an object is referenced by multiple names. For example the jquery library [6] has two alias that can be used ($ and jquery) and it is useful to know that both exist. Only the first name discovered by the collector is currently being displayed. Array are another special case in the collector. Since arrays are often used to hold large amounts of data (e.g. 1000s of elements) which is difficult to visualize, the collector will truncate arrays if they exceeded a set maximum number of elements (currently set at 30). Figure 2: RGraph object four levels deep Once the simplified object has been created it is passed to a visualization library for display. The library being used is called the JavaScript InfoVis Toolkit (JIT) [1]. The specific visualization provided by JIT that is used is a radial tree inspired by the work done by Yee et al. [13]. The simplified object is transformed into a radial tree with each object represented as a node and lines between nodes representing contains relationships (see figure 1). Each node is 4
5 colored to represent its type (blue for functions, green for numbers, orange for strings, and white for standard objects). Interactivity is provided by allowing a user to recenter the graph by clicking on a node. The user is also given controls to select the starting object (by default window), maximum depth to traverse, size of the graph, and a toggle for node coloring. Since the data is collected at run-time, the visualization is able to collect the data multiple times and then display the changes between the graphs. There is a button in the interface to force collection to occur whenever a user clicks on it but the collection process can also be wired to any arbitrary events that can be triggered in the browser. Once the data has been collected the user can select a snapshot and the graph will morph into the new state recorded by that snapshot. 4 Results Figure 3: Clean Project While testing the visualization tool after it had been developed, I realized it would have been very useful during the development process. In particular I ran into difficulties trying to find a specific method on the JIT s RGraph object that would accomplish morphing the graph from one state to another. Though I eventually found the documentation for the necessary method, it was 5
6 not obvious where it was located. If, instead of pouring through the documentation, I had looked at the graph of RGraph (seen in figure 2) the method, RGraph.op.prototype.morph, would have been discovered much more rapidly. During development I also managed to discover a programming flaw in the JIT visualization library. It appears that the programmers of JIT forgot to use the var keyword when assigning to a variable called that. I noticed this while testing out the change morphing, the that variable showed up unexpectedly while moving from one change snapshot to another. Initially I thought that there was an error in my code but it quickly became obvious from the visualization that the values being stored in that had to do with the internals of JIT. Figure 4: Messy Project Use of a variable called that is actually a standard pattern in JavaScript development. It is commonly used to store a particular value of the this object in a closure. Because the var keyword was not used, the assignment to that was placed on the global object. This is a potential source of bugs since multiple closures could possibly be in conflict over the contents of that. One of the goals of this visualization was to see the difference between a messy project and a clean project. Though the definitions are a bit fuzzy the intuition behind the terms is that a messy project has lots of objects in the global namespace while a clean project has relatively few. The reason for the value judgement in the terms is that when many objects are in the same 6
7 namespace the chance for an unintentional conflict is greater resulting in subtle runtime bugs. Also with a clean project structure understandability and learning is facilitated. It is easier to find things when they have been grouped into hierarchies. To see if the visualization would work well for visualizing the difference between a messy and clean project I ran the tool on two different projects. One was a project I had worked on several years ago when I was first learning how to program in JavaScript. The other was the use of a calendar widget from YUI. Although the comparison is partially unfair since the functionality of the two projects is very different, it does provide an illustrative example. As can be seen in the calendaring widget example in figure 3 there are around half a dozen items in the top level with many more items under each of them. In contrast the old code base in figure 4 has many items in the top level making it very difficult to make out one from the other. Figure 5: YAHOO object four levels deep 7
8 5 Related Work There has been work on visualizing static languages. The commercial application SolidSX [7] runs on Java and.net projects. There are IDE solutions built into IntelliJ IDEA [4] and available for Eclipse in the Stan4j project [8]. Don Stewart has published visualizations of Haskell code in the Hackage code repository [9]. There has also been work done on visualizing large hierarchies of data such as directory structures by Teoh et al. [10, 11] and Kleiberg [5]. 6 Future Work Currently the tool only collects object data available in the global object. This allows us to see many of the interesting object in the system however it does miss any objects scoped as function local variables. It would be interesting to see if adding this data would provide additional insights into the program structure. Other potential work could include displaying all references to an object if more than one exists and user studies to determine how well this system works for other developers. 7 Conclusion This paper has presented a visualization tool for the dynamic language JavaScript. It provides deeper understanding of software projects, shows how objects are related, and gives insight into how object change over the course of a program. References [1] Nicolas Garcia Belmonte. The javascript infovis toolkit. available from [2] F.P. Brooks. No silver bullet. IEEE Computer, 20(4):10 19, [3] E. C. M. A. International. ECMA-262: ECMAScript Language Specification. ECMA (European Association for Standardizing Information and Communication Systems), Geneva, Switzerland, third edition, December [4] JetBrains. Intellij idea dependency analysis. available from dependency analysis.html, [5] E. Kleiberg, H. Van De Wetering, and J.J. Van Wijk. Botanical visualization of huge hierarchies. In Proceedings IEEE Symposium on Information Visualization (InfoVis 2001), pages Citeseer,
9 [6] John Resig. jquery library. available from [7] SolidSource. Solidsx. available from SolidSX-source-code-dependency-analysis.html, [8] STAN. stan4j - structural analysis for java. available from [9] Don Stewart. Visualising the haskell universe. available from visualising-the-haskell-universe/, [10] S.T. Teoh and K.L. Ma. RINGS: A technique for visualizing large hierarchies. Lecture Notes in Computer Science, 2528: , [11] Yue Wang, Soon Tee Teoh, and Kwan-liu Ma. Evaluating the Effectiveness of Tree Visualization Systems for Knowledge Discovery. Knowledge Creation Diffusion Utilization, [12] Yahoo. Yui library. available from [13] K.P. Yee, D. Fisher, R. Dhamija, and M. Hearst. Animated exploration of dynamic graphs with radial layout. In Proceedings of the IEEE Symposium on Information Visualization, volume 43. Citeseer,
Data Visualization in Ext Js 3.4
White Paper Data Visualization in Ext Js 3.4 Ext JS is a client-side javascript framework for rapid development of cross-browser interactive Web applications using techniques such as Ajax, DHTML and DOM
More informationVisualizing MyAnimeList
Visualizing MyAnimeList Binh Tran Abstract MyAnimeList users use myanimelist.net to track the anime they watch. The users see a lot of simple visualizations on the website. There is not a lot of understanding
More informationOnline Search Engine Advertising Data Visualization Tool
Online Search Engine Advertising Data Visualization Tool Project Proposal Yingsai Dong dysalbert@gmail.com Department of Computer Science University of British Columbia CPSC 547 Information Visualization
More informationLecture 9 Chrome Extensions
Lecture 9 Chrome Extensions 1 / 22 Agenda 1. Chrome Extensions 1. Manifest files 2. Content Scripts 3. Background Pages 4. Page Actions 5. Browser Actions 2 / 22 Chrome Extensions 3 / 22 What are browser
More informationAn Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases
An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases Paul L. Bergstein, Priyanka Gariba, Vaibhavi Pisolkar, and Sheetal Subbanwad Dept. of Computer and Information Science,
More informationHow 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,
More informationExample. Represent this as XML
Example INF 221 program class INF 133 quiz Assignment Represent this as XML JSON There is not an absolutely correct answer to how to interpret this tree in the respective languages. There are multiple
More informationJ j enterpririse. Oracle Application Express 3. Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX
Oracle Application Express 3 The Essentials and More Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX Arie Geller Matthew Lyon J j enterpririse PUBLISHING BIRMINGHAM
More informationEvaluating the Effectiveness of Tree Visualization Systems for Knowledge Discovery
Eurographics/ IEEE-VGTC Symposium on Visualization (2006) Thomas Ertl, Ken Joy, and Beatriz Santos (Editors) Evaluating the Effectiveness of Tree Visualization Systems for Knowledge Discovery Yue Wang
More informationMASTERTAG DEVELOPER GUIDE
MASTERTAG DEVELOPER GUIDE TABLE OF CONTENTS 1 Introduction... 4 1.1 What is the zanox MasterTag?... 4 1.2 What is the zanox page type?... 4 2 Create a MasterTag application in the zanox Application Store...
More informationSo today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02)
Internet Technology Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No #39 Search Engines and Web Crawler :: Part 2 So today we
More informationVisCG: Creating an Eclipse Call Graph Visualization Plug-in. Kenta Hasui, Undergraduate Student at Vassar College Class of 2015
VisCG: Creating an Eclipse Call Graph Visualization Plug-in Kenta Hasui, Undergraduate Student at Vassar College Class of 2015 Abstract Call graphs are a useful tool for understanding software; however,
More informationMobile Web Design with HTML5, CSS3, JavaScript and JQuery Mobile Training BSP-2256 Length: 5 days Price: $ 2,895.00
Course Page - Page 1 of 12 Mobile Web Design with HTML5, CSS3, JavaScript and JQuery Mobile Training BSP-2256 Length: 5 days Price: $ 2,895.00 Course Description Responsive Mobile Web Development is more
More informationGetting Started with the Internet Communications Engine
Getting Started with the Internet Communications Engine David Vriezen April 7, 2014 Contents 1 Introduction 2 2 About Ice 2 2.1 Proxies................................. 2 3 Setting Up ICE 2 4 Slices 2
More informationHierarchy and Tree Visualization
Hierarchy and Tree Visualization Definition Hierarchies An ordering of groups in which larger groups encompass sets of smaller groups. Data repository in which cases are related to subcases Hierarchical
More informationSource 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
More informationOverview. In the beginning. Issues with Client Side Scripting What is JavaScript? Syntax and the Document Object Model Moving forward with JavaScript
Overview In the beginning Static vs. Dynamic Content Issues with Client Side Scripting What is JavaScript? Syntax and the Document Object Model Moving forward with JavaScript AJAX Libraries and Frameworks
More informationGoogle Web Toolkit. Progetto di Applicazioni Software a.a. 2011/12. Massimo Mecella
Google Web Toolkit Progetto di Applicazioni Software a.a. 2011/12 Massimo Mecella Introduction Ajax (Asynchronous JavaScript and XML) refers to a broad range of techniques Beyond the technical jargon,
More informationBuilding Web Applications
Building Web Applications Mendel Rosenblum CS142 Lecture Notes - Building Web Applications Good web applications: Design + Implementation Some Design Goals: Intuitive to use Don't need to take a course
More informationTDAQ Analytics Dashboard
14 October 2010 ATL-DAQ-SLIDE-2010-397 TDAQ Analytics Dashboard A real time analytics web application Outline Messages in the ATLAS TDAQ infrastructure Importance of analysis A dashboard approach Architecture
More informationPractical Android Projects Lucas Jordan Pieter Greyling
Practical Android Projects Lucas Jordan Pieter Greyling Apress s w«^* ; i - -i.. ; Contents at a Glance Contents --v About the Authors x About the Technical Reviewer xi PAcknowiedgments xii Preface xiii
More informationVisual Basic Programming. An Introduction
Visual Basic Programming An Introduction Why Visual Basic? Programming for the Windows User Interface is extremely complicated. Other Graphical User Interfaces (GUI) are no better. Visual Basic provides
More informationCSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014
CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages Nicki Dell Spring 2014 What is a Programming Language? A set of symbols and associated tools that translate (if necessary) collections
More informationPower Tools for Pivotal Tracker
Power Tools for Pivotal Tracker Pivotal Labs Dezmon Fernandez Victoria Kay Eric Dattore June 16th, 2015 Power Tools for Pivotal Tracker 1 Client Description Pivotal Labs is an agile software development
More informationHTML5. Turn this page to see Quick Guide of CTTC
Programming SharePoint 2013 Development Courses ASP.NET SQL TECHNOLGY TRAINING GUIDE Visual Studio PHP Programming Android App Programming HTML5 Jquery Your Training Partner in Cutting Edge Technologies
More informationYouTrack MPS case study
YouTrack MPS case study A case study of JetBrains YouTrack use of MPS Valeria Adrianova, Maxim Mazin, Václav Pech What is YouTrack YouTrack is an innovative, web-based, keyboard-centric issue and project
More informationChapter 13 Computer Programs and Programming Languages. Discovering Computers 2012. Your Interactive Guide to the Digital World
Chapter 13 Computer Programs and Programming Languages Discovering Computers 2012 Your Interactive Guide to the Digital World Objectives Overview Differentiate between machine and assembly languages Identify
More informationTowards Software Configuration Management for Test-Driven Development
Towards Software Configuration Management for Test-Driven Development Tammo Freese OFFIS, Escherweg 2, 26121 Oldenburg, Germany tammo.freese@offis.de Abstract. Test-Driven Development is a technique where
More informationTutorial: Building a Dojo Application using IBM Rational Application Developer Loan Payment Calculator
Tutorial: Building a Dojo Application using IBM Rational Application Developer Loan Payment Calculator Written by: Chris Jaun (cmjaun@us.ibm.com) Sudha Piddaparti (sudhap@us.ibm.com) Objective In this
More informationSoftware Visualization
Software Visualization CS 4460 Last Revision: November 2015 Software Visualization Definition The use of the crafts of typography, graphic design, animation, and cinematography with modern humancomputer
More informationInteractive Exploration of Decision Tree Results
Interactive Exploration of Decision Tree Results 1 IRISA Campus de Beaulieu F35042 Rennes Cedex, France (email: pnguyenk,amorin@irisa.fr) 2 INRIA Futurs L.R.I., University Paris-Sud F91405 ORSAY Cedex,
More informationCreating Value through Innovation MAGENTO 1.X TO MAGENTO 2.0 MIGRATION
Creating Value through Innovation MAGENTO 1.X TO MAGENTO 2.0 MIGRATION AGENDA 1. Overview of Magento 2.0 2. Features and benefits of Magento 2.0 over Magento 1.x 3. Why should we upgrade to Magento 2.0
More informationtools 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
More informationWhat s New in JReport 13.1
Highlights JReport 13.1 focuses on new geographical tools for data visualization, enhanced data analysis and presentation in dashboards and reports, as well as greater performance and scalability when
More informationJonathan Worthington Scarborough Linux User Group
Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.
More informationGUI and Web Programming
GUI and Web Programming CSE 403 (based on a lecture by James Fogarty) Event-based programming Sequential Programs Interacting with the user 1. Program takes control 2. Program does something 3. Program
More informationEVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS
EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS Umamaheswari E. 1, N. Bhalaji 2 and D. K. Ghosh 3 1 SCSE, VIT Chennai Campus, Chennai, India 2 SSN College of
More informationMeister Going Beyond Maven
Meister Going Beyond Maven A technical whitepaper comparing OpenMake Meister and Apache Maven OpenMake Software 312.440.9545 800.359.8049 Winners of the 2009 Jolt Award Introduction There are many similarities
More informationDesign Patterns for Rapid Visualization Prototyping
Design Patterns for Rapid Visualization Prototyping Mark Giereth and Thomas Ertl Visualization and Interactive Systems Institute, University of Stuttgart {giereth,ertl}@vis.uni-stuttgart.de Abstract In
More informationOne of the fundamental kinds of Web sites that SharePoint 2010 allows
Chapter 1 Getting to Know Your Team Site In This Chapter Requesting a new team site and opening it in the browser Participating in a team site Changing your team site s home page One of the fundamental
More informationQML and JavaScript for Native App Development
Esri Developer Summit March 8 11, 2016 Palm Springs, CA QML and JavaScript for Native App Development Michael Tims Lucas Danzinger Agenda Native apps. Why? Overview of Qt and QML How to use JavaScript
More informationPattern Insight Clone Detection
Pattern Insight Clone Detection TM The fastest, most effective way to discover all similar code segments What is Clone Detection? Pattern Insight Clone Detection is a powerful pattern discovery technology
More informationSonatype CLM for Maven. Sonatype CLM for Maven
Sonatype CLM for Maven i Sonatype CLM for Maven Sonatype CLM for Maven ii Contents 1 Introduction 1 2 Creating a Component Index 3 2.1 Excluding Module Information Files in Continuous Integration Tools...........
More informationHierarchical Data Visualization. Ai Nakatani IAT 814 February 21, 2007
Hierarchical Data Visualization Ai Nakatani IAT 814 February 21, 2007 Introduction Hierarchical Data Directory structure Genealogy trees Biological taxonomy Business structure Project structure Challenges
More informationVISUALIZATION APPROACH FOR SOFTWARE PROJECTS
Canadian Journal of Pure and Applied Sciences Vol. 9, No. 2, pp. 3431-3439, June 2015 Online ISSN: 1920-3853; Print ISSN: 1715-9997 Available online at www.cjpas.net VISUALIZATION APPROACH FOR SOFTWARE
More informationIntroduction to D3.js Interactive Data Visualization in the Web Browser
Datalab Seminar Introduction to D3.js Interactive Data Visualization in the Web Browser Dr. Philipp Ackermann Sample Code: http://github.engineering.zhaw.ch/visualcomputinglab/cgdemos 2016 InIT/ZHAW Visual
More informationWhat good is a Web site without information?
Chapter 3 Adding Stuff to a Drupal Site 10 What good is a Web site without information? Drupal makes adding new information much easier to accomplish than it is to describe. Describing this step is severely
More informationGetting Started Guide with WIZ550web
1/21 WIZ550web is an embedded Web server module based on WIZnet s W5500 hardwired TCP/IP chip, Users can control & monitor the 16-configurable digital I/O and 4-ADC inputs on module via web pages. WIZ550web
More informationTeamCity A Professional Solution for Delivering Quality Software, on Time
TeamCity A Professional Solution for Delivering Quality Software, on Time Vaclav Pech Senior Software Developer JetBrains, Inc. About Us Vaclav Pech Professional software developer for 9 years IntelliJ
More informationAn Introduction to KeyLines and Network Visualization
An Introduction to KeyLines and Network Visualization 1. What is KeyLines?... 2 2. Benefits of network visualization... 2 3. Benefits of KeyLines... 3 4. KeyLines architecture... 3 5. Uses of network visualization...
More informationSPELL Tabs Evaluation Version
SPELL Tabs Evaluation Version Inline Navigation for SharePoint Pages SPELL Tabs v 0.9.2 Evaluation Version May 2013 Author: Christophe HUMBERT User Managed Solutions LLC Table of Contents About the SPELL
More informationJavaScript static security analysis made easy with JSPrime
JavaScript static security analysis made easy with JSPrime Nishant Das Patnaik & Sarathi Sabyasachi Sahoo nishant.dp@gmail.com & sarathisahoo@gmail.com JavaScript is the lingua-franca of Web 2.0 and, recently,
More informationWHAT DEVELOPERS ARE TALKING ABOUT?
WHAT DEVELOPERS ARE TALKING ABOUT? AN ANALYSIS OF STACK OVERFLOW DATA 1. Abstract We implemented a methodology to analyze the textual content of Stack Overflow discussions. We used latent Dirichlet allocation
More informationCSCI 253. Object Oriented Programming (OOP) Overview. George Blankenship 1. Object Oriented Design: Java Review OOP George Blankenship.
CSCI 253 Object Oriented Design: Java Review OOP George Blankenship George Blankenship 1 Object Oriented Programming (OOP) OO Principles Abstraction Encapsulation Abstract Data Type (ADT) Implementation
More informationAUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev
International Journal "Information Technologies & Knowledge" Vol.5 / 2011 319 AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev Abstract: This paper presents a new approach
More informationChase Mobile Checkout Canada User Guide
Chase Mobile Checkout Canada User Guide TM Trademark of Chase Paymentech, LLC, Chase Paymentech Solutions authorized user. Contents 1. INTRODUCTION... 3 1.1. OVERVIEW... 3 1.2. GET ADDITIONAL ASSISTANCE...
More informationVisual Analysis Tool for Bipartite Networks
Visual Analysis Tool for Bipartite Networks Kazuo Misue Department of Computer Science, University of Tsukuba, 1-1-1 Tennoudai, Tsukuba, 305-8573 Japan misue@cs.tsukuba.ac.jp Abstract. To find hidden features
More informationPORTAL ADMINISTRATION
1 Portal Administration User s Guide PORTAL ADMINISTRATION GUIDE Page 1 2 Portal Administration User s Guide Table of Contents Introduction...5 Core Portal Framework Concepts...5 Key Items...5 Layouts...5
More informationRoss University s Content Management System (CMS) Training Manual
Ross University s Content Management System (CMS) Training Manual Version 1.0 This is the Ross University Content Management System (CMS) training manual. This manual is intended for Ross University content
More informationVirtual Heart User Manual Username Password
Virtual Heart User Manual Username Password These instructions are meant to help you use the Virtual Heart website. Please write down your username and password and store them in a safe place in case you
More informationDynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT
Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT AGENDA 1. Introduction to Web Applications and ASP.net 1.1 History of Web Development 1.2 Basic ASP.net processing (ASP
More informationThe Grid Monitor. Usage and installation manual. Oxana Smirnova
NORDUGRID NORDUGRID-MANUAL-5 4/3/2014 The Grid Monitor Usage and installation manual Oxana Smirnova Abstract The LDAP-based ARC Grid Monitor is a Web client tool for the ARC Information System, allowing
More informationEmbedded BI made easy
June, 2015 1 Embedded BI made easy DashXML makes it easy for developers to embed highly customized reports and analytics into applications. DashXML is a fast and flexible framework that exposes Yellowfin
More informationComp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages. Corky Cartwright Swarat Chaudhuri November 30, 20111
Comp 411 Principles of Programming Languages Lecture 34 Semantics of OO Languages Corky Cartwright Swarat Chaudhuri November 30, 20111 Overview I In OO languages, data values (except for designated non-oo
More informationEnglish. Asema.com Portlets Programmers' Manual
English Asema.com Portlets Programmers' Manual Asema.com Portlets : Programmers' Manual Asema Electronics Ltd Copyright 2011-2013 No part of this publication may be reproduced, published, stored in an
More informationA Web- based Approach to Music Library Management. Jason Young California Polytechnic State University, San Luis Obispo June 3, 2012
A Web- based Approach to Music Library Management Jason Young California Polytechnic State University, San Luis Obispo June 3, 2012 Abstract This application utilizes modern standards developing in web
More informationVisualisation in the Google Cloud
Visualisation in the Google Cloud by Kieran Barker, 1 School of Computing, Faculty of Engineering ABSTRACT Providing software as a service is an emerging trend in the computing world. This paper explores
More informationIBM BPM V8.5 Standard Consistent Document Managment
IBM Software An IBM Proof of Technology IBM BPM V8.5 Standard Consistent Document Managment Lab Exercises Version 1.0 Author: Sebastian Carbajales An IBM Proof of Technology Catalog Number Copyright IBM
More informationInternationalizing JavaScript Applications Norbert Lindenberg. Norbert Lindenberg 2013. All rights reserved.
Internationalizing JavaScript Applications Norbert Lindenberg Norbert Lindenberg 2013. All rights reserved. Agenda Unicode support Collation Number and date/time formatting Localizable resources Message
More informationECMAScript 3 rd Edition Compact Profile
Standard ECMA-327 June 2001 Standardizing Information and Communication Systems ECMAScript 3 rd Edition Compact Profile Phone: +41 22 849.60.00 - Fax: +41 22 849.60.01 - URL: http://www.ecma.ch - Internet:
More informationTeam Members: Christopher Copper Philip Eittreim Jeremiah Jekich Andrew Reisdorph. Client: Brian Krzys
Team Members: Christopher Copper Philip Eittreim Jeremiah Jekich Andrew Reisdorph Client: Brian Krzys June 17, 2014 Introduction Newmont Mining is a resource extraction company with a research and development
More informationAvailability of the Program A free version is available of each (see individual programs for links).
Choosing a Programming Platform Diane Hobenshield Tepylo, Lisa Floyd, and Steve Floyd (Computer Science and Mathematics teachers) The Tasks Working Group had many questions and concerns about choosing
More informationTreemap Visualisations
Treemap Visualisations This exercise aims to be a getting started guide for building interactive Treemap visualisations using the D3 JavaScript library. While data visualisation has existed for many years
More informationObelisk: Summoning Minions on a HPC Cluster
Obelisk: Summoning Minions on a HPC Cluster Abstract In scientific research, having the ability to perform rigorous calculations in a bearable amount of time is an invaluable asset. Fortunately, the growing
More informationHow To Change Your Site On Drupal Cloud On A Pcode On A Microsoft Powerstone On A Macbook Or Ipad (For Free) On A Freebie (For A Free Download) On An Ipad Or Ipa (For
How-to Guide: MIT DLC Drupal Cloud Theme This guide will show you how to take your initial Drupal Cloud site... and turn it into something more like this, using the MIT DLC Drupal Cloud theme. See this
More informationEclipse with Mac OSX Getting Started Selecting Your Workspace. Creating a Project.
Eclipse with Mac OSX Java developers have quickly made Eclipse one of the most popular Java coding tools on Mac OS X. But although Eclipse is a comfortable tool to use every day once you know it, it is
More informationJing Yang Spring 2010
Information Visualization Jing Yang Spring 2010 1 InfoVis Programming 2 1 Outline Look at increasing higher-level tools 2D graphics API Graphicial User Interface (GUI) toolkits Visualization framework
More informationChapter 11 Map-Reduce, Hadoop, HDFS, Hbase, MongoDB, Apache HIVE, and Related
Chapter 11 Map-Reduce, Hadoop, HDFS, Hbase, MongoDB, Apache HIVE, and Related Summary Xiangzhe Li Nowadays, there are more and more data everyday about everything. For instance, here are some of the astonishing
More informationVisualizing MongoDB Objects in Concept and Practice
Washington DC 2013 Visualizing MongoDB Objects in Concept and Practice https://github.com/cvitter/ikanow.mongodc2013.presentation Introduction Do you have a MongoDB database full of BSON documents crying
More informationDevelop highly interactive web charts with SAS
ABSTRACT Paper 1807-2014 Develop highly interactive web charts with SAS Rajesh Inbasekaran, Naren Mudivarthy, Neetha Sindhu Kavi Associates LLC, Barrington IL Very often there is a need to present the
More informationNative, Hybrid or Mobile Web Application Development
Native, Hybrid or Mobile Web Application Development Learn more about the three approaches to mobile application development and the pros and cons of each method. White Paper Develop a Mobile Application
More informationDoc ID: URCHINB-001 (3/30/05)
Urchin 2005 Linux Web Host. All rights reserved. The content of this manual is furnished under license and may be used or copied only in accordance with this license. No part of this publication may be
More informationVisualizing an OrientDB Graph Database with KeyLines
Visualizing an OrientDB Graph Database with KeyLines Visualizing an OrientDB Graph Database with KeyLines 1! Introduction 2! What is a graph database? 2! What is OrientDB? 2! Why visualize OrientDB? 3!
More informationASP.NET: THE NEW PARADIGM FOR WEB APPLICATION DEVELOPMENT
ASP.NET: THE NEW PARADIGM FOR WEB APPLICATION DEVELOPMENT Dr. Mike Morrison, University of Wisconsin-Eau Claire, morriscm@uwec.edu Dr. Joline Morrison, University of Wisconsin-Eau Claire, morrisjp@uwec.edu
More informationFront-End Performance Testing and Optimization
Front-End Performance Testing and Optimization Abstract Today, web user turnaround starts from more than 3 seconds of response time. This demands performance optimization on all application levels. Client
More informationUp and Running with LabVIEW Web Services
Up and Running with LabVIEW Web Services July 7, 2014 Jon McBee Bloomy Controls, Inc. LabVIEW Web Services were introduced in LabVIEW 8.6 and provide a standard way to interact with an application over
More informationA 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.
More informationAn example. Visualization? An example. Scientific Visualization. This talk. Information Visualization & Visual Analytics. 30 items, 30 x 3 values
Information Visualization & Visual Analytics Jack van Wijk Technische Universiteit Eindhoven An example y 30 items, 30 x 3 values I-science for Astronomy, October 13-17, 2008 Lorentz center, Leiden x An
More informationCloud Computing And Equal Access
Cloud Computing And Equal Access T. V. Raman Google Research http://emacspeak.sf.net/raman November 13, 2008 Overview Web Applications UI Web-2.0 Patterns Web-API Conclusion Cloud Computing NCTI 2008 2
More informationEvaluating a new programming language
In G. Kadoda (Ed). Proc. PPIG 13 Pages 275-289 Evaluating a new programming language Steven Clarke Microsoft Corporation 1 Microsoft Way Redmond, WA 98052 USA +1 425 705 5978 stevencl@microsoft.com Keywords:
More informationGetting Started with GRUFF
Getting Started with GRUFF Introduction Most articles in this book focus on interesting applications of Linked Open Data (LOD). But this chapter describes some simple steps on how to use a triple store,
More informationA Universal Visualization Platform
A Universal Visualization Platform Georges G. Grinstein Alexander G. Gee University of Massachusetts Lowell Institute for Visualization and Perception Research {grinstein,agee}@cs.uml.edu Part I What functionality
More informationJSClassFinder: A Tool to Detect Class-like Structures in JavaScript
JSClassFinder: A Tool to Detect Class-like Structures in JavaScript Leonardo Humberto Silva 1, Daniel Hovadick 2, Marco Tulio Valente 2, Alexandre Bergel 3,Nicolas Anquetil 4, Anne Etien 4 1 Department
More information10CS73:Web Programming
10CS73:Web Programming Question Bank Fundamentals of Web: 1.What is WWW? 2. What are domain names? Explain domain name conversion with diagram 3.What are the difference between web browser and web server
More informationKotlin for Android Developers
Kotlin for Android Developers Learn Kotlin in an easy way while developing an Android App Antonio Leiva This book is for sale at http://leanpub.com/kotlin-for-android-developers This version was published
More informationRuby on Rails Issue Tracker
Ruby on Rails Issue Tracker J. Jared Rodriguez-Rivera NASA Kennedy Space Center Major: Software Development KSC-FO Summer Session 16 July 2014 Author Note J. Jared Rodriguez-Rivera A.A, A.S Computer Programming
More informationIntroduction (Apps and the Android platform)
Introduction (Apps and the Android platform) CE881: Mobile and Social Application Programming Simon Lucas & Spyros Samothrakis January 13, 2015 1 / 38 1 2 3 4 2 / 38 Course Structure 10 weeks Each week:
More informationConfiguration Manager
After you have installed Unified Intelligent Contact Management (Unified ICM) and have it running, use the to view and update the configuration information in the Unified ICM database. The configuration
More informationOpen source software framework designed for storage and processing of large scale data on clusters of commodity hardware
Open source software framework designed for storage and processing of large scale data on clusters of commodity hardware Created by Doug Cutting and Mike Carafella in 2005. Cutting named the program after
More information