Selecting objects -- pattern players
Str#13. "Select Actors" Strategy
- Look for actors: people and organizations that act as
participants within the system under consideration.
- Examples: person, organization (agency, company,
corporation, foundation).
Related patterns:
Str#14. "Select Participants" Strategy
- Analyze how each actor participates, in ways that might
be of interest to the system under consideration.
- Why. Each actor participates in one or more ways through
time. It's the same actor, just different ways of
participating. People talk about wearing "different hats"
during the day. That's exactly what such participation is all
about.
- Examples: agent, applicant, buyer, cashier, clerk,
client, civilian, customer, dealer, delegate, distributor,
donor, employee, investor, manufacturer, member, officer,
official, order clerk, owner, participant, policy holder,
professional, prospect, recipient, retailer, sales clerk,
sales rep, shipper, student, subscriber, supervisor,
supplier, suspect, teacher, wholesaler, worker.
Related patterns:
Str#15. "Select Places" Strategy
- Look for places where things come to rest, places that
contain other objects.
- Examples: airport, assembly-line, bank, clinic, depot,
garage, geographic entity, hangar, hospital, manufacturing
site, plant, region, sales outlet, service center, shelf,
station, store, warehouse, zone.
Related pattern:
Str#16. "Select Tangible Things" Strategy
- Look for tangible objects, ones used in the problem
domain.
- Take a walk through the business. Select objects from the
tangible ones around you.
- Examples: account, cash box, cash drawer, item, plan,
procedure, product, schedule, scheduled event.
Related patterns:
Str#17. "Select Transactions" Strategy
- Look for transactions, "events remembered," events that
the system must remember through time. A transaction is a
moment in time (for example, a sale) or an interval of time
(for example, a rental).
- Look for an entry in a historical record or log, an entry
that must be maintained. Why? To answer questions or to
perform assessments.
- Examples: agreement, assignment, authorization, contract,
delivery, deposit, incident, inquiry, order, payment, problem
report, purchase, refund, registration, rental, reservation,
sale, shift, shipment, subscription, time charge, title,
withdrawal.
- Note: Nearly all transactions consist of a number of
transaction line items.
- Note: Where do these transactions come from? The
possibilities are:
-
- A window (the event logged is based upon human
interaction at some point in time)
- Another object, monitoring for a significant event,
then logging that such an event occurred
- Another system, one that your system can interact
with regarding events it logs.
Related patterns:
- Patt#3.
"Participant-Transaction"
- Patt#4.
"Place-Transaction"
- Patt#5. "Specific Item
- Transaction"
- Patt#6. "Transaction -
Transaction Line Item"
- Patt#7. "Transaction -
Subsequent Transaction"
- Patt#8. "Transaction
Line Item - Subsequent Transaction Line Item"
Str#18. "Select Associates" Strategy
- Look for associates, objects that need to know each
other, yet:
-
- have no need to capture information or provide
services about that association
- have no need for history about that association.
- Most often, this strategy applies to the interaction of
objects, whose actual objects are closely related.
- Examples: aileron-gyro; aircraft-runway; building-sensor;
driver-vehicle, loading dock - order; order-tote; truck -
loading dock.
Related patterns:
Str#19. "Select Items and Specific Items" Strategy
- Look for items, descriptive objects with values that
apply to some number of specific items and actions that apply
across those specific items.
- Examples: aircraft - specific aircraft, loan description
- specific loan, job description - specific job, video
description - videotape, price category item - specific item,
tax category item - specific item.
Related patterns:
- Patt#9. "Item - Line
Item" Pattern
- Patt#10. "Specific Item
- Line Item" Pattern
- Patt#11. "Item -
Specific Item" Pattern
Str#19a. "Separate Definition from Usage" Strategy
- When you need to define something (standard parts of a
plan, standard parts of a schedule, standard descriptions of
a product) and then use it in some way ( a specific plan, a
specific schedule for today, a specific thing you are putting
together), -- include both description classes (each object
is like a catalog entry) and usage classes (each object keeps
track of things that are happening this special time) in your
object model.
- This is an example of Patt#9 "Item - Specific Item,"
repeatedly applied.
Str#20. "Select Interacting Systems and Devices"
Strategy
- Look for other systems, ones that your system is
responsible for interacting with.
- (Real-time systems) Look for devices, ones that your
system needs for data acquisition and control.
- Add it to the PD component. Example: sensor.
- Add a companion SI class to the system interaction
component. Example: SensorSI. (SI objects encapsulate the
specific communication needs for interacting with another
system or device.)
Str#20a. "Add Outbound/Inbound Request" Strategy
- Yes, add both PD and SI objects, separating logical and
physical system interaction needs.
- For the PD side, add an OutboundRequest object (to keep
track of a sending object and the request number -- so you
can handle an outbound asynchronous request correctly).
- Also for the PD side, add an InboundRequest object (to
parse and route inbound a command from another systems -- and
keep track of to whom to return the results of the
request.)
Str#21. "Select Collections of Objects" Strategy
- Look at each object as a worker in a collection. Name the
collections.
- Look at each object as a collection with workers. Name
the workers.
- Examples:
-
- Collections of participants: company, department,
group, organization, squad, team.
- Collections of places: airport, campus, store
chain.
- Collections of things: assembly, batch, collection,
list, log, queue, pool.
Related patterns:
Str#22. "Select Container Objects" Strategy
- Use a domain-based container, one that holds other
objects.
- Examples: airport, aircraft, aisle, bank, bin, building,
cabinet, folder, garage, hangar, hospital, locker, room,
safe, store, warehouse.
Related patterns:
Str#23. "Select a Collection" Strategy
- What if you need a collection of objects, yet such a
collection has no special name?
-
- Add a collection, using a plural form of the worker
name. Example: authorization systems.
- Add a collection, using the worker name, followed by
the word "collection" or "server." Example: authorization
server.
Str#24. "Select the Smallest Applicable Collection
"Strategy
- Use the smallest domain collection within the system's
responsibility, to express responsibility across that
collection--expressing appropriate scope.
- Examples: bin, aisle, warehouse; city, county, state,
country; team, department, organization, company,
industry.
Selecting objects
Strategies for building object
models