|
Introduction
Introduce The Courses Two Case Studies
Example Case Study
Student Exercise Case Study
Object Orientation Jumpstart
Thinking Like an Object
Example: Milking An
Object-Oriented Cow
The 8 Main Concepts
Objects: As Easy as P.I.E
Exercise: Discovering Objects
And Behavior
The
Unified Modeling Language
Key Modeling Concepts For The
Developer
The 13 Diagrams In UML 2
- The Sane Subset of UML
UML
Analysis Modeling
Discovering The What Rather
Than How
- Analysis Principles
How Analysis Modeling Supports
Design
UML
Structural Modeling
Identify Candidate Entities
from Requirements
Challenge the Candidate
Entities
Construct the Domain Model
- Construct Class Responsibility Specifications
Modeling Structural Relationships With UML
Identify the Analysis Classes
Identify Classes That Have
Relationships
UML Relationships
Association, Aggregation,
Composition, Inheritance, & Association Classes
Association
Small Group Exercise: UML
Association Modeling
Aggregation & Composition
Association Classes
Small Group Exercise: UML
Aggregation/Composition/Association Modeling
Inheritance
Four Laws of Inheritance
Small Group Exercise: UML
Inheritance Modeling
Constructing the Analysis Class Diagram
Identify the Syntax of Class
Relationships
Identify the Semantics of
Class Relationships
Identify the Multiplicity of
Class Relationships
Example: The Initial Analysis
Class Diagram
Case Study Exercise: Construct
an Initial Analysis Class Diagram
UML
Behavioral Modeling
Interaction Diagrams
The Sequence Diagram
Modeling Intent Vs.
Implementation
Special Tips For Analysis
Sequence Diagrams
Interaction Frames & Operators
Exercise: Sequence Diagramming
Case-Study Exercise: Sequence
Diagram
Communication Diagrams
State
Machine Diagrams
Defining State
States, Events, Actions &
Activities
Modeling Instantaneous Vs.
Time-Bound Properties
Composite States And Nested
States
Exercise: State Machine
Diagramming
Case-Study Exercise: State
Machine Diagram
Relationship Between UML
Behavioral Models And Structural Models
Activity Diagrams
Putting It All Together
Design
Principles
Abstract classes & Interfaces
Recognizing Bad Design
Meyer's Open-Closed Principle
Martins Design Principles
|
UML
Structural Design Modeling
Designing
Class Association
1:1, 1:many, many:many relationships
One-way and two-way Navigation
Designing 1:1 associations
Example: 1:1, two-way association
Exercise: 1:1, two-way association
Designing 1:many associations
Example: 1:many, two-way association
Collection Classes: Why you cannot live without them
Exercise: 1:many, two-way association
Designing many:many assocations
Association Classes
Example: many:many, two-way with association class
Designing
Class Aggregation and Composition
Containment & Ownership
Structural & Semantic characteristics
Deciding between aggregation & composition
How their semantics determine design
Example: Designing 1:many aggregation
Exercise: Designing 1:many composition
Designing
Class Inheritance
The uniqueness of inheritance relationship
Policy versus specifics
The 4 Laws of Inheritance
Signs of Good Inheritance/Bad Inheritance
Accidental Inheritance
Delegation
Example: Designing Inheritance
Exercise: Designing Inheritance
Inheritance or Roles?
Example: Modeling the barkless dog
Design Patterns
The Gang of Four (GOF)
Factory Method
Faηade
Adapter
Bridge
Composite
State
Command
Wrapping Techniques
Wrapping Techniques Using Faηade
Wrapping Shared Resources
Wrapping Databases & Legacy Systems
Wrapping the Wrapper
UML
Behavioral Design Modeling
Design-level Squence Diagrams
Transforming the Analysis Sequence Diagram
Model-View-Controller (MVC) & The Observer Design Pattern
Creating a MVC approach
Example: Design Sequence Diagram for a use case
scenario
Exercise: Design Sequence Diagram for a use case
scenario
Updating the Class Diagram
Design-level
State Machine Diagrams
Transforming the Analysis State Machine Diagram
Mapping Events, etc. to the Class Diagram
Example: Design State Machine Diagram
Exercise: Design State Machine Diagram
Updating the Class Diagram
Designing
Object State
Enumerated state variables
The GOF State Design Pattern
Choosing the correct method
Putting It All Together
Course Wrap Up
|