Learn More
We propose design patterns as a new mechanism for expressing object-oriented design experience. Design patterns identify, name, and abstract common themes in object-oriented 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(More)
Behavioral compositions, groups of interdependent objects cooperating to accomplish tasks, are an important feature of object-oriented systems. This paper introduces <italic>Contracts</italic>, a new technique for specifying behavioral compositions and the obligations on participating objects. Refinement and composition of contracts allows for the creation(More)
Direct-manipulation graphics editors are useful tools for a wide variety of domains such as technical drawing, computer-aided design, application building, and music composition. Constraints can be a powerful mechanism for specifying complex semantics declaratively in these domains. To date, few domain-speciic graphics editors have provided constraint-based(More)
  • F Zimmermann, K Brown, P Emma, R Helm, J Irwin, P Tenenbaum +2 others
  • 1995
The final focus of the Next Linear Collider (NLC) demag-nifies electron and positron beams of 250–750 GeV energy down to a transverse size of about 2.5 × 350 nm 2 at the interaction point (IP). The basic layout, momentum band-width, vibration tolerances, wakefield effects, and the tun-ability of the proposed final focus design are discussed. Also a(More)
  • N Merminga, J Irwin, R Helm, R D Ruth
  • 1994
Experience with the SLAC Linear Collider (SLC) has indicated that backgrounds caused by the transverse and energy tails of the beam distribution will be a serious problem for a next-generation linear collider. At small emittances mechanical scrapers do not provide a solution, because they can be damaged by the tiny, intense beams, and also because they(More)
Numerous classes, complex inheritance and containment hierarchies, and diverse patterns of dynamic interaction all contribute to diiculties in understanding, reusing, debugging, and tuning large object-oriented systems. To help overcome these diiculties, we introduce novel views of the behavior of object-oriented systems and an architecture for creating and(More)
New techniques for browsing amongst functionally related classes, and retrieving classes from object-oriented class libraries are presented. These techniques make use of two potent, and rea.dily available sources of information: the source code of each class, and its associated documentation. We describe how the integration of information retrieval(More)