Contents: |
|
|
The two lists in the top-left corner are the same as in the Smalltalk browser.
Use them to select a class.
When a class is selected, the extractor is put to work.
It extracts the reuse contracts corresponding to the selected class and all its
superclasses. It also extracts the increments between two classes in the inheritance
chain, the so-called modifiers. The modifiers and the reuse contracts are listed
in the bottom-left corner of the window. A reuse contract has the
same name as the class from which its was extracted.
Reuse contracts are listed by their boldfaced name, while modifiers are listed by
type (one of the six reuse operators).
When a reuse contract is selected, its specialisation interface is shown in the
list in the top-right corner. A specialisation interface has two parts:
abstract and concrete (the so-called annotations). Each part lists method signatures
together with their specialisation clause between braces (the self sends invoked
in the method's body). Note that all self sends are shown in the
specialisation clause of a method, since the extractor has no way of knowing
which self sends are important for the design of a class and which are not.
Extraction is purely based on inheritance relationships and syntactic
information in method bodies.
When a modifier is selected the specialisation interface section of the window
should be interpreted in
a different way, as is explained in the
next section.
When a method is selected, its specialisation clause and its body are displayed
in the bottom-right corner. The body of a method is only shown when the class,
corresponding to the selected method, actually implements that method.
The extractor is an inspector, not a browser. One cannot edit the displayed information.
Note that, in general, multiple reuse operators are performed in one subclassing step. You will see that several combinations of reuse operators appear frequently: