Comment Extractor Ethan Chan Tianqiu Tem Wang Juliana Wong.

Slides:



Advertisements
Similar presentations
Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Advertisements

Transition from C to C++ …and a Review of Basic Problem Solving.
Internal Documentation Conventions. Kinds of comments javadoc (“doc”) comments describe the user interface: –What the classes, interfaces, fields and.
Software Engineering and Design Principles Chapter 1.
Chapter Day 5. © 2007 Pearson Addison-Wesley. All rights reserved2-2 Agenda Day 5 Questions from last Class?? Problem set 1 Posted  Introduction on developing.
Copyright © 2008 Pearson Addison-Wesley. All rights reserved. Chapter 12 Separate Compilation Namespaces Simple Make Files (Ignore all class references.
What is an object? Your dog, your desk, your television set, your bicycle. Real-world objects share two characteristics: They all have state and behavior;
Programming Style a programs language gives you a lot of freedom how to write a program – too much? but some programming style is good goal: it must be.
1 Introduction to Software Engineering Lecture 42 – Communication Skills.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
COMP205 Comparative Programming Languages Part 1: Introduction to programming languages Lecture 3: Managing and reducing complexity, program processing.
Fall 2007CS 2251 Software Engineering Intro. Fall 2007CS 2252 Topics Software challenge Life-cycle models Design Issues Documentation Abstraction.
Chapter 2: Developing a Program Extended and Concise Prelude to Programming Concepts and Design Copyright © 2003 Scott/Jones, Inc.. All rights reserved.
Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.
SM3121 Software Technology Mark Green School of Creative Media.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Java Software Solutions Foundations of Program Design Sixth Edition by Lewis.
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
PROGRAMMING LANGUAGES The Study of Programming Languages.
Ch 26 & 27 User Interfaces.
CS110/CS119 Introduction to Computing (Java)
From BlueJ to NetBeans SWC 2.semester.
Testing. What is Testing? Definition: exercising a program under controlled conditions and verifying the results Purpose is to detect program defects.
1 CSE 2102 CSE 2102 CSE 2102: Introduction to Software Engineering Ch9: Software Engineering Tools and Environments.
Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and Elizabeth Drake Chapter 2: Developing a Program.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
Embedded Web Technology Robert Brooks Neal Burry Imelda LeVesconte.
1 Computing Software. Programming Style Programs that are not documented internally, while they may do what is requested, can be difficult to understand.
Copyright © Curt Hill Java Looking at our first console application in Eclipse.
Program documentation using the Javadoc tool 1 Program documentation Using the Javadoc tool.
23-Oct-15 Abstract Data Types. 2 Data types A data type is characterized by: a set of values a data representation, which is common to all these values,
Introduction to CSE 331 Software Design & Implementation Winter 2011
ADTs and C++ Classes Classes and Members Constructors The header file and the implementation file Classes and Parameters Operator Overloading.
Computer Science Project Criteria. Computer Science Project The project is intended to simulate the analysis, design, progamming and documentation stages.
1 Chapter Nine Using GUI Objects and the Visual Studio IDE.
B065: PROGRAMMING Sub Procedures I. Starter  Identify the separate tasks to be performed in the programming task below (break it down into numbered sections).
Elucidative Programming Kurt Nørmark Aalborg University Denmark SIGDOC September 2000.
CSC 212 – Data Structures Prof. Matthew Hertz WTC 207D /
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope.
Summing Up Object Oriented Design. Four Major Components: Abstraction modeling real-life entities by essential information only Encapsulation clustering.
Identifiers Identifiers in Java are composed of a series of letters and digits where the first character must be a letter. –Identifiers should help to.
Design and Implementation of a Rationale-Based Analysis Tool (RAT) Diploma thesis from Timo Wolf Design and Realization of a Tool for Linking Source Code.
M1G Introduction to Programming 2 5. Completing the program.
ANU COMP2110 Software Design in 2003 Lecture 10Slide 1 COMP2110 Software Design in 2004 Lecture 12 Documenting Detailed Design How to write down detailed.
M1G Introduction to Programming 2 3. Creating Classes: Room and Item.
SEG 4110 – Advanced Software Design and Reengineering Topic T Introduction to Refactoring.
Making Software Executable by Others Varun Ratnakar USC/ISI April 17, 2015
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
1- How to connect the robot to the pc Sec Getting Started 3- How to move the robot Sec Scribbler movements 4- How to make a turn 11- How to.
Chapter – 8 Software Tools.
JMVA Comprehension and Analysis 475 Software Engineering for Industry - Coursework 1 Zhongxi Ren Tianyi Ma Qian Wang Zi Wang.
Execution ways of program References: www. en.wikipedia.org/wiki/Integrated_development_environment  You can execute or run a simple java program with.
CSCE 240 – Intro to Software Engineering Lecture 3.
Debugging using By: Samuel Ashby. What is debugging?  A bug is an error in either a program or the hardware itself.  Debugging is first locating and.
Problem Solving With C++ Doxygen Oct/Nov Introduction Doxygen is a documentation generator, a tool for writing software reference documentation.
CSC 222: Object-Oriented Programming
14 Compilers, Interpreters and Debuggers
Topics Introduction to Repetition Structures
“Plug-In Aspect” enabled Aspect Browser
Decisions, repetition, Code Snippets, Comments, and Intellisense
Improving the structure of existing code
Capstone Presentation
Unit 6 Assignment 2 Chris Boardley.
Cost Estimation Van Vliet, chapter 7 Glenn D. Blank.
Java Looking at our first console application in Eclipse
Review of Previous Lesson
Presentation transcript:

Comment Extractor Ethan Chan Tianqiu Tem Wang Juliana Wong

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 Introduction (2) Comment explanatory text embedded in program source helps human readers understand program source code the most useful thing at code level

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 Motivation (2) Searching for comments is a tedious job interrupts original work flow

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 Motivation (4) Examples: Grep too many incorrect results Javadoc format must be specific needs to know belonging class More in DEMO later on…

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 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 What the icons mean Variable comment Type comment Java predefined type comment Function comment No comment

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 DEMO

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 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 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 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 DEMO – Finding out the Comment Extractor way

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 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 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 Any comments ? (no pun intended) We’ll help you extract it! Comment Extractor