software development
Recently Published Documents





2022 ◽  
Vol 54 (9) ◽  
pp. 1-40
Chao Liu ◽  
Xin Xia ◽  
David Lo ◽  
Cuiyun Gao ◽  
Xiaohu Yang ◽  

Code search is a core software engineering task. Effective code search tools can help developers substantially improve their software development efficiency and effectiveness. In recent years, many code search studies have leveraged different techniques, such as deep learning and information retrieval approaches, to retrieve expected code from a large-scale codebase. However, there is a lack of a comprehensive comparative summary of existing code search approaches. To understand the research trends in existing code search studies, we systematically reviewed 81 relevant studies. We investigated the publication trends of code search studies, analyzed key components, such as codebase, query, and modeling technique used to build code search tools, and classified existing tools into focusing on supporting seven different search tasks. Based on our findings, we identified a set of outstanding challenges in existing studies and a research roadmap for future code search research.

2022 ◽  
Vol 31 (2) ◽  
pp. 1-39
Olawole Oni ◽  
Emmanuel Letier

Release planning—deciding what features to implement in upcoming releases of a software system—is a critical activity in iterative software development. Many release planning methods exist, but most ignore the inevitable uncertainty in estimating software development effort and business value. The article’s objective is to study whether analyzing uncertainty during release planning generates better release plans than if uncertainty is ignored. To study this question, we have developed a novel release planning method under uncertainty, called BEARS, that models uncertainty using Bayesian probability distributions and recommends release plans that maximize expected net present value and expected punctuality. We then compare release plans recommended by BEARS to those recommended by methods that ignore uncertainty on 32 release planning problems. The experiment shows that BEARS recommends release plans with higher expected net present value and expected punctuality than methods that ignore uncertainty, thereby indicating the harmful effects of ignoring uncertainty during release planning. These results highlight the importance of eliciting and analyzing uncertainty in software effort and value estimations and call for increased research in these areas.

2022 ◽  
Vol 31 (2) ◽  
pp. 1-26
Chandra Maddila ◽  
Nachiappan Nagappan ◽  
Christian Bird ◽  
Georgios Gousios ◽  
Arie van Deursen

Modern, complex software systems are being continuously extended and adjusted. The developers responsible for this may come from different teams or organizations, and may be distributed over the world. This may make it difficult to keep track of what other developers are doing, which may result in multiple developers concurrently editing the same code areas. This, in turn, may lead to hard-to-merge changes or even merge conflicts, logical bugs that are difficult to detect, duplication of work, and wasted developer productivity. To address this, we explore the extent of this problem in the pull-request-based software development model. We study half a year of changes made to six large repositories in Microsoft in which at least 1,000 pull requests are created each month. We find that files concurrently edited in different pull requests are more likely to introduce bugs. Motivated by these findings, we design, implement, and deploy a service named Concurrent Edit Detector (ConE) that proactively detects pull requests containing concurrent edits, to help mitigate the problems caused by them. ConE has been designed to scale, and to minimize false alarms while still flagging relevant concurrently edited files. Key concepts of ConE include the detection of the Extent of Overlap between pull requests, and the identification of Rarely Concurrently Edited Files . To evaluate ConE, we report on its operational deployment on 234 repositories inside Microsoft. ConE assessed 26,000 pull requests and made 775 recommendations about conflicting changes, which were rated as useful in over 70% (554) of the cases. From interviews with 48 users, we learned that they believed ConE would save time in conflict resolution and avoiding duplicate work, and that over 90% intend to keep using the service on a daily basis.

Laiali Almazaydeh ◽  
Moath Alsafasfeh ◽  
Reyad Alsalameen ◽  
Shoroq Alsharari

The study of software engineering professional practices includes the use of the formal methodology in a software development. Identifying the appropriate methodology will not only reduce the failure of software but will also help to deliver the software in accordance with the predetermined budget and schedule. In literature, few works have been developed a tool for prediction of the most appropriate methodology for the specific software project. In this paper, a method for selecting an appropriate software development life cycle (SDLC) model based on a ranking manner from the highest to the lowest scoring is presented. The selection and ranking of appropriate SDLC elaborate the related SDLC’s critical factors, these factors are given different weights according to the SDLC, then these weights are used by the proposed mathematical method. The proposed approach has been extensively experimented on a dataset by software practitioners who are working in the software industry. Experimental results show that, the proposed method represents an applicable tool in predicting and ranking suitable SDLC models on various types of projects, such as: life-critical systems, commercial uses systems, and entertainment applications.

2022 ◽  
Vol 31 (1) ◽  
pp. 1-49
Anders Sundelin ◽  
Javier Gonzalez-huerta ◽  
Krzysztof Wnuk ◽  
Tony Gorschek

Context: The concept of software craftsmanship has early roots in computing, and in 2009, the Manifesto for Software Craftsmanship was formulated as a reaction to how the Agile methods were practiced and taught. But software craftsmanship has seldom been studied from a software engineering perspective. Objective: The objective of this article is to systematize an anatomy of software craftsmanship through literature studies and a longitudinal case study. Method: We performed a snowballing literature review based on an initial set of nine papers, resulting in 18 papers and 11 books. We also performed a case study following seven years of software development of a product for the financial market, eliciting qualitative, and quantitative results. We used thematic coding to synthesize the results into categories. Results: The resulting anatomy is centered around four themes, containing 17 principles and 47 hierarchical practices connected to the principles. We present the identified practices based on the experiences gathered from the case study, triangulating with the literature results. Conclusion: We provide our systematically derived anatomy of software craftsmanship with the goal of inspiring more research into the principles and practices of software craftsmanship and how these relate to other principles within software engineering in general.

Elisa Indriasari ◽  
Harjanto Prabowo ◽  
Ford Lumban Gaol ◽  
Betty Purwandari ◽  

Digitalization in the financial sector challenges banking institutions to develop new methods of innovation processes by incorporating current concepts such as design thinking (DT), agile software development (ASD), and cocreation. This qualitative study is based on empirical research conducted at three Indonesian banks. Semi-structured interviews with three IT executives and a questioner of 31 middle managers participating in digital banking efforts were used to gather data. A Systematic Literature Review based on Kitchenheim processes generates keywords in the VOS Viewer software. NVIVO 12 qualitative software is employed to aid data analysis for illustrating the process integration. The research's contribution is identified, including process integration, obstacles, potential solutions, and enhanced framework on adopting DT, ASD, and Co-creation. Keywords— design thinking, agile software development, co-creation, Innovation

Boris Kontsevoi ◽  

The paper examines the principles of the Predictive Software Engineering (PSE) framework. The authors examine how PSE enables custom software development companies to offer transparent services and products while staying within the intended budget and a guaranteed budget. The paper will cover all 7 principles of PSE: (1) Meaningful Customer Care, (2) Transparent End-to-End Control, (3) Proven Productivity, (4) Efficient Distributed Teams, (5) Disciplined Agile Delivery Process, (6) Measurable Quality Management and Technical Debt Reduction, and (7) Sound Human Development.

Алексей Геннадьевич Массель ◽  
Тимур Габилович Мамедов

В статье рассматривается адаптация методики реинжиниринга унаследованных систем. Приводится обзор подходов к реинжинирингу. Несмотря на то, что термин «реинжиниринг» в первую очередь относится к изменению бизнес процессов, он удачно подходит и к модернизации программного обеспечения. Обосновывается необходимость адаптации методики. В статье описывается применение адаптированной методики на примере реинжиниринга программного комплекса для прогнозных исследований ТЭК. Приведен исторический обзор версий ПК «ИНТЭК» и описаны поэтапно все шаги проведения его реинжиниринга на основе агентно-сервисного подхода The article presents an adaptation of the legacy systems reengineering technique. An overview of approaches to reengineering is given. Although the term “reengineering” primarily refers to changing business processes, it is well suited to software development. The necessity of adapting the method has been substantiated. The article describes the application of the described methodology on the example of software complex reengineering for predictive research of the fuel and energy complex. A historical overview of the current problem is given and all stages of INTEC PC reengineering are described step by step

2022 ◽  
Vol 5 (1) ◽  
Anne A. H. de Hond ◽  
Artuur M. Leeuwenberg ◽  
Lotty Hooft ◽  
Ilse M. J. Kant ◽  
Steven W. J. Nijman ◽  

AbstractWhile the opportunities of ML and AI in healthcare are promising, the growth of complex data-driven prediction models requires careful quality and applicability assessment before they are applied and disseminated in daily practice. This scoping review aimed to identify actionable guidance for those closely involved in AI-based prediction model (AIPM) development, evaluation and implementation including software engineers, data scientists, and healthcare professionals and to identify potential gaps in this guidance. We performed a scoping review of the relevant literature providing guidance or quality criteria regarding the development, evaluation, and implementation of AIPMs using a comprehensive multi-stage screening strategy. PubMed, Web of Science, and the ACM Digital Library were searched, and AI experts were consulted. Topics were extracted from the identified literature and summarized across the six phases at the core of this review: (1) data preparation, (2) AIPM development, (3) AIPM validation, (4) software development, (5) AIPM impact assessment, and (6) AIPM implementation into daily healthcare practice. From 2683 unique hits, 72 relevant guidance documents were identified. Substantial guidance was found for data preparation, AIPM development and AIPM validation (phases 1–3), while later phases clearly have received less attention (software development, impact assessment and implementation) in the scientific literature. The six phases of the AIPM development, evaluation and implementation cycle provide a framework for responsible introduction of AI-based prediction models in healthcare. Additional domain and technology specific research may be necessary and more practical experience with implementing AIPMs is needed to support further guidance.

Sign in / Sign up

Export Citation Format

Share Document