ABSTRACT
The open source movement had a tremendous impact on software engineering in recent years. It not only established serious competition for many commercial software vendors, it also led to the availability of millions of source code artifacts on the Internet. For the time being there exists a fledgling community working on software search solutions and associated recommendation engines. However, the potential for reusing knowledge contained in internet-scale software repositories is far from being exhausted. While existing systems are limited to retrieving existing artifacts during the coding phase, in this position paper we propose a novel idea for determining the "intersection" of multiple similar artifacts that allows creating design recommendations for a developer even earlier in the development lifecycle.
- R. Baeza-Yates and B. Ribeiro-Neto. Modern information retrieval. Addison-Wesley, 1999. Google ScholarDigital Library
- K. Beck and C. Andres. Extreme programming explained: embrace change. Addison-Wesley Professional, 2004. Google ScholarDigital Library
- K. Beck and W. Cunningham. A Laboratory for Teaching Object Oriented Thinking. In OOPSLA '89: Conference proceedings on Object-oriented programming systems, languages and applications, pages 1--6, New York, NY, USA, 1989. ACM. Google ScholarDigital Library
- B. Boehm. Software Engineering Economics. Englewood Cliffs, 1981. Google ScholarDigital Library
- Buschmann, F. and Henney, Kevin and Schmidt, Douglas C. Pattern-oriented software architecture: a system of patterns. Wiley, 2002. Google ScholarDigital Library
- I. Crnkovic, S. Larsson, and M. Chaudron. Component-Based Development Process and Component Lifecycle. Journal of Computing and Information Technology, 13(4):321, 2005.Google ScholarCross Ref
- J. Cybulski and K. Reed. Requirements Classification and Reuse: Crossing Domain Boundaries. Lecture notes in computer science, pages 190--210, 2000. Google ScholarDigital Library
- W. B. Frakes and C. J. Fox. Sixteen Questions About Software Reuse. Commun. ACM, 38(6):75-ff., 1995. Google ScholarDigital Library
- E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman, 1995. Google ScholarDigital Library
- D. Goldberg, D. Nichols, B. M. Oki, and D. Terry. Using Collaborative Filtering to Weave an Information Tapestry. Commun. ACM, 35(12):61--70, 1992. Google ScholarDigital Library
- D. Greene, P. Cunningham, and R. Mayer. Unsupervised Learning and Clustering. Machine Learning Techniques for Multimedia: Case Studies on Organization and Retrieval, page 51, 2008.Google Scholar
- R. Holmes, R. J. Walker, and G. C. Murphy. Strathcona Example Recommendation Tool. In ESEC/FSE-13: Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering, pages 237--240, New York, NY, USA, 2005. ACM. Google ScholarDigital Library
- O. Hummel. Semantic Component Retrieval in Software Engineering. PhD thesis, University of Mannheim, Germany, 2008.Google Scholar
- O. Hummel, W. Janjic, and C. Atkinson. Code Conjurer: Pulling Reusable Software out of Thin Air. IEEE Software, 25:45--52, 2008. Google ScholarDigital Library
- W. Janjic, O. Hummel, and C. Atkinson. More archetypal usage scenarios for software search engines (to appear). In ICSE Workshop on Search-Driven Development-Users, Infrastructure, Tools and Evaluation, SUITE '10., 2010. Google ScholarDigital Library
- F. McCarey, M. Cinneide, and N. Kushmerick. An Eclipse Plugin to Support Agile Reuse. In Proceedings of the 6th International Conference on eXtreme Programming and Agile Processes in Software Engineering. Springer. Google ScholarDigital Library
- Y. Ye. Programming with an Intelligent Agent. IEEE Intelligent Systems, 18:43--47, 2003. Google ScholarDigital Library
Index Terms
- Proposing software design recommendations based on component interface intersecting
Recommendations
Reusing Software: Issues and Research Directions
Software productivity has been steadily increasing over the past 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 nothing short of an order of magnitude increase ...
Reusability issues in component-based development
Component-based development (CBD) advocates the acquisition, adaptation, and integration of reusable software components to rapidly develop and deploy complex software systems with minimum engineering effort and resource cost. Software reusability is an ...
Software reuse
Software reuse is the process of creating software systems from existing software rather than building software systems from scratch. This simple yet powerful vision was introduced in 1968. Software reuse has, however, failed to become a standard ...
Comments