Skip to main content
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
    • by 
    •   11  
      Software EngineeringSoftware MaintenanceSemanticsOpen Source Software
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
    • by 
    •   14  
      Computer ScienceSoftware EngineeringSoftware MaintenanceStatic Analysis
This paper highlights the results of a survey of software professionals. One of the goals of this survey was to uncover the perceived relevance (or lack thereof) of software documentation, and the tools and technologies used to maintain,... more
    • by  and +1
    •   4  
      Software EngineeringSoftware MaintenanceProgram ComprehensionSource Code
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
    • by 
    •   3  
      Software MaintenanceProgram ComprehensionSoftware Refactoring
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
    • by 
    •   4  
      Empirical Software EngineeringProgram ComprehensionProgram UnderstandingIntegrated Development Environment
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
    • by 
    •   7  
      Teaching and LearningComputer Science EducationPedagogyProgram Comprehension
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
    • by 
    •   19  
      DemographyNutrition and DieteticsObstetricsQuality of Mental Health Care
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
    • by 
    •   4  
      Open Source SoftwareAutomatic Text SummarizationSource Code AnalysisProgram Comprehension
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
    • by 
    •   13  
      PsychologyComputer ScienceArtDocumentation
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
    • by 
    •   7  
      Information SystemsSoftware MaintenanceProgram ComprehensionComputer Software
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 
    •   6  
      Software EngineeringSecond Language AcquisitionSoftware EvolutionProgram Comprehension
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
    • by  and +1
    •   5  
      Information SystemsProgram ComprehensionComputer SoftwareCognitive Process
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
    • by 
    •   11  
      Software EngineeringSoftware MaintenanceSoftware EvolutionUser Interface
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
    • by 
    •   12  
      PsychologyVisualizationProgram ComprehensionComputers
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
    • by 
    •   9  
      Distributed ComputingParallel ProgrammingWorking MemoryInformation Processing
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
    • by 
    •   9  
      Object Oriented ProgrammingHuman Computer InteractionMental RepresentationProgram Comprehension
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
    • by 
    •   4  
      Open Source SoftwareOpen SourceSoftware QualityProgram Comprehension
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
    • by 
    •   8  
      Computer ScienceSoftware EngineeringVisualizationSoftware Maintenance
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
    • by 
    •   10  
      Programming LanguagesHuman Computer InteractionUsabilityEvaluation
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
    • by 
    •   5  
      Program AnalysisProgram ComprehensionSoftware MetricsCoupling Metrics
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
    • by 
    •   6  
      Computer ScienceReverse EngineeringSource Code AnalysisSoftware Quality
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
    • by 
    •   13  
      Computer ScienceStatic AnalysisProgrammingSoftware Quality
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
    • by 
    •   4  
      Software DevelopmentProgram ComprehensionProgram UnderstandingDirect manipulation
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
    • by 
    •   5  
      Static AnalysisAbstract InterpretationProgram ComprehensionScripting Language
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
    • by 
    •   19  
      Software EngineeringMusicSpace and MusicArt
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
    • by 
    •   8  
      Software EngineeringObject Oriented ProgrammingSoftware MaintenanceReverse Engineering
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
    • by 
    •   11  
      Software MaintenanceMachine LearningSupport Vector MachinesEmpirical Software Engineering
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
    • by 
    •   6  
      Data MiningAmorphous MaterialsReverse EngineeringProgram Slicing
    • by 
    •   14  
      Program ComprehensionTaiwanClinical SciencesAged
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
    • by 
    •   6  
      Information RetrievalOpen SourceProgram ComprehensionComprehension
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 
    •   13  
      Computer ScienceComputer ArchitectureData MiningGraph Theory
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
    • by 
    •   10  
      Software EngineeringSoftware MaintenanceSoftware EvolutionUser Interface
    • by 
    •   7  
      Program AnalysisReverse EngineeringProgram ComprehensionFortran
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
    • by 
    •   14  
      Computer ArchitectureSoftware MaintenanceDocumentationProlog
Naming conventions are generally adopted in an effort to improve program comprehension. Two of the most popular conventions are alternatives for composing multi-word identifiers: the use of underscores and the use of camel casing. While... more
    • by  and +1
    •   8  
      PsychologyStatistical AnalysisReverse EngineeringProgramming
    • by 
    •   8  
      Professional DevelopmentProgram ComprehensionStudent AchievementSecond Year
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
    • by 
    •   4  
      Reverse EngineeringOpen SourceProgram ComprehensionEmpirical evidence
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
    • by 
    •   5  
      PsychologyCognitive ScienceVisual attentionChild Development
Fluid documents enable the interactive incorporation of related material into a primary document. Visual cues within primary material indicate that related content is available and user interaction reveals related content in context.... more
    • by  and +1
    •   6  
      Program ComprehensionInformation SourcesInformation SpaceVisual Cues
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
    • by 
    •   9  
      Information SystemsProgram ComprehensionComputer SoftwareMENTAL MODEL
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
    • by 
    •   5  
      SonificationProgram ComprehensionHierarchical ClassificationEarly experience
More than eight million smart contracts have been deployed into Ethereum, which is the most popular blockchain that supports smart contract. However, less than 1% of deployed smart contracts are open-source, and it is difficult for users... more
    • by  and +2
    •   3  
      Program ComprehensionEthereumSmart Contracts
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
    • by 
    •   12  
      Computational ModelingComputer NetworksParallel ProcessingControl Systems
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
    • by 
    •   28  
      Program EvaluationCriminal JusticeResearch MethodologyMental Health
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
    • by 
    •   14  
      Information RetrievalSoftware MaintenanceData MiningDocumentation
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
    • by 
    •   4  
      Program ComprehensionStudent LearningComputer ProgramObject Oriented
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
    • by 
    •   2  
      Machine LearningProgram Comprehension
    • by 
    •   7  
      Software EngineeringSoftware ArchitectureArchitecture RecoveryProgram Comprehension
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.
    • by 
    •   7  
      Protocol AnalysisProblem SolvingProgram ComprehensionGoal Orientation
    • by 
    •   9  
      Information SystemsSoftware MaintenanceReverse EngineeringSoftware