Results 1 -
6 of
6
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.
An Organizational Learning Approach to Domain Analysis
- Seventeenth International Conference on Software Engineering
, 1995
"... As the application of computer technology continues to proliferate and diversify, the identification and understanding of application domains is becoming increasingly important to software development methodologies. Domain analysis techniques have been developed to accumulate and formalize the knowl ..."
Abstract
-
Cited by 29 (21 self)
- Add to MetaCart
As the application of computer technology continues to proliferate and diversify, the identification and understanding of application domains is becoming increasingly important to software development methodologies. Domain analysis techniques have been developed to accumulate and formalize the knowledge necessary for successful software reuse. These techniques have been shown to be useful, but suffer from defining the domain too restrictively, burying important relationships deep in domain taxonomies, and prohibiting flexible identification of domains with common issues. Techniques are needed that dynamically detect recurring patterns of activities in development projects. This paper presents a method for developing and refining the knowledge and experience accumulated by a development organization so it can learn from previous efforts. A case-based repository of project experiences supports the re-use and refinement of domain knowledge to reduce duplicate effort, build on successful e...
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...
Supporting Component-Based Software Development with Active Component Repository Systems
, 2001
"... ..."
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...
The Software Technology of the 21st Century: From Software Reuse to Collaborative Software Design
, 2001
"... Complex (software) design problems require more knowledge than any single person or any single group possesses because the knowledge relevant to a problem is distributed among many different stakeholders. Software reuse exploits a collaboration process in which designers working on new problems can ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Complex (software) design problems require more knowledge than any single person or any single group possesses because the knowledge relevant to a problem is distributed among many different stakeholders. Software reuse exploits a collaboration process in which designers working on new problems can take advantage of the work of designers who have encountered similar problems in the past. Not only technical problems but also cognitive and social factors inhibit the widespread success of systematic software reuse. An important paradigm shift is to reconceptualize reuse as a collaborative process, in which software designers should not only take advantage of existing reuse repositories, but, through their own work, modify components and evolve reuse repositories. We discuss conceptual frameworks, practices, and systems that support software design as a collaborative knowledge construction process.

