Module Overview

Software Engineering

Module aims: To provide the learner with an understanding of Software Engineering concepts in the design of computational software To provide the learner with a working knowledge of the C programming language and software development tools To enable the learner to work in software development team projects, with special application to computational design material learned throughout the module

Module Code

MEC4 H4013

ECTS Credits

5

*Curricular information is subject to change

C programming

Revision of C programming language:Variables. Operators. Flow of control. Screen and file I/O. Functions. structs. pointers. Development of these techniques: dynamic data, data structures.

Programming large projects

Software development lifecycles: waterfall, evolutionary, prototyping, V lifecycle. Programming and debugging multi-file applications.

Software Engineering tools and techniques

A closer look at the V lifecycle. Requirements modelling: the software requirements spec and acceptance test plan. Architectural design: encapsulation, structural and behavioural modelling. Component design: coupling and cohesion. Code generation: object libraries, conditional compilation.

Software testing

Unit testing: why and how. Integration testing: test stubs and harnesses. Bottom-up and top-down integration. System testing: black-box testing. Acceptance testing

C programming

Revision of C programming language:Variables. Operators. Flow of control. Screen and file I/O. Functions. structs. pointers. Development of these techniques: dynamic data, data structures.

Programming large projects

Software development lifecycles: waterfall, evolutionary, prototyping, V lifecycle. Programming and debugging multi-file applications.

Software Engineering tools and techniques

A closer look at the V lifecycle. Requirements modelling: the software requirements spec and acceptance test plan. Architectural design: encapsulation, structural and behavioural modelling. Component design: coupling and cohesion. Code generation: object libraries, conditional compilation.

Software testing

Unit testing: why and how. Integration testing: test stubs and harnesses. Bottom-up and top-down integration. System testing: black-box testing. Acceptance testing

This module is delivered by face-to-face and online lectures, underpinned up by lab-based programming drills and project assignments.

Module Content & Assessment
Assessment Breakdown %
Formal Examination60
Other Assessment(s)40