software comprehension
Recently Published Documents


TOTAL DOCUMENTS

50
(FIVE YEARS 2)

H-INDEX

11
(FIVE YEARS 0)

2021 ◽  
Author(s):  
Rene Gokmen ◽  
David Heidrich ◽  
Andreas Schreiber ◽  
Christoph Bichlmeier

2021 ◽  
Vol 27 (1) ◽  
Author(s):  
Methanias Colaço Júnior ◽  
Breno Santana Santos ◽  
Manoel Mendonça ◽  
Daniela Corumba ◽  
Mario André de F. Farias

AbstractSoftware projects use mailing lists as the primary tool for collaboration and coordination. Mailing lists can be an important source for extracting behavioral patterns in the software development. A new approach for that is the use of Neurolinguistic theory to determine what is the Preferred Representational cognitive System (PRS) of software engineers in that specific context. Different resources and cognitive channels are used by developers in order to achieve software understanding. An important question on this matter is: What types of representational systems are preferred by software engineers? This paper presents a psychometrically based neurolinguistic method to identify the PRS of software developers. Experimental evaluation of the approach was carried out in three experiments to assess the Preferred Representational System of developers at Industrial and OSS (Apache server and Postgresql) mailing lists. For the OSS projects, the results showed that the PRS scores of the top-committers clearly differ from the general population of the projects. For industry, the experiment showed that the developers indeed have a PRS. Finally, for both scenarios, the qualitative analysis also indicated that the PRS scores obtained are aligned with the developers’ profiles, considering that alignment is essential to effective communication within the team and enhances the development process due to a better software comprehension.


Author(s):  
Regina Hebig ◽  
Truong Ho-Quang ◽  
Rodi Jolak ◽  
Jan Schröder ◽  
Humberto Linero ◽  
...  

2019 ◽  
Vol 19 (3) ◽  
pp. 57-73
Author(s):  
Thamer Al-Rousan ◽  
Hasan Abualese

Abstract Simplification of execution traces is peculiarly important in the case of software comprehension. The objective is to make execution traces in ways that are more tractable and less difficult. However, the simplification process is a difficult task, particularly, in object-oriented contexts. Due to coupling, execution traces of object-oriented systems involve the Spaghetti Architectures phenomenon, which is a very complicated structure of dependencies. Therefore, the simplification process needs a well-established approach to be helpful for software comprehension. Otherwise, the simplified execution traces will be informative as their structures will involve several gaps that lead to a misunderstanding process. This research uses decoupling to guide the simplification of object-oriented execution traces. Specifically, decoupling truthfully can decrease the complexity of execution traces without eliminating the trace components and making numerous gaps in the trace structure. Then, decoupling can solve the problem of the Spaghetti Architectures phenomenon. A controlled experiment was conducted to empirically validate the usefulness and effectivity of the suggested work. There was a significant statistical added value demonstrated in the time required and the accurate solutions of the tasks being solved. More precisely, 25% less time required with a 62% more correct solutions were achieved solving the experiment’s comprehension tasks.


2017 ◽  
Vol 43 (12) ◽  
pp. 1125-1143 ◽  
Author(s):  
Guido Salvaneschi ◽  
Sebastian Proksch ◽  
Sven Amann ◽  
Sarah Nadi ◽  
Mira Mezini

Author(s):  
Mehmet Kaya ◽  
James W. Fawcett

Software development is a continuous process that usually starts with analyzing the system requirements and proceeds with design, implementation, testing, and maintenance. Regardless of how good an initial design was achieved, quality of source code tends to decay throughout the development process as software evolves. One of the main contributing factors to this degradation of initial quality can be considered as maintenance operations, for instance to enhance performance or other attributes of the system or to fix newly discovered bugs. For such large software systems, development process also requires reusing existing components which may have been implemented by others. Hence, a comprehensible piece of source code, e.g. one that conveys its message about what it is trying to do easily with understandable and modular implementation, significantly reduces time and effort not only for the implementation phase of the development lifecycle; but also for testing and maintenance phases. In other words, while software decay is inevitable, software comprehension plays a determining role in the total cost and effectiveness of both implementation phase and maintenance phase. Therefore, developers should strive to create software components with modular structure and clearer implementation to reduce the development cost. In this paper, we are interested in finding ways to successfully decompose long methods (those with poor initial implementation and/or decayed overtime) into smaller, more comprehensible and readable ones. This decomposition process is known as extract method refactoring and helps to reduce the overall cost of development. Most of the existing refactoring tools require users to select the code fragments that need to be extracted. We introduce a novel technique for this refactoring. This technique seeks refactoring opportunities based on variable declarations and uses confining fully extractable code regions without any user intervention. We implemented this technique as an analysis and visualization tool to help a user identify candidate code fragments to be extracted as separate methods. With this automation tool, developers do not have to manually inspect a foreign code base to select code fragments for refactoring. Through the visual representations we provide, one can observe all suggested refactoring effectively on large scale software systems and decide whether a particular refactoring should be applied. To show the effectiveness of our techniques, we also provide some case studies conducted using this tool and technique both on our own project’s source code and other open-source projects.


Sign in / Sign up

Export Citation Format

Share Document