Description
Description
This immersive, hands-on course teaches the core techniques and best practices of object-oriented analysis and design (OOAD), empowering participants to build high-quality software systems that meet requirements and are delivered on time. Through a practical, applied approach, you’ll learn how to model, design, and communicate effectively using proven OO principles and industry-standard notations like UML.
The course is built around three integrated pillars:
Concepts – Core OO principles and design thinking
Notation – Unified Modeling Language (UML) for clear documentation and communication
Process – Modern development methodologies (e.g., Agile, RUP) for iterative, efficient delivery
Each topic is introduced individually, then brought together through a team-based group project that simulates real-world development. You’ll gain experience using UML to create meaningful models, documenting requirements with use cases, applying design patterns, and understanding how OOAD supports modern software development lifecycles.
Training Objectives
- Concepts & Notation
- Grasp key OO concepts: types inheritance
- polymorphism and interfaces
- Understand the difference between structured design and OOAD
- Develop intuition for applying OO techniques effectively (and when not to)
- Learn to recognize and use OO architectural and design patterns
- Master UML diagrams for modeling and communicating system structure and behavior
- Create:
- Use Cases to define system functionality
- Static models (e.g. class diagrams)
- Dynamic models (e.g. sequence state and activity diagrams)
- Refine models using design patterns
- Process
- Understand what a software development process is and why it matters
- Explore leading methodologies including the Unified Process RUP and Agile
- Tailor processes to suit the scope and complexity of your project
- Apply iterative incremental techniques to reduce risk and improve outcomes
- Learn what pitfalls to avoid—such as analysis paralysis or over-design
Course Outline
- Session 1: Introduction to OOAD<
- Overview of Object-Oriented Thinking<
- OO Concepts and Principles<
- Making the Case for Object Orientation<
- Lab: Exploring the OO Paradigm<
- Session 2: Unified Modeling Language (UML)<
- Introduction to UML and its role in OOAD<
- Static Diagrams: Use Case, Class, Package, Component, Deployment<
- Dynamic Diagrams: Collaboration, Sequence, State Chart, Activity<
- Labs: Class, Sequence, State Diagram Practice<
- Session 3: The Software Development Process<
- Understanding Development Lifecycle Models<
- Iterative & Agile Methodologies<
- Unified Process: Phases, Workflows, Iterations<
- Use Case–Driven, Architecture-Centric Approaches<
- Labs: Comparing Civil Engineering vs. Software Development, Modeling Processes<
- Session 4: Inception Phase<
- Visioning, Business Modeling, Stakeholder Identification<
- Risk Identification and Planning<
- Labs: Vision Statement, System Context, Stakeholder Analysis<
- Session 5: Introduction to Use Cases<
- Actors and Use Case Relationships<
- Writing Effective Use Case Descriptions<
- Building the Initial Use Case Model<
- Labs: Discovering Actors and Use Cases<
- Session 6: Additional Modeling Techniques<
- Domain Modeling: Identifying Business Concepts<
- Technology Modeling<
- Capturing Non-Functional Requirements<
- Labs: Domain Model Creation, NFR Definition<
- Session 7: Elaboration Phase – Analysis<
- Detailing and Elaborating Use Cases<
- Refining the Analysis Model<
- Labs: Identifying Analysis Classes, Deepening Use Cases<
- Session 8: Elaboration Phase – Design<
- Dynamic Modeling and Object Design<
- Working with Frameworks and Tiered Architectures<
- Applying OO Design Principles<
- Labs: Collaboration Modeling, Object Refinement<
- Session 9: Introduction to Design Patterns<
- Understanding Pattern Basics<
- Exploring the Iterator Pattern<
- Labs: Analyzing Collection Traversal and Iterators<
- Session 10: Core GOF Patterns<
- Gang of Four Patterns Overview<
- Design Pattern Categories and Benefits<
- Labs: Pattern Discussion and Analysis<
- Session 11: Applying Key Design Patterns<
- In-Depth Exploration of:<
- Factory Method<
- Strategy<
- Decorator<
- Template Method<
- Labs: Hands-on Use of Each Pattern




