Analysis and Design Bootcamp
Analysis & Design Bootcamp is an intensive 5-day hands-on Object-Oriented Design training course where students form their own teams to solve real-world problems. Students are encouraged to bring materials from their own projects and subject them to the rigorous analysis and design techniques employed in the class.
Robust, reusable, extensible, powerful, flexible, intuitive. These are qualities that all developers want in their software. In the Big Nerd Ranch's Analysis & Design Bootcamp, you'll learn how to deliver exactly this to your own projects.
Analysis & Design Instructor John Graziano brings a wealth of knowledge to this class, with expertise stemming from stints as technical lead on Apple's Xcode Development Environment, architect on WebObjectsBuilder, and as a principal architect of the next-generation animation software at Pixar. During the course, Graziano delves into patterns, use-cases, aspects, refactoring, and shows you how to efficiently apply them to your own development projects.
The class is practical, results-oriented, and designed to move quickly. By day two, students are producing functioning object models and design documents.
Upon completion of Analysis and Design Bootcamp, the student will:
- Create software using methods employed by leading Cocoa engineers
- Follow a simple, iterative process to create, refine, and document OO architectures
- Quickly build high-fidelity models of software domains
- Evaluate the quality of any API
- Use common-sense heuristics to build objects, classes, and hierarchies
- Translate analysis models into straightforward software designs
- Understand and apply cutting-edge software patterns
- Extend and adapt designs while preserving primary abstractions
Prerequisites
For the best results, students should be familiar with basic object-oriented concepts, have knowledge of at least one object-oriented language, and be experienced using object-oriented frameworks amd APIs. Cocoa programming experience a big plus.
For students seeking advance preparation materials, Instructor John Graziano recommends (but doesn't require): Cocoa Programming for Mac OS X by Aaron Hillegass and any of the OOA&D books on this list.
Syllabus
| Section | Contents |
|---|---|
| The Art of Abstraction | Learn how abstraction techniques enhance the quality of object-oriented software. Create, decompose, and manipulate abstractions. |
| Elegance | Evaluate the quality of any abstraction; apply abstraction metrics to increase the elegance of your software. |
| Object-Oriented Architectures | Explore a simple, iterative process for creating OO software; employ collaborative analysis methods to model your domain. |
| Object Modeling | Discover objects in your domain; add names and attributes to objects; document your object model. |
| Relationships | Discover and refine object relationships; assign roles to objects; compare different kinds of relationships. |
| Behavior Modeling | Analyze domain behaviors and decompose software operations. |
| Behavior Mapping | Assign behaviors to objects; employ mapping heuristics to refine your object model; validate behavior mappings with use cases. |
| Semantic Modeling | Use constraints, dependencies, and states to model dynamic object behavior. |
| Classification | Assign classes to your objects; build class hierarchies. |
| Software Design | Translate your domain models into software. |
| Design Patterns | Employ software patterns to streamline the design process; discover and apply new patterns in your design. |
| Aspects | Learn how aspects allow you to deconstruct a domain; use aspects to incorporate GUIs, persistence, and other extensions into your architecture. |
What's Included
Class price includes all class materials, a luxury room, three delicious meals a day, a stylish Big Nerd Ranch t-shirt, and ground transportation to and from the airport. Plan to arrive the afternoon or evening before your class begins and depart on the last day of your class after 4 PM.