Presentation is loading. Please wait.

Presentation is loading. Please wait.

How Can I Use This Method? 2015 IEEE/ACM 37TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING HOW.

Similar presentations


Presentation on theme: "How Can I Use This Method? 2015 IEEE/ACM 37TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING HOW."— Presentation transcript:

1 How Can I Use This Method? 2015 IEEE/ACM 37TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING HOW

2 Using New Methods Developers frequently need to use methods : They are not familiar with They do not remember how to use them

3 Learn About New Methods To learn about such methods: Reference manual (e.g. Javadoc)Q&A forums (e.g. Stack Overflow) Other information sources

4 Learn About New Methods Code Examples Short code fragments presenting actual, practical uses of the method Automatically generate code examples, given a specific method

5 Finding Code Examples Existing Approaches: Matching a query to an existing code base Matching a query to discussions in Q&A forums Providing abstract code examples Selected approach Concrete code examples

6 MUSE Method USage Example Client Downloader Download the source code of client projects Example Extractor Extract public methods Extract Calls to such method (raw usage example) Example Evaluator Ranks raw usage example Example Injector Add informative comments Create HTML page containing code examples Inject that HTML to official Javadoc HTML

7 MUSE Client Downloader Find Clients From its Maven page Not integrated Download Download compressed versions Build Using eclipse Java development tools Output: Set of Built Client Projects

8 MUSE Example Extractor Extraction Slice client program using JDeodorant Output : Set of raw code examples

9 MUSE Example Evaluator RankingSelection Output: Ranked code examples

10 MUSE Example Injector Textual Description Extracts the textual descriptions of parameters from its Javadoc (identified with the tag @param) Inline Comments Add inline comments Injection Inject ranked list code examples to Javadoc

11 Muse Example

12 Evaluation Evaluated in three studies: VALIDATION OF RANKING AND SELECTION PERCEIVED USEFULNESS OF EXAMPLES EXTRINSIC EVALUATION

13 Study 1 VALIDATION OF RANKING AND SELECTION RQ Ranking between code examples Selection between clones Study Evaluate ranking Usefulness of code example Participant 9 developers MUSE Ranking is correlated with user ranking Muse Selection is most user selected clones

14 Study 2 PERCEIVED USEFULNESS OF EXAMPLES RQ Usefulness of examples Study Evaluate usefulness of 10 code examples Participant 119 developers Very useful 69% Useful 13% Slightly useful 18% Not useful at all 0%

15 Study 3 EXTRINSIC EVALUATION RQ Does it help to complete programming tasks Study Implementing 2 tasks one with and another without Muse Participant 12 developers No Code Example 53% progress Code Example 73% progress

16 Conclusion MUSE: ◦Concrete method usage example ◦3 study,140 developer ◦MUSE ranks and selects code examples close to how developers do ◦Useful code examples 82% ◦Improve coding quality

17 Question?


Download ppt "How Can I Use This Method? 2015 IEEE/ACM 37TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING HOW."

Similar presentations


Ads by Google