The University of Southampton

COMP6236 Software Engineering and Cyber Security

Module Overview

This module focuses on both theoretical and practical perspectives in the development of software systems, exploring secure software design and development methods, and software analysis and reverse engineering. It therefore explores aspects of software engineering that are directly applicable cyber security.

The aims of the module at a high level are to:

  • Explore common threats to the secure operation of software systems
  • Give students knowledge of secure software development best practices
  • Understand the importance of formal methods and software testing
  • Give students exposure to software system analysis and reverse engineering

This module is compulsory for students taking the MSc in Cyber Security. 

Aims & Objectives

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

Syllabus

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

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
ActivityDescriptionHours
LectureRegular lectures24
TutorialTutorial sessions6
Computer LabComputing labs6

Assessment

Assessment methods

MethodHoursPercentage 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%
Exam120 mins hours70%

Referral Method: By examination

Share this module FacebookTwitterWeibo