An Introduction to Object-Oriented Programming
By Timothy Budd
Study Guide for Chapter 2
Learning Objectives
After reading this chapter, you should be able to:
-
Explain why a design approach based on behavior can be applied
sooner in the development process than can a design approach
based on other software characteristics
-
use the CRC card technique to give a responsibility-driven design for
an object-oriented solution to a problem
-
describe some of the basic characteristics of a software component
-
describe Parnas's principles of information hiding
-
identify the stages of the software life cycle
Study Questions
You may wish to use the print or save as command
on your web browser to produce a copy of this study guide.
That way you can fill in the answers to the questions as part of
your assimilating the information you learn in this chapter.
-
What is the name given to
the design technique driven by the determination and delegation of
responsibilities ?
-
Explain how an emphasis on behavior and responsibility is naturally
linked to greater information hiding and a looser connection between
software components.
-
What are some of the characteristics that differentiate programming
in the large from programming in the small?
-
What is the main advantage of first describing an application in
terms of behavior as opposed to, for example, discussing the
basic data structures that will be used in the application?
-
What is the principle purpose of walking through scenarious?
-
What are the two most important characteristics of a software
component?
-
What do the three fields of a CRC card represent?
-
What are some of the advantages of using a physical index card
to represent a CRC card?
-
What is the what-who cycle?
-
Why should the user manual be written before actual coding of
an application is begun?
-
What are the most common sources of change in the requirments
for an application over time? How can some of the difficulties
inherient in change be mitigated?
-
Describe in your own words the following aspects of software components
- Behavior and state
- Instances and Classes
- Coupling and Cohesion
- Interface and Implementation
-
What are Parnas's principles of information hiding?
-
What are some guidelines to follow in the selection of names
for components, arguments, behaviors, and so on?
-
After design, what are the later stages of the software life cycle?
-
What is a facilitator component?
-
What is regression testing?
-
What is software maintenance?
Contents copyright
Timothy Budd, 1995.