Software Design with C++
UML and Case Tools: An Introduction to the Concept and use of Rational Rose Classes, derived classes and objects, members, attributes and operations, Data hiding, private, public, private and protected
Constructors and destructors
Classification hierarchies. Inheritance, Polymorphism, virtual functions and overloading
Input / output using streams
Template and container classes.
Introduction to Microsoft Foundation Class library.
C++ development environments. DevStudio IDE, GNU G++ .
Using C++ for embedded and stand alone applications. Problems with memory allocation, virtual functions and run-time environments.
Interfacing C++ to assembler level programs, dealing with tasking and interrupts.
Teaching and Learning Methods
Individual worksheet and group-oriented practical exercises are central to the students\' experience in order to reinforce and extend the lectures and associated readings. The laboratory work includes design and implementation examples, at basic unit and higher system level.
An extended case-study, supported by focussed tutorials and practicals, will allow the students to follow through an example application from design to implementation, and appreciate the relevance of all the component parts of the module syllabus. Examples of case studies could be: design and development of a lab/room booking distributed application using a compliant windows GUI, developing a small object based scheduler/dispatcher in C++ for downloading onto target hardware.