16941550
Lessons from the design of the Eiffel libraries
The nature of programming is changing. Most of the software engineering literature still takes for granted a world of individual projects, where the sole aim is to produce specific software systems in response to particular requirements, little attention being paid to each system's relationship to previous or subsequent efforts. This implicit model seems unlikely to allow drastic improvements in software quality and productivity.
Such order-of-magnitude advances will require a process of industrialization, not unlike what happened in those disciplines which have been successful at establishing a production process based on the reuse of quality-standardized components. This implies a shift to a “new culture” [14] whose emphasis is not on projects but instead on components.
The need for such a shift was cogently expressed more than 20 years ago by Doug McIlroy in his contribution, entitled Mass-Produced Software Components [10], to the now-famous first conference on software engineering:
Software production today appears in the scale of industrialization somewhere below the more backward construction industries. I think its proper place is considerably higher, and would like to investigate the prospects for mass-production techniques in software. [...]
My thesis is that the software industry is weakly founded [in part because of] the absence of a software components subindustry [...] A components industry could be immensely successful.
Although reuse has enjoyed modest successes since this statement was made, by all objective criteria McIlroy's prophecy has not been fulfilled yet; many technical and non-technical issues had to be addressed before reuse could become a reality on the scale he foresaw. (See [1] and [20] for a survey of current work on reuse.) One important development was needed to make this possible: the coming age of object-oriented technology, which provides the best known basis for reusable software construction. (That the founding document of object-oriented methods, the initial description of Simula 67, was roughly contemporary with McIlroy's paper tends to confirm a somewhat pessimistic version of Redwine and Riddle's contention [18] that “it takes on the order of 15 to 20 years to mature a technology to the point that it can be popularized to the technical community at large.”) Much of the current excitement about object-oriented software construction derives from the growing realization that the shift is now technically possible.
This article presents the concerted efforts which have been made to advance the cause of component-based software development in the Eiffel environment [12, 17] through the construction of the Basic Eiffel Libraries.
After a brief overview of the libraries, this article reviews the major language techniques that have made them possible (with more background about Eiffel being provided by the sidebar entitled “Major Eiffel Techniques”); it then discusses design issues for libraries of reusable components, the use of inheritance hierarchies, the indexing problem, and planned developments.
16156400
Dependable Software
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.
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. ' "
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.
18068142
Concurrent object-oriented programming on .NET
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.
43184307
Library Design
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.
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.
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.