Software Quality course, University Tenaga Nasional

Description of the course

The course focuses on fundamental concepts of ensuring quality software.  It has as a prerequisite the Software Engineering course, which introduces principles of software design, including requirements extraction and analysis, requirements specification, functional and non-functional requirements, software design, project management, and software development methodologies.  The course is designed, among others, to prepare students to work in software industry, addressing software quality assurance processes, activities, and challenges.  Topics include quality control, quality assurance, quality management system, process and product quality, software configuration management, standardization, and audit.

The course includes a project assignment, which emphasizes quality assurance activities, challenges, processes, and standards.  Students are challenged to work in teams to solve a real software quality problem using the software quality assurance principles learnt in class.  As a result of project ICT-INOV, the course has been updated to include design thinking activities.  Students are exposed to design thinking concepts and deploy design thinking to complete their group assignments.

Description of the participants

This is compulsory course in the 3rd year of studies in the Bachelor’s in Computer Science program, Software Engineering strand, of the Computing Department, College of Computing and Informatics, University Tenaga Nasional.  In the 2021 – 2022 academic year, the course was delivered in 2 semesters. In both cases, where design thinking activities were applied. A total of 62 students attended the course, 48 in the 2nd semester of the academic year and 14 in a special offering of the course in the 3rd semester.

Description of gamified design thinking activities

A learning activity based on design thinking was specifically designed for the course.  The objective of learning activity was to challenge students to design solutions for real software quality problems related, for example, to usability, efficiency, security, and reliability of software.  The activity is directly in line with course learning outcomes, which are to apply appropriate techniques and processes in solving issues related to software quality assurance implementation and perform the assigned tasks effectively in a team practicing software quality assurance activities.  Students worked in groups of up to 6 individuals. 

The ICT-INOV educational platform provided instructors with flexibility on structuring learning activities based on well-accepted design thinking steps.  The activity was structured as follows:

Step 1: Team building.

Students were encouraged to select a team name for team building purposes.  This activity provided teams with a sense of identity and affiliation.  It also helped them to establish effective communication between team members.  In addition, students were asked to put up one sticker each to introduce themselves.  This was a good way for them to get to know each other better since teaching and learning were still fully in on-line mode.

Step 2: Understanding the context.

Students were asked to perform research on software quality and the importance of ensuring quality in the developed software, as well as the consequences of low-quality software, which is the general theme of the proposed activities.  They were also asked to post ideas and lessons learnt on the importance of quality software from the articles that they read or video that they watched.

Step 3: Problem definition.

Team members were asked to look around and identify software that they have been using, or they have seen others using, which they believed had quality problems.  Each team member was required to post on the platform a description of the software and the quality problem that was identified. Through this description, students had an opportunity to present to the other team members their findings.  Teams were encouraged to engage in discussions and to agree on the software that they would like to work on further to solve the identified quality problem.

Step 4: Understanding users.

Students were exposed to the tools for discovering and documenting actual, as opposed to perceived, user needs.  These included questionnaires and semi-structured interviews.  It further included designing a user persona, namely describing a characteristic user by considering what the user thinks and feels, says, and does.

Step 5: Ideation.

Students were challenged to redefine their originally perceived quality problem of identified software, considering the results of their research in the previous step, which helped them develop an understanding of the problem from the user’s point of view.

Step 6: Prototyping.

Students were asked to brainstorm to generate as many ideas as possible to determine the causes to the identified quality problem.  They were encouraged to the root-cause analysis, namely a fish bone diagram, in order to categorize the causes and their respective sub-causes.  They were then asked to select one cause that they want to provide the solution for.  Students collaborated with their team members to design and post their proposed solutions on the ICT-INOV platform.

Students performed all activities and submitted their proposed solutions to the ICT-INOV educational platform before they presented their solutions to the entire class.  Some of the software and respective quality problems that the teams chose to provide solutions for include:

  • Software name: No specific software chosen

Problem: Last minute changes in software requirements

Chosen cause: Requirements change during project development

Chosen sub-cause: Changes in the recent technologies and/or environment

Proposed solution: The team proposed the development of a well-documented change control procedure that, amongst others, clearly states the types of requirements that can and cannot be changed once development begins and the extent of the change allowed.  This approach can prevent last-minute changes that can reduce the quality of the software

  • Software name: Foodpanda® App

Problem: Search function does not return expected food or shop

Chosen cause: Inefficient search algorithm

Chosen sub-cause: Unthorough search algorithm

Proposed solution: An improved search algorithm was proposed to address inefficiency issues such as avoiding the display of food outlets that are currently closed or do not exist, ensuring that the app displays both or all outlets that have the same name, and validating the algorithm

  • Software name: Terminal 5 (T5) Heathrow Airport Software

Problem: Lost baggage

Chosen cause: People

Chosen sub-cause: Undertrained staff

Proposed solution: A tailored training framework for airport management was proposed as a solution to this problem.  The training module includes 30-day tailored theoretical course, 30-day on-the-job training with actual software, and 30-day involvement with the real scenarios.

  • Software name: ICT-INOV platform

Problem: Further enriching the user interface

Chosen cause: Perfecting the user interface

Chosen sub-cause: Additional feedback

Proposed solution: Two additional features are proposed.  The 1st involves a form that users can fill in and submit whenever they have queries or comments about the platform.  The other interface involves displaying frequently asked questions (FAQs) where users can quickly refer to when they have problems that may have already been encountered and addressed before.  This will overall improve user experience