Professional Documents
Culture Documents
OBJECT-ORIENTED REQUIREMENTS
ANALYSIS
Topic 7
Structural Modeling
1
Learning Outcome
• Explain how the concept of “things” in the problem
domain also define requirements.
• Identify and analyze data entities and domain classes
needed in the system.
• Read, interpret, and create a domain model class
diagram.
2
Things in the Problem Domain
• Things - items (domain classes or data entities) that
users deal to perform their work in the context of
system’s problem domain that need to be
remembered
• Problem domain—the specific area of the users’
business that is within the scope of the new system
• Examples of “Things” are products, sales, shippers,
customers, invoices, payments, etc
3
Techniques for Identifying Them
• Brainstorming Technique
▪ Developers work with users in an open group
setting
• Noun Technique
▪ Finding and classifying nouns in a dialog or a
description
▪ Without users involvement
4
Brainstorming Technique
5
Brainstorming Technique:
Steps
1. Identify a user and a set of use cases
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
6
The Noun Technique
• A technique to identify problem domain classes
(things) by finding, classifying, and refining a list of
nouns that come up in discussions or documents
• Popular technique and systematic.
• Does end up with long lists and many nouns that
are not things that need to be stored by the system
• Difficulty in identifying synonyms and things that
are really attributes
• Good place to start when there are no users
available to help brainstorm
7
The Noun Technique:
Steps
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, refine it.
4. Create a master list of all nouns identified 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 define the list of things in the problem domain.
8
The Noun Technique
Include Exclude Research
10
Attributes and Values
11
Associations Among Things
12
Associations
• Associations and Relationships apply in two
directions
▪ Read them separately each way
• A customer places an order
• An order is placed by a customer
• Cardinality/Multiplicity is a measure of links between
one object and another object in a
relationship/association
• UML – use the term multiplicity and association
• Database Management – use the term cardinality and
relationship
13
Minimum and Maximum Multiplicity
14
Types of Associations
● Binary Association
● Associations between exactly two different classes
● Course Section includes Students
15
ERD
• More traditional approach to systems development
• Uses terms such as data entities
• NOT a UML diagram
• not good for showing generalization/specialization
relationships and whole part relationships
16
17
DOMAIN MODEL CLASS DIAGRAM
18
Domain Model Class Diagram
• Class
▪ A category of classification used to describe a collection of
objects
• Domain Class
▪ Classes that describe objects in the problem domain
• Class Diagram
▪ A UML diagram that shows classes with attributes and
associations
• Domain Model Class Diagram
▪ A class diagram that only includes classes from the
problem domain
19
Domain Class Notation
• Domain class has no methods
• Class name is always capitalized
• Attribute names are not capitalized and use camelback
notation (words run together and second word is capitalized)
20
ERD vs Class Diagram
21
UML Notation for Multiplicity
22
23
Many-to-many Association
24
Association Class
• An association that is also treated as a class; often
required in order to capture attributes for the
association
25
Class Relationship Type
• Association
• Generalization/Specialization
• Whole/Part
▪ Aggregation
▪ Composition
26
Generalization/Specialization
• A type of hierarchical relationship in which subordinate
classes are subsets of objects of the superior classes
• Superclass
▪ Superior or more general class
• Subclass
▪ Subordinate or more specialized class
• Inheritance
▪ the concept that subclasses classes inherit characteristics of the
more general superclass
27
Generalization/Specialization
28
Generalization/Specialization
30
Whole-Part
• A relationship between classes in which one
class is a part or component portion of
another class
▪ Aggregation
▪ Composition
31
Aggregation
• Component parts
also exist as
individual objects
apart from the
aggregate (whole)
• Take note of the
diamond symbol
32
Composition
• Component parts
cannot exist as
individual objects
apart from the
composition
• Take note of the
filled diamond
33
• Things in Domain
• Identification Techniques
• Brainstorming
• Noun
• Class/Entity
• Attributes
• Associations/
• Relationships
• Multiplicity/
Cardinality
• ERD
• Class Diagram
• Class Type
• Association
• Abstract
• Concrete
• Class Relationship Type
• Association
• Generalization
• Whole/Part
34