Results 1 - 10
of
14
An Evolutionary Approach to Constructing Effective Software Reuse Repositories
- ACM Transactions on Software Engineering and Methodology
, 1997
"... This article outlines an approach that avoids these problems by choosing a retrieval method that utilizes minimal repository structure to effectively support the process of finding software components. The approach is demonstrated through a pair of proof-ofconcept prototypes: PEEL, a tool to semiaut ..."
Abstract
-
Cited by 32 (3 self)
- Add to MetaCart
This article outlines an approach that avoids these problems by choosing a retrieval method that utilizes minimal repository structure to effectively support the process of finding software components. The approach is demonstrated through a pair of proof-ofconcept prototypes: PEEL, a tool to semiautomatically identify reusable components, and CodeFinder, a retrieval system that compensates for the lack of explicit knowledge structures through a spreading activation retrieval process. CodeFinder also allows component representations to be modified while users are searching for information. This mechanism adapts to the changing nature of the information in the repository and incrementally improves the repository while people use it. The combination of these techniques holds potential for designing software repositories that minimize up-front costs, effectively support the search process, and evolve with an organization's changing needs.
Supporting the Construction and Evolution of Component Repositories
- In Proceedings of the 18th International Conference on Software Engineering
, 1996
"... Repositories must be designed to meet the evolving and dynamic needs of software development organizations. Current software repository methods rely heavily on classification, which exacerbates acquisition and evolution problems by requiring costly classification and domain analysis efforts before a ..."
Abstract
-
Cited by 19 (0 self)
- Add to MetaCart
Repositories must be designed to meet the evolving and dynamic needs of software development organizations. Current software repository methods rely heavily on classification, which exacerbates acquisition and evolution problems by requiring costly classification and domain analysis efforts before a repository can be used effectively. This paper outlines an approach in which minimal initial structure is used to effectively find relevant software components while methods are employed to incrementally improve repository structures. The approach is demonstrated through PEEL, a tool to semi-automatically identify reusable components, and CodeFinder, a retrieval system that compensates for the lack of explicit knowledge structures through spreading activation retrieval and allows component representations to be incrementally improved while users are searching for information. The combination of these techniques yields a flexible software repository that minimizes up-front costs and improves...
Assieme: finding and leveraging implicit references in a web search interface for programmers
- In: 20th annual ACM Symposium on User Interface Software and Technology
, 2007
"... Programmers regularly use search as part of the development process, attempting to identify an appropriate API for a problem, seeking more information about an API, and seeking samples that show how to use an API. However, neither general-purpose search engines nor existing code search engines curre ..."
Abstract
-
Cited by 18 (3 self)
- Add to MetaCart
Programmers regularly use search as part of the development process, attempting to identify an appropriate API for a problem, seeking more information about an API, and seeking samples that show how to use an API. However, neither general-purpose search engines nor existing code search engines currently fit their needs, in large part because the information programmers need is distributed across many pages. We present Assieme, a Web search interface that effectively supports common programming search tasks by combining information from Web-accessible Java Archive (JAR) files, API documentation, and pages that include explanatory text and sample code. Assieme uses a novel approach to finding and resolving implicit references to Java packages, types, and members within sample code on the Web. In a study of programmers performing searches related to common programming tasks, we show that programmers obtain better solutions, using fewer queries, in the same amount of time spent using a general Web search interface. ACM Classification
Accelerating the Successful Reuse of Problem Solving Knowledge Through the Domain Lifecycle
- Fourth International Conference on Software Reuse
, 1996
"... The inability of software reuse to reach its full potential lies partially in the product-centric way in which we view software development. Methods are needed that help us reason about product families and degrees of support that can be offered for problem domains. This paper uses a "domain lifecyc ..."
Abstract
-
Cited by 17 (10 self)
- Add to MetaCart
The inability of software reuse to reach its full potential lies partially in the product-centric way in which we view software development. Methods are needed that help us reason about product families and degrees of support that can be offered for problem domains. This paper uses a "domain lifecycle" to formalize a process in which increasing levels of formality can be provided as a domain matures. The first step in this process is to collect and disseminate project experiences that can accelerate the process of identifying and refining application domains with significant impact in a software development organization. This approach facilitates the reuse of a broad spectrum of knowledge at multiple levels of formality. Based on empirical investigations of a software development organization, a prototype of a case-based organizational memory repository for software development practices is presented and assessed for its impact on reusing software development knowledge. Keywords: doma...
Information Access Tools for Software Reuse
- Journal of Systems and Software
, 1995
"... Software reuse has long been touted as an effective means to develop software products. But reuse technologies for software have not lived up to expectations. Among the barriers are high costs of building software repositories and the need for effective tools to help designers locate re-usable softw ..."
Abstract
-
Cited by 14 (6 self)
- Add to MetaCart
Software reuse has long been touted as an effective means to develop software products. But reuse technologies for software have not lived up to expectations. Among the barriers are high costs of building software repositories and the need for effective tools to help designers locate re-usable software. While many design-forreuse and software classification efforts have been proposed, these methods are cost-intensive and cannot effectively take advantage of large stores of design artifacts that many development organizations have accumulated. Methods are needed that take advantage of these valuable resources in a cost-effective manner. This paper describes an approach to the design of tools to help software designers build repositories of software components and locate potentially re-usable software in those repositories. The approach is investigated with a retrieval tool, named CodeFinder, which supports the process of retrieving software components when information needs are ill-defi...
Supporting Reuse of Evolving Visual Code
- IEEE Symposium on Visual Languages
, 1997
"... Although the idea of reusing code is very appealing, effective reuse has long been acknowledged as a problem. To help address the difficulties, many advocate strong management commitment to code reuse, leading to the treatment of code as an asset to be carefully managed in a well-organized repositor ..."
Abstract
-
Cited by 12 (9 self)
- Add to MetaCart
Although the idea of reusing code is very appealing, effective reuse has long been acknowledged as a problem. To help address the difficulties, many advocate strong management commitment to code reuse, leading to the treatment of code as an asset to be carefully managed in a well-organized repository. However, the advent of the Web may bring a change to this outlook, encouraging informal, loosely-organized code repositories. Already, for both textual and visual languages, informal repositories are beginning to emerge, featuring a high rate of change and few controls over what a producer must do to submit code. In this paper, we present techniques to address some aspects of code reuse in this kind of informal, evolving environment. These techniques build upon characteristics found in many visual programming languages. Using these techniques, our approach is able to eliminate the special work traditionally required of the producer, while still supporting the consumer's reuse efforts with...
Automatically capturing source code context of nl-queries for software maintenance and reuse
- In ICSE ’09: Proceedings of the 31st international conference on Software engineering
, 2009
"... As software systems continue to grow and evolve, locating code for maintenance and reuse tasks becomes increasingly difficult. Existing static code search techniques using natural language queries provide little support to help developers determine whether search results are relevant, and few recomm ..."
Abstract
-
Cited by 7 (2 self)
- Add to MetaCart
As software systems continue to grow and evolve, locating code for maintenance and reuse tasks becomes increasingly difficult. Existing static code search techniques using natural language queries provide little support to help developers determine whether search results are relevant, and few recommend alternative words to help developers reformulate poor queries. In this paper, we present a novel approach that automatically extracts natural language phrases from source code identifiers and categorizes the phrases and search results in a hierarchy. Our contextual search approach allows developers to explore the word usage in a piece of software, helping them to quickly identify relevant program elements for investigation or to quickly recognize alternative words for query reformulation. An empirical evaluation of 22 developers reveals that our contextual search approach significantly outperforms the most closely related technique in terms of effort and effectiveness. 1.
Queries as anchors: selection by association
- In Proc. HYPERTEXT
, 2005
"... This paper introduces a new method for linking the world view of the search engine user community with that of the search engine itself. This new method is based on collecting and aggregating associative query trails in the form of query reformulation sessions. Those associative query trails are the ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
This paper introduces a new method for linking the world view of the search engine user community with that of the search engine itself. This new method is based on collecting and aggregating associative query trails in the form of query reformulation sessions. Those associative query trails are then used to expand the documents indexed by the search engine. Our method is shown to reduce the time spent searching the index, reduce the need to reformulate queries, and also increase the proportion of queries which fulfill the user’s information need. Our work provides a mere glimpse into a new field of study by introducing new types of linking between documents and users ’ world views. Such links from world views have never previously been considered content that can be indexed and searched over.
Software Reuse: Principles, Patterns, Prospects
"... classes make object-oriented class libraries more reusable and easier to understand. The mechanism that abstract classes provide is one of the most important ones: classes should be derived from abstract superclasses as often as possible and all subclasses of an abstract class should only add or ref ..."
Abstract
-
Cited by 6 (3 self)
- Add to MetaCart
classes make object-oriented class libraries more reusable and easier to understand. The mechanism that abstract classes provide is one of the most important ones: classes should be derived from abstract superclasses as often as possible and all subclasses of an abstract class should only add or refine but not override operations of the parent class [GHJV95]. Then, all subclasses can respond to the identical interface i.e., they all are subtypes of the same abstract class. Also, the different views of an implementor and a reuser that may cause diversity in class hierarchy should be pointed out. An implementor is mostly concerned with quick derivation of a new class implementation from the existing ones. A reuser is interested more in the interface inheritance that says when a class can be used in place of another one [Edw92]. Another source of potential difficulties is that class libraries may become vast. Reusing classes from such a hierarchy may be a time consuming laborious task. ...
ClassExpert: A knowledge-based assistant to support reuse by specialization and modification in Smalltalk
, 1996
"... . Smalltalk-80 is an objectoriented system promoting "programming by reuse". However, the complexity of the Smalltalk class library makes it difficult for the non-expert user to find the problem -solving class. This paper describes ClassExpert, a tool that helps to retrieve classes matching the func ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
. Smalltalk-80 is an objectoriented system promoting "programming by reuse". However, the complexity of the Smalltalk class library makes it difficult for the non-expert user to find the problem -solving class. This paper describes ClassExpert, a tool that helps to retrieve classes matching the functional specification provided by the user. ClassExpert deploys an attribute-value classification scheme with taxonomies. This paper also shows how this scheme can be used to support reuse by specialization and modification. Introduction Significant productivity improvements have been reported using object-oriented programming environments such as VisualWorks \Smalltalk. 1 One of the reasons for these improvements is their libraries of highly reusable classes. Unfortunately the size of these libraries makes it hard to find the desired class, especially for a beginner. For example, the class library of Visual- 1 VisualWorks is build on the ParcPlace Smalltalk system, a derivative of Smal...

