Videos from some of our lectures are available on the YouTube Empirical Software Engineering Banter Playlist
Podcasts are available here
Empirical software engineering is a research area concerned with the study of software engineering processes and artifacts, with the goal to understand and improve software engineering tools, processes, culture and software quality. This topic is of relevance to researchers, practitioners and the users of software systems. This course will prepare students for advanced research in industrial and academic settings by examining how to plan, conduct and report on empirical investigations of software engineering phenomena. The course will cover techniques applicable to each of the steps of an empirical software engineering research project, including formulating and identifying relevant research questions, data analysis (using both qualitative and quantitative methods), building evidence, developing new and refining existing theories, assessing validity and novelty of the research methods and outcomes, and publishing and presenting findings to different audiences. The course will emphasize research methods that are used to study human interactions with software engineering methods and tools: controlled experiments, user studies, field studies, surveys, archival data analysis methods, action research and ethnographies. We will explore, understand and critique the methods used in several examples of studies of software engineering methodologies and tools used in industry, and through academic peer reviewed articles published in empirical software engineering venues.
The first part of the course will be more lecture based, establishing some foundations in the topics taught and explored in this course. The second part of the course will be workshop based, with guest speakers and ample activities to drill into specific topics more deeply. The workshops will be on the following topics: code assessment techniques, knowledge sharing and collaboration, continuous software engineering, diversity and inclusion in software engineering, software engineering productivity, and ethics and reliability of empirical research in software engineering.
See course requirements for more details.
Classes will be on Fridays 1:30-4:20 online (via Zoom -- see Connex for the link to Zoom, invitation to Slack, and the Wordpress blog.)
Date | Meeting Topic and Materials | Guests | Deliverable | |
---|---|---|---|---|
1 | 11/09/2020 | Course Introduction and History of Software Engineering |
Introductions/Activity | |
2 | 18/09/2020 | Introduction to Empirical Software Engineering, Beliefs and Evidence, and Design Science | Group Activity | |
3 | 25/09/2020 | Research Methods for SE | Group Activity | |
4 | 02/10/2020 | Theories, Theoretical Frameworks and Conceptual Frameworks in Software Engineering Research | Group Activity | |
5 | 09/10/2020 | Literature reviews for Software Engineering Research, Work on Project #1 | Project #1 started | |
6 | 16/10/2020 | Workshop #1: Continuous Software Engineering | Blogpost #1 | |
7 | 23/10/2020 | Workshop #2: Code Review and Assessment | Blogpost #2 | |
8 | 30/10/2020 | Workshop #3: Diversity and Inclusion in Software Engineering | Blogpost #3 | |
9 | 06/11/2020 | Alignment for Project #1 |
|
Project #1 due |
10 | 13/11/2020 | Workshop #4: Collaboration, Communication and Knowledge Flow in Software Engineering | Blogpost #4 | |
11 | 20/11/2020 | Workshop #5: Developer and Team Productivity | Blogpost #5 | |
12 | 27/11/2020 | Workshop #6: Bridging Gaps | Blogpost #6 | |
13 | 04/12/2020 | Project #2 presentations | Project #2, videos due | |
14 | 11/12/2020 | No class | Project #2, final reports due |
References:
See the resources for each lecture in the schedule above for an extensive list of assigned materials and optional references. The following are some general books related to this topic (these are also available through the UVic library when you are logged in):
- Guide to Advanced Empirical Software Engineering, by Forrest Shull, Janice Singer and Dag Sjøberg, Springer 2007, PDF link
- Contemporary Empirical Methods in Software Engineering, Editors: Michael Felderer, Guilherme Horta Travassos, Springer 2020. PDF link
- Software Engineering at Google by Titus Winters, Tom Manshreck, Hyrum Wright, Released March 2020, Publisher(s): O'Reilly Media, Inc.
- Research Methods in Human-Computer Interaction, 2nd Edition by Paul Lazar, Elsevier, 2017. UVic link
- Perspectives on Data Science for Software Engineering, 1st Edition, Editors: Tim Menzies Laurie Williams Thomas Zimmerman, Morgan Kaufmann, 2016. UVic link
- Guidelines for using empirical studies in software engineering education. by Fagerholm F, Kuhrmann M, Münch J. 2017. PeerJ Computer Science 3:e131
Teaching Staff:
- Margaret-Anne Storey (Instructor)
- Omar Elazhary (Teaching Assistant)
Office Hour: By appointment and Thursdays 2-3pm via Zoom drop in (use the Class link). Please direct message me on Slack (or email me) to set up a meeting.
Contact email: mstorey@uvic.ca
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.