Software Engineering Principles course, University Tenaga National

Description of the course

This course introduces an engineering approach in the development of high-quality software systems. It addresses the important software engineering concepts in various types of common software process models. Students build knowledge on the concepts and techniques used in each software development phase, including requirements engineering, software design, and software testing. The course exposes students object-oriented representations through the UML format and tools for analyzing and designing software. Upon completion of the course students are familiar with most of the common software engineering concepts and techniques and are able to produce software artifacts and deliverables.

The course includes a project assignment, in which students explore the campus to identify problems that can be solved using software solutions.  Students work in groups to synthesize the solution following requirements engineering processes.  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.

Upon completion of the course students are able to explain fundamentals concepts of software engineering, produce software requirements models, software architecture, object-oriented design models, and test cases with state-of-the-art methods and tools for a real-world software engineering problem, and work effectively in a team to solve real world software engineering problems.

Description of the participants

This is compulsory course in the 1st 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.  A total of 47 students attended the course in the 2021 – 2022 academic year.

Description of the design thinking activities

A learning activity based on design thinking was introduce into the course. The activity was divided into the following steps.

Step 1: Identifying problems and proposing solution.

Students were challenged to identify potential problems through observation. They brainstormed in teams to select one of these issues to focus on.

Step 2: Identifying the stakeholders.

Studentswere encouraged to meet with stakeholders in order to understand their needs.

Step 3: Identifying desirable features of the proposed system.

Students engaged in ideation to generate a pool of ideas towards solving the problem in focus.

Step 4: Identifying functional requirements.

Students identified the functional requirements of their proposed system, which described system functionality in detail.

Step 5: Writing non-functional requirements.

Students identified the non-functional requirements of their proposed system, which described restrictions or characteristics, such as dependability, availability, performance, and others.

Students performed all activities and submitted their proposed solutions through the ICT-INOV digital learning platform before they presented their solutions to the entire class.