Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.

Slides:



Advertisements
Similar presentations
.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Advertisements

ICS103 Programming in C Lecture 1: Overview of Computers & Programming
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design Third Edition.
Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program.
28/1/2001 Seminar in Databases in the Internet Environment Introduction to J ava S erver P ages technology by Naomi Chen.
Supervised by Prof. LYU, Rung Tsong Michael Department of Computer Science & Engineering The Chinese University of Hong Kong Prepared by: Chan Pik Wah,
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer.
B-1 Appendix B Information System Software Robert Riordan, Carleton University.
MERTIS: Modifiable, Extensible, Real-Time, Interactive Simulation Leandro Basallo ◦ Ryan Leigh ◦ Sam Talaie ◦ Regan Snyder with Dr. Sergiu Dascalu and.
WebDynpro for ABAP Short introduction.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Chapter 3 Software Two major types of software
System Design/Implementation and Support for Build 2 PDS Management Council Face-to-Face Mountain View, CA Nov 30 - Dec 1, 2011 Sean Hardman.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
UNIT-V The MVC architecture and Struts Framework.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
16-1 The World Wide Web The Web An infrastructure of distributed information combined with software that uses networks as a vehicle to exchange that information.
CPS120: Introduction to Computer Science The World Wide Web Nell Dale John Lewis.
Workflow and SharePoint Presented by Ben Geers. Overview What is workflow? Windows Workflow Foundation How does workflow apply to SharePoint? WSS v3 vs.
Mihir Daptardar Software Engineering 577b Center for Systems and Software Engineering (CSSE) Viterbi School of Engineering 1.
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
Introduction to MDA (Model Driven Architecture) CYT.
Chapter 1 What is Programming? Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
The Network Performance Advisor J. W. Ferguson NLANR/DAST & NCSA.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Java Applets. 2 Introduction to Java Applet Programs Applications are ___________________ programs –executed with Java interpreter Applet is a small program.
STASIS Technical Innovations - Simplifying e-Business Collaboration by providing a Semantic Mapping Platform - Dr. Sven Abels - TIE -
A Multi-agent Approach for the Integration of the Graphical and Intelligent Components of a Virtual Environment Rui Prada INESC-ID.
INTRODUCTION GORT is a virtual 3D modeling environment for computer programmers. Its main area of focus is to aid in the education of programmers learning.
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
Source Mastering UML with Rational Rose 2002 Information System Engineering Introduction to UML.
Chapter 1 : Overview of Computer and Programming By Suraya Alias
 Programming - the process of creating computer programs.
Chapter 4 Automated Tools for Systems Development Modern Systems Analysis and Design Third Edition 4.1.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
A.Abhari CPS1251 Topic 1: Introduction to Computers Computer Hardware Computer components Connecting Computers Computer Software Operating System (OS)
Source Mastering UML with Rational Rose 2002 Information System Engineering Introduction to UML.
Chapter 1 An Overview of Computers and Programming Languages.
SPACE SHUTTLE LAUNCHING GUIDE Mis. V.R.PRATIMA Mr. ASWIN KUMAR PUNITH.K PAUL SUDEEP.G Submitted by.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
Introduction to Programming 1 1 2Introduction to Java.
AX DEVELOPMENT FOR NON- DEVELOPERS Why did my 15 minute change take 3 weeks.
Visual Programming Borland Delphi. Developing Applications Borland Delphi is an object-oriented, visual programming environment to develop 32-bit applications.
Creation and Visualization of 3D Scenes with the MRPT library January, 2007 Jose Luis Blanco Claraco Dept. of Automation and System Engineering University.
Software, IEE Proceedings, Vol.152, Num.3, June 2005,Page(s): Prasanthi.S March, Java-based component framework for dynamic reconfiguration.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Introduction to Visual Basic. NET,. NET Framework and Visual Studio
Applications Active Web Documents Active Web Documents.
Modern Systems Analysis and Design Third Edition
Complex Geometry Visualization TOol
Modern Systems Analysis and Design Third Edition
Introduction Enosis Learning.
Introduction Enosis Learning.
System And Application Software
Chapter 4 Automated Tools for Systems Development
Modern Systems Analysis and Design Third Edition
Java Applets.
Modern Systems Analysis and Design Third Edition
Analysis models and design models
Chapter 7 –Implementation Issues
Introduction to Data Structure
TOPIC: Computer-Aided Design
M S COLLEGE ART’S, COMM., SCI. & BMS
Modern Systems Analysis and Design Third Edition
Games Development 2 Entity / Architecture Review
Presentation transcript:

Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas

 Introduction  Assisting Visualization System  Implementation  Examples  Conclusion

 Introduction Visualization and Application Implementing Visualization Integration Challenges Our Goal  Assisting Visualization System  The Implementation  Experiment Result  Conclusion

 Computer Aided Design ◦ IKEA Home Planner

 Computer Games ◦ First Person Shooting Games

 Three layers of visualization programs ◦ Program Model ◦ Visualization Layer ◦ Graphics Engine

 Program Model ◦ Logic of Programs For example, in car simulation: when a driver turns the wheel, the orientation of the car should change correspondingly. ◦ Numerical Data For example, the width and height of a piece of furniture, or the coordinate of a vehicle. They are abstract and only different by the definition given.

 Visualization and Graphics Engine ◦ 3D Graphics Rendering Includes the detailed implementation of how the object inside the program model should be rendered on the screen. For example, a chair object is rendered based on its size, type, material etc. ◦ Graphics Engine Implementation of rendering algorithms. Provides more abstract control over the object rendered.

 Steep Learning Curve To use the graphics engine for visualization requires significant 3D graphics knowledge including matrix transformation, lighting etc. Graphics Engine Visualization Code Matrix Transformation Lighting Model Texture Format ….

 Not Flexible Once the visualization layer is built the visualization schema cannot be changed without modifying the code. Program Visualization Layer

 Not reusable Changing the underlying program forces changes in the definition of the visualization. This implies rewriting most of the code. Program Visualizatio n Layer

 Provide a visualization system ◦ Doesn’t require Graphics Knowledge ◦ Flexible to change the visualization schema ◦ Reusable between applications

Introduction  Assisting Visualization System Overview Visual Component Binding with Program  Implementation  Examples  Conclusion

 Achieve Visualization without actually programming graphics  Flexible and easy to adjust the visualization schema  Highly reusable visualization layer

 Achieve Visualization Without Programming  Use an approach called Binding ◦ Treat visualizations as components ◦ No visualization Code in program ◦ Bind visualization at runtime ◦ Binding Defined Through XML

Achieve Visualization without actually programming graphics  Flexible and easy to adjust the visualization schema  Highly reusable visualization layer

 No hard coded visualization layer  Define Visualization Through XML ◦ No source code modification required ◦ Doesn’t need recompilation ◦ Easy to check the visualization definition

Achieve Visualization without actually programming graphics Flexible and easy to adjust the visualization schema  Highly reusable visualization layer

 Reuse visualization across programs  Reusable Visual Component ◦ Integrated through XML binding ◦ No data structure dependency ◦ Reusable through changing the binding

Achieve Visualization without actually programming graphics Flexible and easy to adjust the visualization schema Highly reusable visualization code

 Aggregation of Visualization Code ◦ Interacts with Graphics Engine ◦ Not tied to any application ◦ Reusable across applications ◦ Ready to use component developed by third party

 What is the basis for binding? ◦ Object Oriented Programming Language ◦ One visual component per class Each class can bind to one visual component. During the execution of the program, this class will be visualized by the visual component. ◦ One visualized entity per object instance Whenever a new instance of the class is created, an instance of the visual component which is tied to the program instance is created and rendered on the screen.

 Introduction  Assisting Visualization System  Implementation Overview Program Loader Code Execution Monitor Rendering System Binding Definition Format  Examples  Conclusion

 Implementation Language: Java ◦ Cross Platform ◦ Applets run in browser on Internet ◦ Low development cost  Third party graphics engine: Jmonkey Engine ◦ Written in Java ◦ Using OpenGL for rendering ◦ Open source project ◦ Used in many commercial software

 Major Components ◦ Program Loader Loads and modifies the target java program to integrate it with the visualization framework. ◦ Code Execution Monitor  Monitors the execution of the target program and realizes the visualization binding. ◦ Rendering System  Manages the life cycle of visual component instances that tie with underlying target program.  Renders the visual components using Jmonkey Graphics Engine.

 Customized Java Class Loader ◦ Loads class binary from file into memory for Java virtual machine  Code injection at load time ◦ Inject binary code at runtime before the class is used by Java virtual machine  Interact with Code Execution Monitor ◦ Register target class information and call handler function inside execution monitor

 Monitors the target program execution ◦ New instance creation Call Render System to create visual component instance and tie to the underlying object ◦ Object garbage collection Remove the object entry from the monitor ◦ Object value changed Update the binding property in its tied visual component correspondingly

 Visual Component Management ◦ Load visual component Search for visual component java class file for the visual component ◦ Create, remove visual component Manage the visual component based on outside system call ◦ Render visual components Use Graphics Engine to finally render the visual component

Jmonkey Graphics Engine  Functions ◦ Create User Interface Create visualization window in which all visual components are rendered ◦ Model Loading Load 3D models from files on disk and store in memory as an object ◦ Scene graph Management Object oriented way of accessing the 3D objects in the rendered environment

 Graphics Engine: Jmonkey Engine ◦ Rendering Output

 Graphics Engine: Jmonkey Engine ◦ Rendering Output

 XML Format ◦ Simplicity, easily accessible to developers ◦ Open format, many tools available  Binding XML Schema ◦ Define the format of binding xml ◦ Document for people writing the binding XML ◦ Automated parsing inside visualization system

 XML Parsing ◦ Apache XMLBeans library Open source XML parsing library under Apache foundation. ◦ Automatic java parsing code generation base on Schema File Generate source code for parser based on the schema file. Visit the content of the XML file using an object oriented approach.

 Introduction  Binding Approach  Assisting Visualization System  Implementation  Examples  QuickSort  Growing Tree  Conclusion

 Visualization of QuickSort on 80 elements

 Visual Component Binding with Java Program ◦ Java Class: SortElement ◦ Visual Component: BarVO ◦ Bindings  1 ClassBind  3 PropertyBind

 Visual Component Binding with Java Program ◦ ClassBind – Bind SortElement with BarVO ◦ Binding XML 

 Visual Component Binding with Java Program ◦ PropertyBind – SortElement.value to BarVO.scaleY  Binding XML 

 Visual Component Binding with Java Program ◦ PropertyBind – SortElement.index to BarVO.x ◦ Binding XML 

 Visual Component Binding with Java Program ◦ PropertyBind – to BarVO.z ◦ Binding XML   float offset=0.0f;  if(pivot) offset=100f;  else offset=0f; 

 Visual Component Binding with Java Program ◦ Resulting Visualization:

 Changing the Visualization for QuickSort ◦ Use color instead of height to represent value of SortElement ◦ Binding XML  Before   After 

 Changing the Visualization for QuickSort ◦ Resulting Visualization:

 Changing the Visualization for QuickSort ◦ Display index of SortElement on a curve ◦ Binding XML  Before   After   <Field name="Math.cos(-((float)index/(float)maxIndex*Math.PI-  Math.PI/2f)*0.5f)" />   <Field name="Math.sin(-((float)index/(float)maxIndex*Math.PI-  Math.PI/2f)*0.5f)" /> 

 Changing the Visualization for QuickSort ◦ Resulting Visualization:

 Visualization of a growing Tree ◦ Growing Tree with branch factor 3

 Visualizatoin for trajectory simulation ◦ Simulation of the movment of 80 elements with gravity influence on each other

 Introduction  Binding Approach  Assisting Visualization System  Implementation  Examples  Conclusion

 Introduced visualization through binding approach.  Implemented Assisting Visualization System ◦ Decoupled from underlying program ◦ Flexible to change visualization schema ◦ Reusable visual component  Created a prototype system that can be adopted in languages other than Java.