OO Analysis and Design Course

About this course

Object Orientation affects more than just code. Many common development problems — such as unexpected behaviour, difficult changes, and long debugging cycles — often start during analysis and design.

This course focuses on applying object-oriented thinking during analysis and design. Using UML as a communication tool, you will learn how to model systems that reduce ambiguity, control complexity, and support change.

The course is for programmers working in object-oriented environments, such as Java, C#, and C++. It is ideal for systems where fixing defects and making changes take significant time and effort.

The first three days run in parallel with the Object-Oriented Analysis course for non-programmers.

Delegate feedback

Feedback from delegates who have attended this course:

Intended audience

This course is useful if:
  • You are a developer working in Java, C#, C++, or another object-oriented environment and want to strengthen your design decisions.
  • You build or maintain systems where changes and defect fixes consume significant time and effort.
  • You are involved in analysis or system design and need to model object-oriented systems clearly and consistently.
  • You are a technical lead or architect responsible for creating maintainable, scalable system designs.

Prerequisites

Delegates should have practical programming experience in an object-oriented language, such as Java, C#, or C++.

Course details

Price: R15,800 excluding VAT per delegate.

Included:

  • Electronic course material.
  • Attendance certificate (PDF).

Duration: 5 days.

Delivery: Virtual classroom
See how virtual training works.

See the course schedule for upcoming dates.

Booking information

Email your booking to info@incusdata.com. A purchase order, or completed enrolment form is sufficient.

We will confirm the booking and issue an invoice.

Course contents

Introduction

  • Why design problems show up later as bugs and rework.
  • Object orientation as a thinking model, not a syntax feature.
  • Where OO helps, and where it creates unnecessary complexity.

Object-Oriented Concepts and Terminology

  • Classes, objects, and responsibilities.
  • Encapsulation and abstraction for reducing coupling.
  • Inheritance vs composition.
  • Polymorphism and interfaces.
  • Associations and relationships between classes.

UML as a Communication Tool

  • What UML is for: shared understanding and fewer assumptions.
  • Choosing the right diagram for the question you are answering.
  • Core diagrams used on the course: use case, activity, class, sequence, state, component, deployment.
  • Common extension mechanisms (stereotypes, notes, constraints).
  • Practical use of modelling tools.

Object-Oriented Process and Method Choices

  • Iterative development and feedback loops.
  • How analysis and design fit into Agile projects.
  • Lightweight OOAD workflows (RUP overview, ICONIX overview, Agile Modelling).
  • What to do when process guidance is missing.

Object-Oriented Analysis

  • Use cases for clarifying behaviour and scope.
  • Use case text vs diagrams: when each helps.
  • Activity diagrams for flows, paths, and edge cases.
  • Domain modelling and terminology alignment.
  • Class identification and domain classes.
  • CRC cards and collaborative modelling.
  • Selecting UML diagrams that reduce ambiguity during analysis.

Object-Oriented Design

  • Responsibility-driven design and separation of concerns.
  • Class design and detailed class diagrams.
  • Robustness analysis and introduction to MVC.
  • Sequence and communication diagrams for behaviour and collaboration.
  • State machine diagrams where behaviour depends on state.
  • Packaging and component boundaries.
  • Design choices that reduce change cost.

Design Principles and Patterns

  • What makes a design easier to change and debug.
  • SOLID principles (practical interpretation).
  • Package design principles.
  • Pattern concepts and when patterns increase complexity.
  • Examples of commonly used patterns.

Estimation and Planning Inputs

  • Why estimates fail when scope and behaviour are unclear.
  • Using use cases as an input to sizing and planning.
  • Function points and SLOC: what they measure and where they mislead.
  • COCOMO overview (high-level).

Download the course outline

Download the Object-Oriented Analysis & Design course outline in PDF format.

Your Java tip is on its way!

Check that incusdata.com is an approved sender, so that your Java tips don’t land up in the spam folder.

Our privacy policy means your data is safe. You can unsubscribe from these tips at any time.

Thank You

We're Excited!

Thank you for completing the form. We're excited that you have chosen to contact us about training. We will process the information as soon as we can, and we will do our best to contact you within 1 working day. (Please note that our offices are closed over weekends and public holidays.)

Don't Worry

Our privacy policy ensures your data is safe: Incus Data does not sell or otherwise distribute email addresses. We will not divulge your personal information to anyone unless specifically authorised by you.

If you need any further information, please contact us on tel: (27) 12-666-2020 or email info@incusdata.com

How can we help you?

Let us contact you about your training requirements. Just fill in a few details, and we’ll get right back to you.