MSc: Requirements Engineering

From IU
Revision as of 11:59, 29 August 2022 by R.sirgalina (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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
  1. Foundations of requirements engineering
  2. The world and the machine
  3. Domain understanding and requirements elicitation
  4. Questions for interviews
  5. The requirements process
  6. Use cases
  7. Requirements specification and documentation
Requirements prototyping and implementation
  1. Mapping use cases to object models
  2. From use cases to user interface design
  3. Activity diagrams
  4. The psychopathology of everyday things
  5. Seamless requirements
  6. The anatomy of requirements
Requirements verification and traceability
  1. Parameterized unit tests
  2. Goal modelling
  3. Scrum & User stories
  4. 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

  1. Present you experience of preparing and conducting the elicitation interview.
  2. How did you choose the stakeholder for interviewing?
  3. Did the interview go according to the plan?
  4. Which of the initially prepared questions you did not ask during the interview? Why?
  5. What questions you had to ask in addition to the initially prepared ones? Why?
  6. If you have been interviewed, how relevant were the interviewer’s questions?
  7. What conflicts did you have when merging the interview transcripts of your team members?
  8. How did you solve the merging conflicts?
  9. What lessons have you learned based on your experience as an interviewer and an interviewee?
  10. Present use cases constructed based on the elicited information.
  11. How do the use cases trace to the interview transcript?
  12. How does the interview transcript trace to the use cases?

Section 2

  1. Record and present a short demo of your MVP.
  2. What decisions did you have to take when implementing the MVP?
  3. How did you define your MVP?
  4. What did you have to change in the requirements document, and why?
  5. What requirements you decided to cover and not to cover in the MVP, and why?
  6. Present lessons learned from developing the MVP.

Section 3

  1. Present the final system developed from the MVP received from another team.
  2. Introduce the project and its business goals.
  3. Evaluate the quality of the interview transcript.
  4. Evaluate the quality of the use cases.
  5. Evaluate the quality of the MVP and user interfaces.
  6. Reflect on the quality management process.
  7. Record and present demo of test runs.
  8. Reflect on teamwork and communication with other teams.
  9. Present lessons learned while implementing different parts of different projects coming from the other teams.
  10. Record and present demo runs of the software using the use cases as the reference.
  11. Describe strengths and weaknesses of the final implementation.
  12. Write an essay detailing your reflections on the overall course experience.

The retake exam

Section 1

Section 2

Section 3