• Home
  • Agent Gallery
  • Templates
  • Chat with PDF
  • Literature Review
  • AI Writer
  • Find Topics
  • Paraphraser
  • Citation Generator
  • Extract Data
  • AI Detector
Scispace (Formerly Typeset)
  1. Home
  2. Topics
  3. Software development
  4. 2016
  1. Home
  2. Topics
  3. Software development
  4. 2016
Showing papers on "Software development published in 2016"
Proceedings Article•10.1145/2884781.2884783•
The emerging role of data scientists on software development teams

[...]

Miryung Kim1, Thomas Zimmermann2, Robert DeLine2, Andrew Begel2•
University of California, Los Angeles1, Microsoft2
14 May 2016
TL;DR: Five distinct working styles of data scientists are identified: Insight Providers, who work with engineers to collect the data needed to inform decisions that managers make; Modeling Specialists, who use their machine learning expertise to build predictive models; Platform Builders, who create data platforms, balancing both engineering and data analysis concerns; and Team Leaders, who run teams of data Scientists and spread best practices.
Abstract: Creating and running software produces large amounts of raw data about the development process and the customer usage, which can be turned into actionable insight with the help of skilled data scientists. Unfortunately, data scientists with the analytical and software engineering skills to analyze these large data sets have been hard to come by; only recently have software companies started to develop competencies in software-oriented data analytics. To understand this emerging role, we interviewed data scientists across several product groups at Microsoft. In this paper, we describe their education and training background, their missions in software engineering contexts, and the type of problems on which they work. We identify five distinct working styles of data scientists: (1) Insight Providers, who work with engineers to collect the data needed to inform decisions that managers make; (2) Modeling Specialists, who use their machine learning expertise to build predictive models; (3) Platform Builders, who create data platforms, balancing both engineering and data analysis concerns; (4) Polymaths, who do all data science activities themselves; and (5) Team Leaders, who run teams of data scientists and spread best practices. We further describe a set of strategies that they employ to increase the impact and actionability of their work.

263 citations

Proceedings Article•10.1145/2970276.2970347•
What developers want and need from program analysis: an empirical study

[...]

Maria Christakis1, Christian Bird1•
Microsoft1
25 Aug 2016
TL;DR: A multi-method investigation at Microsoft is mounted to understand what makes a program analyzer most attractive to developers, and sheds light on what functionality developers want from analyzers, including the types of code issues that developers care about.
Abstract: Program Analysis has been a rich and fruitful field of research for many decades, and countless high quality program analysis tools have been produced by academia. Though there are some well-known examples of tools that have found their way into routine use by practitioners, a common challenge faced by researchers is knowing how to achieve broad and lasting adoption of their tools. In an effort to understand what makes a program analyzer most attractive to developers, we mounted a multi-method investigation at Microsoft. Through interviews and surveys of developers as well as analysis of defect data, we provide insight and answers to four high level research questions that can help researchers design program analyzers meeting the needs of software developers. First, we explore what barriers hinder the adoption of program analyzers, like poorly expressed warning messages. Second, we shed light on what functionality developers want from analyzers, including the types of code issues that developers care about. Next, we answer what non-functional characteristics an analyzer should have to be widely used, how the analyzer should fit into the development process, and how its results should be reported. Finally, we investigate defects in one of Microsoft's flagship software services, to understand what types of code issues are most important to minimize, potentially through program analysis.

256 citations

Journal Article•10.1007/S10664-015-9402-8•
A survey on the use of topic models when mining software repositories

[...]

Tse-Hsun Chen1, Stephen W. Thomas1, Ahmed E. Hassan1•
Queen's University1
01 Oct 2016-Empirical Software Engineering
TL;DR: This paper surveys 167 articles from the software engineering literature that make use of topic models and provides a starting point for new researchers who are interested in using topic models, and may help new researchers and practitioners determine how to best apply topic models to a particular software engineering task.
Abstract: Researchers in software engineering have attempted to improve software development by mining and analyzing software repositories. Since the majority of the software engineering data is unstructured, researchers have applied Information Retrieval (IR) techniques to help software development. The recent advances of IR, especially statistical topic models, have helped make sense of unstructured data in software repositories even more. However, even though there are hundreds of studies on applying topic models to software repositories, there is no study that shows how the models are used in the software engineering research community, and which software engineering tasks are being supported through topic models. Moreover, since the performance of these topic models is directly related to the model parameters and usage, knowing how researchers use the topic models may also help future studies make optimal use of such models. Thus, we surveyed 167 articles from the software engineering literature that make use of topic models. We find that i) most studies centre around a limited number of software engineering tasks; ii) most studies use only basic topic models; iii) and researchers usually treat topic models as black boxes without fully exploring their underlying assumptions and parameter values. Our paper provides a starting point for new researchers who are interested in using topic models, and may help new researchers and practitioners determine how to best apply topic models to a particular software engineering task.

219 citations

Journal Article•10.1371/JOURNAL.PCBI.1004668•
A Quick Introduction to Version Control with Git and GitHub

[...]

John D. Blischak1, Emily R. Davenport2, Greg Wilson•
University of Chicago1, Cornell University2
19 Jan 2016-PLOS Computational Biology
TL;DR: This quick guide introduces you to one VCS, Git, and one online hosting site, GitHub, both of which are currently popular among scientists and programmers in general and hopes to convince you that although mastering a given VCS takes time, you can already achieve great benefits by getting started using a few simple commands.
Abstract: Many scientists write code as part of their research. Just as experiments are logged in laboratory notebooks, it is important to document the code you use for analysis. However, a few key problems can arise when iteratively developing code that make it difficult to document and track which code version was used to create each result. First, you often need to experiment with new ideas, such as adding new features to a script or increasing the speed of a slow step, but you do not want to risk breaking the currently working code. One often-utilized solution is to make a copy of the script before making new edits. However, this can quickly become a problem because it clutters your file system with uninformative filenames, e.g., analysis.sh, analysis_02.sh, analysis_03.sh, etc. It is difficult to remember the differences between the versions of the files and, more importantly, which version you used to produce specific results, especially if you return to the code months later. Second, you will likely share your code with multiple lab mates or collaborators, and they may have suggestions on how to improve it. If you email the code to multiple people, you will have to manually incorporate all the changes each of them sends. Fortunately, software engineers have already developed software to manage these issues: version control. A version control system (VCS) allows you to track the iterative changes you make to your code. Thus, you can experiment with new ideas but always have the option to revert to a specific past version of the code you used to generate particular results. Furthermore, you can record messages as you save each successive version so that you (or anyone else) reviewing the development history of the code is able to understand the rationale for the given edits. It also facilitates collaboration. Using a VCS, your collaborators can make and save changes to the code, and you can automatically incorporate these changes to the main code base. The collaborative aspect is enhanced with the emergence of websites that host version-controlled code. In this quick guide, we introduce you to one VCS, Git (https://git-scm.com), and one online hosting site, GitHub (https://github.com), both of which are currently popular among scientists and programmers in general. More importantly, we hope to convince you that although mastering a given VCS takes time, you can already achieve great benefits by getting started using a few simple commands. Furthermore, not only does using a VCS solve many common problems when writing code, it can also improve the scientific process. By tracking your code development with a VCS and hosting it online, you are performing science that is more transparent, reproducible, and open to collaboration [1,2]. There is no reason this framework needs to be limited only to code; a VCS is well-suited for tracking any plain-text files: manuscripts, electronic lab notebooks, protocols, etc.

208 citations

Journal Article•10.1007/S13142-016-0395-7•
Agile science: creating useful products for behavior change in the real world.

[...]

Eric B. Hekler1, Predrag Klasnja2, William T. Riley3, Matthew P. Buman1, Jennifer Huberty1, Daniel E. Rivera1, Cesar A. Martin1 •
Arizona State University1, University of Michigan2, National Institutes of Health3
26 Feb 2016-Translational behavioral medicine
TL;DR: The purpose of this paper is to define products and a preliminary process for efficiently and adaptively creating and curating a knowledge base for behavior change for real-world implementation and to target three products: the smallest, meaningful, self-contained, and repurposable behavior change modules of an intervention.
Abstract: Evidence-based practice is important for behavioral interventions but there is debate on how best to support real-world behavior change. The purpose of this paper is to define products and a preliminary process for efficiently and adaptively creating and curating a knowledge base for behavior change for real-world implementation. We look to evidence-based practice suggestions and draw parallels to software development. We argue to target three products: (1) the smallest, meaningful, self-contained, and repurposable behavior change modules of an intervention; (2) “computational models” that define the interaction between modules, individuals, and context; and (3) “personalization” algorithms, which are decision rules for intervention adaptation. The “agile science” process includes a generation phase whereby contender operational definitions and constructs of the three products are created and assessed for feasibility and an evaluation phase, whereby effect size estimates/casual inferences are created. The process emphasizes early-and-often sharing. If correct, agile science could enable a more robust knowledge base for behavior change.

204 citations

Journal Article•10.1109/MS.2015.158•
Requirements: The Key to Sustainability

[...]

Christoph Becker1, Stefanie Betz2, Ruzanna Chitchyan3, Leticia Duboc4, Steve Easterbrook1, Birgit Penzenstadler5, Norbet Seyff6, Colin C. Venters7 •
University of Toronto1, Karlsruhe Institute of Technology2, University of Leicester3, Rio de Janeiro State University4, California State University, Long Beach5, University of Applied Sciences and Arts Northwestern Switzerland FHNW6, University of Huddersfield7
01 Jan 2016-IEEE Software
TL;DR: This article is part of a special issue on the Future of Software Engineering, where a paradigm shift in the software engineering mind-set begins in requirements engineering.
Abstract: Software's critical role in society demands a paradigm shift in the software engineering mind-set. This shift's focus begins in requirements engineering. This article is part of a special issue on the Future of Software Engineering.

201 citations

Journal Article•10.1016/J.INFSOF.2016.04.015•
When and what to automate in software testing? A multi-vocal literature review

[...]

Vahid Garousi1, Mika V. Mäntylä2•
Hacettepe University1, University of Oulu2
01 Aug 2016-Information & Software Technology
TL;DR: It is shown that current decision-support in software test automation provides reasonable advice for industry, and as a practical outcome of this research, it is summarized as a checklist that can be used by practitioners.
Abstract: Context Many organizations see software test automation as a solution to decrease testing costs and to reduce cycle time in software development. However, establishment of automated testing may fail if test automation is not applied in the right time, right context and with the appropriate approach. Objective The decisions on when and what to automate is important since wrong decisions can lead to disappointments and major wrong expenditures (resources and efforts). To support decision making on when and what to automate, researchers and practitioners have proposed various guidelines, heuristics and factors since the early days of test automation technologies. As the number of such sources has increased, it is important to systematically categorize the current state-of-the-art and -practice, and to provide a synthesized overview. Method To achieve the above objective, we have performed a Multivocal Literature Review (MLR) study on when and what to automate in software testing. A MLR is a form of a Systematic Literature Review (SLR) which includes the grey literature (e.g., blog posts and white papers) in addition to the published (formal) literature (e.g., journal and conference papers). We searched the academic literature using the Google Scholar and the grey literature using the regular Google search engine. Results Our MLR and its results are based on 78 sources, 52 of which were grey literature and 26 were formally published sources. We used the qualitative analysis (coding) to classify the factors affecting the when- and what-to-automate questions to five groups: (1) Software Under Test (SUT)-related factors, (2) test-related factors, (3) test-tool-related factors, (4) human and organizational factors, and (5) cross-cutting and other factors. The most frequent individual factors were: need for regression testing (44 sources), economic factors (43), and maturity of SUT (39). Conclusion We show that current decision-support in software test automation provides reasonable advice for industry, and as a practical outcome of this research we have summarized it as a checklist that can be used by practitioners. However, we recommend developing systematic empirically-validated decision-support approaches as the existing advice is often unsystematic and based on weak empirical evidence.

196 citations

Proceedings Article•10.1145/2884781.2884810•
An empirical study of practitioners' perspectives on green software engineering

[...]

Irene Manotas1, Christian Bird2, Rui Zhang3, David C. Shepherd, Ciera Jaspan4, Caitlin Sadowski4, Lori Pollock1, James Clause1 •
University of Delaware1, Microsoft2, IBM3, Google4
14 May 2016
TL;DR: The first empirical study of how practitioners think about energy when they write requirements, design, construct, test, and maintain their software is described.
Abstract: The energy consumption of software is an increasing concern as the use of mobile applications, embedded systems, and data center-based services expands. While research in green software engineering is correspondingly increasing, little is known about the current practices and perspectives of software engineers in the field. This paper describes the first empirical study of how practitioners think about energy when they write requirements, design, construct, test, and maintain their software. We report findings from a quantitative, targeted survey of 464 practitioners from ABB, Google, IBM, and Microsoft, which was motivated by and supported with qualitative data from 18 in-depth interviews with Microsoft employees. The major findings and implications from the collected data contextualize existing green software engineering research and suggest directions for researchers aiming to develop strategies and tools to help practitioners improve the energy usage of their applications.

193 citations

Journal Article•10.1109/TSE.2015.2509970•
Software Development in Startup Companies: The Greenfield Startup Model

[...]

Carmine Giardino1, Nicolo Paternoster2, Michael Unterkalmsteiner2, Tony Gorschek2, Pekka Abrahamsson3 •
Free University of Bozen-Bolzano1, Blekinge Institute of Technology2, Norwegian University of Science and Technology3
01 Jun 2016-IEEE Transactions on Software Engineering
TL;DR: The results are packaged in the Greenfield Startup Model (GSM), which explains the priority of startups to release the product as quickly as possible, and the need to shorten time-to-market, by speeding up the development through low-precision engineering activities.
Abstract: Software startups are newly created companies with no operating history and oriented towards producing cutting-edge products. However, despite the increasing importance of startups in the economy, few scientific studies attempt to address software engineering issues, especially for early-stage startups. If anything, startups need engineering practices of the same level or better than those of larger companies, as their time and resources are more scarce, and one failed project can put them out of business. In this study we aim to improve understanding of the software development strategies employed by startups. We performed this state-of-practice investigation using a grounded theory approach. We packaged the results in the Greenfield Startup Model (GSM), which explains the priority of startups to release the product as quickly as possible. This strategy allows startups to verify product and market fit, and to adjust the product trajectory according to early collected user feedback. The need to shorten time-to-market, by speeding up the development through low-precision engineering activities, is counterbalanced by the need to restructure the product before targeting further growth. The resulting implications of the GSM outline challenges and gaps, pointing out opportunities for future research to develop and validate engineering practices in the startup context.

186 citations

Proceedings Article•10.1145/2818052.2869117•
Why Developers Are Slacking Off: Understanding How Software Teams Use Slack

[...]

Bin Lin1, Alexey Zagalsky2, Margaret-Anne Storey2, Alexander Serebrenik1•
Eindhoven University of Technology1, University of Victoria2
27 Feb 2016
TL;DR: It is found that developers use Slack for personal, team-wide and community-wide purposes, and that developersuse and create diverse integrations (called bots) to support their work.
Abstract: Slack is a modern communication platform for teams that is seeing wide and rapid adoption by software develop-ment teams. Slack not only facilitates team messaging and archiving, but it also supports a wide plethora of inte-grations to external services and bots. We have found that Slack and its integrations (i.e., bots) are playing an increas-ingly significant role in software development, replacing email in some cases and disrupting software development processes. To understand how Slack impacts development team dynamics, we designed an exploratory study to inves-tigate how developers use Slack and how they benefit from it. We find that developers use Slack for personal, team-wide and community-wide purposes. Our research also reveals that developers use and create diverse integrations (called bots) to support their work. This study serves as the first step towards understanding the role of Slack in sup-porting software engineering.

183 citations

Book•
Modeling and Simulating Software Architectures: The Palladio Approach

[...]

Ralf Reussner, Steffen Becker, Jens Happe, Robert Heinrich, Anne Koziolek, Heiko Koziolek, Max E. Kramer, Klaus Krogmann 
21 Oct 2016
TL;DR: This book presents a new, quantitative architecture simulation approach to software design, Palladio, which allows software engineers to model quality of service in early design stages and shows students and professionals how to model reusable, parametrized components and configured, deployed systems in order to analyze service attributes.
Abstract: Too often, software designers lack an understanding of the effect of design decisions on such quality attributes as performance and reliability. This necessitates costly trial-and-error testing cycles, delaying or complicating rollout. This book presents a new, quantitative architecture simulation approach to software design, which allows software engineers to model quality of service in early design stages. It presents the first simulator for software architectures, Palladio, and shows students and professionals how to model reusable, parametrized components and configured, deployed systems in order to analyze service attributes. The text details the key concepts of Palladio's domain-specific modeling language for software architecture quality and presents the corresponding development stage. It describes how quality information can be used to calibrate architecture models from which detailed simulation models are automatically derived for quality predictions. Readers will learn how to approach systematically questions about scalability, hardware resources, and efficiency. The text features a running example to illustrate tasks and methods as well as three case studies from industry. Each chapter ends with exercises, suggestions for further reading, and "takeaways" that summarize the key points of the chapter. The simulator can be downloaded from a companion website, which offers additional material. The book can be used in graduate courses on software architecture, quality engineering, or performance engineering. It will also be an essential resource for software architects and software engineers and for practitioners who want to apply Palladio in industrial settings.
Journal Article•10.1007/S10664-015-9401-9•
Automated bug assignment: Ensemble-based machine learning in large scale industrial contexts

[...]

Leif J. Jönsson1, Markus Borg2, David Broman3, Kristian Sandahl1, Sigrid Eldh4, Per Runeson2 •
Linköping University1, Lund University2, Royal Institute of Technology3, Ericsson4
01 Aug 2016-Empirical Software Engineering
TL;DR: A state-of-the-art ensemble learner Stacked Generalization that combines several classifiers that scales to large scale industrial application and that it outperforms the use of individual classifiers for bug assignment, reaching prediction accuracies from 50 % to 89 % when large training sets are used.
Abstract: Bug report assignment is an important part of software maintenance. In particular, incorrect assignments of bug reports to development teams can be very expensive in large software development projects. Several studies propose automating bug assignment techniques using machine learning in open source software contexts, but no study exists for large-scale proprietary projects in industry. The goal of this study is to evaluate automated bug assignment techniques that are based on machine learning classification. In particular, we study the state-of-the-art ensemble learner Stacked Generalization (SG) that combines several classifiers. We collect more than 50,000 bug reports from five development projects from two companies in different domains. We implement automated bug assignment and evaluate the performance in a set of controlled experiments. We show that SG scales to large scale industrial application and that it outperforms the use of individual classifiers for bug assignment, reaching prediction accuracies from 50 % to 89 % when large training sets are used. In addition, we show how old training data can decrease the prediction accuracy of bug assignment. We advice industry to use SG for bug assignment in proprietary contexts, using at least 2,000 bug reports for training. Finally, we highlight the importance of not solely relying on results from cross-validation when evaluating automated bug assignment.
Journal Article•10.1109/MS.2016.12•
Crowdsourcing in Software Engineering: Models, Motivations, and Challenges

[...]

Thomas D. LaToza1, André van der Hoek2•
George Mason University1, University of California, Irvine2
01 Jan 2016-IEEE Software
TL;DR: Almost surreptitiously, crowdsourcing has entered software engineering practice, and many development projects use crowdsourcing-for example, to squash bugs, test software, or gather alternative UI designs.
Abstract: Almost surreptitiously, crowdsourcing has entered software engineering practice. In-house development, contracting, and outsourcing still dominate, but many development projects use crowdsourcing-for example, to squash bugs, test software, or gather alternative UI designs. Although the overall impact has been mundane so far, crowdsourcing could lead to fundamental, disruptive changes in how software is developed. Various crowdsourcing models have been applied to software development. Such changes offer exciting opportunities, but several challenges must be met for crowdsourcing software development to reach its potential.
Journal Article•10.1111/ISJ.12053•
Perceived barriers to effective knowledge sharing in agile software teams

[...]

Shahla Ghobadi1, Lars Mathiassen2•
University of New South Wales1, Georgia State University2
01 Mar 2016-Information Systems Journal
TL;DR: It is argued that to bridge communication gaps and create shared understanding in software teams, it is critical to take the revealed concerns of different roles into account.
Abstract: While the literature offers several frameworks that explain barriers to knowledge sharing within software development teams, little is known about differences in how team members perceive these barriers. Based on an in-depth multi-case study of four software projects, we investigate how project managers, developers, testers and user representatives think about barriers to effective knowledge sharing in agile development. Adapting comparative causal mapping, we constructed causal maps for each of the four roles and identified overlap and divergence in map constructs and causal linkages. The results indicate that despite certain similarities, the four roles differ in how they perceive and emphasize knowledge-sharing barriers. The project managers put primary emphasis on project setting barriers, while the primary concern of developers, testers and user representatives were project communication, project organization and team capabilities barriers, respectively. Integrating the four causal maps and the agile literature, we propose a conceptual framework with seven types of knowledge-sharing barriers and 37 specific barriers. We argue that to bridge communication gaps and create shared understanding in software teams, it is critical to take the revealed concerns of different roles into account. We conclude by discussing our findings in relation to knowledge sharing in agile teams and software teams more generally.
Journal Article•10.5277/E-INF160105•
Software Startups - A Research Agenda

[...]

Michael Unterkalmsteiner1, Pekka Abrahamsson2, Xiaofeng Wang3, Anh Nguyen-Duc1, Syed M. Shah, Sohaib Shahid Bajwa3, Guido Baltes, Kieran Conboy4, Eoin Cullina4, Denis Dennehy4, Henry Edison3, Carlos Fernandez-Sanchez5, Juan Garbajosa5, Tony Gorschek1, Eriks Klotins1, Laura Hokkanen6, Fabio Kon7, Ilaria Lunesu8, Michele Marchesi8, Lorraine Morgan9, Markku Oivo10, Christoph J. Selig9, Pertti Seppänen10, Roger Sweetman4, Pasi Tyrväinen11, Christina Ungerer9, Agustín Yagüe5 •
Blekinge Institute of Technology1, Norwegian University of Science and Technology2, Free University of Bozen-Bolzano3, National University of Ireland, Galway4, Technical University of Madrid5, Tampere University of Technology6, University of São Paulo7, University of Cagliari8, Maynooth University9, University of Oulu10, Konstanz University of Applied Sciences11
01 Oct 2016-e-Informatica Software Engineering Journal
TL;DR: Software startup companies develop innovative, software-intensive products within limited timeframes and with few resources, searching for sustainable and scalable business models.
Abstract: Software startup companies develop innovative, software-intensive products within limited timeframes and with few resources, searching for sustainable and scalable business models. Software startup ...
Journal Article•10.1016/J.JSS.2015.08.054•
10 years of software architecture knowledge management

[...]

Rafael Capilla1, Anton Jansen2, Antony Tang3, Paris Avgeriou4, Muhammad Ali Babar5 •
King Juan Carlos University1, Philips2, Swinburne University of Technology3, University of Groningen4, University of Adelaide5
01 Jun 2016-Journal of Systems and Software
TL;DR: An informal retrospective analysis of what has been done and the challenges and trends for a future research agenda to promote AK use in modern software development practices is provided.
Proceedings Article•10.1145/2884781.2884852•
Revisiting code ownership and its relationship with software quality in the scope of modern code review

[...]

Patanamon Thongtanunam1, Shane McIntosh2, Ahmed E. Hassan3, Hajimu Iida1•
Nara Institute of Science and Technology1, McGill University2, Queen's University3
14 May 2016
TL;DR: This paper complements traditional code ownership heuristics using code review activity, and suggests that reviewing activity captures an important aspect of code ownership, and should be included in approximations of it in future studies.
Abstract: Code ownership establishes a chain of responsibility for modules in large software systems. Although prior work uncovers a link between code ownership heuristics and software quality, these heuristics rely solely on the authorship of code changes. In addition to authoring code changes, developers also make important contributions to a module by reviewing code changes. Indeed, recent work shows that reviewers are highly active in modern code review processes, often suggesting alternative solutions or providing updates to the code changes. In this paper, we complement traditional code ownership heuristics using code review activity. Through a case study of six releases of the large Qt and OpenStack systems, we find that: (1) 67%--86% of developers did not author any code changes for a module, but still actively contributed by reviewing 21%--39% of the code changes, (2) code ownership heuristics that are aware of reviewing activity share a relationship with software quality, and (3) the proportion of reviewers without expertise shares a strong, increasing relationship with the likelihood of having post-release defects. Our results suggest that reviewing activity captures an important aspect of code ownership, and should be included in approximations of it in future studies.
Journal Article•10.1109/MS.2015.26•
Choice of Software Development Methodologies: Do Organizational, Project, and Team Characteristics Matter?

[...]

Leo R. Vijayasarathy1, Charles W. Butler1•
Colorado State University1
01 Sep 2016-IEEE Software
TL;DR: Although agile methodologies such as Agile Unified Process and Scrum are more prevalent than 10 years ago, traditional methodologies, including the waterfall model, are still popular and organizations are also taking a hybrid approach, using multiple methodologies on projects.
Abstract: Organizations can choose from software development methodologies ranging from traditional to agile approaches. Researchers surveyed project managers and other team members about their choice of methodologies. The results indicate that although agile methodologies such as Agile Unified Process and Scrum are more prevalent than 10 years ago, traditional methodologies, including the waterfall model, are still popular. Organizations are also taking a hybrid approach, using multiple methodologies on projects. Furthermore, their choice of methodologies is associated with certain organizational, project, and team characteristics.
Proceedings Article•10.1145/2901739.2903505•
The emotional side of software developers in JIRA

[...]

Marco Ortu1, Alessandro Murgia2, Giuseppe Destefanis3, Parastou Tourani4, Roberto Tonelli1, Michele Marchesi1, Bram Adams4 •
University of Cagliari1, University of Antwerp2, Brunel University London3, École Polytechnique de Montréal4
14 May 2016
TL;DR: This paper manually labeled 2,000 issue comments and 4,000 sen-tences written by developers with emotions such as love,joy, surprise, anger, sadness and fear, allowing the investigation of the role of affects in software development.
Abstract: Issue tracking systems store valuable data for testing hy-potheses concerning maintenance, building statistical pre-diction models and (recently) investigating developer affec-tiveness. For the latter, issue tracking systems can be minedto explore developers emotions, sentiments and politeness, affects for short. However, research on affect detection insoftware artefacts is still in its early stage due to the lack ofmanually validated data and tools.In this paper, we contribute to the research of affectson software artefacts by providing a labeling of emotionspresent on issue comments.We manually labeled 2,000 issue comments and 4,000 sen-tences written by developers with emotions such as love,joy, surprise, anger, sadness and fear. Labeled commentsand sentences are linked to software artefacts reported inour previously published dataset (containing more than 1Kprojects, more than 700K issue reports and more than 2million issue comments). The enriched dataset presented inthis paper allows the investigation of the role of affects insoftware development.
Journal Article•10.1016/J.JSS.2016.05.018•
How do software development teams manage technical debt? - An empirical study

[...]

Jesse Yli-Huumo1, Andrey Maglyas1, Kari Smolander2•
Lappeenranta University of Technology1, Aalto University2
01 Oct 2016-Journal of Systems and Software
TL;DR: It seems that TDM can be associated with a similar maturity concept as software development in general, and development teams may raise their maturity by increasing their awareness and applying more advanced processes, techniques and tools in TDM.
Proceedings Article•10.1109/SANER.2016.56•
Defect Prediction: Accomplishments and Future Challenges

[...]

Yasutaka Kamei1, Emad Shihab2•
Kyushu University1, Concordia University2
14 Mar 2016
TL;DR: The challenges of software prediction models as they were seen in the year 2000 are revisited, in order to reflect on the accomplishments and current trends, as well as, discuss the game changers that had a significant impact on software defect prediction.
Abstract: As software systems play an increasingly important role in our lives, their complexity continues to increase. The increased complexity of software systems makes the assurance of their quality very difficult. Therefore, a significant amount of recent research focuses on the prioritization of software quality assurance efforts. One line of work that has been receiving an increasing amount of attention for over 40 years is software defect prediction, where predictions are made to determine where future defects might appear. Since then, there have been many studies and many accomplishments in the area of software defect prediction. At the same time, there remain many challenges that face that field of software defect prediction. The paper aims to accomplish four things. First, we provide a brief overview of software defect prediction and its various components. Second, we revisit the challenges of software prediction models as they were seen in the year 2000, in order to reflect on our accomplishments since then. Third, we highlight our accomplishments and current trends, as well as, discuss the game changers that had a significant impact on software defect prediction. Fourth, we highlight some key challenges that lie ahead in the near (and not so near) future in order for us as a research community to tackle these future challenges.
Journal Article•10.1016/J.INFSOF.2016.04.008•
Raising the odds of success

[...]

Eveliina Lindgren1, Jürgen Münch2•
University of Helsinki1, Reutlingen University2
01 Sep 2016-Information & Software Technology
TL;DR: The study found that although the principles of continuous experimentation resonated with industry practitioners, the state of the practice is not yet mature and an evolutionary approach is proposed as a way to transition towards experiment-driven development.
Abstract: ContextAn experiment-driven approach to software product and service development is gaining increasing attention as a way to channel limited resources to the efficient creation of customer value. In this approach, software capabilities are developed incrementally and validated in continuous experiments with stakeholders such as customers and users. The experiments provide factual feedback for guiding subsequent development. ObjectiveThis paper explores the state of the practice of experimentation in the software industry. It also identifies the key challenges and success factors that practitioners associate with the approach. MethodA qualitative survey based on semi-structured interviews and thematic coding analysis was conducted. Ten Finnish software development companies, represented by thirteen interviewees, participated in the study. ResultsThe study found that although the principles of continuous experimentation resonated with industry practitioners, the state of the practice is not yet mature. In particular, experimentation is rarely systematic and continuous. Key challenges relate to changing the organizational culture, accelerating the development cycle speed, and finding the right measures for customer value and product success. Success factors include a supportive organizational culture, deep customer and domain knowledge, and the availability of the relevant skills and tools to conduct experiments. ConclusionsIt is concluded that the major issues in moving towards continuous experimentation are on an organizational level; most significant technical challenges have been solved. An evolutionary approach is proposed as a way to transition towards experiment-driven development.
Proceedings Article•10.1109/HICSS.2016.671•
Towards DevOps in the Embedded Systems Domain: Why is It So Hard?

[...]

Lucy Ellen Lwakatare1, Teemu Karvonen1, Tanja Sauvola1, Pasi Kuvaja1, Helena Holmström Olsson2, Jan Bosch3, Markku Oivo1 •
University of Oulu1, Malmö University2, Chalmers University of Technology3
5 Jan 2016
TL;DR: The contribution of this paper is to introduce the concept of DevOps adoption in the embedded systems domain and then to identify key challenges for the Dev Ops adoption.
Abstract: DevOps is a predominant phenomenon in the web domain. Its two core principles emphasize collaboration between software development and operations, and the use of agile principles to manage deployment environments and their configurations. DevOps techniques, such as collaboration and behaviour-driven monitoring, have been used by web companies to facilitate continuous deployment of new functionality to customers. The techniques may also offer opportunities for continuous product improvement when adopted in the embedded systems domain. However, certain characteristics of embedded software development present obstacles for DevOps adoption, and as yet, there is no empirical evidence of its adoption in the embedded systems domain. In this study, we present the challenges for DevOps adoption in embedded systems using a multiple-case study approach with four companies. The contribution of this paper is to introduce the concept of DevOps adoption in the embedded systems domain and then to identify key challenges for the DevOps adoption.
Journal Article•10.1109/TSE.2016.2519887•
The Role of Ethnographic Studies in Empirical Software Engineering

[...]

Helen Sharp1, Yvonne Dittrich2, Cleidson R. B. de Souza3•
Open University1, IT University of Copenhagen2, Federal University of Pará3
01 Aug 2016-IEEE Transactions on Software Engineering
TL;DR: This article introduces ethnography, explains its origin, context, strengths and weaknesses, and presents a set of dimensions that position ethnography as a useful and usable approach to empirical software engineering research.
Abstract: Ethnography is a qualitative research method used to study people and cultures. It is largely adopted in disciplines outside software engineering, including different areas of computer science. Ethnography can provide an in-depth understanding of the socio-technological realities surrounding everyday software development practice, i.e., it can help to uncover not only what practitioners do, but also why they do it. Despite its potential, ethnography has not been widely adopted by empirical software engineering researchers, and receives little attention in the related literature. The main goal of this paper is to explain how empirical software engineering researchers would benefit from adopting ethnography. This is achieved by explicating four roles that ethnography can play in furthering the goals of empirical software engineering: to strengthen investigations into the social and human aspects of software engineering; to inform the design of software engineering tools; to improve method and process development; and to inform research programmes. This article introduces ethnography, explains its origin, context, strengths and weaknesses, and presents a set of dimensions that position ethnography as a useful and usable approach to empirical software engineering research. Throughout the paper, relevant examples of ethnographic studies of software practice are used to illustrate the points being made.
Understanding the influence of user participation and involvement on system success - a systematic mapping study.

[...]

Ulrike Abelein1, Barbara Paech1•
Heidelberg University1
1 Jan 2016
TL;DR: In this article, a systematic mapping study was conducted to investigate the evidence on effects of user participation and involvement on system success and explore which methods are available in literature, and they found that most papers showed positive correlations between aspects of development processes and human aspects (including user involvement) and system success.
Abstract: User participation and involvement in software development are considered to be essential for a successful software system. Three research areas, human aspects of software engineering, requirements engineering, and information systems, study these topics from various perspectives. We think it is important to analyze user participation and involvement in software engineering comprehensively to encourage further research in this area. We investigate the evidence on effects of user participation and involvement on system success and we explore which methods are available in literature. A systematic mapping study was conducted. The systematic search yielded 3,698 hits, from which we identified 289 unique papers. These papers were reviewed by the first author based on inclusion and exclusion criteria. The second author validated the selection of papers by reviewing the reasons for exclusion and inclusion and the corresponding papers on a sample base. 58 of the 289 papers were selected (22 statistical survey and meta-study papers and 36 methods papers). Based on the empirical evidence of the surveys and meta-studies, we developed a meta-analysis of structural equation models. This overview demonstrates that most papers showed positive correlations between aspects of development processes (including user participation) and human aspects (including user involvement) and system success. The analysis of the proposed solutions from the method papers revealed a wide variety of user participation and involvement practices for most activities within software development.
Journal Article•10.1007/S10664-015-9396-2•
Towards building a universal defect prediction model with rank transformed predictors

[...]

Feng Zhang1, Audris Mockus2, Iman Keivanloo1, Ying Zou1•
Queen's University1, University of Tennessee2
01 Oct 2016-Empirical Software Engineering
TL;DR: The universal model obtains prediction performance comparable to the within-project models, yields similar results when applied on five external projects, and performs similarly among projects with different context factors.
Abstract: Software defects can lead to undesired results. Correcting defects costs 50 % to 75 % of the total software development budgets. To predict defective files, a prediction model must be built with predictors (e.g., software metrics) obtained from either a project itself (within-project) or from other projects (cross-project). A universal defect prediction model that is built from a large set of diverse projects would relieve the need to build and tailor prediction models for an individual project. A formidable obstacle to build a universal model is the variations in the distribution of predictors among projects of diverse contexts (e.g., size and programming language). Hence, we propose to cluster projects based on the similarity of the distribution of predictors, and derive the rank transformations using quantiles of predictors for a cluster. We fit the universal model on the transformed data of 1,385 open source projects hosted on SourceForge and GoogleCode. The universal model obtains prediction performance comparable to the within-project models, yields similar results when applied on five external projects (one Apache and four Eclipse projects), and performs similarly among projects with different context factors. At last, we investigate what predictors should be included in the universal model. We expect that this work could form a basis for future work on building a universal model and would lead to software support tools that incorporate it into a regular development workflow.
Proceedings Article•10.1145/2884781.2884874•
How does regression test prioritization perform in real-world software evolution?

[...]

Yafeng Lu1, Yiling Lou2, Shiyang Cheng1, Lingming Zhang1, Dan Hao2, Yangfan Zhou3, Lu Zhang2 •
University of Texas at Dallas1, Peking University2, Fudan University3
14 May 2016
TL;DR: The results show that for both traditional and time-aware test prioritization, test suite augmentation significantly hampers their effectiveness, whereas source code changes alone do not influence their effectiveness much.
Abstract: In recent years, researchers have intensively investigated various topics in test prioritization, which aims to re-order tests to increase the rate of fault detection during regression testing. While the main research focus in test prioritization is on proposing novel prioritization techniques and evaluating on more and larger subject systems, little effort has been put on investigating the threats to validity in existing work on test prioritization. One main threat to validity is that existing work mainly evaluates prioritization techniques based on simple artificial changes on the source code and tests. For example, the changes in the source code usually include only seeded program faults, whereas the test suite is usually not augmented at all. On the contrary, in real-world software development, software systems usually undergo various changes on the source code and test suite augmentation. Therefore, it is not clear whether the conclusions drawn by existing work in test prioritization from the artificial changes are still valid for real-world software evolution. In this paper, we present the first empirical study to investigate this important threat to validity in test prioritization. We reimplemented 24 variant techniques of both the traditional and time-aware test prioritization, and investigated the impacts of software evolution on those techniques based on the version history of 8 real-world Java programs from GitHub. The results show that for both traditional and time-aware test prioritization, test suite augmentation significantly hampers their effectiveness, whereas source code changes alone do not influence their effectiveness much.
Journal Article•10.1016/J.JSS.2016.03.069•
Software outsourcing partnership model

[...]

Sikandar Ali1, Siffat Ullah Khan2•
University of Swat1, University of Malakand2
01 Jul 2016-Journal of Systems and Software
TL;DR: SOPM has been built with the intent to assist SDO vendor organizations in measuring their capabilities for successful conversion of their contractual outsourcing relationship to outsourcing partnership.
Journal Article•10.1109/MM.2016.11•
An Agile Approach to Building RISC-V Microprocessors

[...]

Yunsup Lee1, Andrew Waterman1, Henry Cook1, Brian Zimmer1, Ben Keller1, Alberto Puggelli1, Jaehwa Kwak1, Ruzica Jevtic1, Stevo Bailey1, Milovan Blagojevic1, Pi-Feng Chiu1, Rimas Avizienis1, Brian Richards1, Jonathan Bachrach1, David A. Patterson1, Elad Alon1, Bora Nikolic1, Krste Asanovic1 •
University of California, Berkeley1
01 Mar 2016-IEEE Micro
TL;DR: An agile hardware development methodology is presented, which the authors adopted for 11 RISC-V microprocessor tape-outs on modern 28-nm and 45-nm CMOS processes in the past five years, and how this approach enabled small teams to build energy-efficient, cost-effective, and industry-competitive high-performance microprocessors in a matter of months.
Abstract: The final phase of CMOS technology scaling provides continued increases in already vast transistor counts, but only minimal improvements in energy efficiency, thus requiring innovation in circuits and architectures. However, even huge teams are struggling to complete large, complex designs on schedule using traditional rigid development flows. This article presents an agile hardware development methodology, which the authors adopted for 11 RISC-V microprocessor tape-outs on modern 28-nm and 45-nm CMOS processes in the past five years. The authors discuss how this approach enabled small teams to build energy-efficient, cost-effective, and industry-competitive high-performance microprocessors in a matter of months. Their agile methodology relies on rapid iterative improvement of fabricatable prototypes using hardware generators written in Chisel, a new hardware description language embedded in a modern programming language. The parameterized generators construct highly customized systems based on the free, open, and extensible RISC-V platform. The authors present a case study of one such prototype featuring a RISC-V vector microprocessor integrated with a switched-capacitor DC-DC converter alongside an adaptive clock generator in a 28-nm, fully depleted silicon-on-insulator process.
Proceedings Article•10.1109/SYSENG.2016.7753148•
Building a virtual system of systems using docker swarm in multiple clouds

[...]

Nitin Naik1•
United Kingdom Ministry of Defence1
1 Oct 2016
TL;DR: This paper presents the simulation of building a virtual system of systems (SoS) for the distributed software development process on multiple clouds based on Docker Swarm, VirtualBox, Mac OS X, nginx and redis.
Abstract: The software industry has been embracing the multi-cloud infrastructure for the design and adaptation of complex and distributed software systems. This new hybrid cloud infrastructure makes it possible to mix and match platforms and cloud providers for various software development activities. There are several benefits of the multi-cloud infrastructure such as lower level of vendor lock-in and minimize the risk of widespread data loss or downtime. However, it has many challenges such as non-standard and inherent complexity due to different technologies, interfaces, and services. Docker has introduced container-based software development approach in the past few years and gaining popularity in the software industry. It has recently introduced its distributed system development tool called Swarm, which extends the Docker container-based software development process on multiple hosts in multiple clouds without any interoperability issue. Docker Swarm-based distributed software development is a newborn approach for the cloud industry; nonetheless, it has a huge potential to provide multi-cloud development environment without worrying the complexity of it. This paper presents the simulation of building a virtual system of systems (SoS) for the distributed software development process on multiple clouds. This simulation of virtual SoS is based on Docker Swarm, VirtualBox, Mac OS X, nginx and redis. However, the same SoS can be created on any of the Docker supported cloud by just changing the driver name to the desired cloud name such as Amazon Web Services, Microsoft Azure, Digital Ocean, Google Compute Engine, Exoscale, Generic, OpenStack, Rackspace, IBM Softlayer, VMware vCloud Air.
…

Tools

SciSpace AgentBiomedical AgentSciSpace RecruitSciSpace for EnterpriseAgent GalleryChat with PDFLiterature ReviewAI WriterFind TopicsParaphraserCitation GeneratorExtract DataAI Detector

Learn

ResourcesCompareGuidesLive Workshops

SciSpace

CareersSupportBrowse PapersPricingSciSpace Affiliate ProgramCancellation & Refund PolicyTermsPrivacyData Sources

Directories

PapersTopicsJournalsAuthorsConferencesInstitutionsPublishersCitation StylesWriting templates

Extension & Apps

SciSpace Chrome ExtensionSciSpace Mobile App

Contact

[email protected]
SciSpace

© 2026 | PubGenius Inc. | Suite # 217 691 S Milpitas Blvd Milpitas CA 95035, USA

soc2