Improving the productivity of software developers

Size: px
Start display at page:

Download "Improving the productivity of software developers"

Transcription

1 Improving the productivity of software developers Lecture 1 - What recommenders can be built? Gail C. Murphy University of British Columbia Tasktop 1 Laser Summer School Lecture 1

2 a recommendation system for SE is a software application that provides information items estimated to be valuable for a software engineering task in a given context Robillard, Walker and Zimmermann, Recommendation systems for software engineering, IEEE Software 27(4), 80-86,

3 a recommendation system for SE is a software application that provides information items estimated to be valuable for a software engineering task in a given context Robillard, Walker and Zimmermann, Recommendation systems for software engineering, IEEE Software 27(4), 80-86,

4 various ways to think about the space of SE recommenders a software application that provides information items estimated to be valuable for a software engineering task in a given context Robillard, Walker and Zimmermann, Recommendation systems for software engineering, IEEE Software 27(4), 80-86,

5 information spaces source code reusable software components (e.g., APIs) project history (e.g., version control) software process information (e.g., issues) interaction information web information 5

6 intent consider the range of recommenders to aid software development tasks that have been investigated consider characteristics of recommenders and their use that will underly remaining lectures representative examples not indicative of all SE recommenders that have been built! For more examples, see: Recommendation Systems in Software Engineering edited by Robillard, Maalej, Walker and Zimmermann, Springer,

7 source code 7

8 examples of recommenders based on source code quick fixes code completion refactoring (e.g., jdeodorant) program transformation some questions to consider for each: 1. how are recommendations generated? 2. how accurate are the recommendations? 3. how hard is it to determine which recommendation to take? 4. how easy is it to back out of a wrong choice? Image from: 8

9 quick fix 9

10 quick fix 10

11 quick fix some questions to consider for each: 1. how are recommendations generated? 2. how accurate are the recommendations? 3. how hard is it to determine which recommendation to take? 4. how easy is it to back out of a wrong choice? 11

12 code completion 12

13 refactoring (e.g., jdeodorant) identify Feature Envy smells in Java code generate movemethod refactorings to reduce smell! [Fokaefs et al 2007] 13

14 program transformation provide examples of similar changes made to source generate edit script (programming by demonstration) recommend similar code apply edit script LASE approach and tool [Meng et al 2013] 14

15 code recommendation summary disclaimer: accuracy are as reported but we aren t giving experimental context here so tread carefully. Selecting and undoing are subjective. recommender generation accuracy selecting undoing quick fix heuristic high but not quantified expertise required limits of undo code completion jdeodorant (refactoring) type information heuristic metric 100% often easy easy?? easy difficult LASE (transformation) AST precision often 100% expert difficult 15

16 reusable software components 16

17 examples of recommenders based on reusable software components FrUiT Strathcona CodeBroker Image from: EEWeb.com 17

18 FrUiT support the usage of frameworks! 1. extract structural relations from applications using an API 2. use association rule mining to identify structural relations that are commonly used 3. recommend all rules that mention any of the source code entities in the current file in the editor 18 [Bruch et al 2006]

19 FrUiT [Bruch et al 2006] 19

20 Strathcona find examples of API use! 1. build a db of structural relations from example code 2. if developer needs help, extract context from developer s existing code 3. query db with context 4. use heuristics to match examples (similarity of structural relations) 5. return examples as UML class diagram fragments [Holmes & Murphy, 2005] 20

21 Strathcona [Holmes & Murphy, 2005] 21

22 Codebroker help develop new methods based on similar existing ones! 1. monitor methods being written and extract words used in comments, signature and types 2. use LSA to match to existing methods modelled similarly 3. filter matches based on similarity of types 4. recommend most similar! [Ye & Fischer 2005] 22

23 Codebroker [Ye & Fischer 2005] 23

24 api recommendation summary disclaimer: accuracy are as reported but we aren t giving experimental context here so tread carefully. Selecting and undoing are subjective. recommender generation accuracy selecting undoing FrUiT associate rule mining ~85% expertise required limits of undo Strathcona heuristic case study eval difficult limits of undo Codebroker LSA high of ~35% easy difficult 24

25 project history 25

26 examples of recommenders based on project history erose expertise recommender Image from: EEWeb.com 26

27 erose recommend program elements likely to change together 1. mine the version control system to form rules of which elements commonly change together 2. when a developer changes element e, find all rules with e and suggest any other elements that usually change with e [Zimmermann et al 2004] 27

28 28

29 expertise recommender use who changed the file to determine who is an expert in the file [McDonald & Ackerman 2000] 29

30 software process information 30

31 examples of recommenders based on software process information who should fix this bug Image from 31

32 who should fix this bug? 32

33 who should fix this bug? during bug triage, a bug needs to be assigned use machine learning to determine which values in the bug fields suggest particular developers to fix the bug [Anvik & Murphy 2006] 33

34 interaction information 34

35 examples of recommenders based on interaction information Eclipse Mylyn command recommendation Image from: EEWeb.com 35

36 examples of recommenders based on interaction information Eclipse Mylyn command recommendation interaction history is! a sequential record of the! commands, artifacts, etc.! that a developer! has interacted with Image from: EEWeb.com 36

37 Eclipse Mylyn track the program elements associated with each task performed to ease recall, sharing, code recommendations, etc. 37 [Kersten & Murphy 2006]

38 38

39 command recommenders recommend new commands in a development environment that a developer is not using yet many peers are! requires interaction data from the crowd! requires interaction data from a user! many algorithms possible, several based on collaborative filtering [Murphy-Hill et al 2012] 39

40 web information 40

41 examples of recommenders based on web information Reverb 41

42 Reverb 23% of all revisits of web pages by developers are related to code Reverb recommends the web pages to revisit [Sawadsky et al 2013] 42

43 summary disclaimer: accuracy are as reported but we aren t giving experimental context here so tread carefully. Selecting and undoing are subjective. (non-code, non-api) recommender generation accuracy selecting undoing erose expertise recommender who should fix this bug Eclipse Mylyn command recommenders association rules heuristic & metrics machine learning degree-ofinterest (SVM) collaborative filtering ~26% moderate easy no data easy not applicable ~40% moderate moderate 100% recall easy easy ~20% easy easy Reverb heuristic ~40% easy easy 43

44 summary wide range of recommenders have been built, lots of room for more to be built techniques used to generate vary substantially accuracy varies greatly (can only be assessed in context of a task) what s next? common technique overview (lectures 2 & 3) how to deliver recommendations (lecture 4) how to evaluate a recommender (lecture 5) 44

45 references Anvik & Murphy. Who should fix this bug? ICSE 2006.! Bruch, Schäfer, & Mezini. FrUiT: IDE support for framework understanding. ETX 2006.! Fokaefs, Tsantalis & Chatzigeorgiou, jdeodorant: identification and removal of feature envy bad smells. ICSM 07.! Holmes & Murphy, Using structural context to recommend source code examples. ICSE 2005.! Kertsen & Murphy. Using a task context to improve programmer productivity. FSE 2006.! Meng, Kim & McKinley. LASE: locating and applying systematic edits by learning from examples. ICSE McDonald & Ackerman. Expertise recommender: a flexible recommendation system and architecture. CSCW 2000.! Murphy-Hill, Jiresal and Murphy. Improving software developers fluency by recommending development environment commands. FSE 2012.! Robillard, Walker and Zimmermann. Recommendation systems for software engineering, IEEE Software 27(4), 80-86, 2010.! Robillard, Maalej, Walker and Zimmerann (editors). Recommendation Systems in Software Engineering, Springer Sawadsky, Jiresal and Murphy. Reverb: Recommending code-related web pages. ICSE 2013.! Ye & Fischer. Reuse-conducive development environments. Automat. SE Int J., Zimmermann, Weissgerber, Diehl and Zeller. Mining version histories to guide changes. ICSE

Attacking information overload in software development

Attacking information overload in software development Attacking information overload in software development Gail Murphy University of British Columbia Tasktop Technologies This talk contains copyright pictures obtained under license. The license associated

More information

An Introduction to Recommendation Systems in Software Engineering

An Introduction to Recommendation Systems in Software Engineering Chapter 1 An Introduction to Recommendation Systems in Software Engineering Martin P. Robillard and Robert J. Walker Abstract. Software engineering is a knowledge-intensive activity that presents many

More information

Does a Programmer s Activity Indicate Knowledge of Code? Software Engineering Seminar 2010

Does a Programmer s Activity Indicate Knowledge of Code? Software Engineering Seminar 2010 Does a Programmer s Activity Indicate Knowledge of Code? Software Engineering Seminar 2010 Who? From? Jan Rüegg 2007 Paper By Thomas Fritz, University of British Columbia Gail C. Murphy, University of

More information

Assisting bug Triage in Large Open Source Projects Using Approximate String Matching

Assisting bug Triage in Large Open Source Projects Using Approximate String Matching Assisting bug Triage in Large Open Source Projects Using Approximate String Matching Amir H. Moin and Günter Neumann Language Technology (LT) Lab. German Research Center for Artificial Intelligence (DFKI)

More information

Developer's Expertise in Software Development

Developer's Expertise in Software Development Automatic Estimation of Software Developer s Expertise Eduard Kuric Institute of Informatics, Information Systems and Software Engineering Faculty of Informatics and Information Technologies Slovak University

More information

Spontaneous Code Recommendation based on Open Source Code Repository

Spontaneous Code Recommendation based on Open Source Code Repository Spontaneous Code Recommendation based on Open Source Code Repository Hidehiko Masuhara masuhara@acm.org Tokyo Tech joint work with Takuya Watanabe, Naoya Murakami, Tomoyuki Aotani Do you program with Google?

More information

A methodology for measuring software development productivity using Eclipse IDE

A methodology for measuring software development productivity using Eclipse IDE Proceedings of the 9 th International Conference on Applied Informatics Eger, Hungary, January 29 February 1, 2014. Vol. 2. pp. 255 262 doi: 10.14794/ICAI.9.2014.2.255 A methodology for measuring software

More information

Capturing and Analyzing Low Level Events from the Code Editor

Capturing and Analyzing Low Level Events from the Code Editor Capturing and Analyzing Low Level Events from the Code Editor YoungSeok Yoon Institute for Software Research Carnegie Mellon University Pittsburgh, PA, USA youngseok@cs.cmu.edu Brad A. Myers Human Computer

More information

Assisting bug Triage in Large Open Source Projects Using Approximate String Matching

Assisting bug Triage in Large Open Source Projects Using Approximate String Matching Assisting bug Triage in Large Open Source Projects Using Approximate String Matching Amir H. Moin and Günter Neumann Language Technology (LT) Lab. German Research Center for Artificial Intelligence (DFKI)

More information

Does the Act of Refactoring Really Make Code Simpler? A Preliminary Study

Does the Act of Refactoring Really Make Code Simpler? A Preliminary Study Does the Act of Refactoring Really Make Code Simpler? A Preliminary Study Francisco Zigmund Sokol 1, Mauricio Finavaro Aniche 1, Marco Aurélio Gerosa 1 1 Department of Computer Science University of São

More information

A TraceLab-based Solution for Creating, Conducting, Experiments

A TraceLab-based Solution for Creating, Conducting, Experiments A TraceLab-based Solution for Creating, Conducting, and Sharing Feature Location Experiments Bogdan Dit, Evan Moritz, Denys Poshyvanyk 20 th IEEE International Conference on Program Comprehension (ICPC

More information

Home Office 2.0 - Collaborative Working Related Work. Sommersemester 2010 HAW-Hamburg Karsten Panier

Home Office 2.0 - Collaborative Working Related Work. Sommersemester 2010 HAW-Hamburg Karsten Panier Home Office 2.0 - Collaborative Working Related Work Sommersemester 2010 HAW-Hamburg Karsten Panier Summary Vision Home Office 2.0 Topics Related Work Context Task Context Socio-Technical Congruence Conclusion

More information

Mining the Software Change Repository of a Legacy Telephony System

Mining the Software Change Repository of a Legacy Telephony System Mining the Software Change Repository of a Legacy Telephony System Jelber Sayyad Shirabad, Timothy C. Lethbridge, Stan Matwin School of Information Technology and Engineering University of Ottawa, Ottawa,

More information

Pattern Insight Clone Detection

Pattern Insight Clone Detection Pattern Insight Clone Detection TM The fastest, most effective way to discover all similar code segments What is Clone Detection? Pattern Insight Clone Detection is a powerful pattern discovery technology

More information

Towards Software Configuration Management for Test-Driven Development

Towards Software Configuration Management for Test-Driven Development Towards Software Configuration Management for Test-Driven Development Tammo Freese OFFIS, Escherweg 2, 26121 Oldenburg, Germany tammo.freese@offis.de Abstract. Test-Driven Development is a technique where

More information

Bug Localization Using Revision Log Analysis and Open Bug Repository Text Categorization

Bug Localization Using Revision Log Analysis and Open Bug Repository Text Categorization Bug Localization Using Revision Log Analysis and Open Bug Repository Text Categorization Amir H. Moin and Mohammad Khansari Department of IT Engineering, School of Science & Engineering, Sharif University

More information

An Empirical Study on Recommendations of Similar Bugs

An Empirical Study on Recommendations of Similar Bugs An Empirical Study on Recommendations of Similar Bugs Henrique Rocha, Marco Tulio Valente, Humberto Marques-Neto, and Gail C. Murphy Federal University of Minas Gerais, Brazil Pontifical Catholic University

More information

An Approach for Extracting Modules from Monolithic Software Architectures

An Approach for Extracting Modules from Monolithic Software Architectures An Approach for Extracting Modules from Monolithic Software Architectures Ricardo Terra, Marco Túlio Valente, Roberto S. Bigonha Universidade Federal de Minas Gerais, Brazil {terra,mtov,bigonha@dcc.ufmg.br

More information

SQA-Profiles: Rule-Based Activity Profiles for Continuous Integration Environments

SQA-Profiles: Rule-Based Activity Profiles for Continuous Integration Environments SQA-Profiles: Rule-Based Activity Profiles for Continuous Integration Environments Martin Brandtner, Sebastian C. Müller, Philipp Leitner, and Harald C. Gall University of Zurich, Department of Informatics,

More information

Improving Software Developers Fluency by Recommending Development Environment Commands

Improving Software Developers Fluency by Recommending Development Environment Commands Improving Software Developers Fluency by Recommending Development Environment Commands ABSTRACT Emerson Murphy-Hill Department of Computer Science North Carolina State University Raleigh, North Carolina

More information

Speculative Analysis: Exploring Future Development States of Software

Speculative Analysis: Exploring Future Development States of Software Speculative Analysis: Exploring Future Development States of Software Yuriy Brun, Reid Holmes, Michael D. Ernst, David Notkin Computer Science & Engineering School of Computer Science University of Washington

More information

Tracking Software Changes: A Framework and Examples of Applications

Tracking Software Changes: A Framework and Examples of Applications Tracking Software Changes: A Framework and Examples of Applications Massimiliano Di Penta Dept. Of Engineering University of Sannio, Benevento (Italy) dipenta@unisannio.it Outline Fine-grained historical

More information

NextBug: A Tool for Recommending Similar Bugs in Open-Source Systems

NextBug: A Tool for Recommending Similar Bugs in Open-Source Systems NextBug: A Tool for Recommending Similar Bugs in Open-Source Systems Henrique S. C. Rocha 1, Guilherme A. de Oliveira 2, Humberto T. Marques-Neto 2, Marco Túlio O. Valente 1 1 Department of Computer Science

More information

Duplicate Bug Reports Considered Harmful... Really?

Duplicate Bug Reports Considered Harmful... Really? Duplicate Bug Reports Considered Harmful... Really? Nicolas Bettenburg Saarland University nicbet@st.cs.uni-sb.de Rahul Premraj Saarland University premraj@cs.uni-sb.de Thomas Zimmermann University of

More information

Supporting Software Development Process Using Evolution Analysis : a Brief Survey

Supporting Software Development Process Using Evolution Analysis : a Brief Survey Supporting Software Development Process Using Evolution Analysis : a Brief Survey Samaneh Bayat Department of Computing Science, University of Alberta, Edmonton, Canada samaneh@ualberta.ca Abstract During

More information

Colligens: A Tool to Support the Development of Preprocessor-based Software Product Lines in C

Colligens: A Tool to Support the Development of Preprocessor-based Software Product Lines in C Colligens: A Tool to Support the Development of Preprocessor-based Software Product Lines in C Flávio Medeiros 1, Thiago Lima 2, Francisco Dalton 2, Márcio Ribeiro 2, Rohit Gheyi 1, Baldoino Fonseca 2

More information

Modeling Context in Software Reuse

Modeling Context in Software Reuse Modeling Context in Software Reuse Eduardo Cruz 1, Vaninha Vieira 1, Eduardo S. de Almeida 1, Sílvio R. L. Meira 1, Ana Carolina Salgado 1, Patrick Brézillon 2 Informatics Center Federal University of

More information

Fine-grained Incremental Learning and Multi-feature Tossing Graphs to Improve Bug Triaging

Fine-grained Incremental Learning and Multi-feature Tossing Graphs to Improve Bug Triaging Fine-grained Incremental Learning and Multi-feature Tossing Graphs to Improve Bug Triaging Pamela Bhattacharya Iulian Neamtiu Department of Computer Science and Engineering University of California, Riverside

More information

APPLYING CASE BASED REASONING IN AGILE SOFTWARE DEVELOPMENT

APPLYING CASE BASED REASONING IN AGILE SOFTWARE DEVELOPMENT APPLYING CASE BASED REASONING IN AGILE SOFTWARE DEVELOPMENT AIMAN TURANI Associate Prof., Faculty of computer science and Engineering, TAIBAH University, Medina, KSA E-mail: aimanturani@hotmail.com ABSTRACT

More information

IDE 2.0: Collective Intelligence in Software Development

IDE 2.0: Collective Intelligence in Software Development IDE 2.0: Collective Intelligence in Software Development Marcel Bruch, Eric Bodden, Martin Monperrus, and Mira Mezini Software Technology Group Department of Computer Science Technische Universität Darmstadt,

More information

Bug Localization Using Revision Log Analysis and Open Bug Repository Text Categorization

Bug Localization Using Revision Log Analysis and Open Bug Repository Text Categorization Bug Localization Using Revision Log Analysis and Open Bug Repository Text Categorization Amir H. Moin and Mohammad Khansari Department of IT Engineering, School of Science & Engineering, Sharif University

More information

Integrating Service Oriented MSR Framework and Google Chart Tools for Visualizing Software Evolution

Integrating Service Oriented MSR Framework and Google Chart Tools for Visualizing Software Evolution 2012 Fourth International Workshop on Empirical Software Engineering in Practice Integrating Service Oriented MSR Framework and Google Chart Tools for Visualizing Software Evolution Yasutaka Sakamoto,

More information

Nirikshan: Process Mining Software Repositories to Identify Inefficiencies, Imperfections, and Enhance Existing Process Capabilities

Nirikshan: Process Mining Software Repositories to Identify Inefficiencies, Imperfections, and Enhance Existing Process Capabilities Nirikshan: Process Mining Software Repositories to Identify Inefficiencies, Imperfections, and Enhance Existing Process Capabilities Monika Gupta monikag@iiitd.ac.in PhD Advisor: Dr. Ashish Sureka Industry

More information

Recommending change clusters to support software investigation: an empirical study

Recommending change clusters to support software investigation: an empirical study JOURNAL OF SOFTWARE MAINTENANCE AND EVOLUTION: RESEARCH AND PRACTICE J. Softw. Maint. Evol.: Res. Pract. 2010; 22:143 164 Published online 9 September 2009 in Wiley InterScience (www.interscience.wiley.com)..413

More information

Semantic Jira - Semantic Expert Finder in the Bug Tracking Tool Jira

Semantic Jira - Semantic Expert Finder in the Bug Tracking Tool Jira Semantic Jira - Semantic Expert Finder in the Bug Tracking Tool Jira Velten Heyn and Adrian Paschke Corporate Semantic Web, Institute of Computer Science, Koenigin-Luise-Str. 24, 14195 Berlin, Germany

More information

Industrial Application of Clone Change Management System

Industrial Application of Clone Change Management System Industrial Application of Clone Change Management System Yuki Yamanaka, Eunjong Choi, Norihiro Yoshida, Katsuro Inoue, Tateki Sano Graduate School of Information Science and Technology, Osaka University,

More information

Principles of integrated software development environments. Learning Objectives. Context: Software Process (e.g. USDP or RUP)

Principles of integrated software development environments. Learning Objectives. Context: Software Process (e.g. USDP or RUP) Principles of integrated software development environments Wolfgang Emmerich Professor of Distributed Computing University College London http://sse.cs.ucl.ac.uk Learning Objectives Be able to define the

More information

Tracking the Impact of Design Changes During Software Development

Tracking the Impact of Design Changes During Software Development Tracking the Impact of Design Changes During Software Development Frank Padberg Fakultät für Informatik Universität Karlsruhe, Germany padberg@ira.uka.de Abstract Design changes occur frequently during

More information

QualitySpy: a framework for monitoring software development processes

QualitySpy: a framework for monitoring software development processes Journal of Theoretical and Applied Computer Science Vol. 6, No. 1, 2012, pp. 35-45 ISSN 2299-2634 http://www.jtacs.org QualitySpy: a framework for monitoring software development processes Marian Jureczko,

More information

Efficient Bug Triaging Using Text Mining

Efficient Bug Triaging Using Text Mining 2185 Efficient Bug Triaging Using Text Mining Mamdouh Alenezi and Kenneth Magel Department of Computer Science, North Dakota State University Fargo, ND 58108, USA Email: {mamdouh.alenezi, kenneth.magel}@ndsu.edu

More information

Classification Algorithms for Detecting Duplicate Bug Reports in Large Open Source Repositories

Classification Algorithms for Detecting Duplicate Bug Reports in Large Open Source Repositories Classification Algorithms for Detecting Duplicate Bug Reports in Large Open Source Repositories Sarah Ritchey (Computer Science and Mathematics) sritchey@student.ysu.edu - student Bonita Sharif (Computer

More information

TSRR: A Software Resource Repository for Trustworthiness Resource Management and Reuse

TSRR: A Software Resource Repository for Trustworthiness Resource Management and Reuse TSRR: A Software Resource Repository for Trustworthiness Resource Management and Reuse Junfeng Zhao 1, 2, Bing Xie 1,2, Yasha Wang 1,2, Yongjun XU 3 1 Key Laboratory of High Confidence Software Technologies,

More information

A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS USING A MACHINE ALGORITHM

A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS USING A MACHINE ALGORITHM A MODEL TO COMPARE THE DEGREE OF REFACTORING OPPORTUNITIES OF THREE PROJECTS USING A MACHINE ALGORITHM Gauri Khurana 1 and Sonika Jindal 2 1 Student, Department of Computer Science, Shaheed Bhagat Singh

More information

Tracing Software Developers Eyes and Interactions for Change Tasks

Tracing Software Developers Eyes and Interactions for Change Tasks Tracing Software Developers Eyes and Interactions for Change Tasks Katja Kevic, Braden M. Walters *, Timothy R. Shaffer *, Bonita Sharif *, David C. Shepherd, Thomas Fritz University of Zurich, Switzerland

More information

Empirical Project Monitor: A Tool for Mining Multiple Project Data

Empirical Project Monitor: A Tool for Mining Multiple Project Data Empirical Project Monitor: A Tool for Mining Multiple Project Data Masao Ohira, Reishi Yokomori, Makoto Sakai, Ken-ichi Matsumoto, Katsuro Inoue, Koji Torii Nara Institute of Science and Technology ohira@empirical.jp,

More information

Supporting Group Awareness in Distributed Software Development

Supporting Group Awareness in Distributed Software Development Supporting Group Awareness in Distributed Software Development Carl Gutwin, Kevin Schneider, David Paquette, and Reagan Penner Department of Computer Science, University of Saskatchewan Computer Science

More information

Mining Software Repositories for Software Change Impact Analysis: A Case Study

Mining Software Repositories for Software Change Impact Analysis: A Case Study Mining Software Repositories for Software Change Impact Analysis: A Case Study Lile Hattori 1, Gilson dos Santos Jr. 2, Fernando Cardoso 2, Marcus Sampaio 2 1 Faculty of Informatics University of Lugano

More information

How To Write A Rulebook In Anib Websphere Jrules

How To Write A Rulebook In Anib Websphere Jrules Jerome Boyer Hafedh Mili Agile Business Rule Development Process, Architecture, and JRules Examples 4y Springer Contents Part I Introduction 1 Introduction to Business Rules 3 1.1 What Are Business Rules?

More information

It s not a Bug, it s a Feature: How Misclassification Impacts Bug Prediction

It s not a Bug, it s a Feature: How Misclassification Impacts Bug Prediction It s not a Bug, it s a Feature: How Misclassification Impacts Bug Prediction Kim Herzig Saarland University Saarbrücken, Germany herzig@cs.uni-saarland.de Sascha Just Saarland University Saarbrücken, Germany

More information

How We Refactor, and How We Know It

How We Refactor, and How We Know It How We Refactor, and How We Know It Emerson Murphy-Hill Portland State University emerson@cs.pdx.edu Chris Parnin Georgia Institute of Technology chris.parnin@gatech.edu Andrew P. Black Portland State

More information

Change Impact Analysis with Stochastic Dependencies

Change Impact Analysis with Stochastic Dependencies Change Impact Analysis with Stochastic Dependencies Sunny Wong, Yuanfang Cai, and Michael Dalton Drexel University Philadelphia, PA, USA {sunny, yfcai, mcd45}@cs.drexel.edu ABSTRACT Researchers have shown

More information

Génie Logiciel et Gestion de Projets. Evolution

Génie Logiciel et Gestion de Projets. Evolution Génie Logiciel et Gestion de Projets Evolution 1 Roadmap Evolution: definitions Re-engineering Legacy systems Reverse engineering Software Visualisation Re-engineering Patterns 2 Evolution: Definitions

More information

Program Understanding in Software Engineering

Program Understanding in Software Engineering Taming the complexity: The need for program understanding in software engineering Raghvinder S. Sangwan, Ph.D. Pennsylvania State University, Great Valley School of Graduate Professional Studies Robert

More information

Lecture 2 - Design. 1) Why would you want to make a radical problem normal? We know how to solve normal problems already.

Lecture 2 - Design. 1) Why would you want to make a radical problem normal? We know how to solve normal problems already. Lecture 2 - Design 1) Why would you want to make a radical problem normal? We know how to solve normal problems already. Lecture 3 - Context 1) What are the 4 criteria for design analysis? a) Fitness for

More information

Role of Functional Clones in Software Development

Role of Functional Clones in Software Development ISBN 978-93-84468-20-0 Proceedings of 2015 International Conference on Future Computational Technologies (ICFCT'2015) Singapore, March 29-30, 2015, pp. 41-47 Role of Functional in Software Development

More information

An Eclipse Plugin to Support Code Smells Detection

An Eclipse Plugin to Support Code Smells Detection An Eclipse Plugin to Support Code Smells Detection Tiago Pessoa 1, Fernando Brito e Abreu 2,1, Miguel Pessoa Monteiro 3,1, Sérgio Bryton 1 1 CITI/FCT/UNL, Campus da Caparica, 2829-516 Caparica, Portugal

More information

Empirical study of software quality evolution in open source projects using agile practices

Empirical study of software quality evolution in open source projects using agile practices 1 Empirical study of software quality evolution in open source projects using agile practices Alessandro Murgia 1, Giulio Concas 1, Sandro Pinna 1, Roberto Tonelli 1, Ivana Turnu 1, SUMMARY. 1 Dept. Of

More information

Agile Development with C#

Agile Development with C# Agile Development with C# Paweł Jarosz, pjarosz@pk.edu.pl Cracow University of Technology, Poland Jyvaskyla University of Applied Sciences, February 2009 Paweł Jarosz who am I? M.Sc. of Applied Physics

More information

SERG. Evaluating the Lifespan of Code Smells using Software Repository Mining

SERG. Evaluating the Lifespan of Code Smells using Software Repository Mining Delft University of Technology Software Engineering Research Group Technical Report Series Evaluating the Lifespan of Code Smells using Software Repository Mining Ralph Peters, Andy Zaidman Report TUD-SERG-2012-003

More information

VISUALIZATION APPROACH FOR SOFTWARE PROJECTS

VISUALIZATION APPROACH FOR SOFTWARE PROJECTS Canadian Journal of Pure and Applied Sciences Vol. 9, No. 2, pp. 3431-3439, June 2015 Online ISSN: 1920-3853; Print ISSN: 1715-9997 Available online at www.cjpas.net VISUALIZATION APPROACH FOR SOFTWARE

More information

Is It Dangerous to Use Version Control Histories to Study Source Code Evolution?

Is It Dangerous to Use Version Control Histories to Study Source Code Evolution? Is It Dangerous to Use Version Control Histories to Study Source Code Evolution? Stas Negara, Mohsen Vakilian, Nicholas Chen, Ralph E. Johnson, and Danny Dig Department of Computer Science University of

More information

An Empirical Investigation into the Role of API-Level Refactorings during Software Evolution

An Empirical Investigation into the Role of API-Level Refactorings during Software Evolution An Empirical Investigation into the Role of API-Level Refactorings during Software Evolution ABSTRACT Miryung Kim The University of Texas at Austin Austin TX miryung@ece.utexas.edu It is widely believed

More information

25 november 2008. SAAB Training Systems SESAM - Nov 2008, Göran Calås

25 november 2008. SAAB Training Systems SESAM - Nov 2008, Göran Calås 1 Projekthantering vid MDE Konfigurations och projekt/linjestyrning med Model-Driven Engineering Göran Calås Project Manager Systems Architect Nov 20, 2008 goran.calas@saabgroup.com +46 768 967167 2 Göran

More information

Concern Highlight: A Tool for Concern Exploration and Visualization

Concern Highlight: A Tool for Concern Exploration and Visualization Concern Highlight: A Tool for Concern Exploration and Visualization Eugen C. Nistor André van der Hoek Department of Informatics School of Information and Computer Sciences University of California, Irvine

More information

Enriching SE Ontologies with Bug Report Quality

Enriching SE Ontologies with Bug Report Quality Enriching SE Ontologies with Bug Report Quality Philipp Schuegerl 1, Juergen Rilling 1, Philippe Charland 2 1 Department of Computer Science and Software Engineering, Concordia University, Montreal, Canada

More information

Automatic bug triage using text categorization

Automatic bug triage using text categorization Automatic bug triage using text categorization Davor Čubranić Department of Computer Science University of British Columbia 201 2366 Main Mall Vancouver, BC, V6T 1Z4 cubranic@cs.ubc.ca Gail C. Murphy Department

More information

Evaluating Emerging Software Development Technologies: Lessons Learned from Assessing Aspect-Oriented Programming

Evaluating Emerging Software Development Technologies: Lessons Learned from Assessing Aspect-Oriented Programming Evaluating Emerging Software Development Technologies: Lessons Learned from Assessing Aspect-Oriented Programming Murphy, Walker, Baniassad IEEE Transactions on Software Engineering Vol. 25, No. 4, July/August

More information

Profiling and Testing with Test and Performance Tools Platform (TPTP)

Profiling and Testing with Test and Performance Tools Platform (TPTP) Profiling and Testing with Test and Performance Tools Platform (TPTP) 2009 IBM Corporation and Intel Corporation; made available under the EPL v1.0 March, 2009 Speakers Eugene Chan IBM Canada ewchan@ca.ibm.com

More information

Supporting Natural Language Queries across the Requirements Engineering Process

Supporting Natural Language Queries across the Requirements Engineering Process Supporting Natural Language Queries across the Requirements Engineering Process Sugandha Lohar School of Computing DePaul University, Chicago, IL, 60604, USA slohar@cs.depaul.edu Abstract. [Context and

More information

Migrating an Identity Resolution software to open source

Migrating an Identity Resolution software to open source Migrating an Identity Resolution software to open source www.xoriant.com Client Overview Our client is a leading developer and provider of identity resolution (entity analytics) software for government

More information

Description. Benefits. Requirements. Selection process. Duration

Description. Benefits. Requirements. Selection process. Duration PHP development Be part of a team that implements a web application displaying products from different affiliate platforms using their available API s. The application is developed using PhalconPHP framework

More information

Introduction (Apps and the Android platform)

Introduction (Apps and the Android platform) Introduction (Apps and the Android platform) CE881: Mobile and Social Application Programming Simon Lucas & Spyros Samothrakis January 13, 2015 1 / 38 1 2 3 4 2 / 38 Course Structure 10 weeks Each week:

More information

Augmenting software development with information scripting

Augmenting software development with information scripting Augmenting software development with information scripting Master Thesis Description Lukas Vogel luvogel@student.ethz.ch May 26, 2015 1 Introduction Today s large software projects are associated with

More information

Agile Software Engineering, a proposed extension for in-house software development

Agile Software Engineering, a proposed extension for in-house software development Journal of Information & Communication Technology Vol. 5, No. 2, (Fall 2011) 61-73 Agile Software Engineering, a proposed extension for in-house software development Muhammad Misbahuddin * Institute of

More information

BUGMINER: Software Reliability Analysis Via Data Mining of Bug Reports

BUGMINER: Software Reliability Analysis Via Data Mining of Bug Reports BUGMINER: Software Reliability Analysis Via Data Mining of Bug Reports Leon Wu Boyi Xie Gail Kaiser Rebecca Passonneau Department of Computer Science Columbia University New York, NY 10027 USA {leon,xie,kaiser,becky}@cs.columbia.edu

More information

CSC408H Lecture Notes

CSC408H Lecture Notes CSC408H Lecture Notes These lecture notes are provided for the personal use of students taking Software Engineering course in the Summer term 2005 at the University of Toronto. Copying for purposes other

More information

Software Developer Activity as a Source for Identifying Hidden Source Code Dependencies

Software Developer Activity as a Source for Identifying Hidden Source Code Dependencies Software Developer Activity as a Source for Identifying Hidden Source Code Dependencies Martin Konôpka, Mária Bieliková Slovak University of Technology, Faculty of Informatics and Information Technologies,

More information

Who Should Fix This Bug?

Who Should Fix This Bug? Who Should Fix This Bug? John Anvik, Lyndon Hiew and Gail C. Murphy Department of Computer Science University of British Columbia {janvik, lyndonh, murphy}@cs.ubc.ca ABSTRACT Open source development projects

More information

JRefleX: Towards Supporting Small Student Software Teams

JRefleX: Towards Supporting Small Student Software Teams JRefleX: Towards Supporting Small Student Software Teams Kenny Wong, Warren Blanchet, Ying Liu, Curtis Schofield, Eleni Stroulia, Zhenchang Xing Department of Computing Science University of Alberta {kenw,blanchet,yingl,schofiel,stroulia,xing}@cs.ualberta.ca

More information

Animated Visualization of Software History using Evolution Storyboards

Animated Visualization of Software History using Evolution Storyboards Animated Visualization of Software History using Evolution Storyboards Dirk Beyer EPFL, Switzerland Ahmed E. Hassan University of Victoria, Canada Abstract The understanding of the structure of a software

More information

Intelligent Analysis of User Interactions in a Collaborative Software Engineering Context

Intelligent Analysis of User Interactions in a Collaborative Software Engineering Context Intelligent Analysis of User Interactions in a Collaborative Software Engineering Context Alejandro Corbellini 1,2, Silvia Schiaffino 1,2, Daniela Godoy 1,2 1 ISISTAN Research Institute, UNICEN University,

More information

9/11/15. What is Programming? CSCI 209: Software Development. Discussion: What Is Good Software? Characteristics of Good Software?

9/11/15. What is Programming? CSCI 209: Software Development. Discussion: What Is Good Software? Characteristics of Good Software? What is Programming? CSCI 209: Software Development Sara Sprenkle sprenkles@wlu.edu "If you don't think carefully, you might think that programming is just typing statements in a programming language."

More information

Quality Assurance of Software Models within Eclipse using Java and OCL

Quality Assurance of Software Models within Eclipse using Java and OCL Quality Assurance of Software Models within Eclipse using Java and OCL Dr. Thorsten Arendt Modellgetriebene Softwareentwicklung mobiler Anwendungen Wintersemester 2014/15 17. Dezember 2014 Outline Why

More information

Percerons: A web-service suite that enhance software development process

Percerons: A web-service suite that enhance software development process Percerons: A web-service suite that enhance software development process Percerons is a list of web services, see http://www.percerons.com, that helps software developers to adopt established software

More information

Software Visualization Tools for Component Reuse

Software Visualization Tools for Component Reuse Software Visualization Tools for Component Reuse Craig Anslow Stuart Marshall James Noble Robert Biddle 1 School of Mathematics, Statistics and Computer Science, Victoria University of Wellington, New

More information

Information Management

Information Management Information Management Dr Marilyn Rose McGee-Lennon mcgeemr@dcs.gla.ac.uk What is Information Management about Aim: to understand the ways in which databases contribute to the management of large amounts

More information

ASSISTING REFACTORING TOOL DEVELOPMENT THROUGH REFACTORING CHARACTERIZATION

ASSISTING REFACTORING TOOL DEVELOPMENT THROUGH REFACTORING CHARACTERIZATION ASSISTING REFACTORING TOOL DEVELOPMENT THROUGH REFACTORING CHARACTERIZATION Raúl Marticorena, Carlos López Language and Informatic Systems, University of Burgos, EPS Campus Vena Edificio C, Burgos, Spain

More information

The way to good code

The way to good code Refactoring from handcraft to machines August 14, 2007 And not about silly star wars toys! Agenda 1 Introduction 2 Bad Code 3 Refactoring 4 Thanks and Questions Who we are Mirko Stocker Leo Büttiker Studied

More information

B API Usage Examples and Their Models

B API Usage Examples and Their Models ExPort: Detecting and Visualizing API Usages in Large Source Code Repositories Evan Moritz 1, Mario Linares-Vásquez 1, Denys Poshyvanyk 1, Mark Grechanik 2, Collin McMillan 3, Malcom Gethers 4 1 The College

More information

Department of Veterans Affairs. Open Source Electronic Health Record (EHR) Services

Department of Veterans Affairs. Open Source Electronic Health Record (EHR) Services Department of Veterans Affairs Open Source Electronic Health Record (EHR) Services Web Application Automated Testing Framework (WAATF) Software Design Document (SDD) Version 1.0 September 2013 Contract:

More information

Agile Techniques for Object Databases

Agile Techniques for Object Databases db4o The Open Source Object Database Java and.net Agile Techniques for Object Databases By Scott Ambler 1 Modern software processes such as Rational Unified Process (RUP), Extreme Programming (XP), and

More information

Software Intelligence: The Future of Mining Software Engineering Data

Software Intelligence: The Future of Mining Software Engineering Data Software Intelligence: The Future of Mining Software Engineering Data ABSTRACT Ahmed E. Hassan School of Computing Queen s University Kingston, ON, Canada ahmed@cs.queensu.ca Mining software engineering

More information

Editors Comparison (NetBeans IDE, Eclipse, IntelliJ IDEA)

Editors Comparison (NetBeans IDE, Eclipse, IntelliJ IDEA) České vysoké učení technické v Praze Fakulta elektrotechnická Návrh Uživatelského Rozhraní X36NUR Editors Comparison (NetBeans IDE, Eclipse, ) May 5, 2008 Goal and purpose of test Purpose of this test

More information

JSquash: Source Code Analysis of Embedded Database Applications for Determining SQL Statements

JSquash: Source Code Analysis of Embedded Database Applications for Determining SQL Statements JSquash: Source Code Analysis of Embedded Database Applications for Determining SQL Statements Dietmar Seipel 1, Andreas M. Boehm 1, and Markus Fröhlich 1 University of Würzburg, Department of Computer

More information

CHAPTER 2 LITERATURE SURVEY

CHAPTER 2 LITERATURE SURVEY CHAPTER 2 LITERATURE SURVEY This chapter describes the survey of existing literature on multiple views. Later, it presents literature survey conducted on frameworks for tool comparison and stakeholder

More information

Mining Logical Clones in Software: Revealing High-Level Business and Programming Rules

Mining Logical Clones in Software: Revealing High-Level Business and Programming Rules Mining Logical Clones in Software: Revealing High-Level Business and Programming Rules Wenyi Qian, Xin Peng, Zhenchang Xing, Stan Jarzabek, and Wenyun Zhao Software School, Fudan University, Shanghai,

More information

Exploiting Dynamic Information in IDEs Eases Software Maintenance

Exploiting Dynamic Information in IDEs Eases Software Maintenance Exploiting Dynamic Information in IDEs Eases Software Maintenance David Röthlisberger Software Composition Group, University of Bern, Switzerland roethlis@iam.unibe.ch Abstract The integrated development

More information

Application Testing Suite Oracle Load Testing Introduction

Application Testing Suite Oracle Load Testing Introduction Application Testing Suite Oracle Load Testing Introduction ATS Load Testing Workshop Bangalore, India September 24 / 25 2012 Yutaka Takatsu ATS Group Product Manager Oracle Enterprise Manager - ATS 1 Agenda

More information

AWERProcedia Information Technology & Computer Science

AWERProcedia Information Technology & Computer Science AWERProcedia Information Technology & Computer Science Vol 03 (2013) 1157-1162 3 rd World Conference on Information Technology (WCIT-2012) Webification of Software Development: General Outline and the

More information

Facilitating Students Collaboration and Learning in a Question and Answer System

Facilitating Students Collaboration and Learning in a Question and Answer System Facilitating Students Collaboration and Learning in a Question and Answer System Chulakorn Aritajati Intelligent and Interactive Systems Laboratory Computer Science & Software Engineering Department Auburn

More information