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 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 |
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.
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 (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
Downloadable pdfs of papers below are available in Canvas.
[Lau] Soren Lauesen, Software Requirements - Styles and Techniques, AddisonWesley, ISBN 0-201-74570-4, 2002.
[MDRE] Regnell, Björn, and Sjaak Brinkkemper. “Market-driven requirements engineering for software products.” Engineering and managing software requirements. Springer, Berlin, Heidelberg, ISBN 3-540-25043- 32005. pp. 287-308. pdf
[PRIO] Berander, Patrik, and Anneliese Andrews. “Requirements prioritization.” Engineering and managing software requirements. Springer, Berlin, Heidelberg, 2005. 69-94. ISBN 3-540-25043-3, 2005. pdf
[OSSRE] Scacchi, Walt. “Understanding requirements for open source software.” Design requirements engineering: A ten-year perspective. Springer, Berlin, Heidelberg, 2009. 467-494. pdf
[RP] Ruhe, Gunther, and Moshood Omolade Saliu. “The art and science of software release planning.” IEEE software 22.6 (2005): 47-53. doi: 10.1109/MS.2005.164
[QUPER] Regnell, Björn, Richard Berntsson Svensson, and Thomas Olsson. “Supporting roadmapping of quality requirements.” IEEE software 25.2 (2008). doi: 10.1109/MS.2008.48
[PROTO] Bjarnason, E., Lang, F., & Mjöberg, A. “An empirically based model of software prototyping: a mapping study and a multi-case study.” Empirical Software Engineering, 28(5), 115. (2023)
[INSP] Karlsson, Joachim. ”Att inspektera krav”. Framgångsrik kravhantering, andra utgåvan, Teknikföretagen, V040072, ISSN 1103-7008, Sid 67-76, 1998.
[INTDEP] Carlshamre, Pär, et al. “An industrial survey of requirements interdependencies in software product release planning.” Proceedings of Fifth IEEE International Symposium on Requirements Engineering, pp. 84–91, 2001. doi: 10.1109/ISRE.2001.948547
[AGRE] Cao, Lan, and Balasubramaniam Ramesh. “Agile requirements engineering practices: An empirical study.” IEEE software 25.1, pp. 60-67, 2008. doi: 10.1109/MS.2008.1
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 |
|
consistent |
|
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 |
|
requirements analyst | kravanalytiker, kravingenjör, utförare av kravhantering |
requirements engineer | kravingenjör, utförare av kravhantering, kravanalytiker |
requirements engineering |
|
requirements engineering process | krav(hanterings)processen |
requirements management |
|
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 |