1st Edition
Patterns, Models, and Application Development A C++ Programmer's Reference
448 Pages
by
CRC Press
Patterns, Models, and Application Development, a new book from two experts in C++, integrates a methodology for program development and covers three main categories: object modeling as a program design tool, design patterns and their modeling in C++ language structures, and a discussion of the implementation of PC hardware-related features. It addresses the gap between the ability to code and the ability to program.
Introduction
About This Book
Technical Level
Target Audience
About Coding and Programming
Scope and Application
Project Engineering Topics
Object-Oriented Topics
Topics in Programming Mechanics
Part I - Project Engineering
Chapter 1. Fundamentals of Systems Engineering
Introduction
Software Characteristics
Principles of Software Engineering
Software Engineering Paradigms
Concurrent Documentation
Chapter 2. System Description and Specification
System Analysis Phase
The Feasibility Study
Requirements Analysis and Specification
Tools for Process and Data Modeling
Part II - Object Orientation
Chapter 3. Foundations of Object-Oriented Systems
History and Chronology
Object-Oriented Fundamentals
Classes and Objects
A Notation for Classes and Objects
Example Classification
When to Use Object Orientation
Chapter 4. Object-Oriented Analysis
Elements of Object-Oriented Analysis
Class and Object Decomposition
Finding Classes and Objects
Testing Object Validity
Subsystems
Attributes
Methods or Services
Instance Connections
Message Connections
Final Documentation
Chapter 5. Object-Oriented Design
Elements of System Design
Hardware and Operating System
User Interface Design
The Software Development Environment
Naming Conventions
Modularization
Critical Data Elements
Critical Processing Elements
Refinement of Classes and Objects
Language-specific Concerns
Error and Exception Handling
Documentation Conventions
Part III - C++ Programming Mechanics
Chapter 6. Indirection
Indirection in C++
Indirect Addressing
Pointer Variables
Pointers to Arrays
Pointers to Structures
Pointer Arithmetic
Pointers to Void
Reference Variables
Dynamic Memory Allocation in C++
Pointers to Functions
Compounding Indirection
Chapter 7. C++ Object-Oriented Constructs
Implementation Issues
The Fundamental Notions
Classes
Overloading Functions and Operators
C++ Implementation of Inheritance
Friend Classes and Functions
Objects
Run-Time Polymorphism
Templates
Chapter 8. Reusability
Reusability Modes
Reusing Code
Mechanisms for Code Reuse
Design Reuse
Chapter 9. Static Inheritance Constructs
Inheritance in Object Orientation
Inheritance Revisited
Fundamental Constructs
Applied Inheritance
Chapter 10. Dynamic Binding Constructs
Dynamic Binding Revisited
Modeling Dynamic Binding
Applying Inheritance
Chapter 11. Object Composition Constructs
Fundamental Notions
Aggregation Constructs
Acquaintance Constructs
Preserving Encapsulation
Combining Inheritance and Composition
Dynamic Object Allocation
Chapter 12. Class Patterns and Templates
Introduction to Design Patterns
A Pattern is Born
Unifying Dissimilar Interfaces
Aggregated Class Hierarchies
Object Chaining
String Handling Class Template
Combining Functionalities
An Object-classifier Template
Composing Mixed Objects
Recursive Composition
Object Factories
Chapter 13. Multifile Programs
Partitioning a Program
Multifile Support in C++
Multilanguage Programming
Mixing Low- and High-Level Languages
Sample Interface Programs
Bibliography
Index
About This Book
Technical Level
Target Audience
About Coding and Programming
Scope and Application
Project Engineering Topics
Object-Oriented Topics
Topics in Programming Mechanics
Part I - Project Engineering
Chapter 1. Fundamentals of Systems Engineering
Introduction
Software Characteristics
Principles of Software Engineering
Software Engineering Paradigms
Concurrent Documentation
Chapter 2. System Description and Specification
System Analysis Phase
The Feasibility Study
Requirements Analysis and Specification
Tools for Process and Data Modeling
Part II - Object Orientation
Chapter 3. Foundations of Object-Oriented Systems
History and Chronology
Object-Oriented Fundamentals
Classes and Objects
A Notation for Classes and Objects
Example Classification
When to Use Object Orientation
Chapter 4. Object-Oriented Analysis
Elements of Object-Oriented Analysis
Class and Object Decomposition
Finding Classes and Objects
Testing Object Validity
Subsystems
Attributes
Methods or Services
Instance Connections
Message Connections
Final Documentation
Chapter 5. Object-Oriented Design
Elements of System Design
Hardware and Operating System
User Interface Design
The Software Development Environment
Naming Conventions
Modularization
Critical Data Elements
Critical Processing Elements
Refinement of Classes and Objects
Language-specific Concerns
Error and Exception Handling
Documentation Conventions
Part III - C++ Programming Mechanics
Chapter 6. Indirection
Indirection in C++
Indirect Addressing
Pointer Variables
Pointers to Arrays
Pointers to Structures
Pointer Arithmetic
Pointers to Void
Reference Variables
Dynamic Memory Allocation in C++
Pointers to Functions
Compounding Indirection
Chapter 7. C++ Object-Oriented Constructs
Implementation Issues
The Fundamental Notions
Classes
Overloading Functions and Operators
C++ Implementation of Inheritance
Friend Classes and Functions
Objects
Run-Time Polymorphism
Templates
Chapter 8. Reusability
Reusability Modes
Reusing Code
Mechanisms for Code Reuse
Design Reuse
Chapter 9. Static Inheritance Constructs
Inheritance in Object Orientation
Inheritance Revisited
Fundamental Constructs
Applied Inheritance
Chapter 10. Dynamic Binding Constructs
Dynamic Binding Revisited
Modeling Dynamic Binding
Applying Inheritance
Chapter 11. Object Composition Constructs
Fundamental Notions
Aggregation Constructs
Acquaintance Constructs
Preserving Encapsulation
Combining Inheritance and Composition
Dynamic Object Allocation
Chapter 12. Class Patterns and Templates
Introduction to Design Patterns
A Pattern is Born
Unifying Dissimilar Interfaces
Aggregated Class Hierarchies
Object Chaining
String Handling Class Template
Combining Functionalities
An Object-classifier Template
Composing Mixed Objects
Recursive Composition
Object Factories
Chapter 13. Multifile Programs
Partitioning a Program
Multifile Support in C++
Multilanguage Programming
Mixing Low- and High-Level Languages
Sample Interface Programs
Bibliography
Index
Biography
Julio Sanchez