Program Comprehension
44 Followers
Recent papers in Program Comprehension
With their abstract vocabulary and overly long sentences, patent claims, like several other genres of legal discourse, are notoriously difficult to read and comprehend. The enormous number of both native and non-native users reading... more
Translation between natural language and source code can help software development by enabling developers to comprehend, ideate, search, and write computer programs in natural language. Despite growing interest from the industry and the... more
This study aimed to make a characterization about how information visualization has been applied on software comprehension with relation to techniques and tools proposed by literature. Systematic Mapping was adopted as the method to guide... more
Software complexity measurement has been an agelong quandary in software engineering as the effort used to develop, comprehend, or retain the software depends on so many complicated factors. Measuring and controlling of complexity will... more
Software debugging is a time-consuming and challenging process. Supporting debugging has been a focus of the software engineering field since its inception with numerous empirical studies, theories, and tools to support developers in this... more
Software debugging is a time-consuming and challenging process. Supporting debugging has been a focus of the software engineering field since its inception with numerous empirical studies, theories, and tools to support developers in this... more
Introduction. The comprehension of computer programs is claimed to be a decisive faculty and even skill of any successful exercising professional duties of program engineers, for example, prototype analysis, decision making and... 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
Software complexity measurement has been an agelong quandary in software engineering as the effort used to develop, comprehend, or retain the software depends on so many complicated factors. Measuring and controlling of complexity will... more
Translation between natural language and source code can help software development by enabling developers to comprehend, ideate, search, and write computer programs in natural language. Despite growing interest from the industry and the... more
Code clones convey important information about a software system's design and implementation. Several tools have been proposed to detect code clones. However, mostly the focus so far has been on fragments of duplicated code. In our... more
The communication between the sensor-controllers and the buffering service is achieved using TCP [4]. A failure of the sensor-controller to send signals to the buffering service would be interpreted as the failure of the buffering... more
In studying about programming languages, the important part is to understand the language itself. Learners need to be able to comprehend a program that is completed with syntax, semantic and program flow. Most learners especially the... more
During software development, design rules and contracts in the source code are often encoded through regularities, such as API usage protocols, coding idioms and naming conventions. The structural regularities that govern a program can... more
The communication between the sensor-controllers and the buffering service is achieved using TCP [4]. A failure of the sensor-controller to send signals to the buffering service would be interpreted as the failure of the buffering... more
In this paper, we present the results of one aspect of a multinational, multi-institutional study of computer programming students. Specifically, this paper reports on an exploration of relationships between novice programmers'... more
In object-oriented programming, quality assurance is commonly provided through writing unit tests, to exercise the operations of each class. If unit tests are created and maintained manually, this can be a time-consuming and laborious... more
To our families that have also been through it all, supporting us in their thoughts and prayers "team up your grand plans with measured and steady results" a Jeremyville Community Service Announcement
Software development in C and C++ is widely used in the various industries including Information Technology, Telecommunication and Transportation since the 80-ies. Over this four decade, companies have built up a huge software legacy. In... more
- by Daniel Krupp
The emergence of the long-tail in the market of software applications is shifting the role of end-users from mere consumers to becoming developers of applications addressing their unique, personal, and transient needs. On the Web, a... more
Program comprehension during software maintenance is a difficult task, hence the need to support it by recovering the as-built architecture of the system to be maintained. In this paper, we propose a method to recover runtime architecture... more
A large body of the literature of automated program repair develops approaches where patches are generated to be validated against an oracle (e.g., a test suite). Because such an oracle can be imperfect, the generated patches, although... more
Thanks to the object-composition group, the community behind DCI, that helped me in the understanding of the DCI paradigm and trygve language, specially thanks to Matthew Browne, Andreas Söderlund, Trygve Mikkjel Heyerdahl Reenskaug, and... more
Comprehension of computer programs is daunting, due in part to clutter in the software developer's visual environment and the need for frequent visual context changes. Previous research has shown that nonspeech sound can be useful in... more
The graphical representations of software (code visualization in particular) may provide both professional programmers and students learning only the basics with support in program comprehension. Among the numerous proposed approaches,... more
Incremental software change adds new functionality to software. It is the foundation of software evolution, maintenance, iterative development, agile development, and other software processes. Highly interactive tool JRipples provides the... more
Incremental software change adds new functionality to software. It is the foundation of software evolution, maintenance, iterative development, agile development, and other software processes. Highly interactive tool JRipples provides the... more
Impact analysis is a specialized process of program comprehension that investigates the nature and extent of a planned software change. Traditionally, impact analysis involves inspecting dependencies among the software components of a... more
A variety of readers, with a variety of goals, will find this 2005 book useful. While it is clearly not a textbook, particular chapters could be used in a classroom setting to expose students to current streams of research in software... more
According to a recent observational study, developers spend an average of 48% of their development time on debugging tasks. Approaches such as equivalence checking and fault localization support developers during debugging tasks by... more
In programming education, the instructor tries to find out the learners who needs help by grasping the learners' development of understanding using tests that require knowledge. However, in reality, not many learners will acquire the... more
It is difficult for a student to learn how to program and to build an understanding of the rationale which underpins the development of a program's componentparts. Conventional tools and approaches for explaining this essentially dynamic... more
Dynamic program analysis tools based on code instrumentation serve many important software engineering tasks such as profiling, debugging, testing, program comprehension, and reverse engineering. Unfortunately, constructing new analysis... more
Calling context profiling is an important technique for analyzing the performance of object-oriented software with complex inter-procedural control flow. The Calling Context Tree (CCT) is a common data structure that stores dynamic... more
This paper presents a methodology for Mining Association Rules from Code (MARC), aiming at capturing program structure, facilitating system understanding and supporting software management. MARC groups program entities (paragraphs or... more
This paper presents au empirical study of a programming by demonstration language for a geographic information system (GIS). The long-term goal of the project is to enable non-technical end users to exercise the capabilities of a GIS... more
Background Well-functioning patient feedback systems can contribute to improved quality of healthcare and ultimately make health systems more accountable. We used realist evaluation to understand the functioning of patient feedback... more
The complexity of the systems that software engineers build has continuously grown since the inception of the field. What has not changed is the engineers' mental capacity to operate on about seven distinct pieces of information at a... more
This study aimed to make a characterization about how information visualization has been applied on software comprehension with relation to techniques and tools proposed by literature. Systematic Mapping was adopted as the method to guide... more
Decision makers spend significant time and effort interpreting information derived from large multidimensional databases; data are usually represented by several dashboard diagrams. The Complexity Design (CoDe) methodology provides a... more