Lund University Logo

ETSN15 Software Requirements Engineering

About

Credits: 7,5 hp. Period: VT1 (lp3). Plan: ETSN15. Head of course: Björn Regnell

Requirements Engineering (RE) is the foundation for innovation and decision-making in software development. In this course you will learn useful theories and practical methods for how to dig up, understand, write down, check, prioritize, decide on, and track the features and qualities of software products.

An anniversary column on 40 years of Requirements Engineering that discuss several topics in this course: “Viewing Requirements Engineering Through a Ruby Lens”

Lectures

Lectures from past years will be updated week-by-week until the actual lecture is given. Check link name below to see if the PDF link is from this year or from the past year and beware of possibly outdated information from past year.

Week Lectures
Week 1 - L1: Introduction, Context [PDF-2025]
- L2: Elicitation, Prioritization [PDF-2025]
Week 2 - L3+L4: Specification of functionality and data, reqT Tutorial and prep. for Lab1 [PDF-2025]
Week 3 - L5+L6a: Prototyping [PROTO], Agile RE [AGRE], Market-driven RE [MDRE], Interdependencies [INTDEP], Release Planning [RP], Preparations for Lab 2 [PDF-2025]
- L6b: Open Source RE [OSSRE] Guest: Johan Linåker [PDF-2025]
Week 4 - L7: Quality Requirements [PDF-2025]
Watch before (or after) the lecture: video on Quality Requirements with Quper
- Extra Seminar Feb. 11th at 3pm in E:C (not part of exam): AI4RE and RE4AI, Guest: Matthias Wagner
Week 5 - L8: Validation & exam preparations. [PDF-2025]
Week 6 - Project work. No lectures.
Week 7 - Project presentations: mandatory oral exam

Exercises

The exercise classes support you in working on your course project. After an initial quick walk-through of the concepts for the week, the rest of the time is spent working on practical exercises. Most of the assignments are to be performed on your projects, so ideally the whole project group should attend together.

The exercise instructions will be published on this page as the course progresses, and the slides used during the initial walk-through are published after the weekly session.

NOTE: Ensure you have access to the course textbook [Lau] during exercises.

Project

Labs

Preparations: Visit reqT.github.io and follow instructions under Getting Started. Then follow instructions below, including mandatory preparations for each lab.

reqT is an open source requirements engineering tool written in Scala and suitable for course projects.

Download the reqT desktop app from here and run in terminal with:

java -jar reqT.jar

reqT is used in the Labs of this course.

reqT is developed using Scala 3. You can learn more about Scala with the open source course material from this course: Introduction to Programming using Scala

Quality Requirements

Quality requirements (QR) cover how good the functionality needs to be and include aspects such as: Performance, Capacity, Reliability, Usability, Safety, Security, Interoperability, Maintainability, …

Here is a talk from Öredev 2009 by Björn Regnell:

Stream from Youtube: https://youtu.be/mdiBpDwciC0

Download mp4 (402 MB): http://fileadmin.cs.lth.se/krav/quper-oredev-2009.mp4

Literature

Downloadable pdfs of papers below are available in Canvas.

Exams

Dictionary

A quick reference of requirements modeling terminology including entities, attributes and relations, is available here: reqT Quickref

The glossary below contains some of the most common requirements engineering terms used in this course. If you think of a word that should be included, please email bjorn.regnell@cs.lth.se

Another glossary is provided by IREB with requirements engineering terms in Swedish here: IREB_CPRE_Glossary_14.pdf (see page 94 and onwards).

accuracy noggranhet
acquisition förvärvande, upphandling
activity diagram aktivitetsdiagram
actor aktör
brainstorming, brainstorm idékläckningsmöte, kläcka idéer
business domain affärsverksamhet, verksamhetsområde, affärsdomän, affärsomgivning
business goal affärsmål
capacity kapacitet
class diagram klassdiagram
client klient, kund
collaboration diagram samarbetsdiagram
conflict resolution konfliktlösning
conflicting demans motstridiga behov
consistency
  1. överensstämmelse, 2. konsekvens, följdriktighet 3. konsistens, fasthet, soliditet, beskaffenhet
consistent
  1. förenlig (med), överensstämmande, 2. konsekvent, följdriktig, 3. fast, oföränderlig, jämn
context diagram kontextdiagram
contract development kontraktsutveckling
cost/benefit kostnad/nyttoanalys
cost/value kostnad/värde
COTS hyllprogramvara, generisk programvara
COTS purchase upphandling av hyllprogramvara
customer kund
data dictionary dataordlista
data expressions reguljära uttryck för datakrav, datauttryck
data model datamodell
dataflow diagram dataflödesdiagram
deliverables leverabler
development process requirements krav på utvecklingsprocessen
domain domän, omgivning
elicitation elicitering, identifiering
event list händelselista
feature (produkt)egenskap, (produkt)finess
feature requiremts (produkt)egenskapskrav
focus groups fokusgrupper
function list funktionslista
help for the reader hjälp till läsaren
heuristic evaluation heuristisk utvärdering
in practice i praktiken, i verkligheten, vid praktiskt utövande
inception påbörjande, tillblivelse, start
in-house projekt iternprojekt
input indata
interface gränssnitt
maintainability underhållsbarhet
maintenance underhåll
managerial requirements ansvarskrav, krav som reglerar det formella ansvaret vad gäller leveransvillkor, pris, påföljder, straffavgifter, etc.
negotiation förhandling
non-functional requirement icke-funktionellt krav, kvalitetskrav
output utdata
performance prestanda
practice praxis, bruk, tillämpning, sedvänja
prioritisation prioritering
product development produktutveckling
product domain produktdomän, produktomgivning
prototype prototyp
quality requirements kvalitetskrav, icke-funktionellt krav
release release, utgåva
release planning releaseplanering, utgåveplanering
requirement
  1. krav, 2. behov, 3. önskemål
requirements analyst kravanalytiker, kravingenjör, utförare av kravhantering
requirements engineer kravingenjör, utförare av kravhantering, kravanalytiker
requirements engineering
  1. kravhantering, kravteknik, 2. kravprocessen
requirements engineering process krav(hanterings)processen
requirements management
  1. kravförvaltning, 2. kravhantering, 3. ledning av kravprocessen
scenario scenario, 1. rik fallbeskrivning, 2. instans av användningsfall, 3. allm. exempelbaserade beskrivningar
screen skärmbild
security säkerhet
sequence diagram sekvensdiagram
software house programvaruföretag
stakeholder intressent
standards as requirements standarder som krav
scope omfattning, (produkt)omfång, avgränsning av (produkt)innehåll
state tillstånd
state diagram tillståndsdiagram
state-transition matrix tillståndsövergångsmatris
sub-contractor underleverantör
supplier leverantör
system state systemtillstånd
tacit demands dolda behov
task (arbets)uppgift, aktivitet
task description uppgiftsbeskrivning
tasks & support uppgifter och stöd
template mall
tender anbud, offertförfrågan
textual descriptions textuella beskrivningar
time and materials löpande räkning
tracability spårbarhet
transition övergång
usability användbarhet
use case användningsfall
user användare, brukare
validation validering, kontroll gentemot egentlig avsikt
vendor (åter)försäljare
verification verfiering, kontroll gentemot specifikation
virtual windows virtuella fönster
work task arbetsuppgift
workshop workshop, arbetsgrupp, arbetsmöte