Home Feedback Search Contents




Object-Oriented Analysis and Design

Course Description

Object-oriented software technology represents a new paradigm of software development. As such, it affects every element of the development process. Projects using object technology have a different set of deliverables, a different life cycle, different team structures, and different cost estimation techniques. This course provides a comprehensive introduction to this new approach. It presents the fundamental concepts of the object-oriented paradigm, the development process used in this paradigm, and illustrates these points with a set of complementary exercises.

Course Objective

The objective of this course is to prepare attendees to fully participate in the analysis, design, and implementation activities of an object-oriented software development project. Upon completion of this course attendees will be able to:

Define the basic concepts of the object-oriented paradigm.
List the phases, activities, and deliverables of the object-oriented software development process.
Discuss the key issues in the transition from procedural to object-oriented software development.
Understand the principles that guide the design of systems and classes.
Discuss the importance of object-oriented techniques in promoting software reuse.


This course is primarily directed toward analysts, designers, programmers, and testers. In addition, project managers and team managers would benefit from this material.


This course does not require any previous training or experience in the object-oriented paradigm. A very detailed introduction to object-oriented concepts is provided. Experience in projects using the structured analysis or entity-relationship paradigm would be beneficial.

Course Duration

Object Oriented Analysis and Design is a five day course.

Course Outline

1.Paradigm Shifts

Programming paradigms
Systems development processes
Why the object-oriented paradigm?

2.Classes, Instances, and Objects

Messages and methods


Abstract and concrete classes

4.An Object-Oriented Language Model

Notation and implementation
Object creation and deletion

5.Activities in Object-Oriented Software Development

Systems Engineering
Domain Analysis
Application Analysis
Application Design
Class Development
Application Assembly
Hierarchical Incremental Testing

6.Life Cycles for Object-Oriented Software Development

Waterfall model
Iterative and incremental model
Management impact

7.Documentation, Deliverables and Quality Assurance

Executable system
User and technical documentation
Regression testing
Project metrics
Phase deliverables

8.Notations and Methodologies

Rumbaugh, Booch, and others
CASE Tools

9.Approaches to Analysis

Domain Analysis life cycle
Static, dynamic, and functional models
Application Analysis and User Requirements

10.Design Techniques and Guidelines

Software architectures
Class design guidelines
Error handling
Storage management

11.Case Study - Constraint Networks

12.Issues in Inheritance

Safety and predictability
Multiple inheritance and mixins
Inheritance guidelines

13.Using and Creating Frameworks

Frameworks and components
Existing frameworks


The impact of language on design

15.Testing Object-Oriented Systems

Static and dynamic testing
Developing test plans
Class testing
Hierarchial Incremental Testing
Regression testing

16.Class Libraries and Organizing for Reuse

The Software Industrial Revolution
Procedural and Information modeling
Inheritance and reuse
Corporate and Commercial class libraries
Obstacles to reuse

17.Case Study - A Graphics Editor

18.Object-Oriented Databases

The relational vs. the object approach
Commercial object-oriented databases
Connecting objects to a relational database

19.Tools and Environments

Features of an effective development environment

20.Managing the Transition to OO Technology

Introducing the new technology
Transition strategies
Resource planning and scheduling
The new project life cycle
Effect on corporate structure and policies



Copyright © 2014 Korson-McGregor.  All rights reserved.