Slide 8 of 42
Notes:
The interactions that occur in the real world and within software are very complex. Any of them can be looked at in great detail (ěI inserted my card in the machine; it asked for my PIN; I typed a 4; I typed a 2; Ö it asked which service I wanted; Ö) or i
The principle of ërefinementí is that interactions and/or objects can be looked at in different levels of detail. The less detail we give, the more instances are included: there are many ways of buying a Thing, some of which involve some combination of ma
In Catalysis we use the assembly symbol to show that the more abstract use-case is made up of the more detailed ones. (Our convention is that wherever the assembly symbol is used, it should be meaningful just to look at what is above it.)
Each of the constituent use-cases can itself be defined with a goal and further refined to smaller interactions.
The finer level of detail always introduces new objects. In this case, the idea of an Order emerges: it is the link between the different stages of buying.
Typically, the different levels of refinement will be defined in different packages. Another package might describe a different way of buying.
The assembly symbol highlights the refinement relationship, but it doesnít say in what way to combine the constituent use-cases. Do they happen in sequence, or are they repeated, or do they work concurrently? We can activity diagrams to document this, or