Download presentation
Presentation is loading. Please wait.
Published byJacob Stephens Modified over 9 years ago
1
Zee Source © 2004 Zee Source, All Rights Reserved1 Pankaj K Garg Zee Source May 25, 2004 Mining Software Repositories to Promote Reuse
2
Zee Source © 2004 Zee Source, All Rights Reserved 2 Mining Repositories for Reuse Repository – collection of source code, email discussions, bug reports, etc., a la SourceForge Reuse – component, source code, or knowledge Find relevant component Use or adapt component Maintain reusable component
3
Zee Source © 2004 Zee Source, All Rights Reserved 3 LASER… Use WordNet for identifying concepts and relationships between concepts –e.g., synonyms, is-a, part-of Use WordNet derived relationships to suggest reusable components by analogy –e.g., client ~ patient => superclass person
4
Zee Source © 2004 Zee Source, All Rights Reserved 4 LASER… Hierarchical reuse –recommend superclass Parallel reuse –recommend class structure Current experiments: –Do class and method names map to WordNet entries? –Do class and superclass names have a hypernym relationship?
5
Zee Source © 2004 Zee Source, All Rights Reserved 5 Collaborative Filtering… v(i, c) = # of use of component c by class i r(a, c) = sum(v(i, c) * sim(a, i)) Recommend if: r(a, c) > Tau
6
Zee Source © 2004 Zee Source, All Rights Reserved 6 Collaborative Filtering… Experiment: How accurately can we recommend correct components? Does this accuracy depend on the stage of development?
7
Zee Source © 2004 Zee Source, All Rights Reserved 7 Template Mining… Analyze source code for lexical tokens Match templates against the tokens Construct results based on understanding of tokens and their relationships –exact match –generalization –reduction –name only
8
Zee Source © 2004 Zee Source, All Rights Reserved 8 Template Mining… Example template –class Matrix –methods getMatrix, transpose, plus, minus Experiment: –Comparison of various methods of matching
9
Zee Source © 2004 Zee Source, All Rights Reserved 9 Multiproject… Reuse knowledge from a project for other projects Such knowledge can be: –Which component implementation among several should a project use? –How to adapt a component for reuse? –Issues or problems with a component
10
Zee Source © 2004 Zee Source, All Rights Reserved 10 Multiproject… Approaches for: –clustering similar components together –ranking components based on their use –automated adaptation of components for reuse
11
Zee Source © 2004 Zee Source, All Rights Reserved 11 Summary Recent availability of software repositories makes mining for reuse attractive Mining may help in selecting reusable components Mining may help in adapting or maintaining components
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.