Software Requirements Engineering course, University of Malaya

Description of the course

The course covers the fundamentals of requirements engineering and discusses important requirements artefacts. The course covers core activities of Requirements Engineering, including  elicitation, specification, documentation, negotiation, validation and management. The course takes place virtually.

Description of the participants

The course targets students enrolled full-time in the Bachelor of Computer Science program. In semester 2 of the 2021 – 2022 academic years 80 students attended the course.

Description of gamified design thinking activities

Design thinking activities, and more specifically empathy and ideation, were deployed in the context of the class project. The pedagogical approach applied in the course was project- and problem-based learning. During this course, a preliminary study on the development of innovation skills took place. The goal of the study was to investigate innovative skill sets applicable to software requirements engineering.

In the class project, students were asked to resolve problems faced by humans by analyzing software requirements. The objective of the project-based class activity was to introducer students to requirements artefacts based on established standards and to apply appropriate techniques and methods to elicit and analyze software requirements.

Students engaged in the following activities:

Step 1. Problem research.

Students selected a web site or mobile app or both that they would like to improve on. An example of a selected project is focusing on challenges faced by elderly individuals, such as fear of mobility or being a burden. This particular activity was performed by all 80 students in the class.

Upon selecting a topic to focus on, students engaged in problem research through various means. They observed the target users to document behavior and recorded findings. They further web-based research for effectively describing the problem through photos, drawings, notes, and article links that they posted on the ICT-INOV digital learning platform. They engaged in conversation with at least 6 individuals facing the problem and recorded what they thought and felt. They identified and recorded patterns.

Students were instructed to be curious during the problem research process and keep an open mind. For example, if elderly individuals already used an app, what was not working for them? If they did not use an app, what was the reason behind that?

Step 2. Problem statement definition.

Based on the problem research results students were asked to define at least 3 different problem statements.

Step 3. Brainstorming.

Students brainstormed in groups. They identified the main objectives of stakeholders as the basis for extracting user requirements.

Step 4. User requirements definitions.

Students identified and justified requirements elicitation techniques. For each feature, they defined user and system requirements, both functional and non-functional, including quality requirements and constraints. They extracted data requirements, which they documented in context and class diagrams. They further extracted user interface requirements, which they documented in mock-up screens. They designed the main system components and documented them as activity and sequence diagrams.

Step 5. Lessons learned.

Students analyzed their own requirements extraction process and introduced future recommended features for their system implementation. They further analysed issues, problems, or constraints encountered during implementation. They discussed the lessons learned through the analysis process. They documented their findings in a lightweight SRS.