“Things” in the Problem Domain
Problem domain the specifc ae (dom in) o the usea’s business need th t is within the scope o the new system
There are many techniques for identifying the important things in the problem domain that the system
needs to remember. Two of them are introduced in this chapter: the brainstorming technique and
the noun technique.
Brainstorming technique a technique used to identify problem domain classes in which
developers work with users to identify classes by thinking about diferent types of things they use in
their work
Here are the steps to follow when using the brainstorming technique:
1. Identify a user and a set of use cases or user stories.
2. Brainstorm with the user to identify things involved when carrying out the use case—that is, things
about which information should be captured by the system.
3. Use the types of things (categories) to systematically ask questions about potential things, such as
the following: Are there any tangible things you store information about? Are there any locations
involved? Are there roles played by people that you need to remember?
4. Continue to work with all types of users and stakeholders to expand the brainstorming list.
5. Merge the results, eliminate any duplicates, and compile an initial list.
Noun technique a technique used to identify things in the problem domain by finding and
classifying the nouns in a dialog or description
Here are the steps to follow when using the noun technique:
1. Using the use cases, actors, and other information about the system— including inputs and
outputs—identify all nouns.
2. Using other information from existing systems, current procedures, and current reports or
forms, add items or categories of information needed
3. As this list of nouns builds, you will need to refne it. Ask these questions about each noun to
help you decide whether you should include it:
■ Is it a unique thing the system needs to know about?
■ Is it inside the scope of the system I am working on?
■ Does the system need to remember more than one of these items?
Ask these questions about each noun to decide whether you should exclude it:
■ Is it really a synonym for some other thing I have identifed?
■ Is it really just an output of the system produced from other information I have identifed?
■■ Is it really just an input that results in recording some other information I have identifed?
Ask these questions about each noun to decide whether you should research it:
■ Is it likely to be a specifc piece of information (attribute) about some other thing I have
identifed?
■ Is it something I might need if assumptions change?
4. Create a master list of all nouns identifed and then note whether each one should be included,
excluded, or researched further.
5. Review the list with users, stakeholders, and team members and then refne the list of things in
the problem domain.
, Attributes of Things
Attributes descriptive pieces of information about things or objects
Identifier or key an attribute the value of which uniquely identifes an individual thing or object
Compound attribute an attribute that consists of multiple pieces of information but is best treated in
the aggregate
Associations among Things
Association a term, in UML, that describes a naturally occurring relationship between specifc things
Relationship a term, in database management, that describes a naturally occurring association
between specifc things
Cardinality a measure of the number of links in a particular relationship between a thing (database
data entity) and one or more other things (database data entities)
Multiplicity in UML, a measure of the number of links in a particular association between a thing
(object) and one or more other things (objects)
Multiplicity constraints the actual numeric count of the constraints on things (UML objects) allowed
in an association
Binary associations are associations between exactly two distinct types of things
A one-to-one association can also be refned to include minimum and maximum multiplicity. For
example, an order is placed by one customer; it is impossible to have an order if there is no
customer. Therefore, one is the minimum multiplicity, making the association mandatory.
Because there cannot be more than one customer for each order, one is also the maximum
multiplicity. Sometimes, such an association is read as an order must be placed by one and only
one customer. The associations described here are between two diferent types of things— for
example, a customer and an order. These are called binary associations.
Unary association an association between two instances of the same type of thing
Sometimes, an association is between two things of the same type—for example, the
association is married to, which is between two people. This type of association is called a
unary association (and sometimes called a recursive association).
Ternary association an association between exactly three distinct types of things
For example, one particular order might be associated with a specifc customer plus a specifc
sales representative, requiring a ternary association.
N-ary association an association between n distinct types of things
The Entity-Relationship Diagram
Data entities the term used in ERD modelling to describe things about which the system needs to
store information
Entity-relationship diagram (ERD) a diagram consisting of data entities, their attributes, and their
relationships