Retrieving reusable software by sampling behavior
ACM Transactions on Software Engineering and Methodology (TOSEM)
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Extreme programming explained: embrace change
Extreme programming explained: embrace change
Agile modeling: effective practices for extreme programming and the unified process
Agile modeling: effective practices for extreme programming and the unified process
Modern Information Retrieval
Test Driven Development: By Example
Test Driven Development: By Example
A survey of software reuse libraries
Annals of Software Engineering
Software Reuse Research: Status and Future
IEEE Transactions on Software Engineering
Rascal: A Recommender Agent for Agile Reuse
Artificial Intelligence Review
An eclipse plugin to support agile reuse
XP'05 Proceedings of the 6th international conference on Extreme Programming and Agile Processes in Software Engineering
Using the web as a reuse repository
ICSR'06 Proceedings of the 9th international conference on Reuse of Off-the-Shelf Components
A Trustable Brokerage Solution for Component and Service Markets
ICSR '08 Proceedings of the 10th international conference on Software Reuse: High Confidence Software Reuse in Large Systems
Applying test-driven code search to the reuse of auxiliary functionality
Proceedings of the 2009 ACM symposium on Applied Computing
A test-driven approach to code search and its application to the reuse of auxiliary functionality
Information and Software Technology
Making the leap to a software platform strategy: Issues and challenges
Information and Software Technology
Hi-index | 0.00 |
Agile development and software reuse are both recognized as effective ways of improving time to market and quality in software engineering. However, they have traditionally been viewed as mutually exclusive technologies which are difficult if not impossible to use together. In this paper we show that, far from being incompatible, agile development and software reuse can be made to work together and, in fact, complement each other. The key is to tightly integrate reuse into the test-driven development cycles of agile methods and to use test cases - the agile measure of semantic acceptability - to influence the component search process. In this paper we discuss the issues involved in doing this in association with Extreme Programming, the most widely known agile development method, and Extreme Harvesting, a prototype technique for the test-driven harvesting of components from the Web. When combined in the appropriate way we believe they provide a good foundation for the fledgling concept of agile reuse.