
1. Use the technique of noun extraction to identify the possible classes in the following use
case scenario for a software system that controls an assembly line:
The sensor sends a STOP message to the control software if a widget reaches the end of the
conveyor belt without being lifted by the robot arm. The software sends a signal to the motor
controller to stop the assembly line.
Which of the candidate classes should not be added to the preliminary class list? Refer
explicitly to the refinement principle you used in each case.
There are nine nouns: sensor, message, software, widget, conveyor belt, robot arm, signal, and
motor controller,assembly line.
Six of the nouns (message, widget, conveyor belt, robot arm, signal and assembly line) do not
need to be added to the preliminary class list. For several reasons:
Noun expresses an abstract concept. Some nouns refer to abstract concepts that are not
directly a part of the software being constructed (for example, assembly line).
Noun expresses a concept outside of the problem scope. Some nouns refer to concepts
that are outside of the scope of the problem to be solved; typical examples are those
references to the use environment that do not affect the software itself (for example,
widget, conveyor belt, robot arm).
Noun expresses a concept that should be a feature. Some nouns refer to characteristics
of data objects that are better modeled as features (class variables) rather than as first-
class objects (for example, message and signal).
2. Draw an object diagram for the classes you identified in Question 1. Be sure to include any
class attributes or methods that resulted from preliminary class refinement.