MSc: Requirements Engineering
Revision as of 11:59, 29 August 2022 by R.sirgalina (talk | contribs)
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
Section | Topics within the section |
---|---|
Requirements elicitation and documentation |
|
Requirements prototyping and implementation |
|
Requirements verification and traceability |
|
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
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