2,246 papers · page 89 of 113
Doug Lea, David W. Forslund, Tom Barry, Don Vines, Rajendra K. Raj, Ashutosh Tiwary
Everyone is building a distributed systems these days, but the "how" has become a matter for religious debate and the "why" is often neglected completely.This panel brings together a variety of practitioners to explain the joys and woes of building a distributed system including:…
Gary T. Leavens, Todd D. Millstein
Many popular object-oriented programming languages, such as C++, Smalltalk-80, Java, and Eiffel, do not support multiple dispatch. Yet without multiple dispatch, programmers find it difficult to express binary methods and design patterns such as the "visitor" pattern. We describe…
K. Rustan M. Leino
This paper explores the interpretation of specifications in the context of an object-oriented programming language with subclassing and method overrides. In particular, the paper considers annotations for describing what variables a method may change and the interpretation of the…
Sheng Liang, Gilad Bracha
Class loaders are a powerful mechanism for dynamically loading software components on the Java platform. They are unusual in supporting all of the following features: laziness, type-safe linkage, user-defined extensibility, and multiple communicating namespaces.We present the not…
Vassily Litvinov
We present a static type system for object-oriented languages which strives to provide static typechecking without resorting to dynamic "type casts," restricting what code the programmer can write, or being too verbose or difficult to use in practice. The type system supports bou…
Mark L. McAuliffe, Michael J. Carey, Marvin H. Solomon
Mira Mezini, Karl J. Lieberherr
In several works on design methodologies, design patterns, and programming language design, the need for program entities that capture the patterns of collaboration between several classes has been recognized. The idea is that in general the unit of reuse is not a single class, b…
Frank Olken, Hans-Arno Jacobsen, Chuck McParland, Mary Ann Piette, Mary F. Anderson
In this paper we describe our experiences with the design, the deployment, and the initial operation of a distributed system for the remote monitoring and operation of multiple heterogeneous commercial buildings across the Internet from a single control center. Such systems can s…
Dirk Riehle, Thomas R. Gross
Today, any large object-oriented software system is built using frameworks. Yet, designing frameworks and defining their interaction with clients remains a difficult task. A primary reason is that today's dominant modeling concept, the class, is not well suited to describe the co…
Jonathan G. Rossie Jr.
We show how finite-state machines can standardize the protocol used by a component object to notify other interested objects of its state changes, resulting in a more effective use of static types to constrain both parties, and a more efficient dissemination of information. The e…
Anthony J. H. Simons
Dynamic memory management in C++ is complex, especially across the boundaries of library abstract data types. C++ libraries designed in the orthodox canonical form (OCF) alleviate some of the problems by ensuring that classes which manage any kind of heap structures faithfully co…
Jose Solorzano, Suad Alagic
A number of inadequacies of existing implementation techniques for extending Java™ with parametric polymorphism are revealed. Homogeneous translations are the most space-efficient but they are not compatible with reflection, some models of persistence, and multiple dispatch. Hete…
Robert J. Walker, Gail C. Murphy, Bjørn N. Freeman-Benson, Darin Wright, Darin Swanson, Jeremy Isaak
Dynamic information collected as a software system executes can help software engineers perform some tasks on a system more effectively. To interpret the sizable amount of data generated from a system's execution, engineers require tool support. We have developed an off-line, fle…
Ole Agesen, Stephen N. Freund, John C. Mitchell
Although the Java programming language has achieved widespread acceptance, one feature that seems sorely missed is the ability to use type parameters (as in Ada generics, C++ templates, and ML polymorphic functions or data types) to allow a general concept to be instantiated to o…
Suad Alagic
The ODMG Object Model is shown to have a number of problems. A major confusion is caused by the intended type of polymorphism and the way it is expressed in the Model. Dynamic type checking is required even in situations when static type checking is possible. There are situations…
Lougie Anderson, Michael J. Carey, Kenneth R. Jacobs, Erin Kinikin, David Maier
The Relational Model first came into vogue in the early 1980's. It was based on the simplifying idea that all data could be modeled as mathematical relations (tables in "normal form"). Permissible operations on this table data structure were specified by the relation algebra and …
John Boyland, Giuseppe Castagna
In an object-oriented programming language, method selection is (usually) done at run-time using the class of the receiver. Some object-oriented languages (such as CLOS) have multi-methods which comprise several methods selected on the basis of the runtime classes of all the para…
Derek Coleman, John Artim, Victor Ohnjec, Erick Rivas, James E. Rumbaugh, Rebecca Wirfs-Brock
The Unified Method was launched by Grady Booch and Jim Rumbaugh at an OOPSLA'95 Conference Fringe meeting organised by Rational Software Corporation. In 1996 Unified Method was re-scoped to a notation, and renamed Unified Modeling Language (UML).Earlier this year, UML was submitt…
James Coplien, Luke Hohmann, Norman L. Kerth, John Rae-Grant, Eileen Strider
Most software development projects don't practice what is usually considered "proper" software engineering practices: well-documented, traceable requirements do not exist, formal inspections are non-existent, analysis and design inodels are incomplete or not even done at all, and…
Michael J. Franklin, Stanley B. Zdonik
The dramatic improvements in global interconnectivity due to intranets, extranets, and the Internet has led to an explosion in the number and variety of new data-intensive applications. Along with the proliferation of these new applications have come increased problems of scale. …