CM1301: Principles, Tools and Techniques for Secure Software Engineering

School Cardiff School of Computer Science and Informatics
Department Code COMSC
Module Code CM1301
External Subject Code 100374
Number of Credits 20
Level L4
Language of Delivery English
Module Leader Dr Daniel Finnegan
Semester Double Semester
Academic Year 2025/6

Outline Description of Module

This module introduces software engineering principles and practices that are needed to develop software systems. Students will learn a variety of principles and techniques to create quality, secure software over group and individual activities. They will gain practical experience of software requirements, modelling, software testing, and project management skills. They will perform key tasks, both technical and non-technical, in the software development lifecycle. 

On completion of the module a student should be able to

  1. Apply their understanding of the fundamental concepts, principles, and practices of software engineering when completing activities including requirements gathering, development and testing. 

  1. Plan and manage a project through the effective use of tools and techniques. 

  1. Apply their knowldege of secure software quality criteria in completing activities. 

  1. Use appropriate modelling techniques when specifying the requirements of a system to meet the needs of a particular problem. 

  1. Evaluate techniques used in project management and the technical tasks involved in each stage of the development lifecycle including testing. 

  1. Demonstrate an awareness of the nature of professional bodies and relevant codes of ethics and professional conduct. 

  1. Reflect on their experience of working in a team and individually on projects. 

How the module will be delivered

The module will be delivered through a combination of lectures, supervised lab sessions and tutorials as appropriate. You will be expected to attend all timetabled sessions and engage with online material. You will be guided through learning activities appropriate to your module, which may include: 

  • on-line resources that you work through at your own pace (e.g. videos, web resources, e-books, quizzes) 

  • on-line interactive sessions to work with other students and staff (e.g. discussions, live streaming of presentations, live-coding, team meetings) 

  • face to face small group sessions (e.g. help classes, feedback sessions) 

  • a small group project (formatively assessed) 

Skills that will be practised and developed

  • Project Planning and Time Management 

  • Requirements specification 

  • Software construction and testing 

  • Structure, refactor, and test code 

  • Systems modelling 

  • Team working & Communications Skills 

  • Using version control software to collaborate on a project 

How the module will be assessed

Assessment is based on three distinct written class tests, evidencing the student’s work during module activities. Students will be provided with reassessment opportunities in line with University regulations. 

Assessment Breakdown

Type % Title Duration(hrs)
Autumn Semester Class Test 30 Class Test 1 N/A
Spring Semester Class Test 30 Class Test 2 N/A
Spring Semester Class Test 40 Class Test 3 N/A

Syllabus content

  • The need for Software Engineering 

  • Software Development Lifecycle 

  • Analysing and specifying requirements for software systems 

  • Software Quality 

  • Unified Modelling Language 

  • Class diagrams 

  • Use case diagrams 

  • Activity Diagrams 

  • Software Implementation: Modularity, Usability, and Object Oriented techniques 

  • Reliability and software evaluation 

  • Software Development Methodologies 

  • Software Testing & Validation 

  • Software Project management 

  • Project tracking and team communication (Kanban, Scrum, Slack) 

  • Balance of time, resource and quality 

  • Version control software to collaborate on aspects of a project (code/documentation) 


Copyright Cardiff University. Registered charity no. 1136855