preliminary version of introduction chapters, 12 p. (

advertisement
Experimental
Software
EngineeRing
NETwork
Empirical Methods and Studies in
Software Engineering Experiences from ESERNET
Reidar Conradi and Alf Inge Wang (Eds.)
Ch.0: About this book
Alf Inge Wang and Reidar Conradi (Eds.)
Norwegian University of Science and Technology (NTNU),
NO-7491 Trondheim, Norway
alfw@idi.ntnu.no / conradi@idi.ntnu.no
The book “Empirical Methods and Studies in Software Engineering – Experiences
from ESERNET” is a result of the ESERNET project. ESERNET is a thematic
network project in 2001-03 in the European Union’s 5th Framework Programme under
contract number IST-2000-28754, see www.esernet.org. It has the ambition, in
cooperation with related activities, to gradually change the mentality of software
engineers and their organizations towards systematic empirical studies, for the
purpose of long-term learning. The overall goal is therefore to collect, systematize
and disseminate relevant and valid insight. ESERNET is lead by IESE in
Kaiserslautern (Germany). The project responsible is Dieter Rombach, with project
manager Christian Bunse. ESERNET has five founding members (contractors):
 Blekinge Institute of Technology (BTH), Sweden: Claes Wohlin and Kennet
Henningsson.
 European Software Insitute (ESI), Spain: Elixabete Ostolaza and Elisa Gallo.
 Fraunhofer Institute for Experimental Software Engineering (IESE), Germany:
Christian Bunse, Andreas Jedlitschka , Markus Nick, and Holger Westing.
 Norwegian University of Science and Technology (NTNU), Norway: Reidar
Conradi, Letizia Jaccheri, Tor Stålhane, and Alf Inge Wang.
 The Technical Research Centre of Finland; Finnish National Institute of
Technology (VTT), Finland: Toni Sandelin and Matias Vierimaa.
Sodalia in Trento (Italy) was originally a partner, but decided to withdraw from the
ESERNET consortium due to an internal reorganization activity.
In addition to the contractors, ESERNET has the following 22 participating
members, with contact person indicated:
 DaimlerChrysler AG, Germany: Frank Houdek.
 DELTA Danish Electronics, Light & Acoustics, Denmark: Jørgen Bøegh.
 Engineering Ingegneria Informatica S.p.A., Italy: Stefano de Panfilis.
 Fraunhofer Center for Experimental Software Engineering, Maryland (FC-MD),
USA: Victor R. Basili.
 FZI Forschungszentrum Informatik, Germany: Thomas Genssler.
 Lund University, Sweden: Martin Höst.
 MARKET MAKER Software AG, Germany: Martin Verlage.
 methodpark Software AG, Germany: Christian Knuevener.
 Politecnico di Torino, Italy: Maurizio Morisio
 PSIPENTA Software Systems GmbH, Germany: Torsten Sander.
 Robert Bosch GmbH, Germany: Eberhard Hübner.
 Simula Research Laboratory/University of Oslo, Norway: Dag Sjøberg.
 Softlab, Germany: Wolfgang Koch.
4









SOLID Information Technology, Finland: Janne Järvinen.
Universidad Politécnica de Madrid, Spain: Natalia Juristo.
Università degli Studi dell´Insubria, Italy: Sandro Morasca.
Università degli Studi di Bari, Italy: Giuseppe Visaggio.
Università degli Studi di Roma "Tor Vergata", Italy: Giovanni Cantone.
University of Calgary, Canada: Yingxu Wang.
University of Castilla La Mancha, Spain: Mario Piattini.
University of Kaiserslautern, Germany: Dieter Rombach and Marcus Ciolkowski.
University of Strathclyde, UK: Marc Roper and Murray Wood.
Of the 22 participating members, 8 are industrial and 2 come from outside Europe.
Many of the partners and members already work together.
5
Table of Contents
Ch.0: About this book ........................................................................... 3
Ch.1: Introduction ................................................................................. 6
Ch.2: Empirical Research Methods in Software EngineeringError! Bookmark not defined.
Ch.3: Challenges and Recommendations when Increasing the
Realism of Controlled Software Engineering ExperimentsError! Bookmark not defined.
Ch4. Empirical Studies in ESERNET Error! Bookmark not defined.
Ch.5: Software Engineering Knowledge RepositoriesError! Bookmark not defined.
Ch.6: Using Empirical Studies during Software CoursesError! Bookmark not defined.
Ch.7: Practical Experiences in the Design and Conduct of Surveys
in Empirical Software EngineeringError! Bookmark not defined.
Ch.8: Post Mortem - An Assessment of Two ApproachesError! Bookmark not defined.
Ch.9: Evaluating Checklist-Based and Use-Case-Driven Reading
Techniques as Applied to Software Analysis and Design
UML Artifacts .......................... Error! Bookmark not defined.
Ch.10: Effectiveness of Code Reading and Functional Testing with
Event-Driven Object-Oriented SoftwareError! Bookmark not defined.
Ch.11: Experimentation with Usage-Based ReadingError! Bookmark not defined.
Ch. 12: Functional Testing, Structural Testing and Code Reading:
What Fault Type do they Each Detect?Error! Bookmark not defined.
Ch. 13: COTS Products Characterization: Proposal and Empirical
Assessment ............................... Error! Bookmark not defined.
Ch.14: Reuse Based Software Factory Error! Bookmark not defined.
Ch.15: Appendix - Glossary ............... Error! Bookmark not defined.
Ch.1: Introduction
Reidar Conradi and Alf Inge Wang (Eds.)
Norwegian University of Science and Technology (NTNU),
NO-7491 Trondheim, Norway
conradi@idi.ntnu.no / alfw@idi.ntnu.no
1
Motivation
Our societies crucially depend on high-quality software for a large part of their
functions and activities. That means that software researchers, managers, and
practitioners have to be familiar with what software technologies to use for which
purpose. This again means that we have to systematically study and collect evidence
on what technologies (UML etc.) will work – or not work – with what effects in
which contexts (application areas, project models, societal/technological systems
etc.).
The field of software engineering and software technology is developing very fast.
Perhaps as a consequence, there is seldom enough interest or opportunity for
systematic investigation of how the underlying technology will actually perform. That
is, we constantly introduce new concepts, methods, techniques and tools – or change
existing ones – without much scientific reflection. But how can we learn and improve
without systematic studies?
Systematic empirical studies in software engineering first of all assume wellproven research methods to plan and carry out investigations, and to collect relevant
data. Thereafter comes data analysis – quantitative and/or qualitative – and
discussion. Finally comes generalisation for later reuse and learning, and follow-up
activities such as changed work practices and dissemination through scientific
articles, technical reports and experience bases. In other words, we apply the scientific
method [1]! Common study types are controlled experiments, case studies,
postmortem analyses, and surveys.
Such a study usually starts with some hypotheses to be tested (verified or falsified),
based on some previous insight or observations, or some external need. The
hypotheses (“goal”) will set the premises for what kind of activities and metrics that
are relevant. For instance, if the goal is to improve reliability, we may do a case study
as part of an existing project. A suitable development activity as part of the study may
be to try out (improved) inspection techniques for e.g. UML design artifacts. A partial
metrics for this is the number and type of defects in different phases or subsystems,
with data coming from previous studies and the recent one. However, a persistent
problem in our field is lack of previous data, i.e. no solid “baseline” to compare with.
All this means that there is a need for improved and better qualified empirical
methods. But most importantly, there is a need to learn about and to apply such
methods in practice, and to spread the results. That is, we should promote an
empirical approach to our field of software engineering. The present book aims to
7
contribute to this goal. It has six chapters describing different kinds of empirical
studies, and methods for performing such studies. For instance, chapter 2 describes
the common study types, and chapter 3 describes the ESERNET “template” for
planning, performing, analysing, and reporting empirical studies. The book has seven
more chapters where actual studies are described and discussed. These studies mainly
deal with inspections, testing, object-oriented techniques, and component-based
software engineering.
2 ESERNET, Experimental Software Engineering Research
NETwork
ESERNET has been a thematic network project in 2001-03 in the European
Union’s 5th Framework Programme under contract number IST-2000-28754, see
www.esernet.org. It has the ambition, in cooperation with related activities, to
gradually change the mentality of software engineers and their organisations towards
systematic empirical studies, for the purpose of long-term learning. The overall goal
is therefore to collect, systematise and disseminate reliable insight. This type of
knowledge will serve as a scientific base for assessing, understanding, changing,
innovating, and using software technologies. This task assumes a joint effort between
academia, technology providers, software developers, and possibly end-users. One
step in this direction is the current ESERNET Method and Experience Book to
convey the insights from the ESERNET project. The target audience of the book is
software engineers and managers, and corresponding researchers, teachers and
students.
ESERNET is lead by IESE in Kaiserslautern (Germany). The project responsible is
Prof. Dieter Rombach, with project manager Dr. Christian Bunse. ESERNET has p.t.
four other founding members: VTT Electronics in Oulu (Finland), NTNU in
Trondheim (Norway), Blekinge Institute of Technology or BTH in Ronneby
(Sweden), and ESI in Bilbao (Spain). Sodalia in Trento (Italy) was a sixth founding
member, but has later withdrawn. Per June 2003, ESERNET has 27 participating
members (including the five founding members). Of these, 8 are industrial and 2
come from outside Europe. Many of the partners and members already worked
together before the project.
ESERNET has actively cooperated with and brought synergy to many other
initiatives and projects in software engineering, as illustrated by Fig. 1 below:
8
SMEs
SW-Intensive
Industries
Applied SE
Research
SE Education, Training,
and Conferences
ESERNET
users
ESERNET
virtual network organisation
ISERN
PROFES, CORONET, VASIE,
network PERFECT, CLARIFI
ESPINODEs,
REBOOT
PROFIT
ESSI/PIEs
SE initiatives and projects
(company-wide, national,
European, global)
...
Fig. 1. ESERNET and related initiatives and projects
In Fig. 1, SW means software and SE means Software Engineering. ISERN is the
International Software Engineering Research Network, established in 1992, see
www.iese.fhg.de/ISERN. PROFES, PERFECT, REBOOT, CORONET, and
CLARIFI have been EU-supported software engineering projects in the 1990s (see
www.cordis.lu). PROFIT is a Norwegian industrial project on software process
improvement (SPI) in 1999-2003 (www.geomatikk.no/profit). VASIE stands for
Value Added Software Information for Europe, and is an information and experience
base for EU-projects maintained by ESI in Bilbao, see www.esi.es/VASIE/vasie.html.
ESPINODEs and ESSI/PIEs encompass over 400 small EU-projects on SPI for Smalland Medium-sized Enterprises (SMEs), many registered by VASIE. Lastly, to
promote exchange of ideas and results, ESERNET has supported a researcher
exchange program among its members.
3
ESERNET goals, workpackages, results, and empirical studies
The actual project goals are:
 Establish an infrastructure for a collaboration network.
 Evaluate software engineering practices and package the gained experience for
reuse.
 Use Experimental Software Engineering (ESE) methods to facilitate the systematic
introduction of new practices.
 Accelerate community-wide learning in software engineering.
 Foster collaboration and exchange within and between industry and research.
9
 Create synergy from existing projects, networks, and organisations.
 Initially focus on inspections, testing, object-oriented technologies, and
Component-Based Software Engineering (CBSE).
ESERNET results and deliverables include internal reports, four open public
workshops, a web portal (via the mentioned www.esernet.org) with relevant links and
including a knowledge base of performed empirical studies, and of course this method
and experience book.
ESERNET has applied especially four kinds of empirical studies: post-mortems
and partly surveys (often in industry), controlled experiments (e.g. using students),
and industrial studies (e.g. real case studies in industry). As described in chapter 4,
such studies are often done in the following sequence: First, post-mortems or surveys
are used to pre-analyse practical experience by using a specific software technology
or process. Then, controlled experiments are used to test out more concrete
hypotheses about the chosen study object (e.g. novel inspection techniques), often
using university students. Lastly, case studies are used to investigate refined and
adapted hypotheses in an industrial setting. Overall methods to support such studies
are discussed in chapters 2 and 3, and lessons-learned and recommendations from
using two such methods stand in chapters 6 and 7.
The term Experimental Software Engineering or ESE covers six phased
activities, taken from the Quality Improvement Paradigm (QIP) [2]:
1-3. Characterise/define/plan: Make an explicit improvement goal and a plan to
try out some new process or technique. Extra training may be given and
measurements should be planned.
4. Operate (do) the study, observe the effects, and collect the specified data.
5. Analyse/interpret the results: analyse and generalise.
6. Present/package: package and disseminate for reuse, often in a
web/experience base.
The QIP principle on project vs. corporate learning, using a double improvement
loop each with the above six activities, is illustrated by Fig. 2 below. As mentioned,
the ESERNET project is supporting its own experience and knowledge repository to
support even cross-corporate learning, see chapter 5.
10
Corporate Learning
Package and
store experience
Analyze
results
Set goals
Execute
Project
Learning
Characterize
and understand
Provide process
with feedback
Choose processes,
methods, tools,
and techniques
Analyze
results
Fig. 2. Project vs. organisational learning in QIP
4
About the book content
As mentioned, the book reports on method and experimental work in the project. It
is organised in four parts, numbered I-IV.
Part I contains a short introduction by the book editors, as chapter one.
Part II contains six method chapters, numbered 2-7. Chapters 2, 3 and 4
describe general and specific methods for running empirical studies. Chapter 5 deals
with supporting an experience and knowledge base for such work. Chapters 6 and 7
describe experience by using two empirical methods, respectively controlled
experiments and surveys, from chapter 2. The six method chapters are:
Chapter 2 contains an introduction to “Empirical Research Methods in Software
Engineering” by Claes Wohlin, Martin Höst, and Kennet Henningsson from Blekinge
Institute of Technology and Lund University (Sweden).
Chapter 3 is about “Challenges and Recommendations when Increasing the
Realism of Controlled Software Engineering Experiments” by Dag I. K. Sjøberg,
Bente Anda, Erik Arisholm, Tore Dybå, Magne Jørgensen, Amela Karahasanović,
and Marek Vokáč from Simula Research Laboratory (Norway).
Chapter 4 explains “Empirical Studies in ESERNET” by Toni Sandelin and Matias
Vierimaa from VTT Electronics (Finland).
11
Chapter 5 discusses how to establish, use and maintain “Software Engineering
Knowledge Repositories” by Andreas Jedlitschka and Markus Nick from Fraunhofer
Institute for Experimental Software Engineering (IESE) in Kaiserslautern (Germany).
Chapter 6 explains how to “Using Empirical Studies during Software Courses” by
Jeffrey Carver, Letizia Jaccheri, Sandro Morasca, and Forrest Shull from (in order of
appearance) University of Maryland (USA), Norwegian University of Science and
Technology (Norway), Università degli Studi dell'Insubria (Italy), and Fraunhofer
USA Center for Experimental Software Engineering Maryland (USA).
Chapter 7 sums up “Practical Experiences in the Design and Conduct of Surveys in
Empirical Software Engineering” by Marcus Ciolkowski, Oliver Laitenberger, Sira
Vegas, and Stefan Biffl from (in order of appearance) University of Kaiserslautern
(Germany), Droege & Comp. GmbH (Germany), Universidad Politécnica de Madrid
(Spain), and TU Wien (Austria).
Part III contains seven experience chapters, numbered 8-14. Chapter 8 deals
with using two variants of post-mortem analyses in industrial case studies. Chapters 9,
10, 11 and 12 all report on university experiments with novel inspection techniques
and partly testing, applied to either object-oriented designs (in UML) or programs (in
Java). Chapters 13 and 14 report, respectively, on a university experiment and an
industrial case study with CBSE. Thus, all the topics from the original ESERNET
work plan are present. The seven experience chapters are:
Chapter 8 reports on a study on “Post Mortem - An Assessment of Two
Approaches” by Tor Stålhane, Torgeir Dingsøyr, Geir Kjetil Hanssen, and Nils Brede
Moe from Norwegian University of Science (Norway) and Technology and SINTEF
(Norway).
Chapter 9 reports on “Evaluating Checklist-Based and Use-Case-Driven Reading
Techniques as Applied to Software Analysis and Design UML Artifacts” by Giovanni
Cantone, Luca Colasanti, Zeiad A. Abdulnabi, Anna Lomartire, and Giuseppe
Calavaro from University of Rome at Tor Vergata and Rational Software (Italy).
Chapter 10 reports on an experiment with “Effectiveness of Code Reading and
Functional Testing with Event-Driven Object-Oriented Software” by Giovanni
Cantone, Zeiad A. Abdulnabi, Anna Lomartire, and Giuseppe Calavaro from
University of Rome at “Tor Vergata” and Rational Software (Italy).
Chapter 11 reports on “Experimentation with Usage-Based Reading” by Thomas
Thelin, Magnus Erlansson, Martin Höst, and Claes Wohlin from Lund University and
Blekinge Institute of Technology (Sweden).
Chapter 12 reports on “Functional Testing, Structural Testing and Code Reading:
What Fault Type do they Each Detect?” by Natalia Juristo and Sira Vegas from
Universidad Politécnica de Madrid (Spain).
Chapter 13 reports on “COTS Products Characterization: Proposal and Empirical
Assessment” by Alessandro Bianchi, Danilo Caivano, Reidar Conradi, Letizia
Jaccheri, Marco Torchiano, and Giuseppe Visaggio from University of Bari (Italy),
Norwegian University of Science and Technology (Norway), Politecnico of Turin
(Italy).
Chapter 14 reports on a study on “Reuse Based Software Factory” by Manuel
Prego from European Software Institute Bilbao (Spain).
Part IV with chapter 15 contains an Appendix with a glossary, assembled by the
book editors.
12
NTNU, Trondheim, 13 May 2003
On behalf of the ESERNET project,
Reidar Conradi and Alf Inge Wang, coordinating editors.
5
References
[1] Victor R. Basili, "The Experimental Paradigm in Software Engineering", in H. D. Rombach,
V. R. Basili, and R. W. Selby (Eds.): Experimental Software Engineering Issues: Critical
Assessment and Future Directives, Springer Verlag, Lecture Notes 706 in Computer
Science, 1993, 261 p. From International Workshop, Dagstuhl Castle, Germany, Sept. 1992.
[2] Victor R. Basili and Gianluigi Caldiera: “Improving Software Quality by Reusing
Knowledge and Experience”, Sloan Management Review, 37(1):55-64, Fall 1995.
Download