Search programme

​Use the search function to search amongst programmes at Chalmers. The programme overview and the programme syllabus relating to your studies are generally from the academic year you began your studies.


Syllabus for

Academic year
TDA611 - Software constraints
Owner: TITEA
5,0 Credits (ECTS 7,5)
Grading: TH - Five, Four, Three, Not passed
Level: C

Teaching language: English

Course module   Credit distribution   Examination dates
Sp1 Sp2 Sp3 Sp4 No Sp
0105 Written and oral assignments 4,0 c Grading: TH   4,0 c    
0205 Project 1,0 c Grading: UG   1,0 c    

In programs

TDATA COMPUTER SCIENCE AND ENGINEERING - Computer security, Year 4 (elective)
TDATA COMPUTER SCIENCE AND ENGINEERING - Engineering of Computer-Based Systems, Year 4 (elective)
TITEA SOFTWARE ENGINEERING - Data communication, Year 4 (elective)
TITEA SOFTWARE ENGINEERING - Embedded systems, Year 4 (elective)
TITEA SOFTWARE ENGINEERING - Interaction design, Year 4 (elective)
TITEA SOFTWARE ENGINEERING - Interactive simulations, Year 4 (elective)
TITEA SOFTWARE ENGINEERING - Bioinformatics, Year 4 (elective)
TITEA SOFTWARE ENGINEERING - Software development and management, Year 4 (compulsory)



TDA610   Software constraints


For single subject courses within Chalmers programmes the same eligibility requirements apply, as to the programme(s) that the course is part of.

Course specific prerequisites

Very good programming skills in an object-based language; prior exposure to design issues, in particular the design of functional requirements; substantial experience with programming projects; familiarity with fundamental data structures and algorithms. Knowledge of a second programming language is desirable but not required.


The characteristic features of a particular software artifact are defined on the one hand by the functional requirements this software is supposed to meet, on the other hand by its computational behavior, in particular with respect to resource usage and maintenance. These latter, non-functional requirements (also called "software constraints" or "software quality attributes") distinguish one software artifact from all others that share the same functional specification, and therefore ultimately guide the choice of end users or application developers. At the same time, most software constraints cannot easily be customized or adapted to particular user needs---at least not without penalty---if they have been designed in an ad-hoc manner.


The focus in this course is on the study of quantitative software constraints. Students will learn to identify, describe, and model software constraints and get an insight of their mapping to computable constructs.
The overall goal is to understand how to integrate software constraints in the software design process.


The course centers around the following three main themes:

  • Modeling: formal notations of different levels of rigor; classifying attributes of software constraints
  • Interface design: conceptual interfaces, parameterization by data and representation, generalization and specialization, dependencies between different software constraints
  • Language bindings: mapping to language features, precision loss and overhead; language processor support; selection automation

Each of these topics is discussed in the contexts of one or more specific software constraints, and for a number of different respective design choices. Students evaluate different design decisions and relate them both to the model of a software constraint and to its representation in a formal language.


Selected scientific papers will be made available on the course page.


Students solve a number of small assignments, given throughout the course, work on a small project and prepare an oral presentation. Some assignments require prior knowledge in programming. No final written exam. The final grade is F, 3, 4, 5.

Page manager Published: Thu 03 Nov 2022.