Evidence-Based Software Engineering

Faculteit Science and Engineering
Jaar 2021/22
Vakcode WMCS014-05
Vaknaam Evidence-Based Software Engineering
Niveau(s) master
Voertaal Engels
Periode semester I b
Rooster rooster.rug.nl

Uitgebreide vaknaam Evidence-Based Software Engineering
Leerdoelen At the end of the course, the student is able to:
1) Understand the role and importance of evidence in the daily practice of software engineers
2) Understand the basic principles, and methods behind Empirical Software Engineering research
3) Formulate and motivate research questions that can be answered based on evidence
4) Design, conduct and report an empirical Software Engineering study
5) Understand how to read, summarize, and present evidence in Software Engineering research
6) Assess the validity of evidence in Software Engineering research
Omschrijving Software Engineering has over the years been driven by a technology push, but how ''good'' are these technologies and why would software engineers adopt them? Numerous
technologies are invented and introduced, such as methods, tools, processes, languages, theories, libraries, frameworks, best practices, i.e. any means (from prototypes to commercial products) that can be used to develop software. The adoption of such technologies is based mostly on marketing and conviction rather than scientific results and evidence.

Empirical research in Software Engineering addresses the development and evaluation of technologies by conducting studies and generating evidence. By evidence we refer to ''reports, articles, and other documents that describe a study conducted and reported according to certain guidelines''. The goal of Evidence-Based Software Engineering is to allow software practitioners to understand the provided evidence in order to assess whether a technology is a good fit for their specific context.

The course consists of a theoretical and a practical part. During the theoretical part, the main aspects of Evidence-Based Software Engineering will be discussed, including an overview of the field as well as the core research methods of Empirical Software Engineering research.

The practical part consists of the design, execution and reporting of at least one of the aforementioned methods in groups. This activity will be supported by intensive coaching, consisting of several review meetings and student presentations.
Uren per week
Onderwijsvorm Hoorcollege (LC), Practisch werk (PRC)
(Yes , Participation in the project work is mandatory, including the eight coaching sessions. Missing out on those sessions or on the group work results on reduction of the individual grade accordingly.)
Toetsvorm Opdracht (AST), Practisch werk (PR), Presentatie (P)
(The grade is composed from the result of two group projects: Assignment 1 (35%) and Assignment 2 (65%). Both projects require the delivery of a written report as well as oral presentations by the individual students. The grades are weighted by the assessment of the individual contributions. In the case of failing the course, a student may be re-assessed by working on an extra project.)
Vaksoort master
Coördinator Prof. Dr. ir. P. Avgeriou
Docent(en) Prof. Dr. ir. P. Avgeriou ,Dr. M.A.M. Soliman
Verplichte literatuur
Titel Auteur ISBN Prijs
A list of recommended and optional books
Project description with guidelines
Nestor pages
A comprehensive list of web links with further resources
An article compendium with 65 scientific articles
Lecture slides
Peer evaluation forms
Entreevoorwaarden The course unit assumes prior knowledge acquired from a course in Software Engineering (including a capstone project), from a BSc in Computer Science.
Opmerkingen This course replaces the course Software Patterns from 2021-2022 onwards. Students who failed the Software Patterns course in 2020-2021 are to take this course instead. Master students who already passed the Software Patterns course are allowed to do this course as an elective.
Opgenomen in
Opleiding Jaar Periode Type
MSc Computing Science: Science Business and Policy  (Elective course units) 1 semester I b keuze
MSc Computing Science: Software Engineering and Distributed Systems  (Compulsory course units) 1 semester I b verplicht
MSc Courses for Exchange Students: AI - Computing Science - Mathematics - semester I b