[FREE PDF sample] Contemporary Empirical Methods in Software Engineering Michael Felderer ebooks
[FREE PDF sample] Contemporary Empirical Methods in Software Engineering Michael Felderer ebooks
com
https://textbookfull.com/product/contemporary-empirical-
methods-in-software-engineering-michael-felderer/
OR CLICK BUTTON
DOWNLOAD NOW
https://textbookfull.com/product/ernst-denert-award-for-software-
engineering-2019-practice-meets-foundations-michael-felderer/
textboxfull.com
https://textbookfull.com/product/effective-methods-for-software-
engineering-first-edition-boyd-l-summers/
textboxfull.com
https://textbookfull.com/product/managing-humans-biting-and-humorous-
tales-of-a-software-engineering-manager-michael-lopp/
textboxfull.com
https://textbookfull.com/product/rethinking-productivity-in-software-
engineering-caitlin-sadowski/
textboxfull.com
https://textbookfull.com/product/concise-guide-to-software-
engineering-from-fundamentals-to-application-methods-1st-edition-
gerard-oregan/
textboxfull.com
https://textbookfull.com/product/managing-humans-biting-and-humorous-
tales-of-a-software-engineering-manager-3rd-edition-michael-lopp/
textboxfull.com
Contemporary
Empirical Methods
in Software
Engineering
Contemporary Empirical Methods in Software
Engineering
Michael Felderer • Guilherme Horta Travassos
Editors
Contemporary
Empirical Methods in
Software Engineering
Editors
Michael Felderer Guilherme Horta Travassos
Department of Computer Science Department of Systems Engineering and
University of Innsbruck Computer Science, COPPE
Innsbruck, Austria Federal University of Rio de Janeiro
Rio de Janeiro, Brazil
This Springer imprint is published by the registered company Springer Nature Switzerland AG.
The registered company address is: Gewerbestrasse 11, 6330 Cham, Switzerland
Foreword
v
vi Foreword
References
ix
x Contents
M. Felderer ()
Department of Computer Science, University of Innsbruck, Innsbruck, Austria
Department of Software Engineering, Blekinge Institute of Technology, Karlskrona, Sweden
e-mail: [email protected]
G. H. Travassos
Department of Systems Engineering and Computer Science, COPPE, Federal University of Rio
de Janeiro, Rio de Janeiro, Brazil
e-mail: [email protected]
1 Introduction
The term software engineering originated in the early 1960s (Hey et al. 2014).
During the NATO Software Engineering Conferences held in 1968 and 1969,
participants made explicit that engineering software requires dedicated approaches
that are separate from those for the underlying hardware systems. Until that
“software crisis,” software-related research mostly focused on theoretical aspects,
e.g., algorithms and data structures used to write software systems, or practical
aspects, e.g., an efficient compilation of software for particular hardware sys-
tems (Guéhéneuc and Khomh 2019). Since then, these topics are investigated in
computer science, which pertains to understanding and proposing theories and
methods related to the efficient computation of algorithms, and differs from software
engineering (research), which has become a very dynamic discipline on its own
since its foundation in the 1960s. IEEE (1990, 2010) defines software engineering
(SE) as: (1) The application of a systematic, disciplined, quantifiable approach to
the development, operation, and maintenance of software, that is, the application
of engineering to software, and (2) The study of approaches as in (1). Software
engineering also differs from other engineering disciplines due to the immaterial
nature of software not obeying physical laws and the importance of human factors
as software is written by people for people. Software engineering is fundamentally
an empirical discipline, where knowledge is gained applying direct and indirect
observation or experience. Approaches to software development, operation, and
maintenance must be investigated by empirical means to be understood, evaluated,
and deployed in proper contexts. Empirical methods like experimentation are
therefore essential in software engineering to gain scientific evidence on software
development, operation, and maintenance, but also to support practitioners in their
decision-making and learning (Travassos et al. 2008). The application of empirical
methods makes software engineering more objective and less imprecise, facilitating
the transfer of software technologies to the industry (Shull et al. 2001). Software
engineers learn by observing, exploring, and experimenting. The level of learning
depends on the degree of observation or intervention (Thomke 2003) promoted by
the experiences and studies performed.
Traditionally, empirical software engineering (ESE) is the area of research that
emphasizes the use of empirical methods in the field of software engineering.
According to Harrison and Basili (1996), “Empirical software engineering is the
study of software-related artifacts for the characterization, understanding, eval-
uation, prediction, control, management, or improvement through qualitative or
quantitative analysis. The quantitative studies may range from controlled experi-
mentation to case studies. Qualitative studies should be well-defined and rigorous.”
The role and importance of the different types of empirical methods in software
engineering have evolved since the foundation of software engineering. In this
chapter, we discuss the evolution of empirical methods in software engineering and
especially also take key venues and books into account as they reflect that evolution.
The Evolution of Empirical Methods in Software Engineering 3
Empirical methods rely on the collected data. Data collection methods may involve
qualitative or quantitative data. Some widely used qualitative data collection
methods in software engineering are interviews and participant observation (Seaman
1999). Some commonly used quantitative data collection methods are archival data,
surveys, experiments, and simulation (Wohlin et al. 2012). Once data are collected,
the researcher needs to analyze the data by using qualitative analysis methods,
e.g., grounded theory, thematic analysis, or hermeneutics, and quantitative analysis
methods, e.g., statistical analysis and mathematical modeling approaches.
In general, there are three widely recognized research processes called quanti-
tative research, qualitative research, and semiquantitative research. An alternative
option is the combination of both qualitative and quantitative research, denoted as
The Evolution of Empirical Methods in Software Engineering 5
mixed research (Creswell and Creswell 2018). The distinction between qualitative
and quantitative research comes not only from the type of data collected, but also
the objectives, types of research questions posed, analysis methods, and the degree
of flexibility built into the research design as well (Wohlin and Aurum 2015).
Qualitative research aims to understand the reason (i.e., “why”) and mechanisms
(i.e., “how”) explaining a phenomenon. A popular method of qualitative research
is case study research, which examines a set of selected samples in detail to
understand the phenomenon illustrated by the samples. For instance, a qualitative
study can be conducted to understand the impediments of automating system
tests. Quantitative research is a data-driven approach used to gain insights about
an observable phenomenon. Data collected from observations are analyzed using
mathematical and statistical models to derive quantitative relationships between
different variables capturing different aspects of the phenomenon under study. A
popular method of quantitative research are controlled experiments to examine
cause–effect relationships between different variables characterizing a phenomenon
in a controlled environment. For instance, different review techniques could be
compared via a controlled experiment. Mixed research collects quantitative and
qualitative data. It is a particular form of multi-method research, which combines
different research methods to answer some hypotheses, and is often used in empir-
ical software engineering due to the lack of theories in software engineering with
which we interpret quantitative data and due to the need to discuss qualitatively the
impact of the human factor on any experiments in software engineering (Guéhéneuc
and Khomh 2019). Semiquantitative research deals with approximate measurements
to data rather than exact measurements (Bertin 1978). It looks for understanding the
behavior of a system based on causal relations between the variables describing
the system. Semiquantitative models allow one to express what is known without
making inappropriate assumptions, simulating ranges of behavior rather than values
of point (Widman 1989). It has many applications in both the natural and social
sciences. Semiquantitative research supports cases where direct measurements are
not possible, but where it is possible to estimate an approximated behavior. In other
words, this type of study is applied in scenarios where the numerical values in the
mathematical relations governing the changes of a system are not known. In this
context, the direction of change is known, but not the size of its effect (Ogborn and
Miller 1994). Simulation-based studies in software engineering can benefit from
using semiquantitative research (Araújo et al. 2012).
The three major and well-established empirical methods in software engineering
are: survey, case study, and experiment (Wohlin et al. 2012). Primary studies using
such methods can be performed in vivo, in vitro, in virtuo, and in silico (Travas-
sos and Barros 2003). In vivo studies involve participants and projects in their
natural environments and contexts. Such studies are usually executed in software
development organizations throughout the software development process under real
working conditions. In vitro studies are performed in controlled environments, such
as laboratories or controlled communities, under configured working conditions. In
virtuo studies have the subjects interacting with a computerized model of reality.
The behavior of the environment with which subjects interact is described as a
6 M. Felderer and G. H. Travassos
to identify clusters of studies (that could form the basis of a fuller review with more
synthesis) and gaps indicating the need for more primary studies.
The scientific or industrial significance of empirical studies depends on their
validity, i.e., the degree to which one can trust the outcomes of an empirical
study (Kitchenham et al. 2015). Validity is usually assessed in terms of four
commonly encountered forms of threats to validity: internal, external, construct,
and conclusion validity (Shadish et al. 2002). Internal validity refers to inferences
that the observed relationship between treatment and outcome reflects a cause–
effect relationship. External validity refers to whether a cause–effect relationship
holds over other conditions, including persons, settings, treatment variables, and
measurement variables. Construct validity refers to how concepts are operational-
ized as experimental measures. Conclusion validity refers to inferences about the
relationship between treatment and outcome variables.
The accomplishment of empirical studies relies on performing well-defined and
evolutionary activities. The classical empirical study process consists of five phases:
definition, planning, operation, analysis, and interpretation, as well as reporting and
packaging (Juristo and Moreno 2001; Malhotra 2016). The definition phase makes
the investigated problem and overall objectives of the study explicit. The planning
phase covers the study design and includes the definition of research questions and
hypotheses as well as the definition of data collection, data analysis, and validity
procedures. In the operation phase, the study is actually conducted. In the analysis
and interpretation phase, the collected data is analyzed, assessed, and discussed.
Finally, in the reporting and packaging phase, the results of the study are reported
(e.g., in a journal article, a conference paper, or a technical report) and suitably
packaged to provide study material and data. The latter has become more critical
recently due to the open science movement (see chapter “Open Science in Software
Engineering”).
In the early years of software engineering, empirical studies were rare, and the
only research model commonly in use was the analytical method, where different
formal theories were advocated devoid of any empirical evaluation (Glass 1994).
According to a systematic literature review of empirical studies performed by
Zendler (2001), Grant and Sackman (1967) published the first empirical study in
software engineering in 1967. The authors conducted an experiment that compared
the performance of two groups of developers, one working with online access to
a computer through a terminal and the other with offline access in batch mode.
Another empirical study published early in the history of software engineering was
an article by Knuth (1971), in which the author studied a set of Fortran programs
to understand what developers do in Fortran programs. Akiyama (1971) describes
the first known “size law” (Bird et al. 2015), stating that the number of defects is a
function of the number of lines of code. The authors in these and other early studies
defined the goal of the study, the questions to research, and the measures to answer
these questions in an ad hoc fashion (Guéhéneuc and Khomh 2019). However, they
were pioneers in the application of empirical methods in software engineering.
In the second iteration, already more empirical studies, mainly in vitro experiments,
were conducted. Prominent examples are experiments on structured program-
ming (Lucas et al. 1976), flowcharting (Shneiderman et al. 1977), and software
testing (Myers 1978). The second iteration is characterized by first attempts to pro-
vide a systematic methodology to define empirical studies in software engineering in
general and experiments in particular. These attempts culminated in the definition of
the Goal/Question/Metrics (GQM) approach by Basili and Weiss (1984). The GQM
approach helped practitioners and researchers to define measurement programs
based on goals related to products, processes, and resources that can be achieved
by answering questions that characterize the objects of measurement using metrics.
The Evolution of Empirical Methods in Software Engineering 9
In the third iteration, not only experiments but also surveys (for instance,
by Burkhard and Jenster (1989) on the application of computer-aided software
engineering tools) and case studies (for instance, by Curtis et al. (1988) on the
software design process for large systems) were performed to some extent. Also,
the explicit discussion of threats to validity appeared in that iteration. One of the first
studies explicitly discussing its threats to validity was an article by Swanson and
Beath (1988) on the use of case study data in software management research. From
the late 1980s, researchers also started to analyze software data using algorithms
taken from artificial intelligence research (Bird et al. 2015). For instance, decision
trees and neural networks were applied to predict error-proneness (Porter and
Selby 1990), to estimate software effort (Srinivasan and Fisher 1995) and to model
reliability growth (Tian 1995).
In the third iteration, empirical studies began to attract the attention of several
research groups all over the world, who realized the importance of providing empir-
ical evidence about the developed and investigated software products and processes.
The experiences shared by NASA/SEL and the participation of several researchers
in conducting experiments together with NASA/SEL helped to strengthen the use
of different experimental strategies and the application of surveys.
The interest in the application of the scientific method by different researchers,
the identification of the need to evolve the experimentation process through sharing
of experimental knowledge among peers as well as the transfer of knowledge to
industry, among other reasons, led to the establishment of the International Software
Engineering Research Network (ISERN) in 1992. ISERN held its first annual
meeting in Japan in 1993 sponsored by the Graduate School of Information Science
at the Nara Institute of Science and Technology.
10 M. Felderer and G. H. Travassos
The need to share the ever increasing number of studies and their results and the
growing number of researchers applying empirical methods in software engineering
lead to the foundation of suitable forums. In 1993 the IEEE International Software
Metrics Symposium, in 1996, the Empirical Software Engineering International
Journal, and in 1997, the Empirical Assessments in Software Engineering (EASE)
event at Keele University were founded.
By the end of this iteration, several institutes dedicated to empirical software
engineering were established. In 1996, the Fraunhofer Institute for Experimental
Software Engineering (IESE) associated with the University of Kaiserslautern
(Germany) was established. In 1998, the Fraunhofer Center for Experimental
Software Engineering (CESE) associated with the University of Maryland, College
Park (USA) began operations. Also, other institutions and laboratories, such as
National ICT Australia as well as the Simula Research Laboratory and SINTEF
(both located in Norway), among others, started to promote empirical studies in
software engineering in the industry.
Finally, by the end of the 1990s, the publication of methodological papers on
empirical methods in software engineering started. Zelkowitz and Wallace (1998)
provided an overview of experimental techniques to validate new technologies,
Seaman (1999) provided guidelines for qualitative data collection and analysis, and
Basili et al. (1999) discussed families of experiments.
Since 2000 research methodology has received considerable attention, and therefore
the publication of methodological papers further increased. For instance, Höst et al.
(2000) discuss the usage of students as subjects in experiments, Shull et al. (2001)
describe a methodology to introduce software processes based on experimentation,
Pfleeger and Kitchenham (2001) provide guidelines on surveys in software engi-
neering, Lethbridge et al. (2005) provide a classification of data collection methods,
Kitchenham and Charters (2007) provide guidelines for performing systematic
literature reviews in software engineering, Shull et al. (2008) discuss the role
of replication in empirical software engineering, and Runeson and Höst (2009)
provide guidelines for case study research. In connection to the increased interest
in research methodology, also the first books on empirical research methods in
software engineering with a focus on experimentation written by Wohlin et al.
(2000) and Juristo and Moreno (2001) appeared around 2000 (see Sect. 5 for
a comprehensive overview of books on empirical software engineering). Also,
combining research methods and performing multi-method research became more
popular in the period. One of the first papers following a multi-method research
methodology was published by Espinosa et al. (2002) on shared mental models,
familiarity, and coordination in distributed software teams.
With the growing number of empirical studies, knowledge aggregation based
on these primary studies became more crucial to understand software engineering
The Evolution of Empirical Methods in Software Engineering 11
The empirical evidence gathered through analyzing the data collected from the
software repositories is considered to be an important support for the (empirical)
software engineering community these days. There are even venues that focus on
analysis of software data such as Mining Software Repositories (MSR), which was
organized for the first time in 2004 in Edinburgh (UK) and Predictive Models and
Data Analytics in Software Engineering (PROMISE), which was organized for the
first time in 2005 in St. Louis (USA).
In general, the growing interest in empirical software engineering in that period
resulted in projects such as the Experimental Software Engineering Research
Network (ESERNET) in Europe from 2001 to 2003 and the foundation of several
venues. In 2007, the first ACM/IEEE International Symposium on Empirical
Software Engineering and Measurement (ESEM) was held in Madrid (Spain).
ESEM is the result of the merger between the ACM/IEEE International Symposium
on Empirical Software Engineering, which ran from 2002 to 2006, and the IEEE
International Software Metrics Symposium, which ran from 1993 to 2005. In 2003,
Experimental Software Engineering Latin American Workshop (ESELAW) was
organized for the first time. Also, in 2003, the International Advanced School
on Empirical Software Engineering (IASESE) performed its first set of classes in
Rome (Italy). In 2006, the International Doctoral Symposium on Empirical Software
Engineering (IDoESE) was founded. Today, the ISERN annual meeting, IASESE,
IDoESE, and ESEM form the Empirical Software Engineering International Week
(ESEIW), which is held annually.
Fig. 1 International Advanced School on Empirical Software Engineering (IASESE) timeline and topics from 2003 to 2019
M. Felderer and G. H. Travassos
The Evolution of Empirical Methods in Software Engineering 15
Since the first empirical studies in the 1960s, the field of empirical software
engineering has considerably matured in several iterations. However, the empirical
methods resulting from the five iterations presented in the previous section are
not the end of the story, and as in any scientific discipline, research methods
develop further. The chapters of this book discuss contemporary empirical methods
that impact the current evolution of empirical software engineering and form the
backbone of its next iteration. For sure, the description of the current situation
and future trends is never complete and always subjective to some extent. But
we think that the chapters covered in this book show several interesting trends
in contemporary empirical methods in software engineering, which we want to
summarize here.
The evolution of empirical software engineering leads to the continuous adoption
of empirical methods from other fields and the refinement of existing empirical
methods in software engineering. The resulting plurality of research methods
requires guidance in knowledge-seeking and solution-seeking (i.e., design science)
research. The chapter “Guidelines for Conducting Software Engineering Research”
presents guidelines for conducting software engineering research based on the
ABC framework, where ABC represents the three desirable aspects of research
generalizability over actors (A), precise control of behavior (B), and realism of
context (C). Each empirical method has its strengths and weaknesses. It is beneficial
to utilize a mix of methods depending on the research goal or even to combine
methods. Case survey research combines case study and survey research, which rely
primarily on qualitative and quantitative data, respectively. The chapter “Guidelines
for Case Survey Research in Software Engineering” provides an overview of the
case survey method. While being an important and often used empirical method,
survey research has been less discussed on a methodological level than other types
of empirical methods. The chapter “Challenges in Survey Research” discusses
methodological issues in survey research for software engineering concerning
theory building, sampling, invitation and follow-up, statistical analysis, qualitative
analysis, and assessment of psychological constructs. Although software engineer-
ing is an engineering discipline, the design science paradigm has been explicitly
adapted to software engineering relatively late by Wieringa (2014b), and the full
potential of the design science paradigm has not been exploited so far in software
engineering. The chapter “The Design Science Paradigm as a Frame for Empirical
Software Engineering” uses the design science paradigm as a frame for empirical
software engineering and uses it to support the assessment of research contributions,
industry-academia communication, and theoretical knowledge building.
It is generally acknowledged that software development is a human-intensive
activity as software is built by humans for humans. However, traditionally SE
research has focused on artifacts and processes without explicitly taking human
factors in general and the developer perspective in particular into account. If the
perspective on how developers work was considered, then it was mostly measured
16 M. Felderer and G. H. Travassos
Since 2000 research methodology has received considerable attention in the soft-
ware engineering research community. Therefore, plenty of literature is available
on empirical research methodology in software engineering. Molléri et al. (2019)
identified in a recent systematic mapping study 341 methodological papers on
empirical research in software engineering—and therefore, a complete overview
would exceed the scope of this book chapter. However, following the style of this
book chapter, we provide an overview of the available English text and special
issue books explicitly dedicated to empirical research methodology in software
engineering in chronological order of their publication.
Wohlin et al. (2000) published a book entitled “Experimentation in Software
Engineering,” which provides an overview of the core empirical strategies in
software engineering, i.e., surveys, experimentation, and case studies and as its
18 M. Felderer and G. H. Travassos
main content all steps in the experimentation process, i.e., scoping, planning,
operation, analysis and interpretation as well as presentation and package. The
book is complemented by exercises and examples, e.g., an experiment comparing
different programming languages. Consequently, the book targets students, teachers,
researchers, and practitioners in software engineering. In 2012 a revision of this
popular book had been published with Springer (Wohlin et al. 2012).
Juristo and Moreno (2001) published a book entitled “Basics of Software Engi-
neering Experimentation,” which presents the basics of designing and analyzing
experiments both to software engineering researchers and practitioners based on
SE examples like comparing the effectiveness of defect detection techniques. The
book presents the underlying statistical methods, including the computation of test
statistics in detail.
Endres and Rombach (2003) published “A Handbook of Software and Systems
Engineering. Empirical Observations, Laws, and Theories.” The book presents rules,
laws, and their underlying theories from all phases of the software development
lifecycle. The book provides the reader with clear statements of software and system
engineering laws and their applicability as well as related empirical evidence. The
consideration of empirical evidence distinguishes the book from other available
handbooks and textbooks on software engineering.
Juristo and Moreno (2003) edited “Lecture Notes on Empirical Software Engi-
neering,” which aims to spread the idea of the importance of empirical knowledge
in software development from a highly practical viewpoint. It defines the body of
empirically validated knowledge in software development to advise practitioners on
what methods or techniques have been empirically analyzed and what the results
were. Furthermore, it promotes “empirical tests,” which have traditionally been
carried out by universities or research centers, for application in industry to validate
software development technologies used in practice.
Shull et al. (2007) published the “Guide to Advanced Empirical Software Engi-
neering.” It is an edited book written by experts in empirical software engineering. It
covers advanced research methods and techniques, practical foundations, as well as
knowledge creation, approaches. The book at hand provides a continuation of that
seminal book covering recent developments in empirical software engineering.
Runeson et al. (2012) published a book entitled “Case Study Research in
Software Engineering: Guidelines and Examples,” which covers guidelines for
all steps of case study research, i.e., design, data collection, data analysis and
interpretation, as well as reporting and dissemination. The book is complemented
with examples from extreme programming, project management, quality monitoring
as well as requirements engineering and additionally also provides checklists.
Wieringa (2014b) published a book entitled “Design Science Methodology for
Information Systems and Software Engineering,” which provides guidelines for
practicing design science in software engineering research. A design process usually
iterates over two activities, i.e., first designing an artifact that improves something
for stakeholders, and subsequently empirically validating the performance of that
artifact in its context. This “validation in context” is a key feature of the book.
The Evolution of Empirical Methods in Software Engineering 19
Menzies et al. (2014) published a book entitled “Sharing Data and Models in
Software Engineering.” The central theme of the book is how to share what has been
learned by data science from software projects. The book is driven by the PROMISE
(Predictive Models and Data Analytics in Software Engineering) community. It is
the first book dedicated to data science in software and mining software repositories.
Closely related to this book, Bird et al. (2015) published a book entitled “The Art
and Science of Analyzing Software Data,” which is driven by the MSR (Mining
Software Repositories) community and focuses mainly on data analysis based on
statistics and machine learning. Another related book published by Menzies et al.
(2016) covers perspectives on data science for software engineering by various
authors.
Kitchenham et al. (2015) published a book entitled “Evidence-based Software
Engineering and Systematic Reviews,” which provides practical guidance on how
to conduct secondary studies in software engineering. The book also discusses the
nature of evidence and explains the types of primary studies that provide inputs to a
secondary study.
Malhotra (2016) published a book entitled “Empirical Research in Software
Engineering: Concepts, Analysis, and Applications,” which shows how to imple-
ment empirical research processes, procedures, and practices in software engineer-
ing. The book covers many accompanying exercises and examples. The author
especially also discusses the process of developing predictive models, such as defect
prediction and change prediction, on data collected from source code repositories,
and, more generally the application of machine learning techniques in empirical
software engineering.
ben Othmane et al. (2017) published a book entitled “Empirical Research
for Software Security: Foundations and Experience,” which discusses empirical
methods with a special focus on software security.
Staron (2019) published a book entitled “Action Research in Software Engineer-
ing: Theory and Applications,” which offers a comprehensive discussion on the use
of action research as an instrument to evolve software technologies and promote
synergy between researchers and practitioners.
In addition to these textbooks, there are also edited books available that are
related to special events in empirical software engineering and cover valuable
methodological contributions.
Rombach et al. (1993) edited proceedings from a Dagstuhl seminar in 1992
on empirical software engineering entitled “Experimental Software Engineering
Issues: Critical Assessment and Future Directions.” The goal was to discuss the state
of the art of empirical software engineering by assessing past accomplishments,
raising open questions, and proposing a future research agenda at that time.
However, many contributions of that book are still relevant today.
Conradi and Wang (2003) edited a book entitled “Empirical Methods and Studies
in Software Engineering: Experiences from ESERNET,” which covers experiences
from the Experimental Software Engineering Research NETwork (ESERNET), a
thematic network funded by the European Union between 2001 and 2003.
20 M. Felderer and G. H. Travassos
6 Conclusion
Acknowledgements We thank all the authors and reviewers of this book on contemporary
empirical methods in software engineering for their valuable contribution.
References
Akiyama F (1971) An example of software system debugging. In: IFIP congress (1), vol 71. North-
Holland, Amsterdam, pp 353–359
Araújo MAP, Monteiro VF, Travassos GH (2012) Towards a model to support studies of software
evolution. In: Proceedings of the ACM-IEEE international symposium on empirical software
engineering and measurement (ESEM ’12). ACM, New York, pp 281–290
Arcuri A, Briand L (2014) A hitchhiker’s guide to statistical tests for assessing randomized
algorithms in software engineering. Softw Test Verification Reliab 24(3):219–250
Baros MO, Werner CML, Travassos GH (2004) Supporting risks in software project management.
J Syst Softw 70(1):21–35
Basili VR (1993) The experimental paradigm in software engineering. In: Experimental software
engineering issues: critical assessment and future directions. Springer, Berlin, pp 1–12
Another Random Scribd Document
with Unrelated Content
President of the Boston Charitable Irish Society, now in
its 172d Year.
Anecdote of Washington.
Of Portland, Me.
Elmira, N. Y.
Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.
textbookfull.com