Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Mili, A., Mili, R., Mittermeir, R.: A Survey of Software Reuse Libraries. Annals of Software Engineering 5 (1998)
Ambler, S., Jeffries, R.: Agile Modeling: Effective Practices for Extreme Programming and the Unified Process. John Wiley and Sons, Chichester (2001)
Fowler, M.: Refactoring: Improving the Design of Existing Code. Addison-Wesley, Reading (1999)
Beck, K.: Extreme Programming Explained: Embrace Change. Addison-Wesley, Reading (1999)
Beck, K., Gamma, E.: JUnit: A Cook’s Tour. Java Report (August 1999)
Seacord, R.: Software Engineering Component Repositories. In: Proceedings of the International Workshop on Component-based Software Engineering, Los Angeles, USA (1999)
Frakes, W.B., Kang, K.: Software Reuse Research: Status and Future. IEEE Transactions on Software Eng. 31(7) (2005)
Hummel, O., Atkinson, C.: Using the Web as a Reuse Repository. In: Proceedings of the International Conference on Software Reuse, Torino (2006)
Baeza-Yates, R., Ribeiro-Neto, B.: Modern Information Retrieval. Addison-Wesley, London, UK (1999)
McCarey, F., Ó Cinnéide, M., Kushmerick, N.: An Eclipse Plugin to Support Agile Reuse. In: Proc. of the 6th Int. Conf. on Extreme Progr. and Agile Processes, Sheffield (2005)
Podgurski, A., Pierce, L.: Retrieving Reusable Software by Sampling Behavior, ACM Transactions on Software Engineering and Methodology 2(3) (1993)
McCarey, F., Ó Cinnéide, M., Kushmerick, N.: RASCAL: A Recommender Agent for Agile Reuse. In: Artificial Intelligence Review, vol. 24(3-4), Kluwer, Dordrecht (2005)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
Beck, K.: Test Driven Development: By Example. Addison-Wesley, London, UK (2002)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer Berlin Heidelberg
About this paper
Cite this paper
Hummel, O., Atkinson, C. (2007). Supporting Agile Reuse Through Extreme Harvesting. In: Concas, G., Damiani, E., Scotto, M., Succi, G. (eds) Agile Processes in Software Engineering and Extreme Programming. XP 2007. Lecture Notes in Computer Science, vol 4536. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-73101-6_5
Download citation
DOI: https://doi.org/10.1007/978-3-540-73101-6_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-73100-9
Online ISBN: 978-3-540-73101-6
eBook Packages: Computer ScienceComputer Science (R0)