Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where John Vlissides is active.

Publication


Featured researches published by John Vlissides.


european conference on object oriented programming | 1993

Design Patterns: Abstraction and Reuse of Object-Oriented Design

Erich Gamma; Richard Helm; Ralph E. Johnson; John Vlissides

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 object-oriented development process: they provide a common vocabulary for design, they reduce system complexity by naming and defining 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.


Ibm Systems Journal | 1996

Automatic code generation from design patterns

Frank J. Budinsky; Marilyn A. Finnie; John Vlissides; Patsy S. Yu

Design patterns raise the abstraction level at which people design and communicate design of object-oriented software. However, the mechanics of implementing design patterns is left to the programmer. This paper describes the architecture and implementation of a tool that automates the implementation of design patterns. The user of the tool supplies application-specific information for a given pattern, from which the tool generates all the pattern-prescribed code automatically. The tool has a distributed architecture that lends itself to implementation with off-the-shelf components.


software visualization | 2001

Visualizing the Execution of Java Programs

Wim De Pauw; Erik Jensen; Nick Mitchell; Gary Sevitsky; John Vlissides; Jeaha Yang

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.


european conference on object oriented programming | 1994

Modeling Object-Oriented Program Execution

Wim De Pauw; Doug Kimelman; John Vlissides

This paper describes a way of organizing information about an object-oriented programs 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.


symposium on principles of programming languages | 2000

A debate on language and tool support for design patterns

Craig Chambers; Bill Harrison; John Vlissides

Design patterns have earned a place in the developers arsenal of tools and techniques for software development. They have proved so useful, in fact, that some have called for their promotion to programming language features. In turn this has rekindled the age-old debate over the mechanism that belong in programming languages versus those that are better served by tools. The debate comes full circle when one contemplates code generation and methodological tool support for patterns. The authors compare and contrast programming languages, tools, and patterns to assess their relative merits and to clarify their roles in the development process.


eurographics | 1995

An Object-Oriented Architecture for Constraint-Based Graphical Editing

Richard Helm; Tien Huynh; Kim Marriott; John Vlissides

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-specific graphics editors have provided constraint-based specification and manipulation facilities. Part of the reason is that graphical editors are hard enough to develop without implementing a constraint system as well. Even though graphical editing frameworks can reduce the difficulty of constructing domain specific graphical editors, a fundamental problem remains: there do not exist general constraint solving architectures that are efficient enough to support highly interactive editing, yet suitably flexible and extensible to adapt to different editing domains.


international conference on software engineering | 2001

Designing components versus objects: a transformational approach

David H. Lorenz; John Vlissides

A good object oriented design does not necessarily make a good component based design, and vice versa. What design principles do components introduce? The paper examines component based programming and how it expands the design space in the context of an event based component architecture. We present a conceptual model for addressing new design issues these components afford, and we identify fundamental design decisions in this model that are not a concern in conventional object oriented design. We use JavaBeans based examples to illustrate concretely how expertise in component based design, as embodied in a component taxonomy and implementation space, impacts both design and the process of design. The results are not exclusive to JavaBeans; they can apply to any comparable component architecture.


international conference on software engineering | 2003

Pluggable reflection: decoupling meta-interface and implementation

David H. Lorenz; John Vlissides

Reflection remains a second-class citizen in current programming models, where its assumed to be imperative and tightly bound to its implementation. In contrast, most object-oriented APIs allow interfaces to vary independently of their implementations. Components take this separation a step further by describing unforeseeable attributes-the key to pluggable third-party components. This paper describes how reflection can benefit from a similar evolutionary path.


european conference on object-oriented programming | 1998

Visualizing Object-Oriented Programs with Jinsight

Wim De Pauw; John Vlissides

Jinsight is a tool that lets you visualize and explore many aspects of your Java program’s run-time behavior. It is helpful for performance analysis, debugging, and any task in which you need to better understand what your code is really doing. Jinsight was developed at IBM’s Research Division, and is available free as a technology preview.


Archive | 1994

Design Patterns: Elements of Reusable Object-Oriented Software

Erich Gamma; Richard Helm; Ralph E. Johnson; John Vlissides

Collaboration


Dive into the John Vlissides's collaboration.

Researchain Logo
Decentralizing Knowledge