5.5. Contracts and Goals

Consider now a conversation that is fundamental to all commercial activity: the conversation that leads to a sale or, dually, a purchase. Figure 5-6 shows that a sale always involves a purchaser and a vendor. Since there is a great deal of variation in the way that sales are handled, there is some difficult in writing a completely generic script for this conversation. So, deferring this for the time being, what can be said in general?

We know that every conversation is partly defined by its conditions of satisfaction: its contract or goal. What is the goal of a sale? In other words, how does the world change when a sale takes place? The answer is very simple indeed: after a sale the purchaser has the goods and the vendor has the money. More formally, some thing is owned by the purchaser and the vendor no longer owns that thing, and the vendor has an extra amount of money equal to the price of the thing and the purchaser has less money by the same amount. Logicians and computer scientists would call this statement a post-condition.

It is equally easy to see that all sales must satisfy a pre-condition: the vendor must own the thing and the purchaser must have the money.

The pre- and post-conditions of a conversation define that conversation completely. To convince yourself of this, try to vary one of them. Suppose the post-condition becomes: the thing is owned by the purchaser and that thing is no longer owned by the vendor, leaving out the assertions about ...

Get Requirements Modelling and Specification for Service Oriented Architecture now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.