Module Details
Module Code: |
COMP C9049 |
Full Title:
|
Software Engineering
|
Valid From:: |
Semester 2 - 2021/22 ( January 2022 ) |
Language of Instruction: | English |
Module Owner:: |
Martin Mchugh
|
Departments: |
Visual and Human-Centred Computing
|
Module Description: |
The aim of this module is to introduce computer programming and problem-solving in the context of 3D environments. Students completing this module should understand the concepts and language constructs necessary to design, develop, test, and evaluate a software solution developed for a virtual 3D environment. This module will also introduce students to software engineering best practice, systems modelling concepts and techniques, and software testing techniques and tools.
|
Module Learning Outcome |
On successful completion of this module the learner will be able to: |
# |
Module Learning Outcome Description |
MLO1 |
Develop software solutions that demonstrate an understanding of the structures and concepts of an object orientated programming language. |
MLO2 |
Design, implement, test and debug solutions to common programming problems using an industry standard IDE. |
MLO3 |
Apply appropriate structures and techniques particular to 3D graphics solutions within a commercial game engine. |
MLO4 |
Assess the importance and role of testing in software development. |
MLO5 |
Create a unit test suite to assess testing quality using an industry standard testing framework. |
MLO6 |
Illustrate the main phases of the Software Development Life Cycle. |
Pre-requisite learning |
Module Recommendations
This is prior learning (or a practical skill) that is strongly recommended before enrolment in this module. You may enrol in this module if you have not acquired the recommended learning but you will have considerable difficulty in passing (i.e. achieving the learning outcomes of) the module. While the prior learning is expressed as named DkIT module(s) it also allows for learning (in another module or modules) which is equivalent to the learning specified in the named module(s).
|
No recommendations listed |
Module Indicative Content |
Fundamental Concepts
Program structure, syntax and semantics of a higher-level language; variables, types, expressions, and assignment; simple I/O, file I/O; Integrated Development Environment and the code/compile/run cycle of program development.
|
Programming Control Structures
Control structures and flow control
|
Data Structures
Arrays; lists; vectors; maps; stacks; queues; strings and string processing
|
Functions, Classes & Methods
Function declaration & definition, invocation, parameter passing, pass-by-value, pass-by-copy, return types and method overloading; Inheritance, encapsulation, polymorphism; template classes and functions; lambda functions; functors; use of STL classes and functions
|
Implementing The Solution
Design concepts and principles; problem-solving strategies; algorithms in the problem-solving process; implementation strategies for algorithms
|
Overview of Software Testing
Evolution of testing, test strategies and test management; Examination of manual and automated testing
|
Unit testing
Unit testing and unit test frameworks; Assert methods and flow and path testing; Using the Automation System in Unreal Engine for unit testing
|
Coverage and Coverage metrics
Applying coverage techniques and measuring the coverage levels of a test suite, with a special focus on statement, decision and condition coverage
|
Software Development Life Cycle and Processes
Introduction to the main phases and activities of the Life Cycle
|
Working with Requirements
Eliciting and documenting user requirements using Agile (User Stories)
|
Software Design
Creating an initial software design
|
Module Assessment
|
Assessment Breakdown | % |
Course Work | 100.00% |
Module Special Regulation |
|
AssessmentsFull-time
Part-time
DKIT reserves the right to alter the nature and timings of assessment
Module Workload
Workload: Full-time |
Workload Type |
Contact Type |
Workload Description |
Frequency |
Average Weekly Learner Workload |
Hours |
Practical |
Contact |
In these lecture/practical classes, the delivery of new theory and material will be integrated with the practical implementation of that content. |
Every Week |
2.00 |
2 |
Independent Study |
Non Contact |
Independent self learning and practice |
Every Week |
5.00 |
5 |
Directed Reading |
Non Contact |
Theory, principles and paradigms. |
Every Week |
2.00 |
2 |
Total Weekly Learner Workload |
9.00 |
Total Weekly Contact Hours |
2.00 |
Workload: Part-time |
Workload Type |
Contact Type |
Workload Description |
Frequency |
Average Weekly Learner Workload |
Hours |
Practical |
Contact |
In these lecture/practical classes, the delivery of new theory and material will be integrated with the practical implementation of that content. |
Every Week |
2.00 |
2 |
Independent Study |
Non Contact |
Independent self learning and practice |
Every Week |
5.00 |
5 |
Directed Reading |
Non Contact |
Theory, principles and paradigms. |
Every Week |
2.00 |
2 |
Total Weekly Learner Workload |
9.00 |
Total Weekly Contact Hours |
2.00 |
Module Resources
|
Recommended Book Resources |
---|
-
Bjarne Stroustrup. (2013), The C++ Programming Language, 4th Edition Ed.. Addison-Wesley Educational Publishers Inc., Upper Saddle River, NJ, [ISBN: 9780321563842].
-
Ian Sommerville. (2015), Software Engineering, 10 Ed.. Pearson, [ISBN: 0133943038].
-
Rex Black, Gerry Coleman, Marie Walsh et al.. (2017), Agile Testing Foundations: An ISTQB Foundation Level Agile Tester guide, 1 Ed.. BCS Learning and Development Ltd., Swindon, [ISBN: 1780173369].
| Supplementary Book Resources |
---|
-
William Sherif. (2015), Learning C++ by Creating Games with UE4, Packt Publishing, [ISBN: 978178439657].
| This module does not have any article/paper resources |
---|
Other Resources |
---|
-
Website, Cplusplus,
-
Website, Software Test Professionals,
-
Website, Sticky Minds,
| |