Design and Implementation of Engineering Software

Code School Level Credits Semesters
EEEE2065 Electrical & Electronic Engineering 2 10 Autumn Malaysia
Code
EEEE2065
School
Electrical & Electronic Engineering
Level
2
Credits
10
Semesters
Autumn Malaysia

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 course 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 more general cases. 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.

Target Students

Second year students

Classes

Assessment

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

Demonstrate critical judgment in decomposing large tasks into collections of small objects and functions.
Design scalable object oriented software with an appreciation of a larger environment encompassing; code recycling, maintenance, expansion and issues of robustness.
Implement the concept of inheritance in the C++ language.
Implement the concept of encapsulation in the C++ language.                                                             Implement the concepts of polymorphism and operator overloading in the C++ language.                 Design & write object orientated code against a design brief.

Conveners

View in Curriculum Catalogue
Last updated 09/01/2025.