Showing Programs on a Screen
We present a strategy and algorithms for displaying a meaningful view of structured objects such as programs on a screen of limited size. The methods introduced here are language-independent; they were developed for the implementation of Cepage, a structural editor making full use of modern display technology. The algorithms are linear with respect to the number of nodes in the syntax tree. We use a formal model of the screen allocation, the ‘calculus of windows’, which makes it possible to reason about the display process at a proper level of abstraction. A systematic approach was followed, in which a number of ‘invariants’ and ‘attributes’ were defined before the actual construction of the algorithms and data structures, and served as a basis for their development; the paper describes the methodology used and includes a semi-formal correctness proof of the main algorithm, which involves mutually recursive procedures.

title: Library Design

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: Dependable Software
abstract: Achieving software reliability takes many complementary tech-niques, directed at the process or at the products. This survey summarizes some of the most fruitful ideas.

title: The Component Combinator for Enterprise Applications

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: 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.