Title: Developing the Class Model
1Developing the Class Model
2The KRB Seven Steps
- Step 1 Candidate Classes
- Step 2 Define Classes
- Step 3 Establish relationships
- Step 4 Expand many-to-many relationships
- Step 5 Attributes
- Step 6 Normalization
- Step 7 Operations (that is, behavior)
Source Anil Kapur, Ravi Ravindra, and David
Brown p. 293 of OO Analysis Objects in Plain
English, 1997
3Candidate Classes
- Entity Classes things related to the end users
real-world - Nouns from the use cases
- Nouns from going over the business process
- Nouns from going over the stakeholders and their
interests - Interface Classes linking to people and to other
systems - For the webpage
- For the web service
- Control Classes
- These will be discovered in the Design Phase
- Created for operations that need data and
operations from many other classes or do not
appear to belong to any of the classes
Source Anil Kapur, Ravi Ravindra, and David
Brown p. 293 of OO Analysis Objects in Plain
English, 1997
4Define Classes
- With the list of candidate classes you are ready
to examine and evaluate each to see if it is a
class of interest - Three checks to see if it is a class of interest
- Real world identifier
- If the class is important to us, then its
instances have identity - Definition
- Documents end user language Provides a
dictionary Resolves Ambiguity - Sample attributes and behaviors
- If it is a class of interest, you typically
carries data
Source Anil Kapur, Ravi Ravindra, and David
Brown p. 293 of OO Analysis Objects in Plain
English, 1997
5Establish Relationships
- Discovering the verb
- The relationships of interest to us are all those
that contribute in some way to the business
process we are modeling - Establishing the cardinality
- Capturing all possible relationships
- Example customer, product, vendor, invoice, bin,
warehouse - Getting user input
Source Anil Kapur, Ravi Ravindra, and David
Brown p. 293 of OO Analysis Objects in Plain
English, 1997
6Expand Many-to-Many Relationships
- Example Customers buy products
- Example Vendors ship to warehouses
- Intersection class
- Example vendors stock products
- Example vendor-product-warehouse
- Multiple relationships
- Example employee originates (1m), authorizes
(mm), sends (1m) , receives (mm), verifies
(1m) order
Source Anil Kapur, Ravi Ravindra, and David
Brown p. 293 of OO Analysis Objects in Plain
English, 1997
7Attributes
- Go through the model, class by class, and list
for each one all the attributes that you think
are useful to the business process you are
modeling. - You may also need to define the attributes. Have
the users tell you what each attribute is.
Source Anil Kapur, Ravi Ravindra, and David
Brown p. 293 of OO Analysis Objects in Plain
English, 1997
8Normalization
- Everything depends on the key, the whole key,
and nothing but the key, so help me Codd. - 1NF what if more than one sales person makes
the sale, can the attribute salesperson have
more than one name? No, each generates a
different line. - 2NF nonkey attributes depend on the whole key
- 3NF nonkey attributes cannot depend on nonkey
attributes
Source Anil Kapur, Ravi Ravindra, and David
Brown p. 293 of OO Analysis Objects in Plain
English, 1997
9Operations (that is Behavior)
- CRC cards
- Interactions Diagrams
- Sequence Diagrams
- Collaboration Diagrams
- State Charts
- Activity Diagrams