Applying UML and Patterns
by Craig Larman
In this intensive, hands-on, Object-Oriented analysis and design (OOA/D) seminar there is a little lecture time, but the majority of the time is spent in high-value-education small teams "at the whiteboard" while we rotate and work with each team, guiding them through the case study problems.
The course opens with a single case study, and you learn skills in a series of steps, starting with use cases, then domain modeling, then on to object design with patterns and responsibility assignment, and then mapping an object design to code.
These skills are applied again in a second iteration of the same case study, as we go deeper, reinforce knowledge, and illustrate iterative development. New concepts are introduced in each subsequent iteration, such as an increasing knowledge of larger scale architectural design issues and patterns.
In short, we work hard and hands-on in this course. You will leave with the direct experience and confidence to actually do Object design and apply patterns. Essential, high-use UML is taught in the context of doing analysis and design modeling. However, the emphasis is on how to think and design with Objects, not on learning diagramming syntax (UML notation).
The UML is treated appropriately'as a secondary communication tool. OOA/D needs to be taught in the context of some method. We have chosen a light and agile approach to Unified Process (UP) for this, as it is relatively popular, well thought out, and demonstrates modern Best Practices such as iterative development and risk driven planning.
We apply a variety of education techniques established over 20 years of coaching and mentoring to maximize the learning, value, and fun, including buzz groups, multi-modal learning, and lots of hands-on practice.
Each student receives a copy of Craig's book "Applying UML and Patterns"!
What you will learn
- To think in objects
- Design with patterns
- Apply visual modeling and the UML in an agile modeling approach
- Take a problem through requirements analysis, architectural analysis, and design, in the context of an iterative process.
- Object-Oriented Analysis and Design
- An Iterative and Agile Process; Agile Modeling
- Iterative Requirements
- Writing Use Cases: Requirements in Context
- Visualizing the System Interface with System Sequence Diagrams
- Domain Modeling: Visualizing Concepts
- Adding Detail with Operation Contracts
- Interaction Diagram Notation
- GRASP: Designing Objects with Responsibilities
- Use-Case Realizations with GRASP Patterns
- Creating Design Class Diagrams
- Mapping Designs to Code
- Designing Use-Case Realizations with GoF Design Patterns
- Relating Use Cases
- Designing a Logical Architecture with Patterns