Results 1 - 10
of
20
Software Reuse
- ACM Computing Surveys
, 1992
"... Software reuse is the process ofcreating software systems from existing software rather than building software systems from scratch. ‘l’his simple yet powerful vision was introduced in 1968. Software reuse has, however, failed to become a standard software engineering practice. In an attempt to unde ..."
Abstract
-
Cited by 207 (2 self)
- Add to MetaCart
Software reuse is the process ofcreating software systems from existing software rather than building software systems from scratch. ‘l’his simple yet powerful vision was introduced in 1968. Software reuse has, however, failed to become a standard software engineering practice. In an attempt to understand why, researchers have renewed their interest in software reuse and in the obstacles to implementing it. This paper surveys the different approaches to software reuse found in the research literature. It uses a taxonomy to describe and compare the different approaches and make generalizations about the field of software reuse. The taxonomy characterizes each reuse approach interms of its reusable artifacts and the way these artifacts are abstracted, selected, speciahzed, and integrated. Abstraction plays a central role in software reuse. Concise and expressive abstractions are essential if software artifacts are to be effectively reused. The effectiveness of a reuse technique can be evaluatedin terms of cognztzue dwtance-an intuitive gauge of the intellectual effort required to use the technique. Cognitive distance isreduced in two ways: (l) Higher level abstractions ina reuse technique
Reusing Software: Issues And Research Directions
, 1995
"... Software productivity has been steadily increasing over the last 30 years, but not enough to close the gap between the demands placed on the software industry and what the state of the practice can deliver [22,39]; nothing short of an order of magnitude increase in productivity will extricate the so ..."
Abstract
-
Cited by 143 (7 self)
- Add to MetaCart
Software productivity has been steadily increasing over the last 30 years, but not enough to close the gap between the demands placed on the software industry and what the state of the practice can deliver [22,39]; nothing short of an order of magnitude increase in productivity will extricate the software industry from its perennial crisis [39,67]. Several decades of intensive research in software engineering and artificial intelligence left few alternatives but sofware reuse as the (only) realistic approach to bring about the gains of productivity and quality that the software industry needs. In this paper, we discuss the implications of reuse on the production, with an emphasis on the technical challenges. Software reuse involves building software that is reusable by design, and building with reusable software. Software reuse includes reusing both the products of previous software projects, and the processes deployed to produce them, leading to a wide spectrum of reuse approaches, from the building blocks (reusing products) approach on one hand, to the generative or reusable processor (reusing processes) on the other [68]. We discuss the implications of such appproaches on the organization, control, and method of software development and discuss proposed models for their economic analysis. Software reuse benefits from methodologies and tools to: 1) build more readily reusable software, and 2) locate, evaluate, and tailor reusable software, the latter being critical for the building blocks approach. Both sets of issues are discussed in this paper, with a focus on application generators and object-oriented development for the first, and a thorough discussion of retrieval techniques for software components, component composition (or bottom-up design) and transformational systems for the second. We conclude by highlighting areas that, in our opinion, are worthy of further investigation.
Towards a Social Level Characterisation of Socially Responsible Agents
, 1997
"... This paper presents a high-level framework for analysing and designing intelligent agents. The framework's key abstraction mechanism is a new computer level called the Social Level. The Social Level sits immediately above the Knowledge Level, as defined by Allen Newell, and is concerned with the in ..."
Abstract
-
Cited by 58 (8 self)
- Add to MetaCart
This paper presents a high-level framework for analysing and designing intelligent agents. The framework's key abstraction mechanism is a new computer level called the Social Level. The Social Level sits immediately above the Knowledge Level, as defined by Allen Newell, and is concerned with the inherently social aspects of multiple agent systems. To illustrate the working of this framework, an important new class of agent is identified and then specified. Socially responsible agents retain their local autonomy but still draw from, and provide resources to, the larger community. Through empirical evaluation, it is shown that such agents produce both good system-wide performance and good individual performance. 1. INTRODUCTION The number of multi-agent systems being designed and built is rapidly increasing as software agents gain acceptance as a powerful and useful technology for solving complex problems (Chaib-draa, 1995; Jennings, 1994; PAAM, 1996). As applications become more comple...
Using GRATE to Build Cooperating Agents for Industrial Control
- Proc. IFAC/IFIP/IMACS International Symposium on Artificial Intelligence in Real Time Control
, 1992
"... Abstract. Communities of cooperating problem solvers have recently begun to emerge as a paradigm for overcoming the complexity of building large software systems in the area of process control. Each agent is capable of solving some problems by itself, but its power can be extended by sharing informa ..."
Abstract
-
Cited by 9 (6 self)
- Add to MetaCart
Abstract. Communities of cooperating problem solvers have recently begun to emerge as a paradigm for overcoming the complexity of building large software systems in the area of process control. Each agent is capable of solving some problems by itself, but its power can be extended by sharing information and tasks with others. Also, more importantly, the community as a whole exhibits some desirable problem solving characteristics (eg graceful degradation of performance, robustness, etc.) as well as offering the opportunity of connecting and integrating existing problem solvers. GRATE is a general purpose cooperation environment which enables groups of interacting problem solvers to be built for the domain of industrial control. It has been applied to two real-world problems in this area: electricity transport management and diagnosis in a particle accelerator beam controller. We reflect upon GRATE’s functional architecture, its underlying principles and the insights gained during this process.
Automatic Goal Extraction From User Actions To Accelerate The Browsing Of Software Libraries
- Proc. Canadian Conference on Electrical and Computer Engineering
, 1992
"... This research addresses the problem of locating software items in extensive libraries. It aims to increase the speed and accuracy with which a user may browse software libraries for reusable code. The method proposed for this is called active browsing. The system monitors user actions, made within a ..."
Abstract
-
Cited by 6 (2 self)
- Add to MetaCart
This research addresses the problem of locating software items in extensive libraries. It aims to increase the speed and accuracy with which a user may browse software libraries for reusable code. The method proposed for this is called active browsing. The system monitors user actions, made within a normal browser, to infer an analogue representing the user's search goal. A relevancy measure is constructed from this analogue and used by the system to scan the library independently of the user and to evaluate potentially interesting components. The results affect the browser display to emphasize relevant components and thus aid search.
The Impact of Software Engineering Research on Modern Programming Languages
- ACM Transactions on Software Engineering and Methodology
"... Software engineering research and programming language design have enjoyed a symbiotic relationship, with traceable impacts since the 1970s, when these areas were first distinguished from one another. This report documents this relationship by focusing on several major features of current programmin ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
Software engineering research and programming language design have enjoyed a symbiotic relationship, with traceable impacts since the 1970s, when these areas were first distinguished from one another. This report documents this relationship by focusing on several major features of current programming languages: data and procedural abstraction, types, concurrency, exceptions, and visual programming mechanisms. The influences are determined by tracing references in publications in both fields, obtaining oral histories from language designers delineating influences on them, and tracking cotemporal research trends and ideas as demonstrated by workshop topics, special issue publications, and invited talks in the two fields. In some cases there is conclusive This article has been developed under the auspices of the Impact Project. The aim of the project is to provide a scholarly study of the impact that software engineering research—both academic and industrial—has had upon practice. The principal output of the project is a series of individual papers covering the impact upon practice of research in several selected major areas of software
Accelerating browsing by automatically inferring a user's search goal
- Proceedings of the Eighth Knowledge-Based Software Engineering Conference
, 1993
"... This paper discusses a novel method called active browsing which increases the speed and accuracy with which a user may browse libraries for reusable software. Information inferred solely from the user’s normal actions is employed by the system to locate software items relevant to the user’s search ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
This paper discusses a novel method called active browsing which increases the speed and accuracy with which a user may browse libraries for reusable software. Information inferred solely from the user’s normal actions is employed by the system to locate software items relevant to the user’s search goal. This paper describes our active browsing system and illustrates its operation with an example using typical browsing steps. An experiment, using an automated browsing agent, is described demonstrating that active browsing accelerates search. 1
Software quality through domain-driven certification
- Annals of Software Engineering
, 1998
"... Software reuse is being pursued in an attempt to improve programmer productivity. The concept of reuse is to permit various work products of software development to be used on more than one project in order to amortize their development costs. Productivity is not the only advantage of reuse although ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Software reuse is being pursued in an attempt to improve programmer productivity. The concept of reuse is to permit various work products of software development to be used on more than one project in order to amortize their development costs. Productivity is not the only advantage of reuse although it is the most widely publicized. By incorporating reusable components into a new product, the components bring with them whatever qualities they possess, and these can contribute to the quality of the new product. This suggests that reuse might be exploited for achieving quality as an entirely separate goal from improving productivity. If useful properties pertaining to quality could be shown to be present in products as a direct result of software development based on reuse, this might be a costeffective way of achieving those qualities irrespective of the productivity advantages. The adjective certified is sometimes used to describe components that have been tested in some way prior to entry into a library but the term certified is not formally defined in the reuse literature. In this paper, we address the issue of certifying reusable components. We advocate the development of software by reuse with the specific intent of establishing as many of the required properties in the final product as possible by depending upon properties present in the reusable components. For this goal to succeed, a precise definition of certification of reusable components is required and such a definition is presented. The benefits of the definition and the way in which it supports the goal are explored.
Self-Organizing Maps And Software Reuse
- Computational Intelligence in Software Engineering
, 1998
"... Software reuse is the process of building new systems from existing components instead of developing these systems from scratch. For a long time now software reuse is repeatedly acknowledged for playing an essential role in overcoming the so-called software crisis, i.e. the late delivery of then sti ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Software reuse is the process of building new systems from existing components instead of developing these systems from scratch. For a long time now software reuse is repeatedly acknowledged for playing an essential role in overcoming the so-called software crisis, i.e. the late delivery of then still faulty software products. Current development practice as for example object-oriented analysis, design, and programming should in principle assist the proliferation of the reuse idea. However, before existing components may be considered for reuse they have to be found in a software library. As ever in any area relying on the retrieval of particular objects from a large data store, the process of retrieval may turn out to be rather cumbersome, especially when a large number of objects is contained in the data store and the success of the whole operation is dependent on the retrieval of a small number of relevant objects. With this work we address the assistance of such a retrieval process...
Increasing Formality in the Specification of High-Quality Information Systems in a Commercial Context
-
, 1993
"... This Thesis is concerned with Technology Transfer -- in particular, with the industrialisation of formal specification techniques within the Information Systems domain in conjunction with: a socio-organisational philosopy an Object-Oriented modelling paradigm a potentially multi-organisational conte ..."
Abstract
-
Cited by 3 (3 self)
- Add to MetaCart
This Thesis is concerned with Technology Transfer -- in particular, with the industrialisation of formal specification techniques within the Information Systems domain in conjunction with: a socio-organisational philosopy an Object-Oriented modelling paradigm a potentially multi-organisational context a long-term perspective. In this Thesis, I: initially synthesise and develop and then provisionally validate a theory of information systems acquisition which draws on established theory within the domains of: -- Information Systems

