Agile Modeling with UML, Patterns
and Test-Driven Development

Brochure Image

by Craig Larman download a PDF brochure Download Event Brochure


This very popular, high-impact, and hands-on course on mastering Agile Modeling combined with TDD and refactoring is aimed at developers of Object-Oriented systems, and is based on acclaimed industry leader Craig Larman's extensive experience coaching and applying modeling and OO development for two decades.
What really matters is not a set of UML diagrams, but a running system that meets the needs and constraints of various stakeholders. Thus, how can we effectively apply the UML or modeling in an agile value-adding practical approach, and how can it be integrated with programming and automated tests to create great OO software? And how to can we design software with technical agility to enable Business agility?
In this intensive hands-on seminar you will find the answer these questions. There is a little lecture time, but the majority of the time is spent in high-value-education small modeling teams at the whiteboards while I rotate and work with each team, coaching the Case Studies while applying Agile Modeling, UML and Patterns. I also coach while we're at computers coding useful automated tests and programming great OO designs with test-driven development.
Each student receives a copy of Larman's book "Applying UML and Patterns: on Introduction to OOA/D."

What you will learn

  • Think in Objects
  • Design with Patterns
  • Apply Visual Modeling and the UML in an Agile Modeling approach
  • Do test-driven development
  • Apply refactorings and refactoring tools
  • Transform agile OO models into OO code and tests
  • Take a problem through requirements analysis, architectural analysis, design, automated tests, and well-crafted OO software in the context of an iterative process

Main Topics

  • "Think and design in objects" ? this is the key objective and practice-focus across the five days
  • Analyze requirements with use cases
  • Create domain models
  • Apply an agile method.
  • Relate analysis and design artifacts
  • Read & write high-frequency UML
  • Apply agile modeling
  • Design object solutions
  • Understand OOP (e.g., Java, C#) mapping issues
  • Apply test-driven development and refactoring