Results 1 - 10
of
17
Design patterns: Abstraction and reuse of object-oriented design
- ECOOP '93
, 1993
"... We propose design patterns as a new mechanism for expressing object-oriented design experience. Design patterns identify, name, and abstract common themes in objectoriented design. They capture the intent behind a design by identifying objects, their collaborations, and the distribution of responsi ..."
Abstract
-
Cited by 167 (1 self)
- Add to MetaCart
We propose design patterns as a new mechanism for expressing object-oriented design experience. Design patterns identify, name, and abstract common themes in objectoriented design. They capture the intent behind a design by identifying objects, their collaborations, and the distribution of responsibilities. Design patterns play many roles in the object-oriented development process: they provide a common vocabulary for design, they reduce system complexity by naming and de ning abstractions, they constitute a base of experience for building reusable software, and they act as building blocks from which more complex designs can be built. Design patterns can be considered reusable micro-architectures that contribute to an overall system architecture. We describe how to express and organize design patterns and introduce a catalog of design patterns. We also describe our experience in applying design patterns to the design of object-oriented systems.
Visualizing the Behavior of Object-Oriented Systems
- In Proceedings OOPSLA ’93
, 1993
"... Numerous classes, complex inheritance and containment hierarchies, and diverse patterns of dynamic interaction all contribute to difficulties in understanding, reusing, debugging, and tuning large object-oriented systems. To help overcome these difficulties, we introduce novel views of the behavior ..."
Abstract
-
Cited by 81 (3 self)
- Add to MetaCart
Numerous classes, complex inheritance and containment hierarchies, and diverse patterns of dynamic interaction all contribute to difficulties in understanding, reusing, debugging, and tuning large object-oriented systems. To help overcome these difficulties, we introduce novel views of the behavior of object-oriented systems and an architecture for creating and animating these views. We describe platform-independent techniques for instrumenting object-oriented programs, a language-independent protocol for monitoring their execution, and a structure for decoupling the execution of a subject program from its visualization. Case studies involving tuning and debugging of real systems are presented to demonstrate the benefits of visualization. We believe that visualization will prove to be a valuable tool for object-oriented software development.
The Cassowary Linear Arithmetic Constraint Solving Algorithm: Interface and Implementation
- ACM TRANSACTIONS ON COMPUTER HUMAN INTERACTION
, 1998
"... Linear equality and inequality constraints arise naturally in specifying many aspects of user interfaces, such as requiring that one window be to the left of another, requiring that a pane occupy the leftmost 1/3 of a window, or preferring that an object be contained within a rectangle if possibl ..."
Abstract
-
Cited by 72 (9 self)
- Add to MetaCart
Linear equality and inequality constraints arise naturally in specifying many aspects of user interfaces, such as requiring that one window be to the left of another, requiring that a pane occupy the leftmost 1/3 of a window, or preferring that an object be contained within a rectangle if possible. Current constraint solvers designed for UI applications cannot e#ciently handle simultaneous linear equations and inequalities. This is a major limitation. We describe Cassowary---an incremental algorithm based on the dual simplex method that can solve such systems of constraints e#ciently. This informal technical report describes the latest version of the Cassowary algorithm. It is derived from the paper "Solving Linear Arithmetic Constraints for User Interface Applications" by Alan Borning, Kim Marriott, Peter Stuckey, and Yi Xiao [7], published in the UIST'97 Proceedings. The UIST paper also contains a description of QOCA, a closely related solver that finds least-squares solut...
Solving Linear Arithmetic Constraints for User Interface Applications: Algorithm Details
, 1997
"... Linear equality and inequality constraints arise naturally in specifying many aspects of user interfaces, such as requiring that one window be to the left of another, requiring that a pane occupy the leftmost 1/3 of a window, or preferring that an object be contained within a rectangle if possible ..."
Abstract
-
Cited by 59 (17 self)
- Add to MetaCart
Linear equality and inequality constraints arise naturally in specifying many aspects of user interfaces, such as requiring that one window be to the left of another, requiring that a pane occupy the leftmost 1/3 of a window, or preferring that an object be contained within a rectangle if possible. Current constraint solvers designed for UI applications cannot efficiently handle simultaneous linear equations and inequalities. This is a major limitation. We describe incremental algorithms based on the dual simplex and active set methods that can solve such systems of constraints efficiently. Both algorithms have been implemented and tested. This informal technical report is adapted from the paper "Solving Linear Arithmetic Constraints for User Interface Applications," which will appear in the Proceedings of UIST'97 (The ACM User Interface and Software Technology Symposium). It contains additional details, in particular of the Cassowary and QOCA algorithms.
The SkyBlue Constraint Solver
, 1992
"... A constraint describes a relationship that should be maintained, for example that the equality A + B = C holds between three variables, that a set of displayed objects are aligned, or that the elements in a data structure are consistent with a graphic display of this structure. Constraint solvers h ..."
Abstract
-
Cited by 36 (3 self)
- Add to MetaCart
A constraint describes a relationship that should be maintained, for example that the equality A + B = C holds between three variables, that a set of displayed objects are aligned, or that the elements in a data structure are consistent with a graphic display of this structure. Constraint solvers have been successfully applied to problems in computer graphics including geometric design and user interface construction. This paper presents the SkyBlue constraint solver, an efficient incremental algorithm that uses local propagation to maintain sets of required and preferential constraints. SkyBlue is a successor to the DeltaBlue algorithm, which was used as the constraint solver in the ThingLab II user interface development environment. DeltaBlue has two limitations: cycles of constraints are prohibited, and the procedures used to satisfy a constraint can only have a single output. SkyBlue relaxes these restrictions, allowing cycles of constraints to be constructed (although SkyBlue may...
TBAG: A Highlevel Framework for Interactive, Animated 3D Graphics Applications
, 1994
"... We present a paradigm and toolkit for rapid prototyping of interactive, animated 3D graphics programs. The paradigm has its roots in declarative programming, emphasizing immutable values, first class functions, and relations, applying these concepts to a broad range of types, including points, vecto ..."
Abstract
-
Cited by 36 (6 self)
- Add to MetaCart
We present a paradigm and toolkit for rapid prototyping of interactive, animated 3D graphics programs. The paradigm has its roots in declarative programming, emphasizing immutable values, first class functions, and relations, applying these concepts to a broad range of types, including points, vectors, planes, colors, transforms, geometry, and sound. The narrow role of modifiable state in this paradigm allows applications to be run in a collaborative setting (multi-user and multi-computer) without modification. CR Categories and Subject Descriptors: I.3.7 [Computer Graphics]: Three-Dimensional Graphics and Realism; I.3.6 [Computer Graphics]: Methodology and Techniques; D.1.1 [Pro- gramming Techniques] Applicative (Functional) Programming; D.2.m [Software Engineering] Miscellaneous Rapid Prototyping; G.1.7 [Mathematics of Computing] Ordinary Differential Equations. Additional Keywords and Phrases: Local Propagation Constraints 1 Introduction TBAG is a paradigm and toolkit for ra...
Basic relationship patterns
- EUROPEAN CONFERENCE ON PATTERN LANGUAGES OF PROGRAM DESIGN
, 1997
"... Relationships between objects are almost as important to designs as objects themselves. Most programming languages do not support relationships well, so programmers must implement relationships in terms of more primitive constructs. This paper presents ve basic patterns which describe how objects ca ..."
Abstract
-
Cited by 25 (6 self)
- Add to MetaCart
Relationships between objects are almost as important to designs as objects themselves. Most programming languages do not support relationships well, so programmers must implement relationships in terms of more primitive constructs. This paper presents ve basic patterns which describe how objects can be used to model relationships within programs. By using these patterns, programs and designs can be made smaller, more exible, and easier to understand and maintain.
Vb2 An Architecture For Interaction In Synthetic Worlds
- Proceedings of ACM UIST '93
, 1993
"... This paper describes the VB2 architecture for the construction of three-dimensional interactive applications. The system's state and behavior are uniformly represented as a network of interrelated objects. Dynamic components are modeled by active variables, while multi-way relations are modeled by h ..."
Abstract
-
Cited by 17 (2 self)
- Add to MetaCart
This paper describes the VB2 architecture for the construction of three-dimensional interactive applications. The system's state and behavior are uniformly represented as a network of interrelated objects. Dynamic components are modeled by active variables, while multi-way relations are modeled by hierarchical constraints. Daemons are used to sequence between system states in reaction to changes in variable values The constraint network is efficiently maintained by an incremental constraint solver based on an enhancement of SkyBlue. Multiple devices are used to interact with the synthetic world through the use of various interaction paradigms, including immersive environments with visual and audio feedback. Interaction techniques range from direct manipulation, to gestural input and threedimensional virtual tools. Adaptive pattern recognition is used to increase input device expressiveness by enhancing sensor data with classification information. Virtual tools, which are encapsulations...
SCWM: An Intelligent Constraint-Enabled Window Manager
, 2000
"... Typical window management systems rely on direct manipulation techniques to organize and layout windows. Direct ..."
Abstract
-
Cited by 12 (1 self)
- Add to MetaCart
Typical window management systems rely on direct manipulation techniques to organize and layout windows. Direct
QOCA: A constraint solving toolkit for interactive graphical applications
- Constraints
, 2002
"... Abstract. We describe an object-oriented constraint solving toolkit, QOCA, designed for interactive graphical applications. It has a simple yet powerful interface based on the metric space model for constraint manipulation. In this model interaction with the constraint solver can occur in three ways ..."
Abstract
-
Cited by 8 (4 self)
- Add to MetaCart
Abstract. We describe an object-oriented constraint solving toolkit, QOCA, designed for interactive graphical applications. It has a simple yet powerful interface based on the metric space model for constraint manipulation. In this model interaction with the constraint solver can occur in three ways: a constraint may be added, a constraint may be deleted, or values for designated “edit ” variables may be suggested. Currently, QOCA supports linear arithmetic constraints and two different metrics: the square of the Euclidean distance and Manhattan distance. It provides three solvers, all of which rely on keeping the constraints in solved form and relies on novel algorithms for efficient resolving of constraints during direct manipulation. We provide a thorough evaluation of QOCA, both of the interface design and the speed of constraint solving.

