Object oriented design and programming
This presentation is the property of its rightful owner.
Sponsored Links
1 / 15

Object Oriented Design and Programming PowerPoint PPT Presentation


  • 60 Views
  • Uploaded on
  • Presentation posted in: General

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.

Download Presentation

Object Oriented Design and Programming

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Object oriented design and programming

Object Oriented Design and Programming

Alan Goude

Email: [email protected]

Room: Sheaf 4320


Unit delivery and assessment

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

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

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

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

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 programming1

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

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

Object Model

  • Key ideas

    • Abstraction

    • Encapsulation

    • Modularity

    • Hierarchy

  • Minor elements of the object model

    • Typing (language dependent – data typing)

    • Concurrency (OS dependent)

    • Persistence


Abstraction

Abstraction

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

  • Focus on interface (outside view)

  • Separate behaviour from implementation


Hierarchy

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

Encapsulation

  • Also known as information hiding

  • Hides the details of the implementation

  • Complementary to abstraction


Abstraction encapsulation and software design

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

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

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.


  • Login