![[Book Cover]](../covergif/0139013490.jpg)
|
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
|

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.
The student's level of programming competence is raised
in four ways:
- ReuseThe 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.
- ToolsStudents 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 libraryThe students learn to utilize
an object-oriented library for building GUI-based systems through
exercises and projects.
- Event-driven systemsAn 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.
- AnimationThis 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.
- InteractionStudents 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.
FeedbackMultiple-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.
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.
|