1 / 18

Direction and Scope of Comprehension-Related Activities by Procedural and OO Programmers: An Empirical Study

Direction and Scope of Comprehension-Related Activities by Procedural and OO Programmers: An Empirical Study. Paper By: Cynthia L. Corritore , Susan Wiedenbeck Presentation By: Abdulkareem Alali. Cynthia L. Corritore . Position:

normandy
Télécharger la présentation

Direction and Scope of Comprehension-Related Activities by Procedural and OO Programmers: An Empirical Study

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Direction and Scope of Comprehension-Related Activitiesby Procedural and OO Programmers: An Empirical Study Paper By: Cynthia L. Corritore , Susan Wiedenbeck Presentation By: Abdulkareem Alali

  2. Cynthia L. Corritore. • Position: • Associate Professor, Information Systems and Technology, College of Business Administration, Creighton University. • Research: • Online Trust and e-commerce (in business and health care) Technology and Ethics • Comprehension models and strategies in programmers, expert and novice. • Educational strategies and paradigms with technology. • Susan Wiedenbeck. • Position: • Professor, Ph.D. Program Director, iSchool at the University of Pittsburgh. • Research: • human-computer interaction. • empirical studies of end-user programming.

  3. Study Highlights • What information sources programmers use to understand programs during maintenance activities?Scope of comprehension activities. • How the use of the information sources evolves over time? Direction of comprehension activities. • what effect the programming paradigm has on program understanding during maintenance? Procedural vs. OO comprehension. This study track the knowledge sources used by expert programmers during maintenance of a program.

  4. Scope of Comprehension Activities Breadth of familiarity with the program gained by the programmer during comprehension activities. • Systematic strategy: • A broad understanding of the program before modifications. • As-needed strategy: • Minimize the amount of code that has to be understood. • Concentrates on the functioning of selected local parts of the code that are critically involved in the modification.

  5. Direction of Comprehension Activities • Whether the strategic approach to program comprehension is top-down, bottom-up, or a mixture of the two. • A top-down approach appears with understanding; when programmer works in a familiar domain (plans). • A bottom-up approach is for new code and unfamiliar domains.

  6. A bottom-up: Pennington,10KLOC. • Developing a program model: A control flow abstraction from code, Then • Forming a domain model: Data flow and functional abstractions. • Switches from top-down to bottom-up comprehension is frequent, because domain knowledge is different for each part of the program.

  7. Procedural vs. OO Comprehension • No difference in comprehension of function and data flow by the two groups. • OO programmers initially developed stronger knowledge of program structure including the relationships of program objects (domain-level). Poorer knowledge of specific operations and control flow. • After modifying the program, OO programmers improve their program-level knowledge to equal that of the procedural programmers.

  8. Research Questions • Is whether OO experts show a more top-down direction of comprehension activities than procedural experts? - OO-style more structured and emphasis on objects, hierarchy; facilitate a more top-down strategy. • Is whether OO experts have a narrower scope of comprehension activities than procedural experts? - OO objects encapsulate data and functionality. Changes are internal to the object. Means less broad knowledge of the program as a whole. • Is how comprehension strategies change over repeated modification of the same program? - A narrow scope of comprehension activities in initial maintenance of a program may incrementally become a wide scope, as a programmer works with a program over time.

  9. Experiment Setup • Participants • BS degrees in CS or Eng. Average 11.6 years programming. 15 OO/C++ vs. 15 Procedural/C. • Materials • .cc, .h and documentation. 3 levels of abstraction ordered increasingly. • Two functionally equivalent versions of a database program procedural C and OO C++. Same algorithm, length, variable names, very close documentation. • No internal commits but extensive external documents; • Procedure • On-line materials in a graphical Unix environment, Only one document visible at a time. To determine what materials accessed. • Screen capture software records participants’ use of the materials. • Data were collected in three tasks: the study phase and the two modifications.

  10. Findings: Scope Comprehension (1) • The scope of comprehension measured as the proportion of files accessed. • Koenemannand Robertson: Accesses are relevant to programming tasks (localized). This study shows a broader scope of comprehension (more files, functions accessed). • Knowledge accumulates over different tasks on the same program. A greater scope of access to files initially in studying the program. • During the two modification phases scope became narrower and more focused on lower level file access rates, Not much narrowing! 40%- 20% pre-study. Greater complexity of the tasks.

  11. Findings: Scope Comprehension (2) • In a week experiment, programmers return to their code changes, an on-going need to re-familiarize themselves with a program. • Procedural group had a greater scope of comprehension than the OO group. 59% vs. 40% for OO group. More scattered in the procedural paradigm. • In modification tasks, OO group had a narrower scope because encapsulation made the changes more local to a specific class and protected the rest of the program from effects of the changes.

  12. Findings: Direction Comprehension(1) • The direction of comprehension is measured as the level of abstraction of files accessed. • The direction was mixed. Bottom-up was more prevalent, higher access rates to implementation and header files compared to documentation files.

  13. Findings: Direction Comprehension(2) • Direction of comprehension was influenced by phase of the experiment and the paradigm. • During the study period, OO guys used a top-down strongly rely on documentation: 90% documentation files to 60% – 70% of the other files. • Procedural participants used a more bottom-up strategy same period, 60% documentation files but 85% – 90% of the header and implementation files.

  14. Findings: Direction Comprehension(3) • OO group changed their strategy more over time. • Bottom-up orientation was needed to gather all of the information needed to carry out the modifications. • A mixed strategy and the change over time suggest the type of activity. • The programmer’s history of experience with the program play important roles in the direction of comprehension.

  15. Conclusions • Procedural and the OO group, scope comprehension was greater during the initial study period, then narrowed during the modifications. • The scope of comprehension was broader in the procedural than the OO group. • Both use Bottom-up when making successive modifications to the program. • Study phase, OO programmers utilize a top-down orientation. Procedural programmers more strongly bottom-up even during this early phase.

  16. I think … • An interesting study and inspiring, But 30 programs is a small group. 2000 paper! Online Experiments! • Nothing mentioned about how file navigation was? How that effects on counting? • Counting accesses should be supported with many other parameters like: order of files, highly focused locations in files (eye tracking/time, window slicing/time), time spent on each file, ... • Do comprehension activities on OO languages differ?. C++ vs. Java. • It would be interesting to find the frequent sequential patterns for files comprehended. • Re-do the analysis on big open source systems with long histories(eclipse plug-in to track system dev.)

  17. References Direction and Scope of Comprehension-Related Activities by Procedural and Object-Oriented Programmers: An Empirical Study, Cynthia L. Corritore Susan Wiedenbeck.

  18. END

More Related