Department of Electrical and Computer Engineering


Software Engineering courses

All courses taught by the department are listed in alpha-numerical order with a brief description. Please be aware that some courses may not be on offer in a current programme of study.

Students and potential students are advised to ascertain which courses are expected to be offered in this academic year and in which semester they are scheduled by referring to the Class Search on Student Services Online, or by contacting the department.

Where courses are listed with an ‘A’ and a ‘B’ option, this means that, if they are offered, they will be taught over two semesters and students must enrol in both Part A and Part B in order to complete and, where successful, be credited with the course. Courses with no ‘A’ or ‘B’ designation are taught over one semester.

 

Stage II


SOFTENG 206 - Software Engineering Design 1

(15 points)
Project work. Skills and tools in systematic development of software, including testing, version control, build systems, working with others.
Prerequisite: SOFTENG 250, 251

SOFTENG 211 - Software Engineering Theory

(15 points)
Sets, languages, operations on languages. Deterministic and nondeterministic automata. Designing automata. Determinisation. Regular expressions. Induction and Recursion. Program correctness. Counting. Elements of graph algorithms.
Prerequisite: ENGGEN 131 or COMPSCI 101

SOFTENG 250 - Introduction to Data Structures and Algorithms

(15 points)
Introduction to the analytical and empirical behaviour of basic algorithms and data structures.
Prerequisite: ENGGEN 131 or COMPSCI 101
Corequisite: ENGSCI 213

SOFTENG 251 - Object Oriented Software Construction

(15 points)
An introduction to Object Oriented software development. Programming with classes; objects and polymorphism. Evolutionary and test-driven development. Analysis and design. Modelling with UML. Design patterns. Design for reuse, for testing, and for ease of change.
Prerequisite: ENGGEN 131 or COMPSCI 101

SOFTENG 254 - Quality Assurance

(15 points)
Software verification and validation. Static and dynamic QA activities as part of the software lifecycle. Unit, integration, system, performance and usability testing. Use of automation and tools to support testing activities. Metrics to quantify strength of testing and complexity of programs.
Prerequisite: SOFTENG 250, 251

Top

Stage III


SOFTENG 306 - Software Engineering Design 2

(15 points)
Working in project teams to develop software to meet changing requirements for a large application. Project Planning. Requirements gathering. Estimating, costing and tracking. Acceptance and unit testing. Evolutionary design and development. Collaborative development tools.
Prerequisite: SOFTENG 206, 254, 350, 351

SOFTENG 325 - Software Architecture

(15 points)
Taxonomy of software architecture patterns, including client/server and multi-tier. Understanding quality attributes. Methodologies for design of software architectures. Technologies for architecture level development, including middleware.
Prerequisite: 15 points from SOFTENG 350, COMPSYS 302

SOFTENG 350 - Human Computer Interaction

(15 points)
Human behaviour and expectations. User interface design. User centred design. Usability evaluation techniques for web and standard interfaces. Constructing web and graphical user interfaces.
Prerequisite: SOFTENG 206

SOFTENG 351 - Fundamentals of Database Systems

(15 points)
Relational model, Relational Algebra, Relational Calculus, SQL, SQL and Programming Languages, Entity Relationship Model, Normalisation, Query Processing and Query Optimisation, ACID Transactions, Transaction Isolation Levels, Database Recovery, Database Security, Databases and XML.
Prerequisite: SOFTENG 211 or COMPSCI 225

SOFTENG 364 - Computer Networks

(15 points)
Principles of data communications; representation, transmission. Physical layer, signals in time and frequency domain. Modulation and coding. Data layer and protocols. Layered architecture model of computer networks, OSI and TCP/IP, Flow control, error control. Local area networks and IEEE standards, Ethernet and Wireless LAN. Circuit, message and packet switching. The Internet protocol (IPv4 and IPV6), routing algorithms, design of subnets. TCP and UDP. Network security. Introduction to ATM.
Prerequisite: 15 points from COMPSYS 201, SOFTENG 252 and 15 points from SOFTENG 206, 211, 250, 251, 254, 325

SOFTENG 370 - Operating Systems

(15 points)
History of operating systems. Multi-user systems. Scheduling. Concurrent processes, threads and synchronisation. Memory allocation and virtual memory. Managing files, disks and other peripherals. Security, protection and archiving. Engineering distributed systems; location, migration and replication transparency. Real-time programming and embedded systems.
Prerequisite: COMPSYS 201 or SOFTENG 252, 250

Top

Postgraduate 700 level / Stage IV courses


SOFTENG 700A - Research Project

(15 points)

SOFTENG 700B - Research Project

(15 points)
A student is required to submit a report on project work carried out on a Software Engineering topic assigned by the Head of Department.
Prerequisite: SOFTENG 306
Restriction: SOFTENG 401
Note: To complete this course students must enrol in SOFTENG 700 A and B.

SOFTENG 701 - Advanced Software Engineering Development Methods

(15 points)
Advanced studies in methods and techniques for developing complex software systems including topics in component based technologies, software engineering environments, tool construction, software architectures.

SOFTENG 702 - Advanced Human Computer Interaction

(15 points)
Current topics in Human-Computer Interaction research, such as: new user-interface technologies, empirical usability studies, pen-based user interaction, form-based user interaction models, advanced layout specification, systematics of human-computer interaction and computer-mediated collaborative work.

SOFTENG 710 - Studies in Software Engineering 1

(15 points)
Advanced courses on topics to be determined each year by the Head of Department.
Prerequisite: Permission of the Head of Department

SOFTENG 711 - Studies in Software Engineering 2

(15 points)
Advanced courses on topics to be determined each year by the Head of Department.
Prerequisite: Permission of the Head of Department.

SOFTENG 750 - Software Development Methodologies

(15 points)
Software lifecycle; software process models; examples of software processes; software process improvement; project management; tool support for software development; issues in software engineering.
Prerequisite: SOFTENG 306
Restriction: SOFTENG 450

SOFTENG 751 - High Performance Computing

(15 points)
Project-based hands-on high performance computing and programming. Memory architecture and networks of parallel computing systems. Multicores, hardware acceleration devices such as graphics cards and FPGAs. Shared memory and data parallel programming. Object Oriented and low level parallel programming. Parallelisation process: subtask decomposition, dependence analysis and scheduling.
Prerequisite: SOFTENG 306 or COMPSYS 302 or MECHENG 313 or 30 points at Stage III in Computer Science.
Restriction: SOFTENG 461

SOFTENG 752 - Formal Specification and Design

(15 points)
Formal specification, design, and (automatic) analysis of software systems. Use of Z, Alloy, OCL, and CSP notations. Comparison of approaches, emphasising their practical application.
Prerequisite: SOFTENG 306
Restriction: SOFTENG 462

SOFTENG 761 - Special Topic in Software Engineering 1

(15 points)
An advanced course on a topic to be determined each year by the Head of Department.
Prerequisite: Permission of the Head of Department.

SOFTENG 762 - Special Topic in Software Engineering 2

(15 points)
An advanced course on a topic to be determined each year by the Head of Department.
Prerequisite: Permission of the Head of Department.

SOFTENG 787 - Project X

(15 points)
A student is required to submit a report on a topic assigned by the Head of Department.

SOFTENG 788A - Project Y

(15 points)

SOFTENG 788B - Project Y

(15 points)
A student is required to submit a report on a topic assigned by the Head of Department.
Note: To complete this course students must enrol in SOFTENG 788 A and B.

SOFTENG 789 - Project Z

(30 points)
A student is required to submit a report on a topic assigned by the Head of Department.

SOFTENG 796A - ME Thesis (Software Engineering)

(60 points)

SOFTENG 796B - ME Thesis (Software Engineering

(60 points)
A student is required to submit a thesis on a topic assigned by the Head of Department.
Note: To complete this course students must enrol in SOFTENG 796 A and B.

Top