Results 1 -
4 of
4
Modeling Object-Oriented Program Execution
, 1994
"... This paper describes a way of organizing information aboutan object-oriented program's execution. The context is our system for visualizing that execution. The critical constraints are completeness, compactness, and efficient retrieval. We describe our design and how it meets these constraints. 1 In ..."
Abstract
-
Cited by 52 (1 self)
- Add to MetaCart
This paper describes a way of organizing information aboutan object-oriented program's execution. The context is our system for visualizing that execution. The critical constraints are completeness, compactness, and efficient retrieval. We describe our design and how it meets these constraints. 1 Introduction Much is known about how to characterize programs statically. Contemporary programming languages embody countless lessons learned over nearly a half century of modern computing. It's clear that a language must balance expressiveness and simplicity, abstraction and specificity, flexibility and robustness. The proportions can vary according to need, but programming language design is necessarily a compromise between conflicting goals. We can think of a programming language as defining a vast space of legal programs relatively few of which are of any practical use. To define a space we must have orthogonal dimensions. In the case of structured programming languages we might devote on...
Polymetric Views - A Lightweight Visual Approach to Reverse Engineering
- IEEE Transactions on Software Engineering
, 2003
"... Reverse engineering software systems has become a major concern in software industry because of their sheer size and complexity. This problem needs to be tackled, since the systems in question are of considerable worth to their owners and maintainers. In this article we present the concept of a poly ..."
Abstract
-
Cited by 46 (19 self)
- Add to MetaCart
Reverse engineering software systems has become a major concern in software industry because of their sheer size and complexity. This problem needs to be tackled, since the systems in question are of considerable worth to their owners and maintainers. In this article we present the concept of a polymetric view, a lightweight software visualization technique enriched with software metrics information. Polymetric views help to understand the structure and detect problems of a software system in the initial phases of a reverse engineering process. We discuss the benefits and limits of several predefined polymetric views we have implemented in our tool CodeCrawler. Moreover, based on clusters of different polymetric views we have developed a methodology which supports and guides a software engineer in the first phases of a reverse engineering of a large software system. We have refined this methodology by repeatedly applying it on industrial systems, and illustrate it by applying a selection of polymetric views to a case study.
The class blueprint: Visually supporting the understanding of classes
- IEEE Transactions on Software Engineering
, 2005
"... Abstract—Understanding source code is an important task in the maintenance of software systems. Legacy systems are not only limited to procedural languages, but are also written in object-oriented languages. In such a context, understanding classes is a key activity as they are the cornerstone of th ..."
Abstract
-
Cited by 35 (10 self)
- Add to MetaCart
Abstract—Understanding source code is an important task in the maintenance of software systems. Legacy systems are not only limited to procedural languages, but are also written in object-oriented languages. In such a context, understanding classes is a key activity as they are the cornerstone of the object-oriented paradigm and the primary abstraction from which applications are built. Such an understanding is however difficult to obtain because of reasons such as the presence of late binding and inheritance. A first level of class understanding consists of the understanding of its overall structure, the control flow among its methods, and the accesses on its attributes. We propose a novel visualization of classes called class blueprint that is based on a semantically enriched visualization of the internal structure of classes. This visualization allows a software engineer to build a first mental model of a class that he validates via opportunistic code-reading. Furthermore, we have identified visual patterns that represent recurrent situations and as such convey additional information to the viewer. The contributions of this article are the class blueprint, a novel visualization of the internal structure of classes, the identification of visual patterns, and the definition of a vocabulary based on these visual patterns. We have performed several case studies of which one is presented in depth, and validated the usefulness of the approach in a controlled experiment. Index Terms—Object-oriented programming, software visualization, reverse engineering, visual patterns, smalltalk. 1
Objects On Stage. Animating and Visualising ObjectOriented Architectures in a CASE Environment.
- Universit�� de Paris Press
"... We present in this paper a novel approach for using visualisation and animation facilities in the context of an object-oriented CASE environment. We first analyze the general problem: why CASE tools will succeed or fail; then we present the outstanding features of our environment stressing animation ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
We present in this paper a novel approach for using visualisation and animation facilities in the context of an object-oriented CASE environment. We first analyze the general problem: why CASE tools will succeed or fail; then we present the outstanding features of our environment stressing animation and visualisation tools and an objectoriented framework for enriching CASE documents and application objects with hypertext facilities. Finally, we discuss further work with our animation and visualisation tools. Introduction The traditional way of developing software means in general following a predefined development process within the context of a certain methodology, as a set of concepts, methods, techniques and notations, and using a CASE tool for representing and documenting the results of the development effort. This approach failed with traditional technology (i.e. Structured Techniques) and we don't see how it can succeed with objectoriented technology. The main philosophy of the ...

