150 likes | 268 Views
Object Oriented Design and Programming. Alan Goude Email: a .goude@shu.ac.uk Room: Sheaf 4320. Unit delivery and assessment. Semester 1 – 6 x 2hr lectures, 12 x 2hr labs and one assignment given. Semester 2 – 6 x 2hr lectures, 12 x 2hr labs and one assignment. Topics - Semester 1.
E N D
Object Oriented Design and Programming Alan Goude Email: a.goude@shu.ac.uk Room: Sheaf 4320
Unit delivery and assessment • Semester 1 – 6 x 2hr lectures, 12 x 2hr labs and one assignment given. • Semester 2 – 6 x 2hr lectures, 12 x 2hr labs and one assignment.
Topics - Semester 1 • The object oriented approach OOA,OOD and OOP • C++ Stream Input/Output • Reference variables • Classes • Terminology • Class members – data and functions(methods) • Class access – public, private & protected • Separation of interface from implementation • Constructor and destructors • function overloading • Dynamic memory allocation • Object aggregation and composition • UML notation for classes and class aggregation.
Topics - Semester 2 • Operator overloading • Additional class features • Friend functions • Static members • Inheritance • Polymorphism • Abstract classes, Virtual functions • More UML - Class diagrams • Templates (time permitting)
Books • Thinking in C++ by Bruce Eckel • Vol.1 (basics) and Vol.2 (advance features) • Assumes knowledge of ‘C’ • Free Electronic versions available from- • http://www.mindview.net/Books • C++ : How to program by Deitel & Deitel • See info at http://www.deitel.com/ • Fourth Edition available Oct 2002 • Includes a version of Microsoft Visual C++
Other books and information sources • Object-Oriented Analysis and Design with Applications by Grady Booch • Unified Modelling Language User Guide by Grady Booch, Ivar Jacobson, James Rumbaugh • UML Distilled: A Brief Guide to the Standard Object Modeling Language (2nd Edition) by Martin Fowler, Kendall Scott • My Web page - http://www.shu.ac.uk/schools/eng/teaching/ag • Try a www.google.com search
Object Oriented Design and Programming • OOD – Major proponents and developers • Grady Booch, Ivar Jacobson, and James Rumbaugh • Unified Modelling Language (UML) • OOP – Several OOP languages • Smalltalk, Eiffel. Pure OOPL • C++, Java. Said to be object based OOPL
Software Tools • Object Oriented Programming (OOP) • C++ • Using Microsoft Visual C++ compiler • Object Oriented Design (OOD) • UML (Unified Modelling Language) • Rational Rose UML visual modelling tool
Object Model • Key ideas • Abstraction • Encapsulation • Modularity • Hierarchy • Minor elements of the object model • Typing (language dependent – data typing) • Concurrency (OS dependent) • Persistence
Abstraction • Helps to deal with complexity by focusing on certain features and suppressing others. • Focus on interface (outside view) • Separate behaviour from implementation
Hierarchy • A way of ordering abstractions • Object hierarchical abstractions (“HAS A” or “PART OF” relationship) • Interfaces and behaviours at each level • Higher levels are more abstract
Encapsulation • Also known as information hiding • Hides the details of the implementation • Complementary to abstraction
Abstraction, Encapsulation and Software Design • Interface should be simple, providing the required behaviour. • User is presented with high level abstract view. The detail of the implementation is hidden from the user. • The designer may change the implementation keeping the interface the same.
Modularity • A common “Divide and conquer” approach • Partitions a problem into sub-problems reducing complexity • Modularity packages abstractions into discrete units • In C++ classes are the basic modules providing encapsulation and abstraction
Re-usability - Inheritance • Class Hierarchies • Derived class inherits properties and behaviour of a base class • Allows code re-use. • Derived classes can have • additional properties and behaviour, • or over-ride inherited behaviour.