Requirements Engineering
- Course name: Requirements Engineering
- Code discipline: SE-
- Subject area:
Short Description
This course covers the following concepts: Requirements elicitation; Requirements specification; Requirements prototyping and implementation; Requirements verification; Requirements traceability.
Prerequisites
Prerequisite subjects
- Basics of Software Development
- Basics of Software Testing
- Basics of Software design and Unified Modelling Language
- Basics of Software Development process
- Basics of Software Engineering
Prerequisite topics
Course Topics
Course Sections and Topics
Section |
Topics within the section
|
Requirements elicitation and documentation |
- Foundations of requirements engineering
- The world and the machine
- Domain understanding and requirements elicitation
- Questions for interviews
- The requirements process
- Use cases
- Requirements specification and documentation
|
Requirements prototyping and implementation |
- Mapping use cases to object models
- From use cases to user interface design
- Activity diagrams
- The psychopathology of everyday things
- Seamless requirements
- The anatomy of requirements
|
Requirements verification and traceability |
- Parameterized unit tests
- Goal modelling
- Scrum & User stories
- Use case testing
|
Intended Learning Outcomes (ILOs)
What is the main purpose of this course?
To introduce the motivation, conceptual background and terminology on which requirements engineering relies., To provide a comprehensive account of state-of-the-art techniques for requirements engineering., To let the students experience the actual requirements-caused problems faced by real software teams.
ILOs defined at three levels
Level 1: What concepts should a student know/remember/explain?
By the end of the course, the students should be able to ...
- System requirements
- Software requirements
- Domain knowledge
- Environment assumptions
- Environment-controlled phenomena
- Machine-controlled phenomena
- Environment-observed phenomena
- Machine-observed phenomena
- Problem space
- Solution space
- Prescriptive statements
- Descriptive statements
- Traceability links
Level 2: What basic practical skills should a student be able to perform?
By the end of the course, the students should be able to ...
- Difference between system and software requirements
- Difference between domain knowledge and environment assumptions
- Pairwise difference between environment- and machine-controlled (observed) phenomena
- Difference between the world and the machine
- Difference between problem and solution space
- Difference between prescriptive and descriptive statements
- Difference between vertical and horizontal traceability
Level 3: What complex comprehensive skills should a student be able to apply in real-life scenarios?
By the end of the course, the students should be able to ...
- Requirements elicitation techniques
- Requirements specification techniques
- Prototyping and implementation techniques
- Negotiation techniques for modifying requirements
- Techniques for establishing traceability links, both vertical and horizontal
- Parameterized unit testing
- Acceptance testing
Grading
Course grading range
Grade |
Range |
Description of performance
|
A. Excellent |
80-100 |
-
|
B. Good |
65-79 |
-
|
C. Satisfactory |
50-64 |
-
|
D. Poor |
0-49 |
-
|
Course activities and grading breakdown
Activity Type |
Percentage of the overall course grade
|
Practical assignments |
60
|
Reading assignments |
18
|
Project presentations |
12
|
Classroom participation |
10
|
Recommendations for students on how to succeed in the course
Resources, literature and reference materials
Open access resources
- Handouts supplied by the instructor
Closed access resources
Software and tools used within the course
Teaching Methodology: Methods, techniques, & activities
Activities and Teaching Methods
Activities within each section
Learning Activities |
Section 1 |
Section 2 |
Section 3
|
Homework and group projects |
1 |
1 |
1
|
Testing (written or computer based) |
1 |
1 |
1
|
Reports |
1 |
1 |
1
|
Discussions |
1 |
1 |
1
|
Development of individual parts of software product code |
0 |
1 |
1
|
Oral polls |
0 |
1 |
1
|
Essays |
0 |
0 |
1
|
Formative Assessment and Course Activities
Ongoing performance assessment
Section 1
Activity Type |
Content |
Is Graded?
|
Question |
What is the WHY-Dimension of requirements engineering? |
1
|
Question |
What criteria are recommended to use for stakeholders analysis? |
1
|
Question |
Who is a stakeholder? |
1
|
Question |
What is an artifact-driven elicitation technique? |
1
|
Question |
What are the four principles for description in requirements engineering? |
1
|
Question |
What are the four facets of relationship between the world and the machine? |
1
|
Question |
What are the four kinds of denial in software engineering? |
1
|
Question |
What is a descriptive statement? |
1
|
Question |
What are the different kinds of information about the world? |
1
|
Question |
Write down and present a project proposal for implementing during the course. |
0
|
Question |
Propose a set of questions for a requirements elicitation interview. |
0
|
Question |
Conduct, audio record and transcribe an elicitation interview. |
0
|
Question |
Design use cases based on the elicitation transcript and audio recording. |
0
|
Section 2
Activity Type |
Content |
Is Graded?
|
Question |
What value do UML diagrams bring to the requirements engineering process? |
1
|
Question |
Define the “extend” relationship between use cases. |
1
|
Question |
Enumerate risk reduction tactics. |
1
|
Question |
Describe defining characteristics of what Davis calls “knowledge structure”. |
1
|
Question |
What activities does the risk management process involve? |
1
|
Question |
How do you call an active component in a use case diagram? |
1
|
Question |
What is the purpose of postconditions in use cases? |
1
|
Question |
Name different types of relationships in use case modelling. |
1
|
Question |
Categorize UML as either informal, semi-formal or formal notation. |
1
|
Question |
Define the “generalization” relationship in UML. |
1
|
Question |
Reflect, individually and in teams, on the use cases and the use case diagram that you received for implementation from another team. |
0
|
Question |
Construct activity diagrams from the use cases and the use case diagram. |
0
|
Question |
Construct classes based on the activity diagrams. |
0
|
Question |
Design user interfaces based on the classes and activity diagrams. |
0
|
Question |
Develop a minimum viable product (MVP) implementing your input requirements. |
0
|
Section 3
Activity Type |
Content |
Is Graded?
|
Question |
How do we call an active system component playing a specific role in goal satisfaction? |
1
|
Question |
How do we call an autonomous and passive object in the object model, which cannot control the behaviours of instances of other objects? |
1
|
Question |
What is a goal? |
1
|
Question |
What goal pattern refers to every future state? |
1
|
Question |
How do we call an association where the composite object and its components appear and disappear together in the system? |
1
|
Question |
Describe the goal refinement process. |
1
|
Question |
What is object specialization? |
1
|
Question |
Define the “maintain” goal pattern. |
1
|
Question |
Enumerate and describe different relationships between goals. |
1
|
Question |
Construct parameterized unit tests for the MVP provided to you by another team. |
0
|
Question |
Reflect, individually and in teams, on the MVP provided to you by another team. |
0
|
Question |
Reflect, individually and in teams, on the user interface design of the MVP. |
0
|
Question |
Develop the MVP into a usable production-quality software. |
0
|
Question |
Construct use case tests and parameterized units tests for the final implementation; update the requirements document as you go. |
0
|
Question |
Run the tests and fix the identified defects; update the requirements document as you go. |
0
|
Question |
Ensure pairwise mutual completeness between the requirements, final implementation and tests. |
0
|
Question |
Ensure pairwise mutual traceability between the requirements, final implementation and tests. |
0
|
Question |
Write a document that will describe very clearly how to run and use the final implementation. |
0
|
Question |
Describe in the document how to reproduce different use cases in the actual software. |
0
|
Final assessment
Section 1
- Present you experience of preparing and conducting the elicitation interview.
- How did you choose the stakeholder for interviewing?
- Did the interview go according to the plan?
- Which of the initially prepared questions you did not ask during the interview? Why?
- What questions you had to ask in addition to the initially prepared ones? Why?
- If you have been interviewed, how relevant were the interviewer’s questions?
- What conflicts did you have when merging the interview transcripts of your team members?
- How did you solve the merging conflicts?
- What lessons have you learned based on your experience as an interviewer and an interviewee?
- Present use cases constructed based on the elicited information.
- How do the use cases trace to the interview transcript?
- How does the interview transcript trace to the use cases?
Section 2
- Record and present a short demo of your MVP.
- What decisions did you have to take when implementing the MVP?
- How did you define your MVP?
- What did you have to change in the requirements document, and why?
- What requirements you decided to cover and not to cover in the MVP, and why?
- Present lessons learned from developing the MVP.
Section 3
- Present the final system developed from the MVP received from another team.
- Introduce the project and its business goals.
- Evaluate the quality of the interview transcript.
- Evaluate the quality of the use cases.
- Evaluate the quality of the MVP and user interfaces.
- Reflect on the quality management process.
- Record and present demo of test runs.
- Reflect on teamwork and communication with other teams.
- Present lessons learned while implementing different parts of different projects coming from the other teams.
- Record and present demo runs of the software using the use cases as the reference.
- Describe strengths and weaknesses of the final implementation.
- Write an essay detailing your reflections on the overall course experience.
The retake exam
Section 1
Section 2
Section 3