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 | 2024/5 |
Outline Description of Module
This module introduces software engineering principles and practices that are needed to develop software-intensive systems. Students will work 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
- Apply their understanding of the fundamental concepts, principles and practices of software engineering when completing activities including requirements gathering, development and testing.
- Plan and manage a project through the effective use of a variety of tools and techniques.
- Apply their knowldege of secure software quality criteria in completing activities.
- Use appropriate modelling techniques when specifying the requirements of and designing a system to meet the needs of a particular problem.
- Evaluate techniques used in project management and the technical tasks involved in each stage of the development lifecycle.
- Demonstrate an awareness of the nature of professional bodies and relevant codes of ethics and professional conduct.
- Reflect on their experience of working in a team and individually on projects.
How the module will be delivered
Modules will be delivered through blended learning. 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)
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
Defending your work
Using version control software to collaborate on a project
How the module will be assessed
Assessment is based on three distinct written individual portfolio submissions, 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
Unified Modelling Language
Class diagrams
Use case diagrams
Activity Diagrams
Software Development Methodologies
Software Design
Software Implementation: Modularity, Usability, and Object Oriented techniques
Software Programming
Write, refactor, test and run code
Software Quality
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)