20.02.2013 Views

Connie's Convenience Store - About Peter Coad

Connie's Convenience Store - About Peter Coad

Connie's Convenience Store - About Peter Coad

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!