Creating software that is maintainable, extensible, and meets user needs is a challenge for many development teams. This course provides practical techniques to analyze a domain and design object-oriented software using a structured approach.

The course begins with an introduction of object-oriented programming. One of the main strengths of object orientation is that code is decomposed into objects, enabling developers to use objects from the problem domain – their responsibilities, behaviors, and interactions – as the starting point for design.

The key to dealing with the complexities of software development is separating analysis – understanding what the application should do – from design – determining how it should work. This is reflected in the structure of the course; the first part focuses on analysis, while the second part addresses design. In real-world projects, these activities are applied in rapid, iterative cycles to build software incrementally.

Analysis focuses on describing the domain without worrying about technical details. It is difficult to automate, as it typically involves close interaction between domain experts and the development team. The outcome of the analysis serves as the foundation for the design phase, where non-functional requirements are incorporated through iterative model transformations. Mastering design skills is more important than ever, particularly with the rise of AI-assisted development that boosts coding productivity.

This training is available for open enrollment as well as for in-company sessions. For in-company sessions, this OOAD training can be adapted to your situation and special needs.

Objective

  • Develop software using the object-oriented programming paradigm;
  • Separate analysis from design, have a clear process that takes you from requirements to a maintainable and extensible solution;
  • Evolve the domain model from the analysis phase into a design model by incorporating non-functional requirements;
  • Apply UML effectively to model and communicate designs, leveraging different diagram types to create multiple viewpoints of a system.

Target audience

  • Software developers who want to strengthen their object-oriented analysis and design skills;
  • Software architects who need to model and communicate system structures at a higher level of abstraction;
  • Technical leads seeking to improve design quality within their teams.
Location
Start date
Next edition info
Duration 2 times 2 days
Frequency Once per year
Score
8.5
Price per participant € 2,925 excl. VAT *
Download brochure

Program

The training event consists of two modules, a module with focus on object oriented requirements analysis and a module with focus on object oriented design and implementation. These two are tightly coupled using examples and exercises throughout both modules. After the event the participant will:

  • Understand the typical OO approach for requirements analysis and design;
  • Have the ability to analyse a given problem statement and to develop an analysis model in UML using the OO approach, i.e.: capture the required system and software behaviour in use-case specifications, state diagrams and interaction diagrams;
  • Have the ability to translate the analysis model into an architectural model in UML that takes care of all the functional and non-functional requirements;
  • Have insight in how an OO detailed design can be implemented in an object oriented programming language (C++ or JAVA).  

 

In the training about 30% of the time will be spent on practical work, mostly small exercises.

The OOAD - extended version  (9 days) has the same scheme as the fast track (4 days), but gives more attention to the introduction of UML, non-functional requirements, use case analysis, design by contract and SW libraries and reflection on exercise results and cases entered for discussion.

Methods

Throughout the course, participants work with a wide variety of UML diagrams to create different viewpoints on the software. UML is used as a tool to model, communicate, and reason about designs, and is equally valuable for exploring and documenting existing systems at a higher level of abstraction.

This 4-day course features multiple case studies illustrating the entire process from requirements to working code. It is highly hands-on, allowing participants to practice analysis and design with these cases while leaving plenty of room to discuss their own situations.

Certification

After attending, participants receive a High Tech Institute certificate.

Remarks from participants

"Learned a lot, met my expectations, well organized, good exercises to practice the just learned theory."

Guido Claessen – ASML

"Useful overview helped in gaining attention, example-oriented teaching was useful."

Avanti Vyas - ASML

"I really enjoyed it. Martijn is a great inspirational teacher."

Anonymous

"Extremely useful course, filled with engaging exercises, presented in a clear and concise manner by the lecturer." 

Ivan Jirov – Sioux Technologies B.V.