software developers
Recently Published Documents





2022 ◽  
Vol 31 (2) ◽  
pp. 1-23
Luca Traini ◽  
Daniele Di Pompeo ◽  
Michele Tucci ◽  
Bin Lin ◽  
Simone Scalabrino ◽  

Refactoring aims at improving the maintainability of source code without modifying its external behavior. Previous works proposed approaches to recommend refactoring solutions to software developers. The generation of the recommended solutions is guided by metrics acting as proxy for maintainability (e.g., number of code smells removed by the recommended solution). These approaches ignore the impact of the recommended refactorings on other non-functional requirements, such as performance, energy consumption, and so forth. Little is known about the impact of refactoring operations on non-functional requirements other than maintainability. We aim to fill this gap by presenting the largest study to date to investigate the impact of refactoring on software performance, in terms of execution time. We mined the change history of 20 systems that defined performance benchmarks in their repositories, with the goal of identifying commits in which developers implemented refactoring operations impacting code components that are exercised by the performance benchmarks. Through a quantitative and qualitative analysis, we show that refactoring operations can significantly impact the execution time. Indeed, none of the investigated refactoring types can be considered “safe” in ensuring no performance regression. Refactoring types aimed at decomposing complex code entities (e.g., Extract Class/Interface, Extract Method) have higher chances of triggering performance degradation, suggesting their careful consideration when refactoring performance-critical code.

2022 ◽  
Vol 31 (2) ◽  
pp. 1-37
Denae Ford ◽  
Margaret-Anne Storey ◽  
Thomas Zimmermann ◽  
Christian Bird ◽  
Sonia Jaffe ◽  

The COVID-19 pandemic has shaken the world to its core and has provoked an overnight exodus of developers who normally worked in an office setting to working from home. The magnitude of this shift and the factors that have accompanied this new unplanned work setting go beyond what the software engineering community has previously understood to be remote work. To find out how developers and their productivity were affected, we distributed two surveys (with a combined total of 3,634 responses that answered all required questions) weeks apart to understand the presence and prevalence of the benefits, challenges, and opportunities to improve this special circumstance of remote work. From our thematic qualitative analysis and statistical quantitative analysis, we find that there is a dichotomy of developer experiences influenced by many different factors (that for some are a benefit, while for others a challenge). For example, a benefit for some was being close to family members but for others having family members share their working space and interrupting their focus, was a challenge. Our surveys led to powerful narratives from respondents and revealed the scale at which these experiences exist to provide insights as to how the future of (pandemic) remote work can evolve.

2022 ◽  
Vol 31 (1) ◽  
pp. 1-74
Owain Parry ◽  
Gregory M. Kapfhammer ◽  
Michael Hilton ◽  
Phil McMinn

Tests that fail inconsistently, without changes to the code under test, are described as flaky . Flaky tests do not give a clear indication of the presence of software bugs and thus limit the reliability of the test suites that contain them. A recent survey of software developers found that 59% claimed to deal with flaky tests on a monthly, weekly, or daily basis. As well as being detrimental to developers, flaky tests have also been shown to limit the applicability of useful techniques in software testing research. In general, one can think of flaky tests as being a threat to the validity of any methodology that assumes the outcome of a test only depends on the source code it covers. In this article, we systematically survey the body of literature relevant to flaky test research, amounting to 76 papers. We split our analysis into four parts: addressing the causes of flaky tests, their costs and consequences, detection strategies, and approaches for their mitigation and repair. Our findings and their implications have consequences for how the software-testing community deals with test flakiness, pertinent to practitioners and of interest to those wanting to familiarize themselves with the research area.

2022 ◽  
Vol 5 (1) ◽  
pp. 1-6
Amos O. Jarikre ◽  
Yogesh Kumar Sharma ◽  
Amoako Kani John ◽  
Stercy Kwasi Bailey

The development of reusable and extensible software for business purposes has been the hallmark of the day. More developers are taking advantage of numerous approaches towards reaching their goals. One such approach is the agile approach in the development of extensible applications which has become so popular since its introduction over a decade ago. Using an agile approach that has a defined value in developing applications portray numerous benefits which have been identified by various scholars pointing out their outcomes as motivating factors of its adoption. With all such outline benefits, there exist some potential obstacles to agile developmental approach which has not been fully addressed. Hence, this article is aimed at analysing the obstacles which software developers face during agile development through a database search and also to guide them on ways to overcome such obstacles.

2022 ◽  
pp. 1727-1742
Youngkeun Choi

This study examines the relationship between transformational leadership types and the motivation of software engineers. The author uses full range leadership as a major theory and investigates how transformational leadership types influences the innovative behaviors of software developers by using a mediator of affective organizational commitment. For this, this study surveys 352 software developers working in 35 companies in Korea and analyzes the data using AMOS 24. The results show that charisma, inspirational motivation, intellectual stimulation and individualized consideration increase their affective organizational commitment affecting innovative behaviors positively in turn.

2022 ◽  
pp. 2050-2064
Nana Assyne

Software growth has been explosive as people depend heavily on software on daily basis. Software development is a human-intensive effort, and developers' competence in software security is essential for secure software development. In addition, ubiquitous computing provides an added complexity to software security. Studies have treated security competences of software developers as a subsidiary of security engineers' competence instead of software engineers' competence, limiting the full knowledge of the security competences of software developers. This presents a crucial challenge for developers, educators, and users to maintain developers' competences in security. As a first step in pushing for the developers' security competence studies, this chapter utilises a literature review to identify the security competences of software developers. Thirteen security competences of software developers were identified and mapped to the common body of knowledge for information security professional framework. Lastly, the implications for, with, and without the competences are analysed and presented.

2022 ◽  
Vol E105.D (1) ◽  
pp. 31-36
Keitaro NAKASAI ◽  
Masateru TSUNODA ◽  

2022 ◽  
pp. 1297-1341
VenuGopal Balijepally ◽  
Sridhar Nerur

Software development is a problem-solving activity, where ideas are combined in complex ways to create a software product that embodies new knowledge. In this endeavor, software developers constantly look for actionable knowledge to help solve the problem at hand. While knowledge management efforts in the software development domain traditionally involved technical initiatives such as knowledge repositories, experience factories, and lessons-to-learn databases, there is a growing appreciation in the software community of the role of developers' personal knowledge networks in software development. However, research is scarce on the nature of these networks, the knowledge resources accessed from these networks, and the differences, if any, between developers of different experience levels. This research seeks to fill this void. Based on a case study in a software development organization, this research explores the nature of knowledge networks of developers from a social capital perspective. Specifically, it examines the structural and relational dimensions of developers' knowledge networks, identifies the specific actionable knowledge resources accessed from these networks, and explores how entry-level and more experienced developers differ along these dimensions. The findings from the qualitative analysis, backed by limited quantitative analysis of the case study data underpin the discussion, implications for practice and future research directions.

2021 ◽  
Vol 34 (06) ◽  
pp. 1697-1706
Inga Nikolaevna Bulatnikova ◽  
Natalja Nikolaevna Gershunina

This article presents a general classification of difference-iterative algorithms (DIA) which are increasingly being used in microprocessor control systems for industrial, scientific, and technical objects. The classification is based on taking into account the features of the DIA structures (the method of organizing convergence, the order of generating the next increments of iterated quantities, cascading and interaction of several DIA, etc.). The objective of the presented DIA classification is to give microprocessor algorithmic software developers an orientation when choosing known algorithms and prospects when developing new DIA for a specific purpose.

2021 ◽  
Vol 5 (4) ◽  
pp. 558
Fajar Septian ◽  
Bobi Agustian

Augmented Reality (AR) technology provides opportunities for science and engineering. AR also has great opportunities in the world of education, which is to provide and display additional information in the form of 3D objects, video, sound, and text on an object. Smartphone software developers have developed Augmented reality technology that was previously developed on PC devices where this technology utilizes the existing camera on a smartphone. With this situation, AR technology has the opportunity to be used in the development of a media for recognizing hijaiyah letters, so that children will be happier learning because of its attractive appearance and teachers or parents can more easily teach lessons to their children. The way to use it is as follows: first, the user puts a registered and printed marker, second, the smartphone camera identifies (tracking) the marker. If the marker is invalid, the user repeats the identification process. If the marker is valid and identified, the marker will display the hijaiyah letter object in three-dimensional form. Third, users can understand the shape and pronunciation of hijaiyah letters by touching the virtual button on the marker

Sign in / Sign up

Export Citation Format

Share Document