Upload
franklin-mcbride
View
217
Download
0
Embed Size (px)
Citation preview
Unit delivery and assessment
weeks 1 - 6 – 2hr lectures, 1hr labs
weeks 7 -12 – 1hr lectures, 2hr labs
100% coursework assessment– Two Assignments each contributing 50%
Topics -
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 -
Operator overloading Additional class features
– Friend functions– Static members
Inheritance Polymorphism Abstract classes, Virtual functions Templates, Standard Template Libray & More UML
(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/ag1
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 Studio C++ compiler
Object Oriented Design (OOD)– UML (Unified Modelling Language)
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