Chapter 1: Introduction to Object Oriented Design
1.1 Introduction
1.2 Traditional Technology Approach
Information view
Procedure View
Problems when using traditional technology
1.3 Object – Oriented Technology Approach
Information and procedure views combined
1.4 Object – Oriented Approach and the Real World
1.5 Five Primary Concepts of Object-Oriented Technologies
1.5.1 Information
1.5.2 Procedures
1.5.3 Classes
1.5.4 Objects
1.5.5 Messages
1.6 How the five primary concepts interact
1.7 Object-Oriented Examples
1.8 A business example
1.8.1 Eighteen Months to get a new product to market
Figure 1-6 Ice Blue Snowboards
1.8.2 Inventory control
1.8.3 Scalability and Expandability
1.9 Types of Object-Oriented Technologies
1.9.1 Object-Oriented Programming Languages
1.9.2 Object-Oriented Database Systems
1.10 Object-Oriented Technologies & Client/Server Environments
1.11 Future of Object – Oriented Technologies
1.12 Questions
Sample Questions
Suggested answer:
One type of object-oriented technology is an object-oriented programming language. An object-oriented programming language is a programming language used to develop object-oriented systems. For example, just as English, French, and Italian are different languages you can use to write a paper, java and C++ are two different languages you can use to write a program. An object oriented programming language must be used in order to develop an object-oriented system.
A second type of object-oriented technology is an object-oriented database system. Object-oriented databases work with traditional database information and also with complex data types such as diagrams, schematic drawings, video, sound and text documents.
Short-Answer Questions
Chapter 2: Object Model I
2.1 Introduction
2.2 The Evolution of object model
The Generations of Programming Languages
2.3 Foundations of the object model
2.4 Object-Oriented Programming
2.5 Object-Oriented design
2.6 Object-Oriented Analysis
2.7 Elements of the Object Model
2.8 The meaning of Abstraction
Examples of Abstraction
Figure 2-1 Abstraction of a Temperature Sensor
2.9 The meaning of Encapsulation
Related Candidate Abstractions: Crop, Conditions, Plan Controller
Examples of Encapsulation
2.10 The meaning of Modularity
Two additional issues that can affect modularization decision
Examples of Modularity
Chapter 3: Object Model II
3.1 What is Hierarchy?
3.1.1 Single Inheritance
3.1.2 Multiple Inheritance
3.1.3 Aggregation
3.2 What is Typing?
3.2.1 Issues when using strong typing
Solving these issues
3.2.2 Benefits of using strong typed languages
There are a number of important benefits to be derived from using strongly typed languages:
Without type checking, a program in most languages can ‘crash’ in mysterious ways at runtime.
In most systems, the edit-compile-debug cycle is so tedious that early error detection is indispensable.
Type declarations help to document programs.
Most compilers can generate more efficient object code if types are declared.
3.2.3 Static and Dynamic Typing
3.3 What is concurrency?
Examples of Concurrency
3.4 What is Persistence?
3.5 Applying the Object Model
3.5.1 Benefits of the Object Model