Skip to content

Contact sales

By filling out this form and clicking submit, you acknowledge our privacy policy.

OO Design and Modeling in an Agile World

Course Summary

The OO Design and Modeling in an Agile World training course is designed to demonstrate Object-Oriented (OO) design and modeling using Agile.

The course begins with a set of high-level stories and deconstruction of those stories. Next, it explores the designs and models of OO in a Socratic fashion and in teams. The course concludes by presenting the findings and research to contribute to the Socratic discussions.

Prerequisites: Prior training and/or experience with Agile practices is required. Some knowledge of Scrum, OO, and Unified Modeling Language (UML) is helpful.

Purpose
Learn how to use Agile for Object-Oriented (OO) design and modeling.
Audience
Software developers looking to better understand how to utilize Agile in OO design and modeling.
Role
Software Developer
Skill Level
Intermediate
Style
Workshops
Duration
5 Days
Related Technologies
Agile | OOAD

 

Productivity Objectives
  • Apply a solid foundational understanding of key OO concepts
  • Demonstrate how to use the Unified Modeling Language (UML) in a minimalistic and efficient manner
  • Discover how to blend OO, Agile, and UML to write the best software as quickly as possible
  • Attain hands on practice by performing design, not just theorizing about it

What You'll Learn:

In the OO Design and Modeling in an Agile World training course, you'll learn:
  • Applied OO
    • Definition and motivation for OOP
    • Ensure understanding of OOP fundamentals
    • OOP "First Principles"
    • LAB
  • UML Essentials
    • Use Cases
    • Class Diagrams
    • Sequence Diagrams
    • "Turning Straw Into Gold" - Using UML
    • LAB
  • Agile Development
    • Overview of Agile software development
    • Agile manifesto values & principles
    • Introduction to iterative coding practices
  • Release Planning
    • First time estimates
    • Size the stories
    • Velocity-Driven release planning
    • Apply themes
    • Leverage use cases for "Check and Balance"
    • LAB release planning exercise
  • Product Owner Roles & Responsibilities
    • Will the Real Product Owner Please Stand Up
    • Product backlog & requirements
    • Roles and personas
    • Story workshops
    • Spikes and special stories
    • LAB: Identify and define user roles & user story writing
  • Grooming The Backlog
    • Prioritization
    • Looking ahead
    • Groom continually
    • Value assessment
    • Risk-Based prioritization
    • LAB: Running a successful sprint planning meeting
  • Commonality and Variance
    • Techniques for translating from stories and/or use cases to a class diagram
    • Fundamentals of Commonality/Variability Analysis (CVA)
    • CRC Cards
    • How to Handle Variations as We Get New Requirements
    • Understand and use factories
    • LAB
  • Delegation
    • Delegation and why it is so Powerful
    • How various design patterns leverage delegation
    • Adapter pattern
    • Strategy pattern
    • LAB
  • Refactoring
    • What is refactoring?
    • Why refactor?
    • Identifying code smells
    • How the IDE can assist in refactoring
    • LAB
  • Using Abstraction
    • Understand the Template Method Pattern
    • Importance of Depending on Abstraction
    • LAB
  • Model-View-Controller
    • MCV Principles and the motivation for using MVC
    • Differentiate between Model 1 & Model 2 architectures
    • Benefits of the Front Controller Pattern
    • Use the Observer Pattern to reduce coupling
    • LAB
  • Managing Access
    • The Proxy Pattern and the motivation for it
    • How a Dynamic Proxy Works
    • Why the Dynamic Proxy Offers a more flexible proxy solution
    • LAB
  • Dynamic Responsibilities
    • Use the Decorator Pattern to Bring Flexibility to Designs
    • Add Functionality and Flexibility
    • Decorator Pattern - Class Diagram
    • Decorators in the Java/IO Pattern
    • Design a Custom I/O Decorator
    • LAB
“I appreciated the instructor's technique of writing live code examples rather than using fixed slide decks to present the material.”

VMware

Dive in and learn more

When transforming your workforce, it's important to have expert advice and tailored solutions. We can help. Tell us your unique needs and we'll explore ways to address them.

Let's chat

By filling out this form and clicking submit, you acknowledge our privacy policy.