Curriculum: Object-Oriented Technology
Duration
4 days
Overview
Object orientation has become the predominant paradigm for virtually all modern software development. This course builds on basic concepts to apply object-oriented principles to all phases of the software development life cycle, with particular emphasis on analysis and design. Students will participate in case studies and focused exercises. The Unified Modeling Language (UML) 2.0 is introduced and is used as the common language in all examples and exercises.
Audience
This course is intended for software developers, programmers, and analysts who are familiar with, and experienced in, software development methodologies and who will be using object orientation and UML in upcoming projects.
Prerequisites
The students must have experience in software development and some familiarity with basic concepts of object orientation. It is recommended that the students take an Object Orientation Overview course or has equivalent experience.
Topics
Gathering requirements
Structuring and documenting requirements with use cases
Discovering classes and objects
Discovering object relationships
Describing the static model in UML
Expanding object knowledge with CRC cards
Describing class associations in UML
Identifying object states
Documenting object states with UML state machine diagrams
Documenting behavior with object interaction diagrams
Evaluating an object model
Applying design patterns
Model transitions
Best practices for each UML model type
Avoiding modeling pitfalls
Outline
Overview of Object-Oriented Analysis and Design
Concepts of object orientation
Object-oriented software development process
Use Case Analysis
Use cases and actors
Use case relationships
Use case diagram
Case study
Structure Analysis
Class identification
Responsibility identification
CRC cards
Class diagram
Object diagram
Associations
Aggregation and composition
Behavior Analysis
Finite state analysis
Object states and transitions
State machine diagrams
Object activity analysis
Actions and activities
Activity diagrams
Interaction diagrams
Object Design
Generalization
Encapsulation
Interface, types and roles
Persistent objects
System Design
Collaborations
Component diagram
Deployment diagram
Package design
Systems and subsystems
Modeling different views of a system