Systems Analysis and Integration
CIS320
Systems Analysis and Integration
Week 1 – Domain Modeling
*
Systems Analysis and Design in a Changing World, 6th Edition
*
Chapter 4 Outline
- Overview
- This chapter focuses on another key concepts for defining requirements— data entities or domain classes (what need to be remembered!)
- Outline
- “Things” in the Problem Domain
- Data entities
- Domain classes
- The Domain Model Class Diagram
Systems Analysis and Design in a Changing World, 6th Edition
*
Systems Analysis and Design in a Changing World, 6th Edition
*
Things in the Problem Domain
- Problem domain—the specific area (or domain) of the users’ business need that is within the scope of the new system.
- “Things” are those items users work with when accomplishing tasks that need to be remembered
- Examples of “Things” are products, sales, shippers, customers, invoices, payments, etc.
- These “Things” are modeled as domain classes or data entities
- In this course, we will call them domain classes. In database class you call them data entities
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
*
Things in the Problem Domain
Two Techniques for Identifying them
- Brainstorming Technique
- Use a checklist of all of the usual types of things typically found and brainstorm to identify domain classes of each type
- Noun Technique
- Identify all of the nouns that come up when the system is described and determine if each is a domain class, an attribute, or not something we need to remember
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
*
Brainstorming Technique
- Are there any tangible things? Are there any organizational units? Sites/locations? Are there incidents or events that need to be recorded?
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
*
The Noun Technique
- A technique to identify problem domain classes (things) by finding, classifying, and refining a list of nouns that come up in in discussions or documents
- Popular technique. Systematic.
- Does end up with long lists and many nouns that are not things that need to be stored by the system
- Difficulty identifying synonyms and things that are really attributes
- Good place to start when there are no users available to help brainstorm
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
*
Partial List of Nouns for RMO
With notes on whether to include as domain class
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
*
Details about Domain Classes
- Attribute— describes one piece of information about each instance of the class
- Customer has first name, last name, phone number
- Identifier or key
- One attribute uniquely identifies an instance of the class. Required for data entities, optional for domain classes. Customer ID identifies a customer
- Compound attribute
- Two or more attributes combined into one structure to simplify the model. (E.g., address rather than including number, street, city, state, zip separately). Sometimes an identifier or key is a compound attribute.
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
*
Attributes and Values
- Class is a type of thing.
- Object is a specific instance of the class. Each instance has its own values for an attribute
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
*
Associations Among Things
- Association— a naturally occurring relationship between classes (UML term)
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
*
Minimum and Maximum Multiplicity
- Associations have minimum and maximum constraints
- minimum is zero, the association is optional
- If minimum is at least one, the association is mandatory
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
*
Types of Associations
- Binary Association
- Associations between exactly two different classes
- Course Section includes Students
- Members join Club
- Unary Association (recursive)
- Associations between two instances of the same class
- Person married to person
- Part is made using parts
- Ternary Association (three)
- N-ary Association (between n)
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
*
Semantic Net
Shows instances and how they are linked
Example shows instances of three classes
Quick quiz:
How many associations are there?
What are the minimum and maximum multiplicities in each direction?
What type of associations are they?
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
*
The 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 (plus methods if it models software classes)
- Domain Model Class Diagram
- A class diagram that only includes classes from the problem domain, not software classes so no methods
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
*
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)
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
*
A Simple Domain Model Class Diagram
- Note: This diagram matches the semantic net shown previously
- A customer places zero or more orders
- An order is placed by exactly one customer
- An order consists of one or more order items
- An order item is part of exactly one order
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
*
UML Notation for Multiplicity
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
*
More Complex Issues about Classes:
Generalization/Specialization Relationships
- Generalization/Specialization
- A hierarchical relationship where subordinate classes are special types of the superior classes. Often called an Inheritance Hierarchy
- Superclass
- the superior or more general class in a generalization/specialization hierarchy
- Subclass
- the subordinate or more specialized class in a generalization/specialization hierarchy
- Inheritance
- the concept that subclasses classes inherit characteristics of the more general superclass
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
*
Generalization/Specialization
Inheritance for RMO Three Types of Sales
- Abstract class— a class that allow subclasses to inherit characteristics but never gets instantiated. In Italics (Sale above)
- Concrete class— a class that can have instances
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
*
More Complex Issues about Classes:
Whole Part Relationships
- Whole-part relationship— a relationship between classes where one class is part of or a component portion of another class
- Aggregation— a whole part relationship where the component part exists separately and can be removed and replaced (UML diamond symbol, next slide)
- Computer has disk storage devices
- Car has wheels
- Composition— a whole part relationship where the parts can no longer be removed (filled in diamond symbol)
- Hand has fingers
- Chip has circuits
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
*
Whole Part Relationships
Computer and its Parts
- Note: this is composition, with diamond symbol.
- Whole part can have multiplicity symbols, too (not shown)
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
*
More on UML Relationships
- There are actually three types of relationships in class diagrams
- Association Relationships
- These are associations discussed previously, just like ERD relationships
- Whole Part Relationships
- One class is a component or part of another class
- Generalizations/Specialization Relationships
- Inheritance
- So, try not to confuse relationship with association
Systems Analysis and Design in a Changing World, 6th Edition
Systems Analysis and Design in a Changing World, 6th Edition
*
Summary
- This chapter focuses on modeling functional requirements of “things or items” that need to be remembered!
- “Things” in the problem domain are identified and modeled, called domain classes or data entities
- Two techniques for identifying domain classes/data entities are the brainstorming technique and the noun technique
- Domain classes have attributes and associations
- Associations are naturally occurring relationships among classes, and associations have minimum and maximum multiplicity
- There are actually three UML class diagram relationships: association relationships, generalization/specialization (inheritance) relationships, and whole part relationships
Systems Analysis and Design in a Changing World, 6th Edition