Design and Implementation of Engineering Software
| Code | School | Level | Credits | Semesters |
| EEEE2067 | Department of Electrical and Electronic Engineerin | 2 | 10 | Autumn China |
- Code
- EEEE2067
- School
- Department of Electrical and Electronic Engineerin
- Level
- 2
- Credits
- 10
- Semesters
- Autumn China
Summary
Quality Software Engineering demands consideration of good design practice, not just programming techniques, in order to produce robust, reliable, portable, maintainable and cost-effective codes. This is particularly the case for large-scale applications in the broader commercial and technological context involving both recycling and enhancement of existing codes as well as when working in software teams. Many of these good design principles are recurrent in many branches of engineering.
This module presents a range of design and established good practice issues; explaining why they are important for good Software Engineering, if not strictly necessary for basic code functionality. Starting from the key issue of decomposing large problems into parts, with clear functional specifications, testing procedures and interfaces, the need to consider the overall structure of the software under development, as well as its possible reuse and evolution, is discussed and this leads to an introduction to Object Oriented Programming (OOP) as an elegant and reliable means of constructing inherently good quality software.
The motivation, benefits and appropriate use of OOP are discussed in the context of both simple electrical engineering examples and cases that are more general. This module specifically introduces competent programmers in a procedural language (e.g. C) to OOP with implementations in C++. Encapsulation, polymorphism and inheritance will be considered in detail.
Reassessment of this module, if required, will be 100% by a centrally timetabled exam in the University's resit period exam.
Requisites: EEEE1044 Introduction to Software Engineering and Programming
Target Students
Only available to Part I students on courses offered by the Department of Electrical and Electronic Engineering.
Classes
- One 2-hour lecture each week for 8 weeks
- One 3-hour computing each week for 8 weeks
Assessment
- 10% Coursework 2: Submission of source code
- 10% Coursework 3: Submission of source code
- 10% Coursework 4: Submission of source code
- 5% Progress Test 1: ExamSys Progress Test
- 5% Progress Test 2: ExamSys Progress Test
- 5% Progress Test 3: ExamSys Progress Test
- 5% Progress Test 4: ExamSys Progress Test
- 10% Coursework 1: Submission of source code
- 40% Exam 1 (2-hour): Exam
Assessed by end of autumn semester
Educational Aims
To introduce students to the different software design paradigms in use across the range of engineering activity. To introduce the concept of object oriented software and its practical implementation in C++, with a full appreciation of the need to design for robustness and the wider needs of code recycling, maintenance and expansion necessary in the modern commercial and technological environment.Learning Outcomes
By the end of this module, students should be able to:
LO1 Demonstrate critical judgment in decomposing large tasks into collections of small objects and functions.
LO2 Design scalable object oriented software with an appreciation of a larger environment encompassing; code recycling, maintenance, expansion and issues of robustness.
LO3 Implement the concept of inheritance in the C++ language.
LO4 Implement the concept of encapsulation in the C++ language.
LO5 Implement the concepts of polymorphism and operator overloading in the C++ language.
LO6 Design & write object orientated code against a design brief.
This module contributes to the delivery of the following Engineering Council outcomes:
C1, C2, C3, C5, C6, C9, C10, C12, C13, C14
Conveners
- Dr David Chieng