Course syllabus
Course-PM
DAT321 / DIT847 Software quality lp1 HT19 (7.5 hp). Course is offered by the department of Computer Science and Engineering.
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.
Schedule
Check out the schedule in our main course page, or in TimeEdit.
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:
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:
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.
Course design
More information about the course can be found on the main page.
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 visualization 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)
Course summary:
Date | Details | Due |
---|---|---|