Day | Chapters & Strategies | Topics |
---|---|---|
1 |
Overview |
|
1 |
Design Strategies and Patterns Selection Surprisingly enough, the 7 Design Strategies and Techniques, and the 24 "Gang of Four" (GOF) Design Patterns all depend upon 7 simple categories. Here is a two-page Decision Map starting from those 7 categories and guiding us down to the selection of the proper Design Patterns best suited to solve the problem(s) at hand. |
|
1 |
Textual Analysis Artifacts Though Object-Oriented Analysis is known to offer multiple, powerful, concise UML diagrams few realize diagrams are not always the best way to start Analysis. Here is an overview of three simple, textual, specialized artifacts that will give your Analysis cycle a speedy, sound professional start. |
|
1 |
Business Concept Modeling (BCM) This optional chapter is for students who are not familiar with UML Analysis yet, especially Class Diagrams. These models are crucial in understanding what a system's subject matter, concepts, and mission precisely are. Class diagrams are also extensively used throughout Design Patterns as well as System's Architecture. Though not a substitute for the 5-day UML Analysis class this chapter is a valuable "survival kit". |
|
2 |
Object Design Fundamentals This chapter explains the fundamental principles of object design and the best strategies to implement them. We first cover the best basic OO Design techniques that implement Encapsulation & Specialization as well as Inheritance & Polymorphism. Then we we examine the best implementations of Associations and Association Classes. |
|
2 |
Object References and Collaboration Explore how objects use each other to carry out a collective responsibility while maintaining each one's specialization, privacy, and encapsulation. This is where you realize how an object knows about itself, knows about other objects it is linked to, and the way it delegates tasks to other objects. See how Collaboration implements functional requirements that are larger than the individual objects, taking advantage of their collective power. |
|
2 |
Association Implementation Essentials Examine how object references, when used ingeniously, implement associations and association classes with minimum complexity and great flexibility. |
|
2 |
Implementing Methods Discover the world of Method Implementation. Those techniques go way beyond simple class methods and take advantage of Inheritance, Polymorphism, Interface, and Associations. You will cover the three Polymorphism Design Strategies, four "GOF" Design Patterns, and appreciate the abstract power of Interfaces. |
|
4 |
Making Objects Work Together Now that we can design and construct any objects—no matter how complex they might be—another, major challenge lies ahead of us. Objects must be able to communicate, collaborate, and work in synchrony for an application to play its role. Enter the world of object and system's behavior, serviced by the ubiquitous "Propagation" Design Strategy and other powerful Design Patterns. |
|
3 |
Designing Complex Object Structures (optional) Here are one general Design Strategy and two Design Patterns to build any sophisticated object structure in the simplest, most elegant ways. |
|
5 |
Handling an Object's States (optional) Capture, restore, or manage the different States of an object, a structure, or a system. There are two important patterns allowing to do so in a safe, elegant, and reliable way. Though States have historically been implemented with long, cumbersome series of "switches", "cases" or even pointer tables. Here are very elegant, scalable, object-oriented solutions to implement States in a much more better way. |
|
5 |
Anti-Patterns (optional) Some mistakes keep recurring throughout the history of systems and application development but there is a way to fight back. Here is a classification of a few, main mistakes, or "Anti-Patterns", to help recognize, fix, or prevent them altogether. After having devoted so much time on what to do in this class it is now appropriate to also point out what should not be done. |
|