Top Banner
Object Oriented Design and Programming Alan Goude Email: a [email protected] Room: Sheaf 4320
15

Object Oriented Design and Programming

Jan 03, 2016

Download

Documents

leilani-tillman

Object Oriented Design and Programming. Alan Goude Email: a [email protected] 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. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Object Oriented Design and Programming

Object Oriented Design and Programming

Alan GoudeEmail: [email protected]

Room: Sheaf 4320

Page 2: Object Oriented Design and Programming

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.

Page 3: Object Oriented Design and Programming

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.

Page 4: Object Oriented Design and Programming

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)

Page 5: Object Oriented Design and Programming

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++

Page 6: Object Oriented Design and Programming

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

Page 7: Object Oriented Design and Programming

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

Page 8: Object Oriented Design and Programming

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

Page 9: Object Oriented Design and Programming

Object Model

Key ideas Abstraction Encapsulation Modularity Hierarchy

Minor elements of the object model– Typing (language dependent – data typing)– Concurrency (OS dependent)– Persistence

Page 10: Object Oriented Design and Programming

Abstraction

Helps to deal with complexity by focusing on certain features and suppressing others.

Focus on interface (outside view)

Separate behaviour from implementation

Page 11: Object Oriented Design and Programming

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

Page 12: Object Oriented Design and Programming

Encapsulation

Also known as information hiding

Hides the details of the implementation

Complementary to abstraction

Page 13: Object Oriented Design and Programming

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.

Page 14: Object Oriented Design and Programming

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

Page 15: Object Oriented Design and Programming

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.