scispace - formally typeset
Search or ask a question
Proceedings Article

Execution patterns in object-oriented visualization

TL;DR: An execution pattern view that lets a programmer visualize and explore a program's execution at varied levels of abstraction and drastically reduce the information a programmer must assimilate, with little loss of in sight is presented.
Abstract: Execution patterns are a new metaphor for visualizing execution traces of object-oriented programs We present an execution pattern view that lets a programmer visualize and explore a program's execution at varied levels of abstraction The view employs visual, navigational, and analytical techniques that accommodate lengthy, real-world traces By classifying repetitive behavior automatically into high-order execution patterns, we drastically reduce the inform ation a programmer must assimilate, with little loss of in sight

Content maybe subject to copyright    Report

Citations
More filters
Patent
13 Sep 2006
TL;DR: In this paper, the authors present a system for providing an improved three-dimensional graphical user interface, which can be represented as two or more objects within a 3D virtual space displayed to the user.
Abstract: Methods and systems are provided for providing an improved three-dimensional graphical user interface. In one embodiment, the method generally comprises: receiving an input from an end user, and capturing computing output from at least one computer source in response to the received end-user input. The computing output can be presented as two or more objects within a three-dimensional virtual space displayed to the end user. In one embodiment, the method further comprises generating a timeline that includes an icon for each object presented within the virtual space. In another embodiment, the method further comprises providing a database for storing and categorizing data regarding each object presented within the virtual space.

426 citations

Journal ArticleDOI
TL;DR: A systematic literature survey aimed at the identification and structuring of research on program comprehension through dynamic analysis is reported on, which offers insight in what constitutes the main contributions of the field and supports the task of identifying gaps and opportunities.
Abstract: Program comprehension is an important activity in software maintenance, as software must be sufficiently understood before it can be properly modified. The study of a program's execution, known as dynamic analysis, has become a common technique in this respect and has received substantial attention from the research community, particularly over the last decade. These efforts have resulted in a large research body of which currently there exists no comprehensive overview. This paper reports on a systematic literature survey aimed at the identification and structuring of research on program comprehension through dynamic analysis. From a research body consisting of 4,795 articles published in 14 relevant venues between July 1999 and June 2008 and the references therein, we have systematically selected 176 articles and characterized them in terms of four main facets: activity, target, method, and evaluation. The resulting overview offers insight in what constitutes the main contributions of the field, supports the task of identifying gaps and opportunities, and has motivated our discussion of several important research directions that merit additional consideration in the near future.

390 citations


Cites background from "Execution patterns in object-orient..."

  • ...[49], [51], [52] started their extensive (and still on-going) research on program visualization, introducing novel views that include matrix visualizations, and the use of “execution pattern” notations to visualize traces in a scalable manner....

    [...]

31 Dec 2008
TL;DR: In this article, a systematic literature survey aimed at the identification and structuring of research on program comprehension through dynamic analysis is presented, focusing on the main contributions of the field, supports the task of identifying gaps and opportunities, and has motivated our discussion of several important research directions that merit additional consideration in the near future.
Abstract: Preprint of paper published in: IEEE Transactions on Software Engineering, 35 (5), 2009; doi:10.1109/TSE.2009.28 Program comprehension is an important activity in software maintenance, as software must be sufficiently understood before it can be properly modified. The study of a program's execution, known as dynamic analysis, has become a common technique in this respect and has received substantial attention from the research community, particularly over the last decade. These efforts have resulted in a large research body of which currently there exists no comprehensive overview. This paper reports on a systematic literature survey aimed at the identification and structuring of research on program comprehension through dynamic analysis. From a research body consisting of 4,795 articles published in 14 relevant venues between July 1999 and June 2008 and the references therein, we have systematically selected 176 articles and characterized them in terms of four main facets: activity, target, method, and evaluation. The resulting overview offers insight in what constitutes the main contributions of the field, supports the task of identifying gaps and opportunities, and has motivated our discussion of several important research directions that merit additional consideration in the near future.

384 citations

Book ChapterDOI
Wim De Pauw1, Erik Jensen1, Nick Mitchell1, Gary Sevitsky1, John Vlissides1, Jeaha Yang1 
20 May 2001
TL;DR: Jinsight is a tool for exploring a program’s run-time behavior visually and is helpful for performance analysis, debugging, and any task in which you need to better understand what your Java program is really doing.
Abstract: Jinsight is a tool for exploring a program’s run-time behavior visually. It is helpful for performance analysis, debugging, and any task in which you need to better understand what your Java program is really doing.

229 citations

Proceedings ArticleDOI
01 Oct 1998
TL;DR: An off-line, flexible approach for visualizing the operation of an object-oriented system at the architectural level is developed, which complements and extends existing profiling and visualization approaches available to engineers attempting to utilize dynamic information.
Abstract: Dynamic information collected as a software system executes can help software engineers perform some tasks on a system more effectively. To interpret the sizable amount of data generated from a system's execution, engineers require tool support. We have developed an off-line, flexible approach for visualizing the operation of an object-oriented system at the architectural level. This approach complements and extends existing profiling and visualization approaches available to engineers attempting to utilize dynamic information. In this paper, we describe the technique and discuss preliminary qualitative studies into its usefulness and usability. These studies were undertaken in the context of performance tuning tasks.

173 citations


Cites background from "Execution patterns in object-orient..."

  • ...use a different notion of pattern, which they refer to as execution patterns, to help developers investigate the large amount of fine-grained execution information available about a system [3]....

    [...]

References
More filters
Book
Adele E. Goldberg1, David Robson1
01 Jan 1983
TL;DR: This book is the first detailed account of the Smalltalk-80 system and is divided into four major parts: an overview of the concepts and syntax of the programming language, a specification of the system's functionality, and an example of the design and implementation of a moderate-size application.
Abstract: From the Preface (See Front Matter for full Preface) Advances in the design and production of computer hardware have brought many more people into direct contact with computers. Similar advances in the design and production of computer software are required in order that this increased contact be as rewarding as possible. The Smalltalk-80 system is a result of a decade of research into creating computer software that is appropriate for producing highly functional and interactive contact with personal computer systems. This book is the first detailed account of the Smalltalk-80 system. It is divided into four major parts: Part One -- an overview of the concepts and syntax of the programming language. Part Two -- an annotated and illustrated specification of the system's functionality. Part Three -- an example of the design and implementation of a moderate-size application. Part Four -- a specification of the Smalltalk-80 virtual machine.

3,882 citations


"Execution patterns in object-orient..." refers methods in this paper

  • ...Consider the execution pattern associated with instantiating an object in Smalltalk [11] by executing Rectangular new....

    [...]

Book
01 Jan 1992
TL;DR: This chapter discusses object-oriented software engineering as a process of change, management and reuse, and some of the methods used to develop and implement object- oriented software.
Abstract: Part 1. Introduction 1. System development as an industrial process Introduction A useful analogy System development characteristics Summary 2. The system life cycle Introduction System development as a process of change System development and reuse System development and methodology Objectory Summary 3. What is object-orientation? Introduction Object Class andinstance Polymorphism Inheritance Summary 4. Object-oriented system development Introduction Function/data methods Object-oriented analysis Object-oriented construction Object-oriented testing Summary 5. Object-oriented programming Introduction Objects Classes and instances Inheritance Polymorphism An example Summary Part II. Concepts 6. Architecture Introduction System development is model building Model architecture Requirements model Analysis model The design model The implementation model Test model Summary 7. Analysis Introduction The requirements model The analysis model Summary 8. Construction Introduction The design model Block design Working with construction Summary 9. Real-time specialization Introduction Classification of real-time systems Fundamental issues Analysis Construction Testing and verification Summary 10. Database Specialization Introduction Relational DBMS Object DBMS Discussion Summary 11. Components Introduction What is a component? Use of components Component management Summary 12. Testing Introduction On testing Unit testing Integration testing System testing The testing process Summary Part III. Applications 13. Case study: warehouse management system Introduction to the examples ACME Warehouse Management Inc. The requirements model The analysis model Construction 14. Case study: telecom Introduction Telecommunication switching systems The requirements model The analysis model The design model The implementation model 15. Managing object-oriented software engineering Introduction Project selection and preparation Project development organization Project organization and management Project staffing Software quality assurance Software metrics Summary 16. Other object-oriented methods Introduction A summary of object-oriented methods Object-Oriented Analysis (OOAD/Coad-Yourdon) Object-Oriented Design (OOD/Booch) Hierarchical Object-Oriented Design (HOOD) Object Modeling Technique (OMT) Responsibility-Driven Design Summary Appendix A On the development of Objectory Introduction Objectory as an activity From idea to reality References Index

3,673 citations


"Execution patterns in object-orient..." refers methods in this paper

  • ...To this end we introduce a variation of Jacobson’s interaction diagrams [16] for presenting patterns of execution—an execution pattern view— that accomplishes two aims:...

    [...]

Journal ArticleDOI
TL;DR: A simple, efficient algorithm to locate all occurrences of any of a finite number of keywords in a string of text that has been used to improve the speed of a library bibliographic search program by a factor of 5 to 10.
Abstract: This paper describes a simple, efficient algorithm to locate all occurrences of any of a finite number of keywords in a string of text. The algorithm consists of constructing a finite state pattern matching machine from the keywords and then using the pattern matching machine to process the text string in a single pass. Construction of the pattern matching machine takes time proportional to the sum of the lengths of the keywords. The number of state transitions made by the pattern matching machine in processing the text string is independent of the number of keywords. The algorithm has been used to improve the speed of a library bibliographic search program by a factor of 5 to 10.

3,270 citations

Journal ArticleDOI
J. Lawrence Carter1, Mark N. Wegman1
TL;DR: An input independent average linear time algorithm for storage and retrieval on keys that makes a random choice of hash function from a suitable class of hash functions.

2,886 citations


"Execution patterns in object-orient..." refers background in this paper

  • ...Using a Universal class of hash functions [6] ensures that computing the hash value recursively will produce a good distribution....

    [...]

Journal ArticleDOI
TL;DR: Five new techniques for tree pattern matching are presented, analyzed for time and space complexity, and compared with previously known methods.
Abstract: ABSTgACT. Tree pattern matching is an interesting special problem which occurs as a crucial step m a number of programmmg tasks, for instance, design of interpreters for nonprocedural programming languages, automatic implementations of abstract data types, code optimization m compilers, symbohc computation, context searching in structure editors, and automatic theorem provmg. As with the sorting problem, the variations in requirements and resources for each application seem to preclude a uniform, umversal solution to the tree-pattern-matching problem. Instead, a collection of well-analyzed techmques, from which specific applications may be selected and adapted, should be sought. Five new techniques for tree pattern matching are presented, analyzed for time and space complexity, and compared with previously known methods. Particularly important are applications where the same patterns are matched against many subjects and where a subject may be modified incrementally Therefore, methods which spend some tune preprocessmg patterns in order to improve the actual matching time are included

483 citations


"Execution patterns in object-orient..." refers background in this paper

  • ...Tree and string matching is one of the most thoroughly documented areas of research in computer science [13, 21, 5, 19, 7, 4, 1]....

    [...]

Trending Questions (1)
What mechanisms and navigational axes for the exploration of program traces are there?

The paper presents a visualization view that employs visual, navigational, and analytical techniques for exploring program execution traces.