Aims
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
-
Common issues affecting the security of software systems
-
Best practices for secure software development
-
Applying formal methods and software testing
-
Software analysis and reverse engineering
-
Issues of privacy and trust for software design
Subject Specific Intellectual
Having successfully completed this module, you will be able to:
-
Describe specific methods for exploiting software systems
Transferable and Generic
Having successfully completed this module, you will be able to:
-
Apply secure software development principles to a range of application domains
Subject Specific Practical
Having successfully completed this module, you will be able to:
-
Understand basic C programs, x86 Architecture, Memory Allocation and Assembly Language.
-
Build more secure software systems and applications
-
Undertake basic reverse engineering of software
The syllabus includes the following topics:
- Understanding software threats and hazards
- Privacy and trust issues in software system design
- Security by design
- Security models, and principles of secure computing
- Managing secure software design and development
- Software development lifecycle
- Formal methods approaches
- Software testing
- Static/dynamic analysis of software systems
- Reverse engineering
Learning & teaching methods
The module will be delivered through up to 24 lectures, which will include at least two regular lectures each week, in addition to tutorial and practical sessions.
The tutorial and practical sessions are designed to support students and prepare them to take the assignment.
- Lecture - 24 hours per semester
- Tutorial - 6 hours per semester
- Computer Lab - 6 hours per semester
| Activity | Description | Hours |
| Lecture | Regular lectures | 24 |
| Tutorial | Tutorial sessions | 6 |
| Computer Lab | Computing labs | 6 |
Assessment methods
| Method | Hours | Percentage contribution |
| The coursework will be focused on a practical application of the taught material, on the topic of building more secure software systems and applications, and/or undertaking basic reverse engineering of software. The coursework may therefore be a single piece of work, or one split into two parts covering each aspect. | - | 30% |
| Exam | 120 mins hours | 70% |
Referral Method: By examination