Course syllabus

Important message regarding DAT321 / DIT847 teaching in Autumn 2020

Dear students,
Due to the ongoing Corona crisis, we are currently exploring how teaching can happen in a safe way.
The following decision are already made about the Software Quality course:
  • All lectures will be online (either as recording or live sessions).
  • All supervision sessions with your teaching assistants (TAs) will be through video call
    • (with a possibility to meet up in person if group, examiner and TA agree to)
  • All course activities will happen considering Stockholms timezone.
  • There will be likely some elements that are optional and on campus. However, all events will be replicated online. Thus, it will be possible to follow the course fully remotely.
Kind regards,
Francisco Gomes
Course Examiner.

Course-PM

DAT321 / DIT847 DAT321 / DIT847 Software quality lp1 HT20 (7.5 hp)

Contact Details

Course responsible:

  • Francisco Gomes de Oliveira Neto

Course teachers:

  • Francisco Gomes de Oliveira Neto
  • Prof. Richard Torkar

Course purpose

The course aims to teach the basics of quality management in software development projects. The course will address the following problems:

  • definitions of quality of software product and software process;
  • definitions of software quality assurance, software metrics and models in quality management, internal quality and external quality;
  • the tools for software quality management, and the methods for working with defects as part of quality management, i.e., Bayesian data analysis;

Throughout the course we will emphasise the use of statistics as principled argument, i.e., we will focus on using Bayesian data analysis (BDA) to form opinions about the data at hand. As such the course is divided in two parallel tracks:

  • T1: Domain knowledge, i.e., standards, internal/external quality, quality assurance.
  • T2: General knowledge, i.e., using BDA to better understand data. In this track we focus on issues, such as, measurement theory, data types, linear models, multivariate linear models, overfitting, Markov chain Monte Carlo, and Bayesian multilevel models.

Course Format

Due to the covid-19 situation and for the safety of students, teachers and TAs, we will conduct all course activities online.

For Track 1: We will have live online lectures via Zoom. The lectures will focus on presenting the definitions and providing live exercise based on quizzes and discussion sessions. In those practical activities we will use different types of software systems as examples.

For Track 2: We will use a flipped approach where you need to prepare prior to each lecture by reading selected chapters of the book and watching the videos on the topic.

Course Schedule and Information

Can be found under Pages > Course Home

Course literature

The course explores two aspects (we will refer to them as 'tracks') in software quality: (1) The processes, metrics, and instruments related to software quality; and (2) how to perform data-driven decisions in SE using statistical analysis (e.g., on data collected from software artifacts or development activities). Therefore, we use the following books to cover both aspects of the course:

Track 1 (T1):

Since Track 1 includes recent and ongoing research topics in software engineering (e.g., continuous integration, software visualization, sustainability as a quality attribute), we will use a variety of research papers made available during the course to students.

Track 2 (T2):

IMPORTANT: Prior to each lecture you should watch the corresponding video lecture (as stated in the course PM) and do the exercises. The video lectures are available here.

The book for this track of the course is:
Statistical Rethinking: A Bayesian Course with Examples in R and Stan
McElreath, Richard
ISBN: 1482253445
Edition: 1
2015

Extra material (slides, papers, video lectures, etc.) will be made available in the Files section of the course throughout its duration.

Learning objectives and syllabus

Knowledge and understanding

  • T1: explain fundamental concepts in software quality (e.g., internal / external quality, as well as quality in use)
  • T1: describe and explain definitions and activities related to software testing, such as faults, failures levels of testing and test automation
  • T1: explain the concept of continuous integration and relate them to software development processes
  • T2: explain and discuss the importance of using statistical analysis methods to support decision related to software quality
  • T1: describe how sustainability can be seen as a quality attribute in software products

Skills and abilities

  • T2: construct statistical models to analyse quality-related data from software development organizations (e.g., different code review practices, quality indicators)
  • T1: construct quality assurance plans
  • T2: collect data to quantify and statistically analyse the quality of software products (e.g. based on the existing open source products)
  • T2: construct automated measurement systems for measuring quality of software products based on the data from the modern development tools
  • T1: use modern tools for visualisation of trends in software quality

Judgement and approach

  • T2: assess the importance of software quality in relation to time and costs in modern software development projects
  • T1: relate software quality to societal aspects of software development
  • T2: assess the risks of distinct quality assurance processes in modern software development companies (e.g., the impact of choosing among different testing techniques)

Examination form

More information by August 17th, 2020

Course summary:

Date Details Due