Results 1 - 10
of
14
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 High-Precision Service Retrieval
- IEEE INTERNET COMPUTING
, 2002
"... The ability to rapidly locate useful on-line services (e.g. software applications, software components, process models, or service organizations), as opposed to simply useful documents, is becoming increasingly critical in many domains. Current service retrieval technology is, however, notoriously ..."
Abstract
-
Cited by 62 (4 self)
- Add to MetaCart
The ability to rapidly locate useful on-line services (e.g. software applications, software components, process models, or service organizations), as opposed to simply useful documents, is becoming increasingly critical in many domains. Current service retrieval technology is, however, notoriously prone to low precision. This paper describes a novel service retrieval approached based on the sophisticated use of process ontologies. Our preliminary evaluations suggest that this approach offers qualitatively higher retrieval precision than existing (keyword and tablebased) approaches without sacrificing recall and computational tractability/scalability.
Searching for Services on the Semantic Web Using Process Ontologies
- IN PROCEEDINGS OF THE INTERNATIONAL SEMANTIC WEB WORKING SYMPOSIUM (SWWS
, 2001
"... The ability to rapidly locate useful on-line services (e.g. software applications, software components, process models, or service organizations), as opposed to simply useful documents, is becoming increasingly critical in many domains. As the sheer number of such services increases it will becom ..."
Abstract
-
Cited by 41 (1 self)
- Add to MetaCart
The ability to rapidly locate useful on-line services (e.g. software applications, software components, process models, or service organizations), as opposed to simply useful documents, is becoming increasingly critical in many domains. As the sheer number of such services increases it will become increasingly more important to provide tools that allow people (and software) to quickly find the services they need, while minimizing the burden for those who wish to list their services with these search engines. This can be viewed as a critical enabler of the `friction-free' markets of the `new economy'. Current service retrieval technology is, however, seriously deficient in this regard. The information retrieval community has focused on the retrieval of documents, not services per se, and has as a result emphasized keyword-based approaches. Those approaches achieve fairly high recall but low precision. The software agents and distributed computing communities have developed...
Supporting Component-Based Software Development with Active Component Repository Systems
, 2001
"... ..."
Semantics-based code search
- Software Engineering, International Conference on
"... Our goal is to use the vast repositories of available open source code to generate specific functions or classes that meet a user’s specifications. The key words here are specifications and generate. We let users specify what they are looking for as precisely as possible using keywords, class or met ..."
Abstract
-
Cited by 16 (0 self)
- Add to MetaCart
Our goal is to use the vast repositories of available open source code to generate specific functions or classes that meet a user’s specifications. The key words here are specifications and generate. We let users specify what they are looking for as precisely as possible using keywords, class or method signatures, test cases, contracts, and security constraints. Our system then uses an open set of program transformations to map retrieved code into what the user asked for. This approach is implemented in a prototype system for Java with a web interface. 1.
Retrieving Software Components That Minimize Adaptation Effort
- Proceedings of the IEEE International Conference on Automated Software Engineering
, 1997
"... Given a software library whose components are represented by formal specifications, we distinguish between two types of retrieval procedures: exact retrieval, whereby, given a query K, we identify all (and only) the library components that are correct with respect to K; approximate retrieval, which ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
Given a software library whose components are represented by formal specifications, we distinguish between two types of retrieval procedures: exact retrieval, whereby, given a query K, we identify all (and only) the library components that are correct with respect to K; approximate retrieval, which is invoked in case exact retrieval fails, and which (ideally) identifies the library components that minimize the required adaptation effort (once such a component is retrieved, the effort of adapting it to satisfy query K is minimal over the set of all the components of the library). To this effect, we define four measures of functional distance between specifications, and devising algorithms that minimize these measures over a structured set of components; then we discuss to what extent these measures can be used as predictors of adaptation effort. Correspondence author. 1 Exact Retrieval and Approximate Retrieval Software libraries are repositories where software components can be ...
Classifying Components by Behavioral Abstraction
- Proc. of the 4th Joint Conference on Information Sciences -- JCIS'98
, 1998
"... We present an approach for classifying and retrieving reusable software based on exemplary descriptions of its functionality. The functionality of reusable components is described by a set of tuples with each tuple representing a characteristic input-output (or stimulus-response) transformation of t ..."
Abstract
-
Cited by 5 (4 self)
- Add to MetaCart
We present an approach for classifying and retrieving reusable software based on exemplary descriptions of its functionality. The functionality of reusable components is described by a set of tuples with each tuple representing a characteristic input-output (or stimulus-response) transformation of the component at hand. With careful choice of these characteristic tuples, information equivalent to conventional formal specifications is given, except that (re-)users not versed in formal specification can provide such queries. The concept just introduced depends on the discriminative potential of the tuples provided and on the equivalence of behavior representations by the librarian and by the (re-)user. The former can be assured by the librarians professionalism, the latter by an adequate user-interface of the system supporting a dialog, based on what the system has to offer rather than on guesses about what the (re-)user is looking for. 1 Motivation We depart from the assumption that ...
Component Specifications for Robotics Integration
, 1998
"... . Robotics researchers have been unable to capitalize easily on existing software components to speed up their development e#orts and maximize their system's capabilities. A component-based approach for building the software for robotics systems can provide reuse and sharing abilities to the researc ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
. Robotics researchers have been unable to capitalize easily on existing software components to speed up their development e#orts and maximize their system's capabilities. A component-based approach for building the software for robotics systems can provide reuse and sharing abilities to the research community. The software engineering community has been studying reuse techniques for three decades. We present several results from those e#orts that are applicable to the robotics software integration problem. We describe how to specify a software componentsothat a potential user may understand its capabilities and facilitate its application to his or her system. At the National Institute of Standards and Technology,wehave developed a three-stage, component-speci#cation approach. We illustrate this approach for a component that is relevant to robotics. Keywords: software components, software reuse, frameworks, intelligent systems, software architectures 1. Robotic research and software ...
Uncertainty Aspects in Component Retrieval
- In Proc. IPMU'98
, 1998
"... Successful software reuse depends on many factors, adequate description of reusable software is one of them. This paper focuses on some of the inherent problems in adequately describing software for later focussed retrieval. Out of these considerations, a hybrid approach, combining well known ..."
Abstract
-
Cited by 4 (4 self)
- Add to MetaCart
Successful software reuse depends on many factors, adequate description of reusable software is one of them. This paper focuses on some of the inherent problems in adequately describing software for later focussed retrieval. Out of these considerations, a hybrid approach, combining well known techniques from library science with techniques based on the inherent property of software, its executability, is presented. 1
A Calculus of Program Modifications
, 1997
"... It is common to distinguish between two paradigms of software reuse: black box reuse, which consists in reusing components verbatim, without modifying them; and white box reuse, which provides for making modifications to retrieved components before using them. Because software components are very i ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
It is common to distinguish between two paradigms of software reuse: black box reuse, which consists in reusing components verbatim, without modifying them; and white box reuse, which provides for making modifications to retrieved components before using them. Because software components are very information-rich (i.e. it takes a great deal of information to characterize a component), the chances of an exact match between an available component and a query are in general very slim; hence it is necessary to make provisions for adapting retrieved components to user requirements. This paper discusses a mathematical foundation for carrying out this modification process in a correctness-preserving manner. 1 Introduction: Why Do We Need Program Modification? It is common to distinguish between two paradigms of software reuse [11]: black box reuse, which consists in reusing components (or, generally, assets) verbatim, without modifying them; and white box reuse, which provides for modify...

