Object-Oriented Analysis and Design

Duration: 5 days

Description:

Object-Oriented Analysis and Design course covers what designers and architects need to know to successfully execute object-oriented projects. The course teaches a proven method of building software systems using activities of domain/business modeling, system analysis, and system architecture and design. Students will gain a set of skills applicable for both agile and lightweight as well as more rigorous projects. The course uses UML (the standard modeling notation). Participants also learn the powerful techniques of refactoring, directly improving the quality of designs and code.

The emphasis in the Object-Oriented Analysis and Design course is on making participants able to deliver high-quality models and designs leading to efficient, easily maintainable implementations. The participants will learn a productive path from the problem domain and requirements to software components.

The course provides numerous exercises and several case studies that enable participants to practice the learned material.

Objectives:

  • Create models using the industry-standard UML notation

  • Effectively communicate using models

  • Apply productive techniques for object-oriented analysis and design

  • Be able to represent problem domain and requirements as models

  • The transition from analysis models to designs, using design patterns

  • Create efficient and easily maintainable designs

  • Improve designs using refactoring

  • Go from models to object-oriented code using a set of mappings between the designs and code

Audience

Anyone involved in software development, including managers, architects, developers and testers.

Outline

A Quick Overview of Object-Oriented Technology and Modeling

  • Objects in Code

  • Objects, Classes, and Interfaces

  • Why Visual Modeling and UML?

  • From Models to OO Code and Back

Object-Oriented Domain Modeling

  • Modeling Information in the Problem Domain

  • Type (Information) Models

  • Associations, Aggregation, and Composition

  • Generalization

  • Representing Behavior: Business Processes

  • Activity Models

  • State Models

Object-Oriented Analysis

  • Transition from Problem Domain to Analysis

  • Defining the System we Intend to Build

  • Representing Requirements: Working with Use Cases

  • Modeling Services

  • Working with Large Projects

  • Consistency Checks

Object-Oriented Design

  • Transition from Analysis to Design

  • Overview of Design

  • Allocating Responsibilities to Classes

  • Representing Interactions with Sequence Diagrams

  • Basic Architectural Design

  • Designing the Core of the System

  • Inheritance and Interfaces: How to Use Them Correctly

  • Mapping from Design to Object-Oriented Code

  • Effectively Communicating: Representing Object-Oriented Code in UML

Advanced Object-Oriented Design

  • Advanced Architectural Design

  • Connecting the Application Tiers

  • Design Criteria

  • Design Heuristics

  • Design Patterns

  • Refactoring: Recognizing and Improving Poor Designs

  • Object-Oriented Frameworks

  • Components