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.