Deliverable: List of Domain Assumptions, Exceptions, and Variations for Your System

This deliverable is a complete list of assumptions, exceptions, and variations for your system.

An assumption is anything that must be true about the real world in order for the use cases of your sytem to work as expected. For now, write down all the assumptions that you can find,

(Later, i.e., not in this deliverable, but in the specification that is Deliverables 4 and 5, you will decide what your system does about each assumption.

To help you understand what an assumption is, know now that what you will say that your system does about each assumption, A, is one of the three following:

An exception is any condition that may cause a use case in your system not to work as intended or expected. Exceptions may overlap with assumptions in the sense that the failure for an assumption to hold may give rise to exceptions.

A variation is a use case that is slightly different from another use case, which itself might be a variation. It might represent a different way to achieve the other use case's goals or a way to achieve a different goal with approximately the same behavior as the other use case.

In making this list, don't hold back. Treat it like brainstorming for assumptions, exceptions, and variations, i.e., anything that could be different from the normal behavior of any use case.

Later, as you decide your system's responses to the items on this list, you will trim the list back to the truly relevant items.

Please make one numbered sublist for assumptions, one numbered sublist for exceptions, and one numbered sublist for variations. If you cannot decide which sublist an item should be in, just pick one sublist, and go on!

You may include in this deliverable a list of any question that you have for your customer about your system. These should be clearly marked as questions.