Approaches to Portability

title: The Component Combinator for Enterprise Applications

title: Systematic concurrent object-oriented programming
abstract: udging by the looks of the two parties, the marriage between concurrent computation and object-oriented programming-a union much desired by practitioners in such fields as telecommunications, highperformance computing, banking and operating systems--appears easy enough to arrange. This appearance, however, is deceptive: the problem is a hard one. This article points the way toward a pos,;ible solution. The precise problem examined here is restricted to: What is the simplest, smallest and most convincing extension to the method of systematic object-oriented software construction that can address the needs oJ concurrent and distributed computing as well as those of sequential computation? The article does not claim to discuss concurrency and distribution in a general and unbiased way. Rather, it takes the object-oriented paradigm as a given (on the basis of its contributions to the production of quality software) and investigates how best to adapt it so it covers both concurrent and sequentia;[ applications. The word "systematic" as used in the title of the article will provide strong gqaidance to our search for this minimal extension. We are interested in an approach that makes it possible to reason about software systems in a precise way, by extending to the concurrent case the systematic techniques, known as 'design by contract', which can be applied to the systematic (~dthough not necessarily fully formal) development of sequential object-oriented software. A word ofwaming as to the actual ambition of the model discussed here. No claim is made that the work as reported is final, and a number of possible criticisms are discussed in the final section. I do think, however, that in its discussion of how the mutual attraction between object orientation and concurrency can be turned into a reasonably happy marriage, this article raises a number of questions. Although crucial for both theoretical understanding and practical implementation of concurrent object-oriented computation, these questions have not been addressed (or in some cases even mentioned) by previous work on the subject, and will have to be resolved before a solution can be widely accepted and applied. Similarities and Contradictions The property which initially suggests an easy match between the ideas of concurrency and object orientation is the remarkable similarity between the basic constructs of both object orientation and concurrency. It is hard to miss the analogies between objects and processes, or more accurately between the underlying abstractions: classes and process types. Both categories of constructs support: • Local variables (attributes of a class, variables of a process or process type) • Persistent data, keeping their value between successive activations. • Encapsulated behavior (a single cycle for a process; any n u m b e r of routines for a class) • Heavy restrictions on how modules can exchange information • A c o m m u n i c a t i o n m e c h a n i s m usually based on some form of message passing. It is not surprising, then, that researchers have tried to unite the two areas. But although existing designs (for surveys see [1, 19] as well as a recent thesis ) have introduced many productive ideas, it is fair to state that so far none has succeeded in providing a widely accepted mechanism for concurrent object-oriented programming. The primary reason is probably the undue complexity of most of the proposed solutions, which tend to add the

title: The unspoken revolution in software engineering
abstract: In this article the author describes the outsourcing aspects of software engineering. The author finds outsourcing so fascinating partly because it serves as a magnifier and revelator of just about everything in software engineering. The development of offshoring also raises a new challenge for those of us entrusted with educating future software professionals in the industrialized world.

title: Library Design

title: Concurrent object-oriented programming on .NET
abstract: The SCOOP model (Simple concurrent object-oriented programming) offers a comprehensive approach to building high-quality concurrent and distributed systems. The model takes advantage of the inherent concurrency implicit in object-oriented programming to provide programmers with a simple extension enabling them to produce concurrent applications with little more effort than sequential ones. In the paper, the authors discuss the basic concepts of the model, such as processors and separate objects. They also present SCOOPLI, a library implementation of SCOOP for the .NET platform. They show how SCOOP concepts are mapped to .NET constructs, and discuss distributed programming with SCOOPLI, with a focus on .NET Remoting capabilities. Several programming examples illustrate the discussion.

title: Design and evaluation of an adaptive icon toolbar
abstract: As information systems become increasingly important in many different domains, the potential to adapt them to individual users and their needs also becomes more important. Adaptive user interfaces offer many possible ways to adjust displays and improve procedures for a user's individual patterns of work. This paper describes an attempt to design an adaptive user interface in a computer environment familiar to many users. According to one classification of adaptive user interfaces, the adaptive bar described in this paper would be classified as a user-controlled self-adaptation system.At the user's convenience, the adaptive bar offers suggestions for adding or removing command icons, based on the frequency and probability of specific commands. It also implements these changes once the user has agreed to them. Beyond the adaptive bar, the general behavior of the whole user interface does not change, thereby allowing the user to maintain a clear general model of the system. This paper describes the decision-making algorithm implemented in the bar. It also describes the bar's self-adaptive behavior of displaying the frequency of each icon's use through the icon's size. Finally, we present some encouraging preliminary results of evaluations by users.

title: Issues in practical application of an adaptive interface
abstract: The authors have been developing a prototype sys[em for installation in an operationat business environment. During the development, a number of issues have been encountered. These include: ● constraints arising from placing prototypes in operational environments . lack of guidelines for selecting types of adaptation ● difficulty determining adaptation criteria ● difficulty obtaining necessary data from users ● lack of guidelines for making information display decisions ● problems in testing ‘real world’ interfaces These issues are not readily solved with more sophisticated adaptation algorithms; rather. they point out the need for CO1Iect ing more information from attempts to bring intelligent interfaces to complex business environments.

title: Age group differences in world wide web navigation
abstract: In this study, we examined the effects of age and training on efficiency and preferences in a World Wide Web search activity. Older participants were able to complete most of the tasks, but took more steps to find the information than did younger adults. Factors in this inefficiency were patterns of returning to the home page and revisiting pages that had been seen before during a search. Interactive training improved efficiency and altered preferences. We discuss implications for training and design.