Day | Chapters & Strategies | Topics |
---|---|---|
1 |
Day One Strategy |
During this first day you will learn the fundamental concepts, illustrated with many concrete examples. You will cover the main features of OO Analysis and Design and how they unfold throughout the entire OOAD cycle. You will discover the most modern way to approach Object-Oriented Analysis, called: OO Business Analysis. Part of it is the sophisticated and powerful Business Concept Modeling that uses UML Class Diagrams in a very effective way. |
1 |
OOAD Overview
|
|
1 |
OO Business Analysis
|
|
1 |
Business Concept Modeling (BCM)
|
|
2 |
Day Two Strategy
|
On this second day, focus is on integrating the first day's knowledge. The Brokerage Model is your first opportunity to perform an entire OOAD cycle using the UML, and on a business case that approaches real-life complexity. You will have an opportunity to model on your own as well as in a small group. You will also be able to present your own solutions and learn from others as well as from the instructor. All students are closely mentored: we ask them questions that direct or rectify their thinking towards successful modeling. We never give away solutions, except by the end of the exercise where everyone has either discovered them or has come very close. Different types of solutions along with their conceptual business meanings are presented. At that point, people already feel that they know how to perform OO Analysis. They've solved a problem that is just slightly below average complexity. It's a very fulfilling step. We use the Brokerage Model as a stepping stone towards OO Design. You will discover the 5 key OO Design fundamentals that will guide you step-by-step through the OO Design process. It is then time to generalize these OO Design principles to the subject of application design. We look at the successive layers (tiers) a typical software application is made of and how the UML syntax supports their modeling. By the end of this very busy but fulfilling day, you will feel that you have acquired the fundamental skills to perform OOAD. You will also have a clear picture of the whole OOAD process. You will feel enthusiastic and well prepared to deal with the next day's challenge. Here is the outline for this second day: |
2 |
BCM Practice |
|
2 |
The Brokerage Case Study |
|
2 |
The OO Design Propagation Pattern This is a very exciting part of the course where you will see how you can take a purely conceptual model expressed with a Class Diagram and turn it into a functional diagram with methods and object sequences. This approach is very effective, powerful and surprisingly easy. It is solely based upon 5 fundamental OO Design Principles. They will guide you to distribute the most efficient methods across any class diagram, no matter the complexity. It is a pivotal event of this methodology where Business Concepts turn into Business Functions, while keeping 100% traceability. This chapter will be your first opportunity to see professional OOAD at work: concepts, functions, code. |
|
3 |
Day Three Strategy |
The second day has given you a grasp on how to model, design and code from business concepts. It is time to learn more advanced modeling techniques that go quite beyond the fundamentals. You will see typical problems and their optimum solution; these are modeling challenges you are most likely to meet with if you are to practice OOAD in the real world. This third day brings you elegant solutions to all these challenges; you will not need to reinvent them. You will also discover what a typical application architecture is and where all the design elements you are learning fit within that big picture. This is a crucial step for professional developers. |
3 |
Additional Modeling Elements |
|
3 |
The Role Pattern You will often encounter problems related to roles while performing OOAD. Roles are what any concept (or class) would play within the context of its related concepts (or classes). For instance a "company" would be the "supplier" of some specific "product". "Supplier" is a role. All role problems can be easily solved by selecting one of the following 5 role patterns: Role Inheritance, Association Roles, Role Classes, Generalized Role Classes and Association Class Roles. Each role pattern contains its own blend of power, flexibility and complexity. Together, they offer a complete solution to all role problems. |
|
3 |
The Composite Pattern This is a very useful pattern that was first known as a Design Pattern, but it is an Analysis Pattern too. It has helped us solve many real-life case studies related to Manufacturing, Retail, HR Management, Medical, Financial and Insurance problem domains. Like the Role Pattern it belongs to your OOAD "Survival Kit". This pattern gives you remarkable flexibility and abstraction. You will see an amazing case study we solved with Cummins Engines and their very bright engineers. The solution model is so powerful and generic that it actually is a Framework that can be used for many different types of configurable products, not just engines. You will also get to see that pattern at work with another example, the Product Model, and its programming implementation with the languages of your choice, C#, Java, or C++. |
|
3 |
Domain Persistence This chapter reveals how to implement an entire Domain Model and how to design the different layers of abstraction and integration. You will see OO persistence (storage) and Relational persistence as well as how you can make them work together, if needed. We will cover examples related to both the Java/JEE and the C# .NET platform. The lesson also contains a discussion and Design strategies to implement a Domain layer based upon many different sources of data—a traditional Industry challenge. Finally we will cover the relationship between OO modeling and Relational modeling. There are five simple conversion rules to follow. You will get a chance to use them to design a Relational model so that it reflects the original Business Concept Model. This is a very practical approach that insures your relational layer serves the business intent and can be entirely traced back to the original business requirements, as expressed in your Business Domain Model. |
|
3 |
Application Architecture |
|
4 |
Day Four Strategy |
|
4 |
OO 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 explore the different polymorphism strategies. |
|
4 |
Object-Oriented Association Implementation
A common mistake while implementing Domains is building All these topics will later be applied within the context of real applications. |
|
4 |
Propagation Pattern Lab |
|
5 |
Day Five Strategy |
|
5 |
The Visitor Pattern The Visitor Pattern shows how Domain functionality can be encapsulated outside the Business Classes, keeping the Domain lean and easy to manage. |
|
5 |
State Modeling |
|
5 |
The State Pattern |
|
5 |
Corporate Case Study (optional) |
|
See how we differ from other training companies based on our professional success, skills-building teaching techniques, and Corporate Case Study. More details here.