Results 1 - 10
of
30
The Amulet Environment: New Models for Effective User Interface Software Development
- IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
, 1996
"... The Amulet user interface development environment makes it easier for programmers to create highly-interactive, graphical user interface software for Unix, Windows or Macintosh. Amulet uses new models for objects, constraints, animation, input, output, commands, and undo. The object system is a prot ..."
Abstract
-
Cited by 115 (18 self)
- Add to MetaCart
The Amulet user interface development environment makes it easier for programmers to create highly-interactive, graphical user interface software for Unix, Windows or Macintosh. Amulet uses new models for objects, constraints, animation, input, output, commands, and undo. The object system is a prototype-instance model in which there is no distinction between classes and instances or between methods and data. The constraint system allows any value of any object to be computed by arbitrary code and supports multiple constraint solvers. Animations can be attached to existing objects with a single line of code. Input from the user is handled by "Interactor" objects which support reuse of behavior objects. The output model provides a declarative definition of the graphics, and supports automatic refresh. Command objects encapsulate all of the information needed about operations, including support for various ways to undo them. An key feature of the Amulet design is that all graphical objec...
Using object-oriented typing to support architectural design in the C2 style
- In Proceedings of ACM SIGSOFT’96: Fourth Symposium on the Foundations of Software Engineering (FSE4
, 1996
"... Abstract-- Software architectures enable large-scale software development. Component reuse and substitutability, two key aspects of large-scale development, must be planned for during software design. Object-oriented (OO) type theory supports reuse by structuring inter-component relationships and ve ..."
Abstract
-
Cited by 52 (18 self)
- Add to MetaCart
Abstract-- Software architectures enable large-scale software development. Component reuse and substitutability, two key aspects of large-scale development, must be planned for during software design. Object-oriented (OO) type theory supports reuse by structuring inter-component relationships and verifying those relationships through type checking in an architecture definition language (ADL). In this paper, we identify the issues and discuss the ramifications of applying OO type theory to the C2 architectural style. This work stems from a series of experiments that were conducted to investigate component reuse and substitutability in C2. We also discuss the limits of applicability of OO typing to C2 and how we addressed them in the C2 ADL. 1
An Incremental Algorithm for Satisfying Hierarchies of Multi-way, Dataflow Constraints
- ACM Transactions on Programming Languages and Systems
, 1995
"... One-way dataflow constraints have gained popularity in many types of interactive systems because of their simplicity, efficiency, and manageability. Although it is widely acknowledged that multi-way dataflow constraints could make it easier to specify certain relationships in these applications, con ..."
Abstract
-
Cited by 44 (1 self)
- Add to MetaCart
One-way dataflow constraints have gained popularity in many types of interactive systems because of their simplicity, efficiency, and manageability. Although it is widely acknowledged that multi-way dataflow constraints could make it easier to specify certain relationships in these applications, concerns about their predictability and efficiency have impeded their acceptance. Constraint hierarchies have been developed to address the predictability problem and incremental algorithms have been developed to address the efficiency problem. However, existing incremental algorithms for satisfying constraint hierarchies encounter two difficulties: (1) they are incapable of guaranteeing an acyclic solution if a constraint hierarchy has one or more cyclic solutions, and (2) they require worst-case exponential time to satisfy systems of multi-output constraints. This paper surmounts these difficulties by presenting an 2 incremental algorithm called QuickPlan that satisfies in worst case O(N ) ...
Reuse of Off-the-Shelf Components in C2-Style Architectures
- In Proceedings of the 1997 Symposium on Software Reusability (SSR’97
"... Abstract-- Reuse of large-grain software components offers the potential for significant savings in application development cost and time. Successful component reuse and substitutability depends both on qualities of the components reused as well as the software context in which the reuse is attempte ..."
Abstract
-
Cited by 41 (18 self)
- Add to MetaCart
Abstract-- Reuse of large-grain software components offers the potential for significant savings in application development cost and time. Successful component reuse and substitutability depends both on qualities of the components reused as well as the software context in which the reuse is attempted. Disciplined approaches to the structure and design of software applications offers the potential of providing a hospitable setting for such reuse. We present the results of a series of exercises designed to determine how well “offthe-shelf” components could be reused in applications designed in accordance with the C2 software architectural style. The exercises involved the reuse of two user-interface constraint solvers, two graphics toolkits, a World Wide Web browser, and a persistent object manager. A subset of these components was used to construct numerous variations of a single application (thus an application family). The exercises also included construction of a simple development environment for locating and downloading a component off the Web and incorporating it into an application. The paper summarizes the style rules that facilitate reuse and presents the results from the exercises. The exercises were successful in a variety of dimensions; one conclusion is that the C2 style offers significant reuse potential to application developers. At the same time, wider trials and additional tool support are needed. 1 Index Terms-- software reuse, architectural styles, messagebased architectures, component-based development, graphical user interfaces (GUI). I.
Ultraviolet: A Constraint Satisfaction Algorithm for Interactive Graphics
- Constraints: An International Journal
, 1998
"... . Ultraviolet is a constraint satisfaction algorithm intended for use in interactive graphical applications. It is capable of solving constraints over arbitrary domains using local propagation, and inequality constraints and simultaneous linear equations over the reals. To support this, Ultraviolet ..."
Abstract
-
Cited by 25 (1 self)
- Add to MetaCart
. Ultraviolet is a constraint satisfaction algorithm intended for use in interactive graphical applications. It is capable of solving constraints over arbitrary domains using local propagation, and inequality constraints and simultaneous linear equations over the reals. To support this, Ultraviolet is a hybrid algorithm that allows different subsolvers to be used for different parts of the constraint graph, depending on graph topology and kind of constraints. In addition, Ultraviolet and its subsolvers support plan compilation, producing efficient compiled code that can be evaluated repeatedly to resatisfy a given collection of constraints for different input values. Keywords: constraints, user interfaces, hybrid constraint satisfaction algorithms 1. Introduction Many key aspects of interactive graphical systems can be conveniently described using constraints, including layout and other kinds of geometric relations, consistency between application data and views, consistency of multi...
Indigo: A Local Propagation Algorithm for Inequality Constraints
- In Proceedings of the 1996 ACM Symposium on User Interface Software and Technology
, 1996
"... Inequality constraints are useful for specifying various aspects of user interfaces, such as constraints that one window is to the left of another, or that an object is contained within a rectangle. However, current local propagation constraint solvers can't handle inequality constraints. We present ..."
Abstract
-
Cited by 24 (6 self)
- Add to MetaCart
Inequality constraints are useful for specifying various aspects of user interfaces, such as constraints that one window is to the left of another, or that an object is contained within a rectangle. However, current local propagation constraint solvers can't handle inequality constraints. We present Indigo, an efficient local propagation algorithm for satisfying acyclic constraint hierarchies, including inequality constraints. KEYWORDS: Constraints, inequality constraints, local propagation INTRODUCTION Constraints are useful for a number of aspects of user interface construction, including layout, model-view consistency, and consistency of multiple views. In selecting the class of constraints to be supported in a UI toolkit, there are various tradeoffs between simplicity and power. Some of these tradeoffs include: ffl one-way or multi-way constraints ffl required constraints only, or both required and preferential constraints (constraint hierarchies) ffl functional constraints ...
Generalized Local Propagation: A Framework for Solving Constraint Hierarchies
- In Proceedings of the Second International Conference on Principles and Practice of Constraint Programming
, 1996
"... . `Constraint hierarchy' is a nonmonotonic system that allows programmers to describe over-constrained real-world problems by specifying constraints with hierarchical preferences, and has been applied to various areas. An important aspect of constraint hierarchies is the existence of efficient satis ..."
Abstract
-
Cited by 23 (0 self)
- Add to MetaCart
. `Constraint hierarchy' is a nonmonotonic system that allows programmers to describe over-constrained real-world problems by specifying constraints with hierarchical preferences, and has been applied to various areas. An important aspect of constraint hierarchies is the existence of efficient satisfaction algorithms based on local propagation. However, past local-propagation algorithms have been limited to multi-way equality constraints. We overcome this by reformulating constraint hierarchies with a more strict definition, and proposing generalized local propagation as a theoretical framework for studying constraint hierarchies and local propagation. Then, we show that global semi-monotonicity in satisfying hierarchies turns out to be a practically useful property in generalized local propagation. Finally, we discuss the relevance of generalized local propagation with our previous DETAIL algorithm for solving hierarchies of multi-way equality constraints. Keywords: constraint hierar...
An Integrated Environment to Visually Construct 3D Animations
- PROCEEDINGS ACM SIGGRAPH
, 1995
"... In this paper, we present an expressive 3D animation environment that enables users to rapidly and visually prototype animated worlds with a fully 3D user-interface. A 3D device allows the specification of complex 3D motion, while virtual tools are visible mediators that live in the same 3D space as ..."
Abstract
-
Cited by 23 (5 self)
- Add to MetaCart
In this paper, we present an expressive 3D animation environment that enables users to rapidly and visually prototype animated worlds with a fully 3D user-interface. A 3D device allows the specification of complex 3D motion, while virtual tools are visible mediators that live in the same 3D space as application objects and supply the interaction metaphors to control them. In our environment, there is no intrinsic difference between userinterface and application objects. Multi-way constraints provide the necessary tight coupling among components that makes it possible to seamlessly compose animated and interactive behaviors. By recording the effects of manipulations, all the expressive power of the 3D user interface is exploited to define animations. Effective editing of recorded manipulations is made possible by compacting all continuous parameter evolutions with an incremental data-reduction algorithm, designed to preserve both geometry and timing. The automatic generation of editable representations of interactive performances overcomes one of the major limitations of current performance animation systems. Novel interactive solutions to animation problems are made possible by the tight integration of all system components. In particular, animations can be synchronized by using constrained manipulation during playback. The accompanying video-tape illustrates our approach with interactive sequences showing the visual construction of 3D animated worlds. All the demonstrations in the video were recorded live and were not edited.
Exploiting Architectural Style to Develop a Family of Applications
, 1997
"... Reuse of large-grain software components offers the potential for significant savings in application development cost and time. Successful reuse of components and component substitutability depends both on qualities of the components reused as well as the software context in which the reuse is ..."
Abstract
-
Cited by 17 (8 self)
- Add to MetaCart
Reuse of large-grain software components offers the potential for significant savings in application development cost and time. Successful reuse of components and component substitutability depends both on qualities of the components reused as well as the software context in which the reuse is attempted. Disciplined approaches to the structure and design of software applications offers the potential of providing a hospitable setting for such reuse. We present the results of a series of exercises designed to determine how well "off-the-shelf" constraint solvers could be reused in applications designed in accordance with the C2 software architectural style. The exercises involved the reuse of SkyBlue and Amulet's one-way formula constraint solver. We constructed numerous variations of a single application (thus an application family). The paper summarizes the style and presents the results from the exercises. The exercises were
The Indigo Algorithm
, 1996
"... Inequality constraints are useful for specifying various aspects of user interfaces, such as constraints that one window is to the left of another, or that an object is contained within a rectangle. However, current local propagation constraint solvers can't handle inequality constraints. We present ..."
Abstract
-
Cited by 14 (2 self)
- Add to MetaCart
Inequality constraints are useful for specifying various aspects of user interfaces, such as constraints that one window is to the left of another, or that an object is contained within a rectangle. However, current local propagation constraint solvers can't handle inequality constraints. We present Indigo, an efficient local propagation algorithm for satisfying acyclic constraint hierarchies, including inequality constraints. A shorter version of this technical report will appear in the Proceedings of the 1996 ACM Symposium on User Interface Software Technology. 1 Introduction Constraints are useful for a number of aspects of user interface construction, including layout, model-view consistency, and consistency of multiple views. In selecting the class of constraints to be supported in a UI toolkit, there are various tradeoffs between simplicity and power. Some of these tradeoffs include: ffl one-way or multi-way constraints ffl functional constraints only, or more general kinds o...

