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.
We make every effort to ensure that the information on our website is accurate but it is possible that some changes may occur prior to the academic year of entry. The modules listed in this catalogue are offered subject to availability during academic year 2018/19 , and may be subject to change for future years.