HOW DO PROFESSIONAL DEVELOPERS COMPREHEND TO SOFTWARE Report submitted by Tobias Roehm, Rebecca Tiarks, Rainer Koschke, Walid Maalej.

Slides:



Advertisements
Similar presentations
Testing Relational Database
Advertisements

The Response Process Model as a Tool for Evaluating Business Surveys Deirdre Giesen Statistics Netherlands Montreal, June 20th 2007 ICES III.
MMAP Middle School Math Through Applications Project Dahwun Deepak Gazi Scott Sun-Young.
What is Software Design?. Systems Development Life- Cycle Planning Analysis Design Implementation Design.
Putting Research Evidence to Work Research Seminar 14 th January 2009.
Chapter 10 Schedule Your Schedule. Copyright 2004 by Pearson Education, Inc. Identifying And Scheduling Tasks The schedule from the Software Development.
Computer Applications in Testing and Assessment James P. Sampson, Jr. Florida State University Copyright 2002 by James P. Sampson, Jr., All Rights Reserved.
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
CfE Higher Physical Education
IS 214 Needs Assessment and Evaluation of Information Systems Managing Usability © Copyright 2001 Kevin McBride.
Narrative and Case Study Representing Diverse Viewpoints.
Knowledge Acquisition. Knowledge Aquisition Definition – The process of acquiring, organising, & studying knowledge. Identified by many researchers and.
© 2010 Cengage Learning. Atomic Dog is a trademark used herein under license. All rights reserved. Chapter 4 Analyzing Jobs.
3 Chapter Needs Assessment.
Course Instructor: Aisha Azeem
Testing Dojo Łukasz Kempny Autor: Łukasz KempnyCopyright© Future Processing 2012.
Chapter 3 Needs Assessment
How Do Professional Developers Comprehend Software ? Ninad Malvankar.
Design Patterns Discussion of pages: xi-11 Sections: Preface, Forward, Chapter
Copyright 2010, The World Bank Group. All Rights Reserved. Training and Procedural Manuals Section A 1.
S/W Project Management
BSBIMN501A QUEENSLAND INTERNATIONAL BUSINESS ACADEMY.
Software testing and development for intended quality Tero Pesonen.
Requirements Analysis
Kazakhstan Centres of Excellence Teacher Education Programme Assessment of teachers at Level Two.
Chapter 11: An Evaluation Framework Group 4: Tony Masi, Sam Esswein, Brian Rood, & Chris Troisi.
1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
Demystifying the Business Analysis Body of Knowledge Central Iowa IIBA Chapter December 7, 2005.
Scientific Inquiry Mr. Wai-Pan Chan Scientific Inquiry Research & Exploratory Investigation Scientific inquiry is a way to investigate things, events.
3.08 b Determine venture’s information technology.
INT-Evry (Masters IT– Soft Eng)IntegrationTesting.1 (OO) Integration Testing What: Integration testing is a phase of software testing in which.
Multimedia Specification Design and Production 2013 / Semester 1 / week 9 Lecturer: Dr. Nikos Gazepidis
Protocols for Mathematics Performance Tasks PD Protocol: Preparing for the Performance Task Classroom Protocol: Scaffolding Performance Tasks PD Protocol:
Evaluating a Research Report
WELNS 670: Wellness Research Design Chapter 5: Planning Your Research Design.
Human Computer Interaction
1 Knowledge & Knowledge Management “Knowledge is power” to “Sharing K is power” Yaseen Hayajneh, PhD.
Assumes that events are governed by some lawful order
Lecture 7: Requirements Engineering
Integrated Risk Management Charles Yoe, PhD Institute for Water Resources 2009.
Assessing the influence on processes when evolving the software architecture By Larsson S, Wall A, Wallin P Parul Patel.
Requirement Handling
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Writing Software Documentation A Task-Oriented Approach Thomas T. Barker Chapter 5: Analyzing Your Users Summary Cornelius Farrell Emily Werschay February.
Design Process … and some design inspiration. Course ReCap To make you notice interfaces, good and bad – You’ll never look at doors the same way again.
Database Administration
By Germaine Cheung Hong Kong Computer Institute
Towards understanding programs through wear-based filtering Robert DeLine Amir Khella Mary Czerwinski George Robertson Microsoft Corporation SoftVis 2005.
Action Research Qualitative Inquiry in Practice AACTE ANNUAL MEETING 2007 New York Dr. Dorothy Valcarcel Craig Ms. Kathyrn.
EVALUATION PROfessional network of Master’s degrees in Informatics as a Second Competence – PROMIS ( TEMPUS FR-TEMPUS-JPCR)
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Copyright © 2014 by The University of Kansas Data Collection: Designing an Observational System.
Software Quality Assurance and Testing Fazal Rehman Shamil.
Writing a Professional Development Plan.  Step 1–Identify Indicators to be Assessed  Step 2 –Determine Average Baseline Score  Step 3 –Develop a Growth.
Advances In Software Inspection
“The Role of Experience in Software Testing Practice” A Review of the Article by Armin Beer and Rudolf Ramler By Jason Gero COMP 587 Prof. Lingard Spring.
Evaluation / Usability. ImplementDesignAnalysisEvaluateDevelop ADDIE.
Design Evaluation Overview Introduction Model for Interface Design Evaluation Types of Evaluation –Conceptual Design –Usability –Learning Outcome.
Software Design and Development Development Methodoligies Computing Science.
Activity Design Goal: work from problems and opportunities of problem domain to envision new activities.
© 2013 TILA 1 Organizing telecollaboration projects TILA Teacher Training Teacher as researcher.
1 International Institute of Business Analysis Vision: The world's leading association for Business Analysis professionals” Mission: To develop and maintain.
Research Design. How do we know what we know? The way we make reasoning Deductive logic Begins with one or more premises, reasoning then proceeds logically.
Software Verification and Validation
ELT 329 ACTION RESEARCH Week 4
Architecture Components
Chapter 2 Software Processes
CS310 Software Engineering Lecturer Dr.Doaa Sami
System Reengineering Restructuring or rewriting part or all of a system without changing its functionality Applicable when some (but not all) subsystems.
Data Collection: Designing an Observational System
Presentation transcript:

HOW DO PROFESSIONAL DEVELOPERS COMPREHEND TO SOFTWARE Report submitted by Tobias Roehm, Rebecca Tiarks, Rainer Koschke, Walid Maalej

INTRODUCTION Program Comprehension-An important activity in the software maintenance. Goal : How programmers in industry understand the programs? Overcome the limitations of the previous researches – 28 developers from different companies of different size using different technologies Main Focus: Strategies followed, information needed and tools used.

STUDY DESIGN  Research Questions  Research Method Observation Interview Testing the Method Evaluation Reliability Measures  Participant Recruitment

Research Questions RQ1: Which strategies (including steps and activities) do developers follow to comprehend programs? RQ2: Which sources of information do developers use during program comprehension? RQ3: Which information is missing? RQ4: Which tools do developers use when understanding programs and how?

Research Method Realistic – Observation of developers in their real work. Replication – questionnaires and a protocol form and describe the study in detail Observation – What developers do? Interviews – Motivation behind the developer’s actions.

Observation: Which activities does a developer perform? Think-aloud method Protocol – current time and description of participants’ actions.

Interview: Gain more insight about rationale behind actions. How and why questions – “Why did you debug?” Testing the Method: Test sessions with a post graduate student. Revise the questions.

Evaluation: Collect the interesting observations, cluster by topic and compare by topic. Compare the answers of different participants. Reliability Measures: Independent peer observations – Observations independently done. Peer debriefing – Each observer discusses with another author. Triangulations of data sources – Observation protocols and interview transcripts. Participant checking – Participant feedback on the findings.

Participant Recruitment Participants – work for software development company Different tasks, project roles, experience, technology, company size

FINDINGS

A. Comprehension Strategies (S1) Employ a recurring, structured comprehension strategy depending on context: Hypothesis1: Developers usually follow a recurring, structured comprehension strategy that varies with the type of task, developer personality, the amount of previous knowledge about the application and the type of application...continued

A. Comprehension Strategies (S2) Follow a problem-solution-test work pattern. Hypothesis2: For tasks including changing source code, developers employ a work pattern with three steps: 1) Identification of the problem (in case of bug fixing) or identification of code locations as starting points (in case of feature implementation), 2) searching for and applying a solution, and 3) testing the correctness of the solution...continued

A. Comprehension Strategies (S3) Interact with UI to test expected program behavior. Hypothesis3: Developers interact with the user interface of the software to test if the application behaves as expected and to find starting points for further inspection...continued

A. Comprehension Strategies (S4) Debug application to elicit runtime information. Hypothesis4: Developers frequently debug the application to acquire runtime information..continued

A. Comprehension Strategies (S5) Clone to avoid comprehension and minimize effort. Hypothesis5: Developers try to avoid comprehension by cloning pieces of code if they cannot comprehend all possible consequences of changes. Hypothesis6: Developers prefer a unified documentation structure to simplify finding information needed for comprehension. Hypothesis7: Developers usually want to get their tasks done rather than comprehend software...continued

A. Comprehension Strategies (S6) Identify starting point for comprehension and filter irrelevant code based on experience Hypothesis8: Experience of developers plays an important role in program comprehension activities and helps to identify starting points for further inspection and to filter out code locations that are irrelevant for the current task...continued

A. Comprehension Strategies (S7) Establish and test hypotheses Hypothesis9: Developers comprehend software by asking and answering questions and establishing and testing hypotheses about application behavior...continued

A. Comprehension Strategies (S8) Take notes to reflect mental model and record knowledge Hypothesis10: Some developers use temporal notes as comprehension support. This externalized knowledge is only used personally. It is neither archived nor reused...continued

B. Information Sources (I1) Source Code is more trusted than documentation. Hypothesis11: Source code is considered a more credible source of information than written documentation, mainly because documentation is often non-existent or outdated

B. Information Sources (I2) Communication is preferred over documentation. Hypothesis12: Communication with colleagues is a more important source of information than written documentation because written documentation is non-existent and some developers prefer direct communication over writing documentation.

B. Information Sources (I3): Standards facilitate comprehension. Hypothesis13: Standardization – the consistent use of naming conventions and a common architecture – allows developers to become familiar with an application quickly and makes program comprehension activities easier and faster

B. Information Sources (I4) Cryptic, meaningless names hamper comprehension Hypothesis14: Cryptic, non-semantic names hamper understanding of a piece of code. Hypothesis15: Naming conventions can help to mitigate this effect but if they are too complicated they can have a negative effect.

B. Information Sources (I5) Rationale and intended usage is important but rare information. Hypothesis16: Knowledge about rationale of the implementer and intended ways of using a piece of code help to comprehend code but this information is rarely documented. Hypothesis17: There is a gap between the interest of developers in this information and the lack of documenting it for their own code.

B. Information Sources (I6) Real usage scenarios are useful but rare. Hypothesis18: The way in which end users use an application is a helpful context information in program comprehension. Hypothesis19: In many cases this information is missing.

C. Tool Usage (T1) Dedicated program comprehension tools are not used. Hypothesis20: Industry developers do not use dedicated program comprehension tools developed by the research community.

C. Tool Usage (T2) Standalone tools are used in addition to IDEs Hypothesis21: During comprehension tasks, IDE and specialized tools are used in parallel by developers, despite the fact that the IDE provides similar features.

C. Tool Usage (T3) Compiler is used to elicit structural information Hypothesis22: The compiler is used by some developers to elicit structural information such as dependencies and usage locations of code elements.

C. Tool Usage (T4) Tool features for comprehension are unknown. Hypothesis23: Developers do not know some standard features of tools.

Implications  Implications for Researchers Investigate the scope of the gap between research and practice. Align research efforts to the needs of industry.  Implications for Tool Vendors Emphasize the need to educate developers to use tools efficiently. Inform the developers about the new features proactively.  Implication for Practitioners Examine the results of the research community. Assess their usefulness, and ask tool vendors to incorporate them in their tools Drawbacks of communication over documentation – Information lost when the expert leaves organization, experts frequently get interrupted from their tasks.

SUMMARY Developers put themselves in the role of end users. Developers try to avoid program comprehension Most observed developers choose from a set of structured comprehension strategies State of the art tools in program comprehension are either unknown or rarely utilized