Empirical research in software engineering a critical view
Several studies investigated individual aspects of software development expertise, but what is missing is a comprehensive theory. We present a first conceptual theory of software development expertise that is grounded in data from a mixed-methods survey with software developers see supplementary material and in literature on expertise and expert performance.
Our theory currently focuses on programming, but already provides valuable insights for researchers, developers, and employers. Using these snippets raises various maintenance and legal issues. The Stavk Overflow license CC BY-SA requires attribution, that is referencing the original question or answer, and requires derived work to adopt a compatible license.
We conducted a large-scale empirical study to analyze the usage and attribution of non-trivial code snippets from Stack Overflow answers in public GitHub projects see supplementary material.
For more information about the research design and results, please consult the blog post and the publications linked below. Sketches and diagrams play an important role in the daily work of software developers. We focused especially on their relation to the core elements of a software project, the source code artifacts. Furthermore, we wanted to assess how helpful sketches are for understanding the related source code. We intended to find out if, how, and why sketches and diagrams are archived and are thereby available for future use.
Software is created with and for a wide range of stakeholders. Since sketches are often a means for communicating between these stakeholders, we were not only interested in sketches and diagrams created by software developers, but by all software practitioners, including testers, architects, project managers, as well as researchers and consultants.
Contrary to our expectations and previous work, the majority of sketches and diagrams contained at least some UML elements. However, most of them were informal. The most common purposes for creating sketches and diagrams were designing, explaining, and understanding, but analyzing requirements was also named often. More than half of the sketches and diagrams were created on analog media like paper or whiteboards and have been revised after creation.
Most of them were used for more than a week and were archived. About half of the sketches were rated as helpful to understand the related source code artifact s in the future.
Our study complements a number of existing studies on the use of sketches and diagrams in software development, which analyzed the above aspects only in parts and often focused on an academic environment, a single company, open source projects, or were limited to a small group of participants. Performance bugs can lead to severe issues regarding computation efficiency, power consumption, and user experience.
Locating these bugs is a difficult task because developers have to judge for every costly operation whether runtime is consumed necessarily or unnecessarily. We wanted to investigate how developers, when locating performance bugs, navigate through the code, understand the program, and communicate the detected issues. To this end, we performed a qualitative user study observing twelve developers trying to fix documented performance bugs in two open source projects see supplementary material.
The developers worked with a profiling and analysis tool that visually depicts runtime information in a list representation and embedded into the source code view. We identified typical navigation strategies developers used for pinpointing the bug, for instance, following method calls based on runtime consumption.
The integration of visualization and code helped developers to understand the bug. Sketches visualizing data structures and algorithms turned out to be valuable for externalizing and communicating the comprehension process for complex bugs.
Fixing a performance bug is a code comprehension and navigation problem. Flexible navigation features based on executed methods and a close integration of source code and performance information support the process. A core goal of Continuous Integration CI is to make small incremental changes to software projects, which are integrated frequently into a mainline repository or branch. This paper presents an empirical study that investigates if developers adjust their commit activity towards the above-mentioned goal after projects start using CI.
We analyzed the commit and merge activity in 93 GitHub projects that introduced the hosted CI system Travis CI , but have previously been developed for at least one year before introducing CI see supplementary material and dataset.
In our analysis, we only found one non-negligible effect, an increased merge ratio, meaning that there were more merging commits in relation to all commits after the projects started using Travis CI. This effect has also been reported in related work. However, we observed the same effect in a random sample of 60 GitHub projects not using CI.
Thus, it is unlikely that the effect is caused by the introduction of CI alone. The git-log-extractor and git-log-parser tools we developed for this project are available on GitHub. The corresponding paper was published at SWAN and won the best paper award. In this interdisciplinary research project, we argue that urban tourism space is re- produced digitally and collaboratively on online platforms and empirically analyze how two Berlin neighborhoods are digitally constructed by Airbnb hosts in their listing descriptions.
More information in our blog post and the corresponding publication presented at CSCW If they are archived, they are often detached from the source code they document, because there is no adequate tool support to assist developers in capturing, archiving, and retrieving sketches related to certain source code artifacts.
We implemented SketchLink to increase the value of sketches and diagrams created during software development by supporting developers in these tasks. Our prototype implementation provides a web application that employs the camera of smartphones and tablets to capture analog sketches, but can also be used on desktop computers to upload, for instance, computer-generated diagrams.
We also implemented a plugin that embeds the links in Javadoc comments and visualizes them in situ in the source code editor as graphical icons for the IntelliJ Java IDE. Besides being a useful software documentation tool, SketchLink also enables developers to navigate through their source code using the linked sketches and diagrams. More information can be found in our demo video , the supplementary material , and the corresponding publication presented at FSE Sketching is an important activity for understanding, designing, and communicating different aspects of software systems such as their requirements or architecture.
Skip to content. Change Language. Related Articles. Table of Contents. Improve Article. Save Article. Like Article. Last Updated : 25 Mar, Researchers: According to researchers, the results can be used to provide information about existing guidelines and trends regarding future research. Empirical study is useful in establishing the generalizability of results related to new subjects or data sets by researchers.
Academicians: Empirical research helps academicians in finding answers of their question through interviewing different stakeholders, conducting a scientific experiment or conducting a survey. Academicians make predictions in the form of hypotheses.
With the help of empirical research, these hypotheses can be tested, and their results can be shown as either being accepted or rejected. Thus, on the basis of result Academicians can make a conclusion about a particular theory or make some generalization. Basic elements of Empirical Research:. Recommended Articles. Article Contributed By :. Easy Normal Medium Hard Expert.
0コメント