Hipikat: A Project Memory for Software Development The CISC 864 Analysis By Lionel Marks.

Slides:



Advertisements
Similar presentations
Problem solving skills
Advertisements

Software change management
Collaborating By: Mandi Schumacher.
Coding and Debugging. Requirements and Specification Recall the four steps of problem solving: Orient, Plan, Execute, Test Before you start the implementation.
Mentoring A Younger Chemists’ Guide to a Career Essential.
Lesson 18 Edification.
CONQUER: A Tool for NL-based Query Refinement & Contextualizing Code Search Results Manuel Roldan-Vega, Greg Mallet, Emily Hill, Jerry Alan Fails.
Growing participation, growing participants Supporting the users of software projects through better communications.
CS414 Project Team 7 Steve Culver Kevin Gorski Jenny Harris Tim Hunt Leon Organ Katie Overton Arin Sarros.
20-Jun-15 Eclipse. Most slides from: 2 About IDEs An IDE is an Integrated Development Environment.
Eclipse[10] MIPSinEclipse. Overview Goal: To provide a friendly development environment for CS students programming in MIPS (particularly CS33 at UCLA),
Quality is about testing early and testing often Joe Apuzzo, Ngozi Nwana, Sweety Varghese Student/Faculty Research Day CSIS Pace University May 6th, 2005.
Health Informatics Series
Management is not a Natural Act Megan Winget - Co-Project Manager Managing the Digital University Desktop: Introduction and Preliminary Findings.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Building Knowledge-Driven DSS and Mining Data
Stimulating reuse with an automated active code search tool Júlio Lins – André Santos (Advisor) –
Configuration Management
Discount Usability Engineering Marti Hearst (UCB SIMS) SIMS 213, UI Design & Development March 2, 1999.
How to Become an Independent and Successful Researcher?
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
Rosalind Moore Entrepreneurship and Small Business Department LIS 620.
By Steven Campbell and Erik Boone.  Sharing projects by putting them into a central repository.  Checking out copies of projects from the repository.
Lesson 46: Using Information From the Web copy and paste information from a Web site print a Web page download information from a Web site customize Web.
Chapter 0: Introduction CSCI-UA 0002 – Introduction to Computer Programming Mr. Joel Kemp.
ITP © Ron Poet Lecture 1 1 IT Programming Introduction.
Hipikat: A Developer’s Recommender Davor Cubranic, Gail Murphy, and Kelly Booth University of British Columbia.
Open Source Workshop1 IBM Software Group Working with Apache Tuscany A Hands-On Workshop Luciano Resende Haleh.
Identifying Reasons for Software Changes Using Historic Databases The CISC 864 Analysis By Lionel Marks.
ACJC Records Retention August 28, 2007 The Paperless Office What Is It? 1.
Multi-agent Research Tool (MART) A proposal for MSE project Madhukar Kumar.
DNS & SPAM SHAREPOINT 2010 IT:NETWORK:APPLICATIONS.
Presented by Abirami Poonkundran.  Introduction  Current Work  Current Tools  Solution  Tesseract  Tesseract Usage Scenarios  Information Flow.
1 PARSEWeb: A Programmer Assistant for Reusing Open Source Code on the Web Suresh Thummalapenta and Tao Xie Department of Computer Science North Carolina.
Interviewing. Interview Scenario You’re working as a software engineer – Several open tickets – Bug Reports – Sprint deadline approaching You need another.
The Passionate Programmer Igor Morozov By Chad Fowler.
Basics of Information Retrieval Lillian N. Cassel Some of these slides are taken or adapted from Source:
Computing Fundamentals Module Lesson 19 — Using Technology to Solve Problems Computer Literacy BASICS.
Program Development Life Cycle (PDLC)
Interviewing 1. Goals of Interviewing  Make sure that the biases and predispositions of the interviewer do not interfere with a free exchange of information.
TOOL SELECTION ACTIVITY POSTED ON D2L FOR STUDENTS PM 440 – Project A Mayowa Teriba Anusha Ravulapati Aileen Laughlin.
SEG3120 User Interfaces Design and Implementation
KRUGLE BY: Roli Shrivastava. STORIES COLIN SAYS “ It was the first day at my new job and one my new colleagues told me that they were looking for a specific.
What IS a Journeyman Programmer? Why this program?
Diagnostic Pathfinder for Instructors. Diagnostic Pathfinder Local File vs. Database Normal operations Expert operations Admin operations.
IT Just Works ©2008 BigFix, Inc. Practical Guide to Relevance Ben Kus – 1/31/2008.
Software Testing and Maintenance 1 Code Review  Introduction  How to Conduct Code Review  Practical Tips  Tool Support  Summary.
CSSE 375 Software Construction and Evolution: More SCM, and a loop back to Feathers! Shawn and Steve Left – On big systems, SCM is a well-defined process.
WEP Presentation for non-IT Steps and roles in software development 2. Skills developed in 1 st year 3. What can do a student in 1 st internship.
Agents that Reduce Work and Information Overload and Beyond Intelligent Interfaces Presented by Maulik Oza Department of Information and Computer Science.
MIS 301 Information Systems in Organizations Dave Salisbury ( )
Computing Fundamentals Module Lesson 6 — Using Technology to Solve Problems Computer Literacy BASICS.
Evaluating Requirements
Eclipse 27-Apr-17.
HFMA Chapter Toolkit Aligned with the Early Careerist Task Force Related Toolkits Social Media Overview Social Media LinkedIn Groups Social Media Twitter.
Successes and Failures in IT Systems Implementation An Industry Insight Lecture Ray Dawson Loughborough University.
Discount Evaluation User Interface Design. Startup Weekend Wellington CALLING ALL DESIGNERS, DEVELOPERS AND IDEAS FOLK: Startup Weekend returns to Wellington.
INTRODUCTION TO DESKTOP SUPPORT
The Emergent Structure of Development Tasks
Human Computer Interaction Lecture 21 User Support
Chapter 11: Software Configuration Management
Architecture Components
Eclipse 20-Sep-18.
X in [Integration, Delivery, Deployment]
Chapter 11: Software Configuration Management
Applied Software Project Management
Orchestrating Intelligent Systems
Computer Literacy BASICS
MAPO: Mining and Recommending API Usage Patterns
Presentation transcript:

Hipikat: A Project Memory for Software Development The CISC 864 Analysis By Lionel Marks

What’s the Typical Scenario for a New Developer? A new developer joins the team and knows little of the project An existing member offers advice and helps newcomer finish first tasks Information generally about basic ideas on the problem domain and pointers on using tools effectively Mentors give information on the eccentricities of the system and why things are done that way

What is the New Scenario? Team members are not co-located Hard for a newcomer to get up-to-speed on the project on the “virtual team” Using electronic media such as mailing lists, code repositories and work tracking programs, can create a “project memory” with Hipikat

What is Hipikat Good for? With the volume of information being so enormous, sifting through the documents would take too long Hipikat allows the user to search these archives Searching CVS for code to clone for your new method Searching configuration management tools for a history of changes, to help in setup maintenance or to redo a setup.

Related Work Group Memory  Design Assistant and TeamInfo had the information generated by humans specifically for their tool to query Recommender Systems  Remembrance Agent and Code Broker did not use multiple information sources

Related Work Programming from Examples  Reuse View Matcher and Explainer which has libraries of specifically created code to query, not existing code from the current system. Mining Software Repositories to help in SW Maintenance  CVSSearch – search comments from CVS commits  Expertise Browser and Expertise Recommender – recommend developers with expertise at certain parts of a project  Zimmerman et al., Ying et al. – found change patterns in repositories to recommend potentially relevant files when working on a change in the code of a project

How Hipikat Works 1. Hipikat forms the project memory from source code, documentation, and other electronic media such as messages and bug reports. All are put in a central database that can be queried. 2. It can then be queried to recommend artifacts that are relevant to the user’s current task. Information sources can be monitored periodically or continuously, and when they are committed to the database, then they can be included in searches

How Hipikat Works “A user makes a query by selecting an artifact in the Eclipse project workspace and choosing ‘Query Hipikat’ from the context menu.” (Interesting!) User can also search the Hipikat database through “Search Hipikat”

The Digg Effect Training the System (Increasing the rank of certain artifacts in queries) Just by clicking on the artifact (that it looks useful) Clicking a “thumbs-up” or “thumbs-down” Problems (Can anyone see them?)

The Digg Effect Training the System (Increasing the rank of certain artifacts in queries) Just by clicking on the artifact (that it looks useful) Clicking a “thumbs-up” or “thumbs-down” Problems (Can anyone see them?) Clicking on artifact  What if relevant on first sight, but not really upon inspection? Inc. rank of bad match Clicking on “thumb”  Asking to verify usefulness before even used the data. Can’t rank like this

Evaluation Criteria Precision vs. Recall In a perfect world, whatever the system recommends is exactly what you need Giving recommendations that have “examples of use” for relevant APIs rather than just giving the place in code where you must make your changes (i.e. “The solution”) (Interesting!)

Eclipse Newcomer Study Finding Participants Require adequate programming experience in Java Have experience developing large or medium-sized SW Very small pool of recruit-able computer science undergrads with the above criteria (Good point!) Also wanted to compare the solutions Got some of experienced members of the Eclipse Development team Asked them to perform the same tasks for baseline comparison

Eclipse Newcomer Study Results The first task, implementing the pop-up window when hover over the side of code to suggesting breakpoint properties Experts performed worst on handling the special cases 25% of experts got them 38% of newcomers got them perfectly right 63% of newcomers got it basically right Harder task 75% of experts solved it correctly 38% of newcomers got it right

Use of Hipikat More queries made on the harder task Almost all queries made within the first hour Generally once the person knew what file(s) to change, and had a general plan, no more queries were made. Criteria for finding a recommendation useful Is the problem report “interesting” Similar enough to current task – code re-use Learn relevant information For difficult coding problems, searched and found filenames that look potentially relevant Did not look at source code changes, but rather built their understanding from “scratch” looking at the file in an editor. (easier, did not want a “false lead” and have to continue searching)

My General Thoughts Good paper in general The paper did a good job at stating its facts and shortcomings. Would like to see it used in a different way, as a data miner for teaching the person about the system rather than providing assistance when in doubt (too much recall for when trying to perform a single task)

Likes and Dislikes of this Paper Likes  Its study of how people thought about the problem  The tool itself is an intriguing idea  The style of the paper – very readable! Dislikes  Asking that people take into account special cases when first coding something in a system – a bit of a reach  Saying that the participants must have worked on a medium to large SW system before. Many undergrads will go into industry working on their first large system ever. Would be interesting for your tool to get someone who is really new to these kinds of SW systems – see if they use Hipikat more