Download presentation
Presentation is loading. Please wait.
Published byEustacia Walker Modified over 9 years ago
1
Comment Extractor Ethan Chan Tianqiu Tem Wang Juliana Wong
2
2 Introduction (1) What do high level software tools provide? abstract level understanding specific knowledge focus After using these tools, programmers eventually have to touch source code Abstract Level Text Level
3
3 Introduction (2) Comment explanatory text embedded in program source helps human readers understand program source code the most useful thing at code level
4
4 Motivation (1) Comments are localized Expression of interest Expression declaration Comments associated with expression Comments relating to the expression are found only in one place The same expression used elsewhere
5
5 Motivation (2) Searching for comments is a tedious job interrupts original work flow
6
6 Motivation (3) Sometimes Expression of interest is far away Expression of interest Expression Declaration Comments associated with Expression Possibly a gap of a lot of files!
7
7 Motivation (4) Examples: Grep too many incorrect results Javadoc format must be specific needs to know belonging class More in DEMO later on…
8
8 Claim Programmers shouldn’t stop the workflow do any extra work to find comments. Need a tool deals with these problems extracts comments automatically.
9
9 Solution Comment Extractor A plug-in for JEdit (an open source java editor) Extracts comments from 4 types of CO Returns comments by Intelli-Selection user ’ s selection cursor ’ s location
10
10 What the icons mean Variable comment Type comment Java predefined type comment Function comment No comment
11
11 DEMO – Introduction to the GUI This is the first level. Each level always shows the respective type and variable comments This is the class (for members) or return type (for methods)This is the detailed view pane for the selected comment aboveThis is the second level, showing comments relating to function openPrintWriter() Allow going back and forth with various comment treesFreezes comment extraction The selected express that is of interest
12
12 DEMO
13
13 DEMO – Complex process finding comments from Inherited Classes Need to know which class has isInt()’s comment Type BasicType IntTypeBooleanType PointerType …. isInt()isReal() isInt()isReal()isInt()isReal() isInt()isReal()isInt()isReal() ….
14
14 Where is m? 170 lines up, we find it’s declaration Where is Machine class? 1 out of 61 files, we find it’s declaration Where is method emitLoad? 200 lines down, we find two overloaded declarations Which emitLoad method is correct? Need to know what parameter (sto, tmp) types are! Give up? DEMO – Finding out the usual way
15
15 Where is m? 170 lines up, we find it’s declaration Open JavaDoc on Machine class Find emitLoad documentation Need to know what parameter (sto, tmp) types are! Not all comments are JavaDoc style, so are not seen! DEMO – Finding out the JavaDoc way
16
16 DEMO – Finding out the grep way Assuming there are few uses of the text “emitLoad”, where is emitLoad? Need to weed out emitLoad declarations Much faster, only because not repeated declaration Still need to know which overloaded method (still need to find out sto and tmp!) Still need to open files and read comments Hard to go back to original position if not created in separate process
17
17 DEMO – Finding out the Comment Extractor way
18
18 Limitations This tool won’t be helpful if No comments Bad comments Comments not associated with a CO a plugin currently only for JEdit works only for Java While loop
19
19 Lessons Learned (1) Didn’t have CE to develop CE difficult to understand JEdit’s massive source code Unintentional benefits i.e. warping files
20
20 Lessons Learned (2) Modular design allowed easy integration of unanticipated changes User Interaction (GUI) Functionality Comment Extractor Comment HunterLocation Searcher JEdit GUI JEdit plugin interface
21
21 Any comments ? (no pun intended) We’ll help you extract it! Comment Extractor
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.