Be sure to check out our new Blogs and discover all the new Free Training!




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!


 
Intelligentedu.com, Edcomp.com, and Google Search
Intelligentedu.com
Edcomp.com
Web


I.T. Education & Training:

Home Page

Free Computer Training & Courses

Free Computer Books

Free Tutorials, Guides, Support & Help

Learn IT & Development

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

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

Intelligentedu.com's Computer Open Web Directory

IT Certification Counselor and Complete List

Financial Aid Resources

Intelligentedu.com's IT Career Center

Online IT Publications

IT Associations & Organizations

The Latest Technology News

IT Stock Quotes and News

Online Games

Music and Movies

Travel Reservations, Flight Schedules & Tracking

The Best of the Web

Best Developer Books at Amazon.com

How You Can Support Our IT Training Mission

 
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
 


 



Object Oriented Design and Development Training


Click Here to Sign-Up and Become a Member of Intelligentedu.com

This training is available on our members site only. As a member, all of the training and tutorials are available to you. We will be adding more training materials here in the future. You can join now for only USD $15 total for 2 months, $25.00 for 4 months, $34.00 for 6 months, or $59.00 for 1 year. (Please note the local links to member training content do not work on this page.)

Up 1 LevelBack to Member Sign-up & Information Home Page

 

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.


Contents

Preface
 
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
OAN - ODL
 
Search:
Enter a search string (any case insensitive perl regexp) to produce an HTML index of all occurrences in the book:


Errata
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.


Two Online Training Lessons
(quizzes not available):

Object-Oriented Analysis & Design: Introduction

Object-Oriented Analysis & Design: System


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:

  • Introduction to O-O Languages and Programming (11 pages)
  • Classes (9 pages)
  • Overloaded Operators (9 pages)


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)



 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:

Clicking the Submit Computer Education Web Site button will open a new browser window, when finished you can close that window.


  
 
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