Program Comprehension
44 Followers
Recent papers in Program Comprehension
One of the main challenges faced by today's developers is keeping up with the staggering amount of source code that needs to be read and understood. In order to help developers with this problem and reduce the costs associated with it,... more
System evolution depends greatly on the ability of a maintainer to locate source code that is specific to feature implementation. Existing feature location techniques require either exercising several features of the system, or rely... more
In this paper a new maintenance scenario is outlined based on refactoring techniques. Specifically, refactoring techniques are classified according to two opposed program properties: understanding and efficiency. Understanding oriented... more
Developing software is a complex mental activity, requiring extensive technical knowledge and abstraction capabilities. The tangible part of development is the use of tools to read, inspect, edit, and manipulate source code, usually... more
The area of program comprehension comprises a vast body of literature, with numerous conflicting models having been proposed. Models are typically grounded in experimental studies mostly involving experienced programmers. The question of... more
This study explored the quality of obstetric care in public-sector facilities and the constraints to programming comprehensive essential obstetric care (EOC) services in rural areas of Khulna and Sylhet divisions, relatively high-and... more
One of the main challenges faced by today's developers is keeping up with the staggering amount of source code that needs to be read and understood. In order to help developers with this problem and reduce the costs associated with it,... more
This study examines the effect of individual differences on the program comprehension strategies of users working with an unfamiliar programming system. Participants of varying programming expertise were given a battery of psychological... more
This paper reports on an empirical study of the cognitive processes involved in program comprehension. Verbal protocols were gathered from professional programmers as they were engaged in a program-understanding task. Based on analysis of... more
In my PhD thesis I argued that we need to make our software analysis tools work beyond individual software systems at the level of software ecosystems. I gave two reasons for this: (1) by analyzing a system in context we can better... more
By the early 1990s the need for reengineering legacy systems was already acute, but recently the demand has increased significantly with the shift toward web-based user interfaces. The demand by all business sectors to adapt their... more
The understanding of the behavioural aspects of a software system is an important enabler for many reverse engineering activities. The behaviour of software is typically represented in the form of execution traces. Traces, however, can be... more
This paper presents a cognitive framework for describing behaviors involved in program composition, comprehension, debugging, modification, and the acquisition of new programming concepts, skills, and knowledge. An information processing... more
Previous studies on program comprehension were carried out largely in the context of procedural languages. Our purpose is to develop and evaluate a cognitive model of object-oriented (OO) program understanding. Our model is based on the... more
THE ADHERENCE OF OPEN SOURCE JAVA PROGRAMMERS TO STANDARD CODING PRACTICES Mahmoud O. Elish Department of Computer Science George Mason University Fairfax VA 22030-4400 USA [email protected] Jeff Offutt† Information and Software Engineering... more
The paper presents an overview of the role of concepts in program comprehension. It discusses concept location, in which the implementation of a specific concept is located in the code. This process is very common and precedes a large... more
Users are often at best an afterthought among software developerseven when they themselves are the users! Usability of programming languages and tools is all too often equated with raw functionality or casually dismissed as a matter of... more
Recent research in the field of object-oriented software engineering has been focusing on the usage of software metrics for the assessment of a product's quality. Software design coupling metrics include some of the most widely applicable... more
Informative identifiers are made up of full (natural language) words and (meaningful) abbreviations. Readers of programs typically have little trouble understanding the purpose of identifiers composed of full words. In addition, those... more
Given the importance of identifier names and the value of naming conventions to program comprehension, we speculated in previous work whether a connection exists between the quality of identifier names and software quality. We found that... more
One reason debugging is the most time-consuming part of software development is because developers struggle to map their questions about a program's behavior onto debugging tools' limited support for analyzing code. Interrogative... more
JavaScript is the main scripting language for Web browsers, and it is essential to modern Web applications. Programmers have started using it for writing complex applications, but there is still little tool support available during... more
Dans cet article, nous aborderons certains aspects du fonctionnement de la perception auditive de l'espace en tant qu'éléments opératoires utilisables dans la création sonore et musicale. Nous analyserons les techniques de mise en espace... more
In the software engineering literature, many works claim that the use of design patterns improves the comprehensibility of programs and, more generally, their maintainability. Yet, little work attempted to study the impact of design... more
Developers may introduce anti-patterns in their software systems because of time pressure, lack of understanding, communication, and-or skills. Anti-patterns impede development and maintenance activities by making the source code more... more
Conditioned slicing can be applied to reverse engineering problems which involve the extraction of executable fragments of code in the context of some criteria of interest. This paper introduces ConSUS, a conditioner for the Wide Spectrum... more
An approach to recommend a ranked list of developers to assist in performing software changes given a textual change request is presented. The approach employs a two-fold strategy. First, a technique based on information retrieval is put... more
Scenario diagrams are useful for helping software developers to understand the interactions among the components of a software system. In this paper, we present a semiautomatic approach to extracting scenarios from the implementation of a... more
By the early 1990s the need for reengineering legacy systems was already acute, but recently the demand has increased sig- nificantly with the shift toward web-based user interfaces. The demand by all business sectors to adapt their... more
1 Program comprehension is a key prerequisite for the maintainance and analysis of legacy software systems. Knowing about the presence of design patterns or antipatterns in a software system can significantly improve the program... more
An approach is presented to automatically determine a class's stereotype. The stereotype is based on the frequency and distribution of method stereotypes in the class. Method stereotypes are automatically determined using a defined... more
to Television GHBLD DEVELOPMENT, 1981, 52, 151-157 2 studies tested the hypothesis that TV program comprehensibihty is a major determmant of preschoolers' attenbon to television The first study found that 3-and 5-year-olds' visual... more
The scope of software visualization tools which exist for the navigation, analysis and presentation of software information varies widely. One class of tools, which we refer to as Software exploration tools, provides graphical... more
Early experiments have suggested that program auralization can convey information about program structure [8]. Languages like Pascal contain classes of construct that are similar in nature allowing hierarchical classification of their... more
The authors have explored ways to enhance users' comprehension of complex applications using music and special sound effects to present application program events that are difficult to visually detect. A prototype system, InfoSound,... more
The Boston HAPPENS Program is a collaborative network of care consisting of multiservice outreach agencies; community health centers; and hospitals for HIV-positive, homeless, and hard-to-reach youth. In four years of data collection, the... more
This paper presents ongoing work on using data mining to discover knowledge about software systems thus facilitating program comprehension. We discuss how this work fits in the context of tool supported maintenance and comprehension and... more
This paper describes an analysis scheme which was developed to probe the comprehension of computer programming languages by students learning to program. The scheme operates on free-form program summaries, i.e. textual descriptions of a... more
Automatic program comprehension applications, which try to extract programming knowledge from program code, share many fea- tures of human program comprehension models. However, the human trait of learning seems to be missing among the... more
Program comprehension is a complex problem solving process. We report on an experiment that studies expert programmers' comprehension behavior in the context of modifying a complex PASCAL program.