1 / 15

Object Oriented Design and Programming

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.

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Object Oriented Design and Programming Alan Goude Email: a.goude@shu.ac.uk Room: Sheaf 4320

  2. 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.

  3. 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.

  4. 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)

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

  6. 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

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

  8. 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

  9. Object Model • Key ideas • Abstraction • Encapsulation • Modularity • Hierarchy • Minor elements of the object model • Typing (language dependent – data typing) • Concurrency (OS dependent) • Persistence

  10. Abstraction • Helps to deal with complexity by focusing on certain features and suppressing others. • Focus on interface (outside view) • Separate behaviour from implementation

  11. 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

  12. Encapsulation • Also known as information hiding • Hides the details of the implementation • Complementary to abstraction

  13. 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.

  14. 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

  15. 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.

More Related