63,541 research outputs found
Case Studies in Industry: What We Have Learnt
Case study research has become an important research methodology for
exploring phenomena in their natural contexts. Case studies have earned a
distinct role in the empirical analysis of software engineering phenomena which
are difficult to capture in isolation. Such phenomena often appear in the
context of methods and development processes for which it is difficult to run
large, controlled experiments as they usually have to reduce the scale in
several respects and, hence, are detached from the reality of industrial
software development. The other side of the medal is that the realistic
socio-economic environments where we conduct case studies -- with real-life
cases and realistic conditions -- also pose a plethora of practical challenges
to planning and conducting case studies. In this experience report, we discuss
such practical challenges and the lessons we learnt in conducting case studies
in industry. Our goal is to help especially inexperienced researchers facing
their first case studies in industry by increasing their awareness for typical
obstacles they might face and practical ways to deal with those obstacles.Comment: Proceedings of the 4th International Workshop on Conducting Empirical
Studies in Industry, co-located with ICSE, 201
How software engineering research aligns with design science: A review
Background: Assessing and communicating software engineering research can be
challenging. Design science is recognized as an appropriate research paradigm
for applied research but is seldom referred to in software engineering.
Applying the design science lens to software engineering research may improve
the assessment and communication of research contributions. Aim: The aim of
this study is 1) to understand whether the design science lens helps summarize
and assess software engineering research contributions, and 2) to characterize
different types of design science contributions in the software engineering
literature. Method: In previous research, we developed a visual abstract
template, summarizing the core constructs of the design science paradigm. In
this study, we use this template in a review of a set of 38 top software
engineering publications to extract and analyze their design science
contributions. Results: We identified five clusters of papers, classifying them
according to their alignment with the design science paradigm. Conclusions: The
design science lens helps emphasize the theoretical contribution of research
output---in terms of technological rules---and reflect on the practical
relevance, novelty, and rigor of the rules proposed by the research.Comment: 32 pages, 10 figure
Naming the Pain in Requirements Engineering: A Design for a Global Family of Surveys and First Results from Germany
For many years, we have observed industry struggling in defining a high
quality requirements engineering (RE) and researchers trying to understand
industrial expectations and problems. Although we are investigating the
discipline with a plethora of empirical studies, they still do not allow for
empirical generalisations. To lay an empirical and externally valid foundation
about the state of the practice in RE, we aim at a series of open and
reproducible surveys that allow us to steer future research in a problem-driven
manner. We designed a globally distributed family of surveys in joint
collaborations with different researchers and completed the first run in
Germany. The instrument is based on a theory in the form of a set of hypotheses
inferred from our experiences and available studies. We test each hypothesis in
our theory and identify further candidates to extend the theory by correlation
and Grounded Theory analysis. In this article, we report on the design of the
family of surveys, its underlying theory, and the full results obtained from
Germany with participants from 58 companies. The results reveal, for example, a
tendency to improve RE via internally defined qualitative methods rather than
relying on normative approaches like CMMI. We also discovered various RE
problems that are statistically significant in practice. For instance, we could
corroborate communication flaws or moving targets as problems in practice. Our
results are not yet fully representative but already give first insights into
current practices and problems in RE, and they allow us to draw lessons learnt
for future replications. Our results obtained from this first run in Germany
make us confident that the survey design and instrument are well-suited to be
replicated and, thereby, to create a generalisable empirical basis of RE in
practice
Designing experiments using digital fabrication in structural dynamics
In engineering, traditional approaches aimed at teaching concepts of dynamics to engineering students include the study of a dense yet sequential theoretical development of proofs and exercises. Structural dynamics are seldom taught experimentally in laboratories since these facilities should be provided with expensive equipment such as wave generators, data-acquisition systems, and heavily wired deployments with sensors. In this paper, the design of an experimental experience in the classroom based upon digital fabrication and modeling tools related to structural dynamics is presented. In particular, all experimental deployments are conceived with low-cost, open-source equipment. The hardware includes Arduino-based open-source electronics whereas the software is based upon object-oriented open-source codes for the development of physical simulations. The set of experiments and the physical simulations are reproducible and scalable in classroom-based environments.Peer ReviewedPostprint (author's final draft
Software development: A paradigm for the future
A new paradigm for software development that treats software development as an experimental activity is presented. It provides built-in mechanisms for learning how to develop software better and reusing previous experience in the forms of knowledge, processes, and products. It uses models and measures to aid in the tasks of characterization, evaluation and motivation. An organization scheme is proposed for separating the project-specific focus from the organization's learning and reuse focuses of software development. The implications of this approach for corporations, research and education are discussed and some research activities currently underway at the University of Maryland that support this approach are presented
On Using Active Learning and Self-Training when Mining Performance Discussions on Stack Overflow
Abundant data is the key to successful machine learning. However, supervised
learning requires annotated data that are often hard to obtain. In a
classification task with limited resources, Active Learning (AL) promises to
guide annotators to examples that bring the most value for a classifier. AL can
be successfully combined with self-training, i.e., extending a training set
with the unlabelled examples for which a classifier is the most certain. We
report our experiences on using AL in a systematic manner to train an SVM
classifier for Stack Overflow posts discussing performance of software
components. We show that the training examples deemed as the most valuable to
the classifier are also the most difficult for humans to annotate. Despite
carefully evolved annotation criteria, we report low inter-rater agreement, but
we also propose mitigation strategies. Finally, based on one annotator's work,
we show that self-training can improve the classification accuracy. We conclude
the paper by discussing implication for future text miners aspiring to use AL
and self-training.Comment: Preprint of paper accepted for the Proc. of the 21st International
Conference on Evaluation and Assessment in Software Engineering, 201
Reinforcement Learning for Automatic Test Case Prioritization and Selection in Continuous Integration
Testing in Continuous Integration (CI) involves test case prioritization,
selection, and execution at each cycle. Selecting the most promising test cases
to detect bugs is hard if there are uncertainties on the impact of committed
code changes or, if traceability links between code and tests are not
available. This paper introduces Retecs, a new method for automatically
learning test case selection and prioritization in CI with the goal to minimize
the round-trip time between code commits and developer feedback on failed test
cases. The Retecs method uses reinforcement learning to select and prioritize
test cases according to their duration, previous last execution and failure
history. In a constantly changing environment, where new test cases are created
and obsolete test cases are deleted, the Retecs method learns to prioritize
error-prone test cases higher under guidance of a reward function and by
observing previous CI cycles. By applying Retecs on data extracted from three
industrial case studies, we show for the first time that reinforcement learning
enables fruitful automatic adaptive test case selection and prioritization in
CI and regression testing.Comment: Spieker, H., Gotlieb, A., Marijan, D., & Mossige, M. (2017).
Reinforcement Learning for Automatic Test Case Prioritization and Selection
in Continuous Integration. In Proceedings of 26th International Symposium on
Software Testing and Analysis (ISSTA'17) (pp. 12--22). AC
- …