University of Information Technology

Advanced Software Engineering

Course Description

This course introduces why software engineers should understand the system engineering and the most important system engineering processes. A computer only becomes It include systems such as technical computer-based systems and sociotechnical systems It also introduces the topic of software dependability and what is involved in developing dependable software systems such as reliability, availability, safety, security and resilience. Large-scale systems like Systems of systems are made up of several separate systems. They have emergent properties that are properties of system, rather than those associated with individual parts of the system. This course will explain various kinds of sociotechnical systems that have emergent properties.

The aims of this course are:

  • To understand the layers of system engineering.
  • To understand the dependable attributes such as reliability, availability, safety, security and resilience.
  • To learn the various kinds of sociotechnical systems.

Intended Learning Outcomes

Upon the successful completion of this course, students should be able to:

  • capture dependable properties in the sociotechnical systems.
  • evaluate the important of each property affecting the system engineering.
  • apply security engineering processes into web application.
  • apply model checking techniques in the system engineering process.

Text and References Books


  1. Software Engineering, tenth Edition By Ian Sommerville (2015)

Assessment system

Evaluation Marks Percentage
Attendance 10 Marks 10%
Tutorial 10 Marks 10%
Assignments/Project 20 Marks 20%
Final Examination 60 Marks 60%