Object-Oriented Analysis & Design Course

Course Code: IN 497
Course Abstract:

Using a blend of lectures and exercises this course teaches essential object-oriented concepts and a practical analysis and design process. The most commonly used analysis and design methods are presented, including use case analysis, problem domain analysis, activity diagramming, interaction diagramming, and design heuristics and patterns. Using the Unified Modeling Language (UML) for analysis and design modeling is covered throughout the course. The course emphasizes techniques that improve system adaptability and component reuse.

The course draws on the latest analysis and design methods of acknowledged modeling experts such as Jacobson, Rumbaugh, Booch, Fowler, Larmon and Wirfs-Brock. This course takes participants through the full process of designing an object-oriented application and demonstrates how to transition seamlessly from analyzing user requirements to producing object-oriented code.

Audience:

This course is designed for Software project managers, business analysts, system designers and application developers who desire a rapid but comprehensive introduction to the concepts and techniques of object-oriented software design.

Duration: 4 days
Learning Outcomes:

Upon completion of this course, the participant will be able to:
> Describe the concepts that characterize object-oriented systems
> Think about systems using objects
> Apply new tools including class diagrams, object interaction diagrams and design patterns
> Express your thoughts with the industry standard Unified Modeling Language (UML)
> Identify the phases and deliverables of the OO development process

Course Topics:

Introduction
Course Objectives
Course Approach

Object-Oriented Concepts
Software Development Problems
Abstraction
Objects
Properties of Objects
Encapsulation
Messages
Associations
Classes Describe Objects
Instantiation
Inheritance
Inheritance of Methods
Overloading Operations
Polymorphism
Multiple Inheritance
Evolutionary Development
Summary
Object-Oriented Concepts Quiz

Object-Oriented Development
Dealing with Complexity
Using Models
Modeling Notation
What is UML?
UML Diagrams
Typical OO Development Process
Using an Object-Oriented Model
Model Perspectives
Iterative and Incremental Development
Use-Case Driven Development
Summary
Development Process Quiz

Capturing Requirements
Requirements Gathering Process
Goal Statements
Auction Tent: Goal Statement
Actors
Use Cases
Auction Tent: Actors
Use Cases—Brief Descriptions
Actor Stereotypes
UML Notation for Use Cases
Scenarios
Auction Tent: Scenario Summaries
Workshop 1—Finding Requirements
Exploring Requirements
Use Case Dimensions
Use Cases—Expanded Descriptions
Writing a Course of Events
Writing Steps
Use Case Relationships
Extend and Include Notation
Handling Variations
Optional Specification Elements
Requirements Not Captured by Use Cases
Exploration and Refinement
Summary
Workshop 2—Use Case Specifications

Domain Modeling and Classes
Identifying Classes—Process
Naming Classes
Class or Attribute?
Candidates to Retain
Candidates to Eliminate
Additional Classes
Classes in the Wild
Auction Tent: Finding Classes
Workshop 3—Finding Classes

Domain Modeling and Relationships
Objectives
Class Diagram Notation
Multiplicity Notation
Association Examples
Unidirectional Associations
Association Roles
Redundant associations
Inheritance Notation
Identifying Relationships
Association or Operation?
Auction: Initial Class Diagram
Summary
Workshop 4—Identifying Relationships

Domain Modeling and Behavior
Objectives
Process Review
Finding Needed Services
Responsibilities
Overly Centralized Control
Stereotypes for Responsibilities
Boundary Behavior
Controller Behavior
Entity Behavior
Specialized Entity Behavior
Object Interaction Patterns
Sequence Diagram — Messages
Sequence  — Guards and Iteration
Sequence  — Object Creation
Sequence  — System Boundary
Sequence  — Method Activation
Definition Use Cases
Description Use Cases…
Specifying Operations
Description Perspective Interaction
Example: Replace card, normal scenario
Workshop 5—Exploring Behavior
Updating the Class Diagram
Use Case Controller Alternatives
Reviewing the Model
Summary
Workshop 6—Refining the Model

Additional Object Modeling Concepts
Additional Structural Concepts
Object Diagrams
Class-Level Characteristics
Dependency Relationships
Composition
Aggregation
Association, Aggregation or Composition?
Collections
Association Classes
N-ary Associations
Constraints
Interfaces
Interface Example
Notes
Workshop 7—Additional Structural Elements
Additional Behavioral Concepts
Object State
Finding States
State Diagram Example
State Diagram Notation
Expanded Notation Example…
Sub8-states and History Markers
Concurrent States
Using State Information
Activity Diagrams
Activity Diagram Example
Swimlanes
Summary
Workshop 8 — State and Activity Modeling

Solution Modeling
Design
Architectural Design Process
Architectural Design Issues
User Interfaces
Concurrency
Data Management
Distributed Objects
Subsystems
Subsystem Interfaces
Frameworks
Components
Component System Example
System Configuration—Components
System Configuration—Deployment
Summary
Solution Modeling Quiz

Class Design and Refinement
Class Design
Quality Design
Design Measure: Coupling
Reduce Interaction Coupling
Increase Inheritance Coupling
Design Measure: Cohesion
Inheritance Cohesion
Service Cohesion
Quality Design Strategies
Encouraging Design Simplicity
Distributing Responsibilities
Creating Generic Classes
Establishing Extension Points
Performance
Completing Implementation Details
Performance and Completeness
Summary
Workshop 9—Using Design Guidelines
Workshop 10—Extension and Refinement

Succeeding With Objects
Why a Defined Process is Needed
Model Building
OO Development Process
Process Phases
UML Diagrams
Process Artifacts
Development Roles
Use Case Driven Development
Risk Management
Example: Use Case Risk
Tracking Progress
Process Features and Benefits
Summary

Summary
OO Objectives
Applying OO
OO Technology
Applying the Course
Next Steps
Feedback

Workshop Solutions
Case Study 1
Workshop 1 – Capturing Requirements: System Scope & Basic Requirements
Workshop 2 – Capturing Requirements: Expanded Use Case Descriptions
Workshop 3 – Finding Classes
Workshop 4 – Identifying Relationships
Workshop 5 – Exploring Behavior
Workshop 6 – Refining the Initial Model
Workshop 7 – Additional Object Modeling Concepts
Workshop 8 – State and Activity Diagrams

Case Study 2
Workshop 9 – Using Design Guidelines
Workshop 10 – Extension and Refinement

Prerequisites: Familiarity with any software development process and basic concepts of systems analysis and software design is helpful
Note: All fields are required
At the present time we do not offer training for individuals or groups less then 6 individuals. We apologize for any inconvenience.


We Value Your Privacy!

Ready to get started or in need of more information? Contact us today.

Go To Blog Virtual Learning

Testimonials

“Every hour of end-user training and IT professional training is worth an average of at least five hours to the enterprise.” (“Untrained Users Cost More to Support than Trained Users”, Gartner, Inc. March 2006)