Connie's Convenience Store - About Peter Coad
Connie's Convenience Store - About Peter Coad
Connie's Convenience Store - About Peter Coad
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
60 Connie’s <strong>Convenience</strong> <strong>Store</strong> Working Out Problem-Domain Dynamics with Scenarios<br />
WORKING OUT PROBLEM-DOMAIN DYNAMICS WITH SCENARIOS<br />
A scenario is a time-ordered sequence of object interactions to fulfill a specific need. It<br />
describes a needed capability, one which is accomplished by some number of objects<br />
working together.<br />
Why use scenarios? Here’s why:<br />
– To find additional objects.<br />
– To better distribute and refine responsibilities.<br />
– To gain better understanding of system dynamics.<br />
– To assess model completeness.<br />
– To test an object model (ultimately, to test the system itself).<br />
Develop and describe each scenario with a scenario view. A scenario view is simply<br />
a view on an object model, called out to portray a scenario.<br />
It’s not possible or practical to consider every scenario within a system of any significant<br />
size. So focus on the key scenarios, ones that give you:<br />
– Insight into critical object interaction sequences<br />
You may want to consider several scenarios, perhaps as many as a<br />
couple dozen.<br />
– Insight into object-model completeness<br />
After some initial scenarios, you should experience a decreasing<br />
number of discoveries of additional objects and responsibilities.<br />
Select key scenarios<br />
#127. “Select Key Scenarios” Strategy working out dynamics with scenarios<br />
• Work out and demonstrate the satisfaction of a system feature.<br />
Include scenarios that get you to work through the object interactions that are required<br />
to deliver a feature of the system under consideration.<br />
Consider using subscenarios, to make a scenario easier to work with and easier to<br />
understand.<br />
• Stretch the model, examining it for completeness.<br />
Include scenarios that really stretch your object model; use them to check out the<br />
overall completeness of your model.<br />
• Examine key object interactions within your model.<br />
Include scenarios that let you investigate dynamics for important services in your<br />
model.<br />
Admittedly, the most interesting scenarios are those which start with a human interface<br />
or a system interface, and wind their way through the objects in your system.<br />
Yet at this point, all you’ve developed are PD objects. Yet even within the PD objects,<br />
you can work out some meaningful scenarios. Just look for a service that needs<br />
some help from other objects to get its job done. For example, for a sale, you could<br />
choose to take a closer look at its calculate total service. Then you can consider scenarios<br />
that begin with human interaction, as we will later in this chapter.