95868
The unspoken revolution in software engineering
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.
10106682
The Component Combinator for Enterprise Applications
43184307
Library Design
61268
Systematic concurrent object-oriented programming
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 [17]) 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
206409885
Providing Trusted Components to the Industry
The software industry stands on feet of clay. However carefully we may strive to build correct and reliable software, we have no way of guaranteeing the quality of the result. Building correct and reliable software depends on the quality of so much else, from the hardware and the operating system to the compiler and the runtime libraries. And any significant software system has so many details and components of its own that we can hardly expect to get everything right if we do it all by ourselves. We describe an ambitious but realistic project that combines the ideas of reuse and formality with other more pragmatic techniques. The goal is to provide the entire software industry with a powerful set of reusable components deserving a high degree of trust.
18712665
A Note on Computing Multiple Sums
SUMMARY In a recent paper, 1 ~:method was given for computing multidimensional sums in FORTRAN in a particular case •. We show that the general problem of computing mUltidimensional sums is best expressed by a recursive definition which can then be translated into a programming language. The method is applied to an example optimization"problem. ' "
13486316
Design and evaluation of an adaptive icon toolbar
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.
20133400
Prediction of Material Properties from Chemical Structures. The Clearing Temperature of Nematic Liquid Crystals Derived from Their Chemical Structures by Artificial Neural Networks
The prediction of properties of molecules just on the basis of their chemical structures is desirable to selectively make molecules that have the wanted properties, like biological activity, viscosity, or toxicity. Here, we present an example of a new way to predict a property from the chemical structure of a chemically heterogeneous class of compounds. The clearing temperatures of nematic liquid-crystalline phases of 17383 compounds were used to train neural networks to derive this material property directly from their chemical structure. The trained neural networks were subsequently tested with 4345 structural patterns of molecules unknown to the networks to assess their predictive value. The clearing temperatures were predicted by the best network with a standard deviation of 13 degrees.
6305120
Issues in practical application of an adaptive interface
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.