Free Computer Training Free Computer Courses



Computer Education, Training, and Tutorial Resources

Learn programming for Free and how to develop and write computer programs and IT applications. Get Free knowledge, information, references, and resources about computers now. Many Free training courses, tutorials, books, training guides, tips, articles, and helps are available to you.

For help finding what you need go to Navigation by Topic to Free Training or use pop-up.

Follow us on Our Twitter page!

I.T. Education & Training:

Home Page

Free Computer Training & Courses

Free Computer Books

Free Tutorials, Guides, Support & Help

Free University Course Websites

Best FREE Online Computer IT Courses

Lower Fee Distance Learning Sites

Higher Fee Distance Learning Sites

Link and Resource Sites

Free Certification Exam Study Guides

Free IT Training Tutorials

Free IT Training Downloads

eBiz Web Building

Free Programming Software

Monthly Newsletter: New Free Sites

Free Trade Publications

IT Sites Worth Mentioning

Free Site of the Month

Best Course & Degree Locators

Free Desktop & Office Tutorials


Additional Site Content:

Member Info & Sign Up

Member Login's Computer Open Web Directory

IT Certification Counselor and Complete List

Financial Aid Resources's IT Career Center

Online IT Publications

IT Associations & Organizations

The Latest Technology News

IT Stock Quotes and News

Great Free Software

eBiz: Build, Promote, & Profit

Great Free Stuff and Trial Offers

Online Games

Music and Movies

Travel Reservations, Flight Schedules & Tracking

The Best of the Web

Best Developer Books at

How You Can Support Our IT Training Mission

Health, Cooking, Weather, World News

Community Content:
Use Our Forum to Ask Questions & Give Answers

Enter Our Chat Room

Our Free Links Page

Free Classified Ads

Create and Send a Greeting Card

Our Cartoons and Jokes

Free Email at ZapZone

Take Our Survey


Site Map

What's New



 Search Web 

Internet Super Search:

Search all the Major Search Engines at once! 


Object Oriented Design and Development Training


Object-Oriented Software Design and Construction

These are excellent online course notes by Dr. Dennis Kafura for this Virginia Tech computer science course.

  1. Introduction to Object-Oriented Programming

    1. Basic Concepts

    2. Abstraction

    3. Separation

    4. Mapping Abstraction and Separation to Software

    5. Composition

    6. Generalization

    7. Relation to Software Engineering

  2. Using Objects of a Single Class

    1. Classes and Objects

    2. Structure of Classes

    3. Creating Objects

    4. Overloaded Methods

    5. Default Arguments

    6. Basic Input/Output

    7. Arrays of Objects

    8. Scope

    9. Dynamically Created Objects

  3. Using Objects of Multiple Classes

    1. Using Objects for Communication

    2. Communicating Objects by Copy

    3. Anonymous Objects

    4. Communicating Objects by Reference and by Pointer

    5. Building Systems by Association

    6. Self Referencing Classes

  4. Implementing a New Class

    1. Implementing a Class

    2. Implementing the Methods of a Class

    3. Organizing the Code

    4. Compiling the code

    5. Debugging

    6. Makefile

    7. Constant Methods, Parameters and Variables

    8. Copy Constructors

    9. Assignment Operator

    10. Implementing a Class Using Aggregation

  5. Implementing Classes that Share Common Properties

    1. Introduction

    2. Sharing Implementations

    3. Inheriting Operations and Data

    4. Overriding Inherited Operations

    5. Type Casting

    6. Interface Sharing

    7. Factoring Base Classes

  6. Templates

    1. Templates with a Single Parameter

    2. Template Parameters

    3. Variables and Constant Template Parameters

    4. Template with Related Parameters

  7. Operator Overloading

    1. Operator Overloading

    2. Operator Overloading Using Non-Member Functions

    3. Type Conversion Operators

    4. Type Conversion and Operator Overloading

  8. Object Oriented Design

    1. Design Representations

    2. Design Patterns

  9. Projects

    1. Project Number 1

    2. Project Number 2

    3. Project Number 3

Object-Oriented System Development 

Written by Dennis de Champeaux, Douglas Lea, and Penelope Faure. Copyright 1993 by Hewlett-Packard Company. This book is intended to help the reader better understand the role of analysis and design in the object-oriented software development process. This text does not aim at defining yet another OO ``method''. Instead, we aim to give a minimum set of notions and to show how to use these notions when progressing from a set of requirements to an implementation.


1 Overview
Scope - Objects - Development Paradigms - Development Phases - Summary
Part 1: Analysis
2 Introduction to Analysis
Purpose - Models - Process - Summary
3 Object Statics
Instances - Classes - Attributes - Attribute Features - Constraints - Identifying Objects and Classes - Summary
4 Object Relationships
Relationships - Collections - Identifying Relationships - Summary
5 Object Dynamics
Describing Behavior - Transition Networks - Examples - Reducing Complexity - Summary
6 Object Interaction
Transitions - Sending and Receiving Events - Interaction Notations - Examples - Summary
7 Class Relationships
Property Inheritance - Subclasses - Multiple Inheritance- Sibling Relationships - Set Operations - Inheritance of Relations - Summary
8 Instances
Subclasses and Instances - Metaclasses - Parametric Instances - Summary
9 Ensembles
Ensembles - Other Decomposition Constructs - Ensembles as Systems - Summary
10 Constructing a System Model
Requirements Fragment - Use Cases - Subsystems - Vocabulary - Classes - Ensembles - Model - Summary
11 Other Requirements
Resources - Timing - Other Constraints - Summary -
12 The Analysis Process
Software Development Process - Default Sequence of Steps - OO Analysis of the OO Analysis Process - Alternative Processes - Tools - Summary
13 Domain Analysis
Models - Reuse - Summary
14 The Grady Experience
Part II: Design
15 From Analysis to Design
Continuity - Transformation - Design Phases - Design Criteria - Managing Design - Summary
16 Description and Computation
Translating Analysis Models - From Abstract to Concrete - Composing Classes - Controlling Transitions - Generic Classes - Generating Instances - Design for Testability Transformation and Composition - Summary
17 Attributes in Design
Defining Attributes - Concrete Attributes - Views - Exports - Composition and Inheritance - Summary
18 Relationships in Design
Relationships - Collections - Coordinators - Relations versus Composites - Summary
19 Designing Transitions
States and Guards - Atomicity - Timing Constraints - Concrete Transitions - Summary
20 Interaction Designs
Callbacks - Replies - Invocations - Control Flow - Summary
21 Dispatching
Selection - Resolution - Routing - Summary
22 Coordination
Joint Actions - Controlling Groups - Open Systems - Summary
23 Clustering Objects
Clustering - Cluster Objects - System Tools and Services- Persistence - Summary
24 Designing Passive Objects
Transformations - Storage Management - Passive Objects in C++ - Summary
25 Performance Optimization
Optimization and Evolution - Algorithmic Optimization - Performance Transformations - Optimization in C++ - Summary
26 From Design to Implementation
Testing - Performance Assessment - Summary
Appendix: Notation Summary
Enter a search string (any case insensitive perl regexp) to produce an HTML index of all occurrences in the book:

for the first printing of the hardcover book version.

A brief overview of some of the book (mainly topics from Part II dealing with distributed objects) is available as a set of HTML-ized or Postscript slides.

More Object Oriented Design & Development Training

Allen Holub's series on the Object-Oriented Design Process takes you step by step through the entire OO Design process:

Getting Started: How to Prioritize

This article is the first of a series on the OO-design process. It discusses the process in very broad terms, focusing on the development philosophy and environment of design.

Beginning to Design Software

This article continues the series, introducing the formal "problem statement." A simple first attempt at a problem statement for the Bank-of-Allen project is presented.

Refining the Problem Definition

This article continues the series, refining the "problem statement" started last month.

Verifying the Analysis

This article continues the process, discussing prototypes and mock ups, and how to use them to verify your problem statement.

Use Cases, an Introduction

This article Introduces the notion of formal use-case analysis, presenting a general form that you can use for specifying your use cases.

Use Case Planning

This article is the first of three that develops an actual use case for the Bank of Allen project. This installment is a bit lightweight, but the next two will be more meaty. (The editors at IBM decided that short is better for some reason.)

Use Cases Applied, Part 1

This article is the second of three that develops an actual use case for the Bank of Allen project. This installment delves into the the meat of things, filling out the first half of the items in the template that I presented in Part 5.

Use Cases Applied, Part 2

This article finishes up the discussion of formal use cases, filling out the last half of the items in the template that I presented in Part 5. This month's stuff is really the heart of the use case: the scenarios and workflow. You'll find examples of UML activity (workflow) diagrams here.

An Introduction to Object-Oriented Design
This talk is meant to introduce you to object-oriented design. It is particularly useful if you've just started C++ and you're wondering how to decide what classes to use and what goes in them - that's exactly what design is about.

A Road Map For OOA and OOD
The purpose of this road map is to help keep you grounded during the process of designing your object-oriented program. It will explain the purpose of each step in the system, and give some brief examples of good practice. The goal is for you to have some guidance as you go about designing and building your first object-oriented programs.

Object Oriented Design Course Slides
These slides provide a quick but in depth introduction to the following topics: Design by Contract, Exceptions, RTTI and Reflection, Dynamic Proxies, Extreme Programming, Refactoring, Introduction to Frameworks, Frameworks & the Swing Case Study, Components & the COM Case Study and design patterns. (zip download)

Design Patterns Lecture Slides
These slides provide a quick but in depth introduction to design patterns. The slides cover the following patterns: abstract factory, composite, strategy, builder, prototype, factory method, singleton , flyweight, decorator, bridge, command, observer, mediator, iterator, visitor, proxy, state, chain of responsibility, adapter, facade, template method, interpreter, and momento.  (zip download)

Design Principles and Design Patterns
Below the architecture related to the software application is the architecture of the modules and their interconnections. This is the domain of  design patterns, packages, components, and classes. This is the level that this chapter is concerned about.

Design Patterns Tutorial
After completing this tutorial, you will be able to:

  1. Explain what a pattern is.
  2. Explain the origin of pattern usage.
  3. Utilize patterns in future programming projects.

Object Oriented Analysis and Design using CRC Cards
After completing this tutorial, you will be able to:

  1. Think in an Object Oriented manor.
  2. Use a responsibility-driven approach to object oriented development.
  3. Run a CRC card session.
  4. Use CRC cards of analysis and design.

The Essence of Objects
This is chapter 2 from The Essence of Object Oriented Programming with Java and UML.

Object-Oriented Application Frameworks
An editorial by Mohamed Fayad and Douglas C. Schmidt

Mapping objects to relational databases
What you need to know and why.

Object-Oriented Programming Concepts:

What Is an Object?

An object is a software bundle of related variables and methods. Software objects are often used to model real-world objects you find in everyday life.

What Is a Message?

Software objects interact and communicate with each other using messages.

What Is a Class?

A class is a blueprint or prototype that defines the variables and the methods common to all objects of a certain kind.

What Is Inheritance?

A class inherits state and behavior from its superclass. Inheritance provides a powerful and natural mechanism for organizing and structuring software programs.

What Is an Interface?

An interface is a contract in the form of a collection of method and constant declarations. When a class implements an interface, it promises to implement all of the methods declared in that interface.

How Do These Concepts Translate into Code?

This section looks at a small applet, and shows you the code that creates objects, implements classes, sends messages, establishes a superclass, and implements an interface.

Questions and Exercises: Object-Oriented Concepts

Test your understanding of objects, classes, messages, and so on by doing some exercises and answering some questions.

Object-Oriented Programming and Design Using C++
137 page book of lecture notes by Professor Terry Chapman of  De Montfort University. This is very well organized and presented. He also also written these:

Chapters from REALbasic: The Definitive Guide, 2nd Edition:

Chapter 3: Objects, Classes, and Instances

Chapter 4: Class Relationships and Class Features

Chapters from Object-Oriented Software Construction, Second Edition:

How to find the classes and objects (chapter 22)

Using Inheritance Well (chapter 25)

Object-Oriented Design
When you have read this chapter (from Software Engineering 6th Edition) you will:

  • Understand how a software design may be represented as a set of interacting objects that manage their own state and operations.
  • Know the important activities in a general object-oriented design process.
  • Understand different models that may be used to document an object-oriented design.
  • Have been introduced to the representation of these models in the Unified Model Language (UML)


Five Online Training Lessons (quizzes not available):

Object-Oriented Analysis & Design: Introduction

Object-Oriented Analysis & Design: System

OOP Using C++: Week 1 

OOP Using C++: Week 2 

OOP Using C++: Week 3


              If you find any broken links, please notify webmaster at

 Return to Top
 Back to previous page





Please Suggest a Computer Education, Training, or Tutorial Web Site Link for this Site

If you know a good Computer Education, Training, or Tutorial web site that is not on this page please fill this form out with the address of the web site and we will post it. This will help everyone who is seeking to learn more about computers.

Please enter the name of the site, its address, and a short description of its contents. Thank you.

Name of Web Site:

Address of Web Site:

Short Description:

After clicking the Submit Computer Education Web Site button, please click your browser's back button to return to this page.

Please Help Support our Computer Education & Training Web Site

Please email questions or comments to Webmaster:

All pages on this web site are © 2012 by DeepSearcher Inc

Earn revenue from your site with