CHAP14 - Chapter 14 Object-Oriented Software Development...

Info iconThis preview shows pages 1–3. Sign up to view the full content.

View Full Document Right Arrow Icon
Chapter 14 Object-Oriented Software Development Chapter 14 OBJECT-ORIENTED SOFTWARE DEVELOPMENT CHAPTER GOALS To be able to distinguish between structured (procedural) programming and object-oriented programming. To be able to define the characteristics of an object-oriented programming language. To be able to create a new C++ class from an existing class by using inheritance. To be able to create a new C++ class from an existing class by using composition. To be able to distinguish between static and dynamic binding of operations to objects. To be able to apply the object-oriented design methodology to solve a problem. To be able to take an object-oriented design and code it in C++. CHAPTER OUTLINE I. Object-Oriented Programming II. Objects III. Inheritance A. Deriving One Class From Another Software Engineering Tip : Inheritance and Accessibility B. Specification of the ExtTime Class C. Implementation of the ExtTime Class D. Avoiding Multiple Inclustion of Header Files IV. Composition A. Design of a TimeCard Class B. Implementation of the TimeCard Class V. Dynamic Binding and Virtual Functions A. The Slicing Problem B. Virtual Functions VI. Object-Oriented Design A. Step 1: Identify the Objects and Operations B. Step 2: Determine the Relationships Among Objects C. Step 3: Design the Driver Software Engineering Tip : The Iterative Nature of Object-Oriented Design VII. Implementing the Design VIII. Problem-Solving Case Study : Time Card Lookup IX. Testing and Debugging A. Testing and Debugging Hints X. Summary GENERAL DISCUSSION Building on the essential concepts of Chapter 11 (ADTs and the C++ class mechanism), this chapter examines the strategy of decomposing a problem into objects rather than global functions. The key subjects of this chapter are object-oriented design (OOD) and object-oriented programming (OOP). The text discusses OOP before OOD because the concepts of inheritance and composition during OOD are easier to comprehend if the 34
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Chapter 14 Object-Oriented Software Development students have already seen the C++ language implementations. By general consensus, OOP languages are considered to be those with language features for 1. data abstraction 2. inheritance 3. polymorphism (but see our discussion of polymorphism later) Languages that support ADTs but not inheritance or polymorphism (Modula-2 and [pre-1995]Ada, for example) sometimes are called object-based but not object-oriented languages. Polymorphism, a popular buzzword, is a highly overloaded term. Data types can be "polymorphic" and operations (functions) can be "polymorphic." For example, parameterized types in Ada and types specified with the C++ template mechanism (which is not discussed in the text) often are referred to as polymorphic data types. The more common use of polymorphism, however, is in reference to operations. It is also possible to distinguish between static and dynamic polymorphism. Ada's parameterized types, C+
Background image of page 2
Image of page 3
This is the end of the preview. Sign up to access the rest of the document.

Page1 / 19

CHAP14 - Chapter 14 Object-Oriented Software Development...

This preview shows document pages 1 - 3. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online