[Book Cover]

Object-Oriented Software Design and Construction with C++, 1/e

Dennis Kafura, Virginia Tech

Published January, 1998 by Prentice Hall Engineering/Science/Mathematics

Copyright 1998, 440 pp.
Paper
ISBN 0-13-901349-0


Sign up for future
mailings
on this subject.

See other books about:
    Object-Oriented Design-Computer Science

    Object-Oriented Programming-Computer Science

    C++--Intermediate Programming-Computer Science


Summary

Appropriate for introductory courses in object-oriented programming with C++. Also appropriate for object-oriented design, software design and software engineering courses. The first interactive on-line course/book for an object-oriented programming course in C++. This interactive approach provides overall support for object-oriented programming in C++. The focus is on C++, but the object-oriented concepts are language independent. The first chapter gives an introduction to the broad concepts of object-oriented programming, giving pointers to other programming languages. This broad introduction allows students to become familiar with terms from different languages and analysis methods while they are learning the specifics of object-oriented C++ programming.

Features


The student's level of programming competence is raised in four ways:

  • Reuse—The value of this is conveyed by initial and pervasive reuse of software in the presentation, exercises and projects. No exercise calls for the development of a program “from scratch.”
  • Tools—Students are taught more than the language of object-oriented programming. The tools and practices that developers of software must cope with, testing, debugging, project planning and project management are introduced to the student.
  • GUI library—The students learn to utilize an object-oriented library for building GUI-based systems through exercises and projects.
  • Event-driven systems—An introduction to event-driven systems gives students insight into what happens when a program is driven by external events.
Java applets are used in three different ways to enhance the quality of the conceptual material. These applets are designed to create an engaging learning environment.
  • Animation—This feature is especially useful for concepts that inherently involve change or action. Students are able to see the changes through this apparatus instead of just reading about it or seeing a static representation of it.
  • Interaction—Students can gain experience in dealing with constructive programming concepts without having to be concerned with the syntax and other non-essential issues involved. The applets provide active elements (buttons, menus, etc.) that allow the learner to have control of their own experience.
Feedback—Multiple-choice in-line tests are designed to develop a sense of confidence in the student.
Most sections are followed by a set of exercises. The idea of these exercises is to instill mastery through practice.
  • The examples and problems are designed to strengthen the relationship between the “objects” in the program and their “real world” counterparts.


Table of Contents
    1. Introduction.

      Basic Concepts. Abstraction. Separation. Mapping Abstraction and Separation to Classes and Objects. Composition. Generalization. Object-oriented Programming and Software Engineering.

    2. Using Objects of a Single Class.

      Classes and Objects. Structure of Classes and Objects. Creating and Operating on an Object. Overloaded Operations. Default Arguments. Basic Input/Output. Arrays of Objects. Scope. Dynamic Objects.

    3. Using Objects of Different Classes.

      Using Objects for Communication. Communicating Objects by Copy. Anonymous Objects. Communicating Objects by Reference and by Pointer. A Simple Association. More Complex Associations. Self Referencing Classes.

    4. Implementing a New Class.

      Introduction. Implementing a New Class Using Aggregation. Defining the Implementation. Organizing the Code. Simple Static Aggregation. More Complex Static Aggregation. Dynamic Aggregation. Controlling Change. Copy Constructors. Assignment Operator. Other Class Features.

    5. Producing an Object-Oriented System.

      Overview of the Production Process. General Concepts of Rebuilding a System. Unix/GNU Toolkit. The Visual C++ IDE. Concepts of Program Debugging. A Unix Debugger. The Visual C++ Debugger.

    6. Inheritance.

      Introduction to Inheritance. Using Inheritance to Share Implementation. Inheriting Operations and Data. Replacing Inherited Methods. Extending Inherited Methods. Hiding Inherited Methods. Type Casting. Interface Sharing. Refactoring of Base Classes. Multiple Inheritance.

    7. Templates.

      Templates. Template Parameters. Variables and Constant Template Parameters. Template and Related Parameters. Template and Inheritance.

    8. Operator Overloading.

      Introduction to Operator Overloading. Overloading Basic Operators. Operator Overloading Using Non-Member Functions. Type Conversion Operators. Type Conversion and Operator Overloading.

    9. Introduction to Design.

      Introduction to Object-Oriented Design. Class Design. Class Hierarchy Design. Designing Complex Logic. Design Representations. Design Patterns.

    Index.


[Help]

© Prentice-Hall, Inc. A Simon & Schuster Company
Comments To webmaster@prenhall.com