3D Animation of Java Program Execution for Teaching Object Oriented Concepts
|
|
|
- Asher McGee
- 9 years ago
- Views:
Transcription
1 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 as a difficult task. Coupled with the difficulty of conveying abstract concepts in general to students, is the complexity of the object oriented paradigm itself. A common approach to conveying complex abstract notions (such as algorithms or data structures) is the use of visualisations. This paper describes the and the design and implementation of the JOOPA2 tool for animation of the execution of simple object oriented (Java) programs in a 3D environment. The tool was developed for the purpose of supporting the teaching of object oriented concepts in an introductory level programming course. 1 Introduction A commonly cited difficultly of teaching computer science is the need to successfully convey a plethora of abstract concepts [?,?]. Such concepts include, for example, the notion of an algorithm and the relationship between an abstract data structure and the multitude of potential implementations. Recently, the Object Oriented (OO) programming paradigm has gained in popularity because of the perceived potential gain for code modularisation, encapsulation and component re-use. The popularity of the OO paradigm in industry has led to the adoption of OO programming languages in university computer science courses. In particular, the Java language is increasingly being taught in university, because of its popularity in industry and the availabilty of support materials [?]. A natural consequence of the switch to teaching OO programming is the need to convey the abstract concepts involved in the paradigm and in the case of Java, to convey these concepts alongside the notion of a procedural imperative programming language. However, the teaching of this paradigm, with multiple abstract concepts to be conveyed, is non-trivial. Students struggle to grasp the notion of an object oriented environment, the necessity of the distinction between a class and an object and the relationship between the paradigm and the textual description (their source code). A common technique when teaching abstract concepts in any subject is to use visualisations that are able to guide novice students through the main features [?,?]. For the OO paradigm, a commonly employed graphical tool is the Unified Modelling Language (UML) [4]. Students use UML to associate 1
2 graphical visualisations of program structure with the Java source code implementation of their program. A disadvantage of the UML is that it is intended for a static medium and thus is limited in its ability to visualise dynamic program execution. An alternative approach is to use animation to provide dynamic visualisations of software and/or algorithms in execution. The remainder of this paper is structured as follows. Section 1.1 discusses previous approaches to the use of visualisation for teaching computer science, including visualisation of algorithms and software. Section 2 describes the design considerations for the JOOPA 2 tool with respect to supporting student learning of the Java programming language. Section 3 describes the architecture for the JOOPA 2 tool, which integrates an event driven, JDI debugger with a Java3D visualisation environment 1. Section 4 describes the aspects of the Java programming language currently visualised by the JOOPA 2 tool, whilst Section 5 describes future developments planned for the tool and Section 6 summarises the work presented in the paper. 1.1 Related Work An early attempt to produce a software animation package was the Brown University Algorithm Simulator and Animator (BALSA) [1]. Written in C, BALSA produced an animation of a program as it ran, coupled with a display of the code (usually written in Pascal) highlighting each line as it was executed. BALSA also incorporated a feature for displaying static data structures using dots and sticks as the animation of the algorithm progressed. BALSA illustrates how careful separation of purpose for animations prevents over cluttering the display with too much detail. No attempt was made to incorporate the data structures into the animation of the program as it was running, but the user could observe both simultaneously through two different views. A number of approaches have been made to the teaching of OO programming and design using visualisation techniques. The UML may be used to develop a comprehensive OO design, complete with class hierarchies, use case diagrams, and sequence diagrams amongst others [4]. The design can then be used to produce an outline implementation either manually or through an animation tool such as Together or BlueJ [?, 2]. UML can be considered as a notation that is highly adapted to the description of the design of complex OO systems, but that it is less suited to the teaching of OO concepts by itself. As the capabilities of domestically available machines have increased, a tendency towards using three-dimensional graphics for a variety of applications has increased. One such tool for algorithm animation is Polka-3D [?], which behaves in a similar manner to its predecessor, Polka for algorithm animation. More recently, work has been undertaken on visualising object oriented software in virtual reality environments, in order to provide users with an interactive, graphical environment for exploring the static aspects of a programs structure [3]. 1 To a certain degree, the tool is a re-implementation of the visualisations presented in its precursor, JOOPA1. However, the new version, provides visualisations of several aspects of the Java language not present in the original tool, and crucially, the automation of animation generation. 2
3 1.2 Motivation The tool described in this paper, JOOPA2, animates the classes and objects of Java programs as they are executed in a virtual machine. The animation occurs in a 3D environment, which allows a user to explore the relationships between classes, objects, methods and attributes as a program executes. The argued advantage of this approach is that a visualisation of the object oriented paradigm (as implemented in Java) is presented to a user for a program of their choice. The visualisation is combined with the procedural execution of the program to emphasise the dynamic nature of an object oriented program. The extra dimensionality afforded by a 3D visualisation also allows a user to interact and explore a program s environment, investigating object features and the relationship between objects. Users can also manipulate the layout of a program s visualisation, pausing execution to cluster entities of interest together as required. 2 Design Considerations 2.1 Integration with UML Given the intended use for the JOOPA tool as a teaching aid within an introductory Java programming course, it is desirable that the visualisations presented are consistent with other graphical notations employed in a course. In particular, the Unified Modelling Language (UML) is a commonly employed tool for teaching program design concepts for object oriented languages. UML includes commonly accepted graphical notations for classes, objects, references, fields, methods, and their respective labelling conventions. In addition, UML incorporates diagrams for static program design (class diagrams), as well as diagrams to illustrate program usage (activity diagrams) and likely method method sequence calls (sequence diagrams). The design of the JOOPA tools reflects these pre-existing conventions in order to enhance consistency across visualisations. In particular, notations for class and object visualisations are retained (in a 3D context) and labelling notations are modelled on UML. 2.2 Detail Level A problem associated with many visualisations of software is the need to reduce detail clutter so that the fundamental abstract concepts underlying the visualisation can be conveyed successfully. Detail clutter is the inclusion of multiple aspects of a program s features which detract from, rather than enhance, the understandability of a visualisation. A desirable feature of the JOOPA2 tool would be features which permit the user to conveniently configure the amount of detail rendered in a visualisation. 2.3 Relationship to other Representations Multiple representations of software are used during the teaching of a programming course. These include source code of high level languages, natural langauge descriptions of functionality and graphical notations such as UML. To 3
4 Figure 1: The architecture of the JOOPA 2 tool. A JDI based debugger generates debugging events from a target application. The events are passed to the animation engine, which renders a 3D representation of the Java application state. The 3D environment may be viewed by one or more user interfaces. enhance understandability of a new representation, it is desirable that conventions adopted in one representation occur elsewhere. This consistency supports students in making connections between different representations of a software artifact. 2.4 Teaching Support The JOOPA 2 visualisation tool is intended to support the teaching of object oriented concepts with respect to an introductory programming course. OO concepts are taught via the Java programming language. Teachers employing the tool to convey particular aspects of the OO paradigm through example programs. A desirable feature of the JOOPA2 tool would be the automatic conversion of simple target applications into visualisations for use in a teaching environment. The teacher would then be free to concentrate on writing the application to best illustrate the features they wish to convey. 3 System Architecture and Implementation Figure 1 illustrates the architecture of the JOOPA 2 tool. The core functionality of the tool is divided into two components, a Java Debug Interface (JDI) based debugger and an event driven visualisation engine. To initiate a visualisation of a program s execution, the debugger invokes the applications main() method within a Java Virtual Machine (JVM). The debugger is adapted from the com.sun.tools.example.trace application supplied with the Java Debug Platform Architecture package supplied by Sun. The current implementation employs the JVM. The debugger uses the JDI to request desired program events with the JVM. Events requested include: Class loaded to track the loading of new classes. Method entry to track thread stack push events. This event can also be used to identify new object instantations, since at the point of method entry the newly constructed object is assigned to the this field of the uppermost thread stack frame. 4
5 Figure 2: References from 3D engine entities to target entities in the JVM (via degugger and JDI). Method exit to track thread stack pop events. Field modification to track changes to instance and static fields. Statement steps to track changes to method variables. A disadvantage of this approach (explained below) is that variable assignment changes in the visualisation may not occur in the right order. The debugger incorporates an event handler for each of the event types of interest. As events are collected from the JDI they are passed to the visualisation engine via the engine s event interface. The events are used to alter the visualisation engine s internal representation of the target application s state, and thus alter the 3D visualisation that is rendered to the viewer. The visualisation engine maintains data structures that map the state of the target application within the JVM. All entities within the JVM are mirrored by entities stored within the visualisation engine. Further, all entities within the visualisation engine maintain references to the corresponding entities within the JVM (via the JDI interface representation). The references are used to obtain information about the targets to support the construction of the 3D visualisation. For example, in the case of a method, the method s type, name, visibility, arguments and modifiers can be obtained by querying the debugger via the JDI. The relationship is illustrated in Figure 2. 3D mirror entities are thus used to generate visualisations of their respective targets within the JVM. Currently, the JOOPA2 tool maintains a visualisation of a single thread. A stack of method frames representations is maintained within the visualisation engine which mirrors the state of the target application thread (StackFrame3D). Each StackFrame3D stores references to 3D representations of variables. The engine maintains a store of loaded class (Class3D) representations and instantiated objects (Object3D). Both of these entity representations maintain stores of member methods and fields, with Class3D stores maintaining static members, and Object3D maintaining instance fields and methods. In the case of instance methods, a many to one relationship is created between 3D representations and the JVM entity. Arrays represent a special type of object in the visualisation, but are maintained as objects by the engine. To render a 3D visualisation of the target application state, a 3D universe is implemented using the Java 3D package [5]. Java 3D maintains a hierarchical 5
6 scene graph structure, to which all features of a 3D environment must be added, either for there 3D representation to be present (in the case of shapes), or for a components functionality to be executed (picking or translational behaviour, for example). JOOPA2 exploits this functionality by adding Object3D and Class3D entities to the scene at the scene root. Entity members (fields and methods) are added to the entities as sub-graphs. This allows clusters of shapes to manipulated collectively, by acting on the branches of the graph attached to the scene root, reflecting the structure of the Java OO paradigm itself. Multiple view platforms can be added to the scene graph, separately manipulated and rendered to separate canvases. This allows a user to set up different simultaneous view points on the state of the target application. Although the current visualisation engine only tracks a single application thread, this feature could in future allow the concurent execution of threads to be observed, a possibility that is discussed in Section 5. 4 Visualisations This section describes the current features of the Java programming language (with respect to OO concepts) currently implemented in the JOOPA2 tool. Changes to the visualisation are caused either by events that are passed from the debugger to the 3D engine, or through a query of the debugger for information regarding an entity, as described in Section Entity Types The type of an entity in a visualisation is represented by its colour. By default, void types (for methods are coloured grey). A user is able to preset colours for expected types. Colours for non-anticipated types are assigned randomly by the visualisation engine. More detail of the use of colour coding is explaining for each aspect of the visualisation presented below. 4.2 Class Load Figure 3 illustrates a loaded class representation in the 3D environment. The class visualisation is implemented to mimic the representation of classes in a UML class diagram. A flat rectangular shape is added to the scene, with the largest face divided into sections by horiztonal lines. The size of the class is scaled by the number of static members present, giving some (crude) indication of the complexity and size of the class. The upper most section of the face contains the local label for the class, in this case HelloWorld. The section immediately lower to this lists the static methods associated with the class, represented by a small sphere colour coded for the methods return type. In the example, two methods are listed, the main(string[]) method and, the static constructor for the class, <clinit>(). The method label consists of the identifier of the method, any parameters and the return type. Below the methods, the static fields of the class are listed, represented by a box and a label. Each box is labelled with the field s identitier and (local) type. Notice that primitive fields are treated differently to reference fields in the visualisation. Primitive fields (int, boolean etc) are represented by hollow 6
7 Figure 3: Representation of a loaded class (HelloWorld) in the JOOPA2 tool. The visualisation is modelled on UML class diagram notations, with static methods and fields listed on the face of the class. boxes, in which the current value of the field is stored. Reference fields are represented by solid boxes from which association lines to relevant object are drawn (see Section 4.5. This differentiation between references and primitives is also maintained for method variables. 4.3 Object Instantiation Figure 4 illustrates an instantiated object in the visualisation. An object are represented by regular cubes, the size of which are scaled by the number of instance members the object s class possesses. As for classes, this gives some indication as to the size and complexity of the object s class. Instance methods for the object are visualised in a similar manner to that of static methods for classes, although the methods are listed down the rear right hand edge of the object. Fields are visualised along the front left hand edge. This layout is intended to differentiate objects from classes in the visualisation. For the purposes of the visualisation, constructors are treated as being associated with class instances, since the constructor operates within the scope of an instantiated object. 4.4 Arrays Visualisations of arrays in JOOPA are presented as a grouping of variables of the appropriate type. Figure 4.5 References Figure 6 illustrates a reference from an array s 0th index and a target object. The assignment of a object to a variable (a field, a local method variable, or an array element) is visualised by the drawing of a line from the representation 7
8 Figure 4: An instantated object in the 3D visualiation. THe object includes visualations for non static members (methods and fields). The object is labelled and colour coded for its type (HelloWorld). (a) A primitive array of type int and size 4. All elements of the array are currently empty. (b) A reference array of type HelloWorld and size 4. Visualisations of references to HelloWorld objects are visible. Figure 5: Visualisation of arrays in JOOPA 2 of the source variable to the target object. The leading tip of the reference line is represented by an arrow head to indicate the reference s direction and the line is colour coded by the variable s type (rather than the target s type), to emphasise the notion that an object is treated as the type declared for the variable. When a variable is re-assigned to another object, the reference line is removed from the animation. The reference line shape is implemented as a bezier spline. The control points of the spline (other than the origin and end points) are configurable. 4.6 Method Invocation and Execution Figure 7 illustrates the visualisation of a method execution in the JOOPA 2 tool. As the statements of a method are executed, a method execution edge is extended from the sphere representation of a method in an object or class. Local variables are placed along the edge as it extends and as they are declared. Parameters are treated as method variables and so are placed on the method execution edge when the method is first executed. To cope with multiple invocations of the same method on the same object or class, the angle of the execution edge is varied for each call. An animation is also include to visualise the call of one method by another. In Figure 7, the origin of a method call (to a HelloWorld constructor) is visible 8
9 Figure 6: Visualisation of a reference from the 0th index of an array to a HelloWorld object. The reference is represented by an arrow reaching from the point of origin ot the upper, rear left hand vertex of the target object. Figure 7: Execution of the static main method from the HelloWorld class. The method is represented by a line with terminated by a small sphere (the point of execution reached). Arguments are visualised as variables, in this case String []: args. A variable has also been declared - HelloWorld:hh. leaving the execution point of the main method. The extension of the call edge is similr to that of a reference edge, except that the end of the call edge is a sphere (the point of execution) rather than an arrow. A user can follow the sequence of method calls from the main method to the current point of execution. 4.7 Layout Control The initial allocation of entities to space within the 3D environment is controlled by a Layout Manager. The Layout Manager is a pluggable component of the visualisation engine, and as such can implement layout policies as desired by a user. Each time a new entity is to be placed into the visualisation, the The default layout manager implements a basic 3D space filling algorithm. 9
10 4.8 Tool Configuration and Control The visualisation can be controlled either by manipulating one of the views on the visualisation (view location and orientation); passing program control events to the debugger (halt, step forward etc); or by manipulating the 3D representation (object placement). To control the visualisation s 3D environment, a simple GUI was implemented, which controlled the positioning of a user s view platform with respect to the program visualisation. The view control uses the utility classes provided with Java 3D to permit the user to rotate and translate their perspective. In addition, the user is able to drag individual objects or classes within the visualisation. This feature, may be useful, for example, if a tutor wishes to concetrate on one particular object in view, by removing other objects from cluttering the view. Execution of the visualisation is controlled by issuing instructions to the debugger. The debugger s execution speed can be controlled, as well as the ability to play and pause execution. One current limitation is that it is not possible to step back through a program. In addition to controlling flow, the JDI can be used to register class exclusion patterns with the JVM. The JVM suppresses event generation for a class with a fully qualified name that matches one of the exclusion patterns. This feature can be used to reduce the complexity of a visualisation by omitting classes from standard libraries, or non-essential support libraries employed by the application. Finally, functionality is included to permit image and video capture of animations in progress. This feature is useful for producing pre-recorded visualisations, which can be incorporated into a lecture course, rather than risking software failure or a live visualisation. 5 Future Work This paper describes a work in progress. Several features are planned for future incorporation in the JOOPA2 tool, in order to extend the scope of program aspects that can be captured. Immediately planned extensions include: Threading and Multiple Views The JOOPA2 tool currently tracks only a single thread (main) during execution. However, the design of the visualisation engine would readily support the representation of multiple threads, whilst the debugger currently ignores events for other threads. An extension to this would be the provision of multiple views on the program so that concurrently executing threads could be observed in separate GUI windows. Thread of Execution Tracking Currently, the user is required to manually track the thread of execution across a program. A potential extension would be to have the user s view platform automatically track the thread of execution, adjusting for zoom as necessary, etc. Method return values Currently, method return values are not explicitly visualised in JOOPA2. One approach would be for the method call edge on retraction to pass a reference to the return value to the calling method. 10
11 A future feature for visualisation under consideration is the potential to illustrate method logic under execution (if and for statements etc), using a more complex method execution visualisation. For, example, a if statement could be represented by a fork in a method execution edge, whilst a for statement could be visualised as a circle. The user would be able to track the precise point in the execution of a program from within the 3D environment. As the list of features of Java visualised by JOOPA becomes more comprehensive, there is potential to investigate the use of program visualisation in 3D for the purposes of debugging. Already, many IDEs incorporate visual aspects to debuggers. A potential avenue of research is the extent to which the 3D visualisation enhances this functionality. In addition, trials of the tool are planned for use in an introductory level programming course. The intent is to assess the usefulness to both students and teachers of providing a visualisation too for programs written in Java to enhance the understanding of the OO paradigm. 6 Summary This paper describes the motivation, design considerations and implementation of the JOOPA2 tool. The tool provides 3D visualisations of the execution of programs written in the Java object-oriented programming language, including representation of classes, objects, references and method execution. Considerable future work to extend the tool is planned and it is intended to assess the usefulness of the tool for teaching object-oriented programming concepts and to provide a 3D environment for debugging purposes. References [1] Sunita Asija. Visualization of object-oriented design models. Master s thesis, Depaul University, Chicago, USA, December [2] M. Klling. The BlueJ Reference Manual. BlueJ, version 0.1 for bluej version 1.1 edition, July [3] Jonathan I. Maletic, Andrian Marcus, Greg Dunlap, and Jason Leigh. Visualizing object-oriented software in virtual reality. pages 26 38, [4] James Rumbaugh, Ivar Jacobson, and Grady Booch. The UML Reference Manual. Addison Wesley, December [5] Henry Sowizral, Kevin Rushforth, and Michael Deering. The Java 3D API Specification. Addison Wesley, second edition,
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,
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
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
Gadget: A Tool for Extracting the Dynamic Structure of Java Programs
Gadget: A Tool for Extracting the Dynamic Structure of Java Programs Juan Gargiulo and Spiros Mancoridis Department of Mathematics & Computer Science Drexel University Philadelphia, PA, USA e-mail: gjgargiu,smancori
How To Teach Object Oriented Programming At An Introductory Level Course
149 TEACHING OBJECT ORIENTED PROGRAMMING AT THE INTRODUCTORY LEVEL Mehmet C. OKUR * ABSTRACT Teaching object oriented programming has become a rapidly expanding preference at various educational environments.
The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1
The Java Series Java Essentials I What is Java? Basic Language Constructs Slide 1 What is Java? A general purpose Object Oriented programming language. Created by Sun Microsystems. It s a general purpose
Design and UML Class Diagrams
Design and UML Class Diagrams 1 Suggested reading: Practical UML: A hands on introduction for developers http://dn.codegear.com/article/31863 UML DistilledCh. 3, by M. Fowler How do people draw / write
Object Oriented Programming. Risk Management
Section V: Object Oriented Programming Risk Management In theory, there is no difference between theory and practice. But, in practice, there is. - Jan van de Snepscheut 427 Chapter 21: Unified Modeling
History OOP languages Year Language 1967 Simula-67 1983 Smalltalk
History OOP languages Intro 1 Year Language reported dates vary for some languages... design Vs delievered 1957 Fortran High level programming language 1958 Lisp 1959 Cobol 1960 Algol Structured Programming
Java (12 Weeks) Introduction to Java Programming Language
Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short
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
CPS122 Lecture: State and Activity Diagrams in UML
CPS122 Lecture: State and Activity Diagrams in UML Objectives: last revised February 14, 2012 1. To show how to create and read State Diagrams 2. To introduce UML Activity Diagrams Materials: 1. Demonstration
How To Design Software
The Software Development Life Cycle: An Overview Presented by Maxwell Drew and Dan Kaiser Southwest State University Computer Science Program Last Time The design process and design methods Design strategies
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
Case studies: Outline. Requirement Engineering. Case Study: Automated Banking System. UML and Case Studies ITNP090 - Object Oriented Software Design
I. Automated Banking System Case studies: Outline Requirements Engineering: OO and incremental software development 1. case study: withdraw money a. use cases b. identifying class/object (class diagram)
Semantic Object Language Whitepaper Jason Wells Semantic Research Inc.
Semantic Object Language Whitepaper Jason Wells Semantic Research Inc. Abstract While UML is the accepted visual language for object-oriented system modeling, it lacks a common semantic foundation with
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
UML basics: An introduction to the Unified Modeling Language
Copyright Rational Software 2003 http://www.therationaledge.com/content/jun_03/f_umlintro_db.jsp UML basics: An introduction to the Unified Modeling Language by Donald Bell IBM Global Services Way back
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
The structured application of advanced logging techniques for SystemVerilog testbench debug and analysis. By Bindesh Patel and Amanda Hsiao.
Logging makes sense for testbench debug The structured application of advanced logging techniques for SystemVerilog testbench debug and analysis. By Bindesh Patel and Amanda Hsiao. SystemVerilog provides
VisuSniff: A Tool For The Visualization Of Network Traffic
VisuSniff: A Tool For The Visualization Of Network Traffic Rainer Oechsle University of Applied Sciences, Trier Postbox 1826 D-54208 Trier +49/651/8103-508 [email protected] Oliver Gronz University
University of Twente. A simulation of the Java Virtual Machine using graph grammars
University of Twente Department of Computer Science A simulation of the Java Virtual Machine using graph grammars Master of Science thesis M. R. Arends, November 2003 A simulation of the Java Virtual Machine
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.
How To Draw A Cell Phone Into A Cellphone In Unminimal Diagram (Uml)
UML Tutorial: Collaboration Diagrams Robert C. Martin Engineering Notebook Column Nov/Dec, 97 In this column we will explore UML collaboration diagrams. We will investigate how they are drawn, how they
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
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
A UML Introduction Tutorial
A UML Introduction Tutorial 1/27/08 9:55 PM A UML Introduction Tutorial In this tutorial you will learn about the fundamentals of object oriented modelling, the Unified Modelling Language and the software
Visualising Java Data Structures as Graphs
Visualising Java Data Structures as Graphs John Hamer Department of Computer Science University of Auckland [email protected] John Hamer, January 15, 2004 ACE 2004 Visualising Java Data Structures
Using UML Part Two Behavioral Modeling Diagrams
UML Tutorials Using UML Part Two Behavioral Modeling Diagrams by Sparx Systems All material Sparx Systems 2007 Sparx Systems 2007 Page 1 Trademarks Object Management Group, OMG, Unified Modeling Language,
Object Oriented program execution Visualization of Dynamic Program
Object Oriented program execution Visualization of Dynamic Program Kees Huizing Ruurd Kuiper Pieter Deelen Huub van de Wetering Frank van Ham Technische Universiteit Eindhoven Netherlands IPA Herfst 2008
Implementação. Interfaces Pessoa Máquina 2010/11. 2009-11 Salvador Abreu baseado em material Alan Dix. Thursday, June 2, 2011
Implementação Interfaces Pessoa Máquina 2010/11 2009-11 baseado em material Alan Dix 1 Windowing systems Architecture Layers Higher level Tool UI Toolkit (Widgets) Window System OS Application Hardware
IRA 423/08. Designing the SRT control software: Notes to the UML schemes. Andrea Orlati 1 Simona Righini 2
Designing the SRT control software: Notes to the UML schemes Andrea Orlati 1 Simona Righini 2 1 - I.N.A.F. Istituto di Radioastronomia. 2 Dip. Astronomia - Università degli Studi di Bologna. Dicembre 2008
Part 1 Foundations of object orientation
OFWJ_C01.QXD 2/3/06 2:14 pm Page 1 Part 1 Foundations of object orientation OFWJ_C01.QXD 2/3/06 2:14 pm Page 2 1 OFWJ_C01.QXD 2/3/06 2:14 pm Page 3 CHAPTER 1 Objects and classes Main concepts discussed
Model Simulation in Rational Software Architect: Business Process Simulation
Model Simulation in Rational Software Architect: Business Process Simulation Mattias Mohlin Senior Software Architect IBM The BPMN (Business Process Model and Notation) is the industry standard notation
Design and UML Class Diagrams. Suggested reading: Practical UML: A hands on introduction for developers http://dn.codegear.
Design and UML Class Diagrams Suggested reading: Practical UML: A hands on introduction for developers http://dn.codegear.com/article/31863 UML Distilled Ch. 3, by M. Fowler 1 Big questions What is UML?
UML SUPPORTED SOFTWARE DESIGN
UML SUPPORTED SOFTWARE DESIGN Darko Gvozdanović, Saša Dešić, Darko Huljenić Ericsson Nikola Tesla d.d., Krapinska 45, HR-0000 Zagreb, Croatia, tel.: +385 365 3889, faks: +385 365 3548, e-mail: [email protected]
Evaluating OO-CASE tools: OO research meets practice
Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht
6.1. Example: A Tip Calculator 6-1
Chapter 6. Transition to Java Not all programming languages are created equal. Each is designed by its creator to achieve a particular purpose, which can range from highly focused languages designed for
MiniDraw Introducing a framework... and a few patterns
MiniDraw Introducing a framework... and a few patterns What is it? [Demo] 2 1 What do I get? MiniDraw helps you building apps that have 2D image based graphics GIF files Optimized repainting Direct manipulation
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,
Java CPD (I) Frans Coenen Department of Computer Science
Java CPD (I) Frans Coenen Department of Computer Science Content Session 1, 12:45-14:30 (First Java Programme, Inheritance, Arithmetic) Session 2, 14:45-16:45 (Input and Programme Constructs) Materials
Oracle Forms Developer 10g: Build Internet Applications
Oracle University Contact Us: +966 1 1 2739 894 Oracle Forms Developer 10g: Build Internet Applications Duration: 5 Days What you will learn Leverage your investment by taking advantage of web technologies
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.
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
Software Project Management and UML
Software Project Management and UML Ali Bigdelou Computer Aided Medical Procedures (CAMP), Technische Universität München, Germany Outline Intro to Software Project Management Project Requirements Specification
DataPA OpenAnalytics End User Training
DataPA OpenAnalytics End User Training DataPA End User Training Lesson 1 Course Overview DataPA Chapter 1 Course Overview Introduction This course covers the skills required to use DataPA OpenAnalytics
Algorithms, Flowcharts & Program Design. ComPro
Algorithms, Flowcharts & Program Design ComPro Definition Algorithm: o sequence of steps to be performed in order to solve a problem by the computer. Flowchart: o graphical or symbolic representation of
Introduction to programming
Unit 1 Introduction to programming Summary Architecture of a computer Programming languages Program = objects + operations First Java program Writing, compiling, and executing a program Program errors
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
The Darwin Game 2.0 Programming Guide
The Darwin Game 2.0 Programming Guide In The Darwin Game creatures compete to control maps and race through mazes. You play by programming your own species of creature in Java, which then acts autonomously
Introduction to Object-Oriented Programming
Introduction to Object-Oriented Programming Programs and Methods Christopher Simpkins [email protected] CS 1331 (Georgia Tech) Programs and Methods 1 / 8 The Anatomy of a Java Program It is customary
Building Interactive Animations using VRML and Java
Building Interactive Animations using VRML and Java FABIANA SALDANHA TAMIOSSO 1,ALBERTO BARBOSA RAPOSO 1, LÉO PINI MAGALHÃES 1 2,IVAN LUIZ MARQUES RICARTE 1 1 State University of Campinas (UNICAMP) School
PIE. Internal Structure
PIE Internal Structure PIE Composition PIE (Processware Integration Environment) is a set of programs for integration of heterogeneous applications. The final set depends on the purposes of a solution
SceneBeans: A Component-Based Animation Framework for Java
1. Abstract SceneBeans: A Component-Based Animation Framework for Java Nat Pryce and Jeff Magee Department of Computing, Imperial College. {np2,jnm}@doc.ic.ac.uk DRAFT VERSION This paper presents SceneBeans,
School of Computer Science
School of Computer Science Computer Science - Honours Level - 2014/15 October 2014 General degree students wishing to enter 3000- level modules and non- graduating students wishing to enter 3000- level
zen Platform technical white paper
zen Platform technical white paper The zen Platform as Strategic Business Platform The increasing use of application servers as standard paradigm for the development of business critical applications meant
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,
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
An Open Framework for Reverse Engineering Graph Data Visualization. Alexandru C. Telea Eindhoven University of Technology The Netherlands.
An Open Framework for Reverse Engineering Graph Data Visualization Alexandru C. Telea Eindhoven University of Technology The Netherlands Overview Reverse engineering (RE) overview Limitations of current
Menouer Boubekeur, Gregory Provan
Software Requirements Menouer Boubekeur, Gregory Provan Lectures Introduction to UML Introduction to Requirements Analysis Advanced techniques for Requirement Analysis M. Boubekeur, CSL, University College
DIABLO VALLEY COLLEGE CATALOG 2014-2015
COMPUTER SCIENCE COMSC The computer science department offers courses in three general areas, each targeted to serve students with specific needs: 1. General education students seeking a computer literacy
Exercise 8: SRS - Student Registration System
You are required to develop an automated Student Registration System (SRS). This system will enable students to register online for courses each semester. As part of the exercise you will have to perform
Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.
Handout 1 CS603 Object-Oriented Programming Fall 15 Page 1 of 11 Handout 1 Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Java
Design Pattern for the Adaptive Scheduling of Real-Time Tasks with Multiple Versions in RTSJ
Design Pattern for the Adaptive Scheduling of Real-Time Tasks with Multiple Versions in RTSJ Rodrigo Gonçalves, Rômulo Silva de Oliveira, Carlos Montez LCMI Depto. de Automação e Sistemas Univ. Fed. de
Bitrix Site Manager 4.1. User Guide
Bitrix Site Manager 4.1 User Guide 2 Contents REGISTRATION AND AUTHORISATION...3 SITE SECTIONS...5 Creating a section...6 Changing the section properties...8 SITE PAGES...9 Creating a page...10 Editing
GRAFICA - A COMPUTER GRAPHICS TEACHING ASSISTANT. Andreas Savva, George Ioannou, Vasso Stylianou, and George Portides, University of Nicosia Cyprus
ICICTE 2014 Proceedings 1 GRAFICA - A COMPUTER GRAPHICS TEACHING ASSISTANT Andreas Savva, George Ioannou, Vasso Stylianou, and George Portides, University of Nicosia Cyprus Abstract This paper presents
Java Software Structures
INTERNATIONAL EDITION Java Software Structures Designing and Using Data Structures FOURTH EDITION John Lewis Joseph Chase This page is intentionally left blank. Java Software Structures,International Edition
Designing with Exceptions. CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219
Designing with Exceptions CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219 Testing vs. Debugging Testing Coding Does the code work properly YES NO 2 Debugging Testing
INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency
INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency 1. 420-PA3-AB Introduction to Computers, the Internet, and the Web This course is an introduction to the computer,
Introduction to Java
Introduction to Java The HelloWorld program Primitive data types Assignment and arithmetic operations User input Conditional statements Looping Arrays CSA0011 Matthew Xuereb 2008 1 Java Overview A high
Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note
Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note Text book of CPET 545 Service-Oriented Architecture and Enterprise Application: SOA Principles of Service Design, by Thomas Erl, ISBN
Designing Real-Time and Embedded Systems with the COMET/UML method
By Hassan Gomaa, Department of Information and Software Engineering, George Mason University. Designing Real-Time and Embedded Systems with the COMET/UML method Most object-oriented analysis and design
CS 4620 Practicum Programming Assignment 6 Animation
CS 4620 Practicum Programming Assignment 6 Animation out: Friday 14th November 2014 due: : Monday 24th November 2014 1 Introduction In this assignment, we will explore a common topic in animation: key
Overview of the Adobe Flash Professional CS6 workspace
Overview of the Adobe Flash Professional CS6 workspace In this guide, you learn how to do the following: Identify the elements of the Adobe Flash Professional CS6 workspace Customize the layout of the
Aspect Oriented Strategy to model the Examination Management Systems
Aspect Oriented Strategy to model the Examination Management Systems P.Durga 1, S.Jeevitha 2, A.Poomalai 3, Prof.M.Sowmiya 4 and Prof.S.Balamurugan 5 Department of IT, Kalaignar Karunanidhi Institute of
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
Source Code Translation
Source Code Translation Everyone who writes computer software eventually faces the requirement of converting a large code base from one programming language to another. That requirement is sometimes driven
Object-Oriented Program Animation using JAN
Object-Oriented Program Animation using JAN Klaus-Peter Löhr [email protected] André Vratislavsky [email protected] Institut für Informatik Freie Universität Berlin ABSTRACT Concept and design of
1. Relational database accesses data in a sequential form. (Figures 7.1, 7.2)
Chapter 7 Data Structures for Computer Graphics (This chapter was written for programmers - option in lecture course) Any computer model of an Object must comprise three different types of entities: 1.
Classes and Objects. Agenda. Quiz 7/1/2008. The Background of the Object-Oriented Approach. Class. Object. Package and import
Classes and Objects 2 4 pm Tuesday 7/1/2008 @JD2211 1 Agenda The Background of the Object-Oriented Approach Class Object Package and import 2 Quiz Who was the oldest profession in the world? 1. Physician
A Meeting Room Scheduling Problem
A Scheduling Problem Objective Engineering, Inc. 699 Windsong Trail Austin, Texas 78746 512-328-9658 FAX: 512-328-9661 [email protected] http://www.oeng.com Objective Engineering, Inc., 1999-2007. Photocopying,
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
Programming Language Constructs as Basis for Software Architectures
Programming Language Constructs as Basis for Software Architectures 1 From individual parts to components In the 50s: Machine/Assembler programs: bound to specific hardware In the 60s-70s: Higher programming
Maya 2014 Basic Animation & The Graph Editor
Maya 2014 Basic Animation & The Graph Editor When you set a Keyframe (or Key), you assign a value to an object s attribute (for example, translate, rotate, scale, color) at a specific time. Most animation
An Overview of Java. overview-1
An Overview of Java overview-1 Contents What is Java Major Java features Java virtual machine Java programming language Java class libraries (API) GUI Support in Java Networking and Threads in Java overview-2
Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine
Blender Notes Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine The Blender Game Engine This week we will have an introduction to the Game Engine build
Software Engineering Best Practices. Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer
Software Engineering Best Practices Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer 2 3 4 Examples of Software Engineering Debt (just some of the most common LabVIEW development
CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)
CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS) Prescriptive Process Model Defines a distinct set of activities, actions, tasks, milestones, and work products that are required to engineer high quality
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
Parameter Passing in Pascal
Parameter Passing in Pascal Mordechai Ben-Ari Department of Science Teaching Weizmann Institute of Science Rehovot 76100 Israel [email protected] Abstract This paper claims that reference parameters
[1] http://en.wikipedia.org/wiki/first-mover_advantage [2] http://www.acunote.com
-Gene Sher Software Development Processes: Those in engineering and science will sooner or later either be members of teams solving some large project, or be managing teams solving some large project.
Practical Data Visualization and Virtual Reality. Virtual Reality VR Software and Programming. Karljohan Lundin Palmerius
Practical Data Visualization and Virtual Reality Virtual Reality VR Software and Programming Karljohan Lundin Palmerius Synopsis Scene graphs Event systems Multi screen output and synchronization VR software
HTML5 Data Visualization and Manipulation Tool Colorado School of Mines Field Session Summer 2013
HTML5 Data Visualization and Manipulation Tool Colorado School of Mines Field Session Summer 2013 Riley Moses Bri Fidder Jon Lewis Introduction & Product Vision BIMShift is a company that provides all
PART-A Questions. 2. How does an enumerated statement differ from a typedef statement?
1. Distinguish & and && operators. PART-A Questions 2. How does an enumerated statement differ from a typedef statement? 3. What are the various members of a class? 4. Who can access the protected members
