Welcome to Scribd. Sign in or start your free trial to enjoy unlimited e-books, audiobooks & documents.Find out more
Standard view
Full view
of .
Look up keyword or section
Like this

Table Of Contents

Part I Project Engineering
Chapter 1 Fundamentals of Systems Engineering
1.0 Introduction
1.0.1 Characteristics of a New Discipline
1.0.2 The Programmer as an Artist
1.1 Software Characteristics
Other Properties
1.1.2 Quality Metrics
1.2 Principles of Software Engineering
1.2.1 Rigor
1.2.2 Separation of Concerns
1.2.3 Modularization
1.2.4 Abstraction and Information Hiding
1.2.5 Malleability and Anticipation of Change
1.2.6 Maximum Generalization
1.2.7 Incremental Development
1.3 Software Engineering Paradigms
1.3.1 The Waterfall Model
1.3.2 Prototyping
1.3.3 The Spiral Model
1.3.4 A Pragmatic Approach
1.4.2 Advantages of Good Documentation
Chapter 2 System Description and Specification
2.0 System Analysis Phase
2.0.1 The System Analyst
2.0.2 Analysis and Project Context
2.1 The Feasibility Study
2.1.1 Risk Analysis
Risk Identification
Risk Estimation
Risk Assessment
Risk Management
2.1.2 Risk Analysis in a Smaller Project
2.1.3 Cost-Benefit Analysis
2.2 Requirements Analysis and Specification
2.2.1 The Requirements Analysis Phase
Customer/User Participation
The Virtual Customer
2.2.2 The Specifications Phase
The Software Specifications Document
2.3.3 Formal and Semiformal Specifications
2.3.4 Assertions Notation
2.3 Tools for Process and Data Modeling
2.3.1 Data Flow Diagrams
Event Modeling
2.3.2 Entity-Relationship Diagrams
3.2.3 Message Passing
3.2.4 Inheritance
3.4 Example Classification
3.5 When to Use Object Orientation
3.5.1 Operational Guidelines
Chapter 4 Object-Oriented Analysis
4.0 Elements of Object-Oriented Analysis
4.0.1 Modeling the Problem-Domain
4.0.2 Defining System Responsibilities
4.0.3 Managing Complexity
Message passing
4.1 Class and Object Decomposition
4.1.1 Searching for Objects
4.1.2 Neat and Dirty Classes
4.2 Finding Classes and Objects
4.2.1 Looking at Class Associations
Gen-Spec Structures
Multiple Inheritance in Gen-Spec Structures
Whole-Part Structures
Compound Structures
4.2.2 Looking at Mechanisms and Devices
4.2.3 Related Systems
4.2.5 Roles Played
4.2.6 Operational Sites
4.2.7 Organizational Units
4.3 Testing Object Validity
4.3.1 Information to Remember
4.3.2 Object Behavior
4.3.3 Multiple Attributes
4.3.4 Multiple Objects
4.3.5 Always-applicable Attributes
4.3.6 Always-applicable Methods
4.3.7 Objects Relate to the Problem-Domain
4.3.8 Derived or Calculated Results
4.4 Subsystems
4.4.1 Subsystems as Modules
Subsystem Cohesion
Subsystem Coupling
4.5 Attributes
4.5.1 Attribute Identification
5.0.1 A Transitional Phase
5.1 Hardware and Operating System
5.1.1 PC Hardware Components
5.1.2 System Architecture
DOS Systems
Windows Systems
Unix Systems
Choosing a System
5.2 User Interface Design
5.2.1 Interface Component Protocol
5.3 The Software Development Environment
5.4 Naming Conventions
5.6 Critical Data Elements
5.7 Critical Processing Elements
5.7.1 Algorithm Identification
5.7.2 Flowcharts and Pseudocode
5.7.3 Partial Prototypes
5.8 Refinement of Classes and Objects
5.9 Language-specific Concerns
5.10 Error and Exception Handling
5.11 Documentation Conventions
Pointer Variable Declaration
Pointer Variable Assignment
Pointer Variable Dereferencing
6.3 Pointers to Arrays
6.4 Pointers to Structures
6.5 Pointer Arithmetic
6.6 Pointers to Void
6.6.1 Programming with Pointers to Void
6.7 Reference Variables
6.8 Dynamic Memory Allocation in C++
6.9 Pointers to Functions
6.10 Compounding Indirection
Chapter 7 C++ Object-Oriented Constructs
7.0 Implementation Issues
7.1 The Fundamental Notions
7.1.1 Encapsulation
7.1.2 Polymorphism
7.2.1 Class Declaration
7.3 Overloading Functions and Operators
7.3.1 Function Overloading
7.3.2 Operator Overloading
7.4 C++ Implementation of Inheritance
7.4.1 Access to Base Class Members
7.4.2 Derived Classes
7.4.3 Access Declarations
7.4.4 Multiple Inheritance
Virtual Base Classes
7.5 Friend Classes and Functions
7.5.1 Friend Classes
7.5.2 Friend Functions
7.6 Objects
7.6.1 The this Pointer
7.6.2 Arrays of Objects
7.6.3 Pointers to Objects
7.6.4 Pointers to Objects of Derived Classes
7.6.5 Arrays of Pointers to Pointers
7.7 Run-time Polymorphism
Characteristics of the Virtual Attribute
7.7.2 Pure Virtual Functions
Abstract Classes
Modeling Complex Inheritance
7.8 Templates
7.8.1 Template Functions
7.8.2 Template Classes
8.0 Reusability Modes
8.1 Reusing Code
8.1.1 Methods of Code Reuse
Properties of Reusable Code
Interface Design Example
Implementation Options
8.2 Mechanisms for Code Reuse
Compile-time Polymorphism
8.2.2 Reuse by Virtual Functions
Pure Virtual Functions
8.3 Design Reuse
Chapter 9 Static Inheritance Constructs
9.0 Inheritance in Object Orientation
9.1 Inheritance Revisited
9.1.1 Inheritance and Class Structures
9.1.2 A Notation for Inheritance
9.2 Fundamental Constructs
9.2.1 Nonpolymorphic Inheritance
9.2.2 Multiple Inheritance
9.2.3 Static, Polymorphic Inheritance
9.3 Applied Inheritance Constructs
10.0 Dynamic Binding Revisited
10.0.1 Object Model Notation
10.1 Modeling Dynamic Binding
10.1.1 Polymorphism by Virtual Functions
Adding Model Details
10.1.2 Inheriting Virtual Functions
10.1.3 Virtual Function Hierarchies
10.1.4 Combining Virtual and Nonvirtual Functions
10.1.5 Polymorphism by Pure Virtual Functions
10.2.1 An Inheritance Solution
11.1.2 Member Object Constructors
11.1.3 Multiple Member Objects
11.4 Combining Inheritance and Composition
11.5 Dynamic Object Allocation
11.5.1 Allocating Single Objects
11.5.2 Allocating an Object Array
11.5.3 Pointers to Pointers to Objects
Chapter 12 Class Patterns and Templates
12.0 Introduction to Design Patterns
12.0.1 Class Templates
12.1 A Pattern is Born
12.1.1 Redesign of the VESA True Color Library
12.1.2 Developing the Pattern
12.2 Unifying Dissimilar Interfaces
12.2.1 An Interface Pattern
12.3 Aggregated Class Hierarchies
12.3.1 A Class Hierarchy by Object Composition
Figure 12.7 Class Hierarchy by Object Composition
12.3.2 A Chain Reaction Pattern
12.4 Object Chaining
12.4.1 An Object Chain Example
12.4.2 An Object Chain Pattern
12.5 String Handling Class Template
12.5.1 String Operations
12.6 Combining Functionalities
12.6.1 A Mixer Pattern
12.7 An Object-classifier Template
12.7.1 Implementing the Object Classifier
12.8 Composing Mixed Objects
12.8.1 A Graphics Toolkit
12.8.2 Pattern for a Composite Class
12.8.3 A Simplified Implementation
12.9 Recursive Composition
12.9.1 Implementation Considerations
12.9.3 A Recursion Pattern
12.10 Object Factories
12.10.1 Object Factory Implementation
Chapter 13 Multifile Programs
13.0 Partitioning a Program
13.0.2 Public and Private Components
13.0.3 Object-Oriented Class Libraries
13.1 Multifile Support in C++
13.2 Multilanguage Programming
13.2.1 Naming Conventions
13.2.2 Calling Conventions
13.2.3 Parameter-Passing Conventions
13.2.4 Difficulties and Complications
13.4.3 Using Interface Headers
0 of .
Results for:
No results containing your search query
P. 1
Patterns, Models, And Application Development - A C++ Programmer's Reference

Patterns, Models, And Application Development - A C++ Programmer's Reference

Ratings: (0)|Views: 104|Likes:
Published by Prashanth N Sharma

More info:

Published by: Prashanth N Sharma on Sep 06, 2010
Copyright:Attribution Non-commercial


Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less





You're Reading a Free Preview
Pages 8 to 69 are not shown in this preview.
You're Reading a Free Preview
Pages 77 to 108 are not shown in this preview.
You're Reading a Free Preview
Pages 116 to 133 are not shown in this preview.
You're Reading a Free Preview
Pages 141 to 244 are not shown in this preview.
You're Reading a Free Preview
Pages 252 to 385 are not shown in this preview.

Activity (9)

You've already reviewed this. Edit your review.
1 thousand reads
1 hundred reads
Lars Wirfelt liked this
Poie liked this
smith1 liked this
dustinfranklin liked this
man_bosco5364 liked this
smith1 liked this
Poie liked this

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->