COMP C9049 - Software Engineering

Module Details

Module Code: COMP C9049
Full Title: Software Engineering
Valid From:: Semester 2 - 2021/22 ( January 2022 )
Language of Instruction:English
Duration: 3 Semesters
Credits:: 15
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 Work100.00%
Module Special Regulation
 

Assessments

Full-time

Course Work
Assessment Type Continuous Assessment % of Total Mark 30
Marks Out Of 100 Pass Mark 40
Timing n/a Learning Outcome 1,2
Duration in minutes 0
Assessment Description
Continuous assessment in the form of a four class tests delivered each three weeks across the duration of the first semester of the year-long module. Each class test will examine the programming concepts covered in that period (including control structures & functions; classes, inheritance and composition; data structures; pointers & references).
Assessment Type Continuous Assessment % of Total Mark 10
Marks Out Of 100 Pass Mark 40
Timing S1 Week 6 Learning Outcome 2,3,4
Duration in minutes 0
Assessment Description
Alpha prototype of a 3D graphics solution developed by each student. This level must include event handling, cameras, collision detection and collision response, game physics, use of digital assets, development of a set of interaction mechanics and the applicaton of programming concepts.
Assessment Type Continuous Assessment % of Total Mark 20
Marks Out Of 100 Pass Mark 40
Timing S1 Week 12 Learning Outcome 2,3,4
Duration in minutes 0
Assessment Description
Present and reflect on a prototype of a 3D graphics solution developed by each student. This level must include event handling, cameras, collision detection and collision response, game physics, use of digital assets, development of a set of interaction mechanics and the applicaton of programming concepts. Project presentation/screencast supported by defence in an oral interview.
Assessment Type Continuous Assessment % of Total Mark 40
Marks Out Of 100 Pass Mark 40
Timing End of Year Learning Outcome 3,4,5,6
Duration in minutes 0
Assessment Description
This project component is made up of the following deliverables Alpha and Beta Application / Game Proof of Concept, Final Prototype. Deliverables will include submission of appropriate plans, designs, use cases, code, testing documentation and any additional resources/documentation. All projects will be approved and/or modified by the project mentoring and assessment panel as may be deemed necessary throughout the duration of the module.
No Project
No Practical
No Final Examination

Part-time

Course Work
Assessment Type Continuous Assessment % of Total Mark 30
Marks Out Of 100 Pass Mark 40
Timing n/a Learning Outcome 1
Duration in minutes 0
Assessment Description
Continuous assessment in the form of a four class tests delivered each three weeks across the duration of the first semester of the year-long module. Each class test will examine the programming concepts covered in that period (including control structures & functions; classes, inheritance and composition; data structures; pointers & references).
Assessment Type Continuous Assessment % of Total Mark 10
Marks Out Of 100 Pass Mark 40
Timing S1 Week 6 Learning Outcome 2,3
Duration in minutes 0
Assessment Description
Alpha prototype of a 3D graphics solution developed by each student. This level must include event handling, cameras, collision detection and collision response, game physics, use of digital assets, development of a set of interaction mechanics and the applicaton of programming concepts.
Assessment Type Continuous Assessment % of Total Mark 20
Marks Out Of 100 Pass Mark 40
Timing S1 Week 12 Learning Outcome 2,3,4
Duration in minutes 0
Assessment Description
Present and reflect on a prototype of a 3D graphics solution developed by each student. This level must include event handling, cameras, collision detection and collision response, game physics, use of digital assets, development of a set of interaction mechanics and the applicaton of programming concepts. Project presentation/screencast supported by defence in an oral interview.
Assessment Type Continuous Assessment % of Total Mark 40
Marks Out Of 100 Pass Mark 40
Timing End of Year Learning Outcome 2,3,4,5,6
Duration in minutes 0
Assessment Description
This project component is made up of the following deliverables Alpha and Beta Application / Game Proof of Concept, Final Prototype. Deliverables will include submission of appropriate plans, designs, use cases, code, testing documentation and any additional resources/documentation. All projects will be approved and/or modified by the project mentoring and assessment panel as may be deemed necessary throughout the duration of the module.
No Project
No Practical
No Final Examination

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