At a glance

Duration:
1 day
Available in-house or on demand
System Design

Introduction to Object Oriented Systems

Overview

This introductory course to object oriented systems answers the questions "What is OO?" and "How do you describe an OO system design using the Unified Modelling Language (UML)". The main aim of the course is to begin the mind-shift needed to stop using procedural programming thought patterns and instead use OO thought patterns. By the end of the one-day course participants will have an understanding of the significant differences between the paradigms of procedural programming and object-oriented programming and will be in a better position to begin learning an object-oriented programming language like Java.

Intended For

This is a course for experienced procedural programmers who are required to move into the world of objects.

Prerequisites

Procedural programming experience

Learning outcomes

By the end of the course participants should be able to:

  • Describe the properties of a "good" software module
  • Describe an object as a thing that primarily cooperates with other objectives by providing behavioural services to them
  • Describe an object as a thing that stores data as a secondary objective
  • Describe the differences between an object and a relational style entity and a record in some database
  • Describe the principles of;
    • Encapsulation of behaviour and state
    • Abstraction
    • Generalisation versus specialisation
    • Inheritance of specification
    • Polymorphic behaviour
    • Information hiding
    • Separation of interface from implementation
  • Describe the difference between persistent and non-persistent objects
  • Describe the need for persistence mechanisms and state why persistence should not be built into "entity" objects
  • Show that classes are specifications and objects are instances
  • Describe classes in terms of their:
    • Operations (specifications of object behaviour)
    • Attributes (specifications of data contained within objects)
    • Relationships (associations between objects and strong and weak aggregations of objects)
    • Inheritance of class specifications, structural versus non-structural relationships and various forms of dependence
  • Describe the differences between concrete and abstract classes
  • Describe object cooperation via message passing
  • Describe the importance of information hiding in relation to messages
  • Describe why the principle of "keep operations public and attributes private is so important"
  • Describe active versus passive objects
  • Describe the "four plus one" views of system architecture
  • Describe the uses of the following kinds of UML diagram:
    • Use case
    • Interaction, Collaboration, Sequence
    • Package (as a special case of class) diagram
    • Class
    • State-chart
    • Activity
    • Component
    • Deployment
  • Describe the textual support required for each kind of UML diagram

Content

The instructor begins the day by establishing a logical link between OO and procedural programming: this is achieved by discussing the principles of good modular programming and making the point that a good object exhibits the properties of a good module, albeit a small one. During the middle part of the course the instructor describes the OO principles of abstraction, encapsulation, inheritance, polymorphism, and separation of interface from implementation. In the third part of the course the instructor introduces the Unified Modelling Language (UML) to describe its use as an implementation-independent design notation and to point out why its use is essential.

Because the course is intended to be generic, the instructor will avoid giving examples in Java, C++, or any other implementation language.

Method Used

This course is a one-day introduction to a very large topic. The content is, of necessity, "a mile wide and an inch deep". To achieve the coverage, the day will be intense and heavily oriented toward lecturing. Where appropriate, small quick exercises will be included to illustrate principles. The instructor will encourage questions throughout the day.

To summarise, the course format will be essentially "chalk and talk". There will be no hands-on programming.

Software Education Associates Limited
Freecall: 0800 268 773 Fax: 04 568 7920
Software Education Australia Pty Ltd
Freecall: 1800 145 152 Fax: 1800 145 715
Proud to support World Vision