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
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 Examination | 60 |
Other Assessment(s) | 40 |