SCQF Level: 09
Module Code: CMP307
Credit Value: 20
Term: Term 1
School: School of Arts, Media and Games
This module develops students’ understanding and experience in design/programming within a software engineering context.
The aim of this module is to provide the student with the ability to review, critically evaluate and apply software engineering practice in the development of object-oriented software solutions.
By the end of this module the student should be able to:
1. Explain, compare and contrast software development methodologies such as waterfall, agile and continuous delivery;
2. Describe and apply Code construction concepts including coupling, cohesion, test-driven development and source control;
3. Describe and apply design principles and design patterns;
4. Explain and use Secure coding practices.
1 Software engineering (SE):
What is SE? Application to development process; application to programming practices.
2 SE Development methodologies:
Agile development; Waterfall Model; Continuous delivery.
3 Source control:
Strategies; tools; git.
4 Code construction issues:
Design concepts: Coupling and Cohesion; test-driven development.
5 Unified Modelling Language (UML):
Use case diagrams; Sequence diagrams; Class diagrams; State-machine diagrams; Activity diagrams;
Pattern catalogues; reviewing a pattern; strategy pattern; observer pattern and variants; pattern implementation.
7 Secure OO coding practices:
Identifying coding vulnerabilities; types of exploits; protection through good programming practice; use of assertions
8 Protecting against the user:
Full input verification & validation; handling passwords and encryption; avoiding information leakage via uncaught exceptions.
Statement on Teaching, Learning and Assessment
Delivery will be through a variety of mechanisms: • Lectures : lecturer-led; deliver knowledge. • Tutorials : lecturer-directed, student-led; discuss and/or apply knowledge to specific desk-based questions to reinforce or extend that knowledge. • Practicals : lecturer-directed, student-led; undertake specific computer-based experiments/activities to exemplify, explain and/or extend knowledge when applied to a problem context.
Teaching and Learning Work Loads
|Supervised Practical Activity||24|
|Unsupervised Practical Activity||24|
Credit Value – The total value of SCQF credits for the module. 20 credits are the equivalent of 10 ECTS credits. A full-time student should normally register for 60 SCQF credits per semester.