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:M. Ntuli
S. Siricoth
H. Swanepoel
W. Smith
K. Mtintsilana
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).