The purpose of this section is to present the O-O
entities and script variables that are used in the Object Model,
Dynamic Model (Interactions), Dynamic Model (States), and Functional
Model. Each of these models has an information (meta) model showing
the O-O entities and script variables. Various reports are presented
for each of these models. We have separated the Dynamic Model
into the Dynamic Model (Interactions) and the Dynamic Model (States)
to simplify the presentation of information.
A complete object-oriented model consists of various drawings, diagrams, text specifications, reports, source code listings, executable prototypes, and other products. An O-O model is a description of a system. For example, we have an O-O model of a TV Control System, a Bank ATM Control System, and others. An O-O model collects information about the system. An O-O model is based upon an information (meta) model of information entities such as system, class, object, attribute, operation, etc. The information model describes each O-O entity in terms of its class, attributes, operations, and relationships. Rather than model a real world system such as the TV Control System or Bank ATM System, we are modeling a system of O-O entities. Rather than modeling bank accounts, clients, and transactions we are modeling classes, attributes, operations, etc. We are modeling information about O-O entities, e.g. system, class, attribute, and operation.
The information (meta) model lists the O-O entities and script variables to describe each O-O entity. For example, the operation O-O entity has several script variables, e.g. OPERATION_NAME, OPERATION_ACCESS, etc. The script variables are used to create reports and to generate source code. Each script variable has a value typically a string of characters. The script variable OPERATION_NAME has a sample value "start".
In creating an O-O model, the following factors are important:
- Creating graphic diagrams, text specifications, and source code products.
- Viewing the system from an object (entity), dynamic
(time), and functional (transformation) points of view.
In this section we will answer key questions such as:
- What is the information (meta) model?
- Why is the information (meta) model important?
- How do I use the information (meta) model?
Then we will describe the information (meta) model for the following:
- Object Model Information Model describing classes and relationships,
- Dynamic Model Information Model (Interactions) describing interaction scenarios,
- Dynamic Model Information Model (States) describing states and transitions,
- Functional Model Information Model describing operations.
The objectives of this section are:
1. Describe the information (meta) model for the Object Model, Dynamic Model (Interactions), Dynamic Model (States), and the Functional Model.
2. Create a class diagram for each information (meta) model listing the O-O entities and script variables which describe each O-O entity.
3. Create a table of O-O entities and script variables for each information (meta) model.
4. Show the O-O entities and script variables in diagrams and text specifications.
5. Show the O-O entities and script variables in
sample report scripts.
In this section we will follow a progression as shown
below.
Model Class Diagram of Table of O-O Entities and Script Variables in
Objective O-O Entities and O-O Entities and Model Diagrams
and O-O Script Variables Script Variables
Entities O-O Entities and Script Variables in
Model Specifications
O-O Entities and Script Variables in
Reports
For example, we will present the Object Model Information Model. We start with the objective of the Object Model to describe the system, classes, attributes, operations, and relationships. We ask the question "What are the O-O entities in this model?" We create class diagram of the O-O entities showing the system, class, attribute, operation, and relationship. Each O-O entity becomes a class in the class diagram. We ask the question "What information items should we collect about each O-O entity. For example, what information items should we collect on each operation, e.g. operation name, operation return type, etc. Each information item becomes an attribute on the class diagram. Each information item becomes a script variable. We show the table of O-O entities and script variables. Finally, we show the O-O entities and script variables on diagrams and specifications. For example, we show the O-O entity "class" on a class diagram with applicable script variables, e.g. CLASS_NAME. We show the O-O entity "class" on a class specification with the applicable script variables, e.g. CLASS_NAME, CLASS_CARDINALITY, etc. We show the script variables in sample reports.
The information (meta) model is a graphic and textual description of the information entities in an O-O model. It is a description of O-O entities, such as system, class, attribute, operation, and relationship. It is a description of the structure and relationships between O-O entities. Our information model is based upon Rumbaugh's Object Modeling Technique (OMT). We are utilizing the terminology and graphic notation from Rumbaugh's "Object-Oriented Modeling and Design" with some interpretations. The information model shows the organization of information in a CASE tool. Specifically the information model lists script variables in a scripting CASE tool. We are presenting an information model for each O-O model, e.g. Object Model, Dynamic Model, and Functional Model. Each information model consists of a class diagram showing O-O entities and a table of O-O entities and script variables.
Understanding the information (meta) model helps
us create O-O models and to access information in a scripting
CASE tool using script variables. It helps us understand the underlying
O-O methodology, e.g. Rumbaugh OMT. For example, the information
model says that "A class has zero to many attributes".
Also, the information model says that "An operation has NO
attributes". The information model formalizes an O-O methodology
by providing a definition of each O-O entity in terms of its legal
class, attributes, operations, and relationships. It provides
rules of legal relationships, such as "A class has zero to
many attributes". The drawings below show the information
in an information model.
Class Diagram Showing Major Table of O-O Entities
O-O Entities with Script Variables with Script
Variables
The following are the major uses of the information (meta) model:
- Evaluating the O-O methodology. We use the information model to understand, evaluate, and extend an O-O methodology. Our information model is based upon the Rumbaugh OMT with interpretations. Developing an information model is an excellent way to understand a new O-O methodology.
- Evaluating a CASE tool. We use the information model to understand and evaluate the capability of CASE tools. A CASE tool provides numerous input boxes for diagrams and text specifications. We check each item in the information model to see if the CASE tools collects that information. For example, does the CASE tool collect interaction and state information.
- Using Script Variables in Scripting CASE tool. Many new CASE tools provide a script capability to create custom reports and to generate source code. The script variables provide a "door" to access model information in the CASE tool repository. The information model shows the script variables. The information model is a graphic depiction of script variables.
The information (meta) model describes the O-O entities and relationships in the Object Model. The Object Model provides a static or structural view of a system. The O-O entities are system, class, superclass, operation, attribute, invariant, parameters, and relationship. In the information model relationship is an O-O entity because we keep information about each relationship. The relationships in the information model are association, aggregation, and generalization specialization. Each O-O entity is represented as a class, e.g. the operation class, the invariant class, and the attribute class. Each class has attributes, relationships, and operations. The attributes and relationships become script variables. Each class has the following operations: create, update, and delete.
In this section we will follow a progression as shown
below.
Object Object Model Object Model Object Model O-O Entities and
Model Class Diagram of Table of Script Variables in Model Diagrams
Objective O-O Entities and O-O Entities and
and O-O Script Variables Script Variables
Entities Object Model O-O Entities and Script
Variables in Specifications
Object Model O-O Entities and Script
Variables in Reports
The Object Model class diagram showing O-O entities and script variables is shown below. It has the Rumbaugh OMT graphic notation. We can see that the Operation Class has a number of attributes. Its attributes are OPERATION_NAME, OPERATION_ACCESS, etc. We see that a class has several one to many aggregation relationships. For example, a class has one to many aggregation relationship with superclasses. If the class is destroyed then the one to many aggregation relationship with superclasses is also destroyed. The CASE tool provides a fill-in form or dialog box to enter operation information. The CASE tool provides a script variable for each attribute and relationship. Refer to your CASE tool documentation for the current script variables. The Object Model O-O Entities and Script Variables are shown below.
The diagram above shows a single script variable
CLASS_INVARIANT which may hold multiple
invariants (rules). Alternatively, an invariant class may be implemented.
The diagram above shows multiple classes implementing relationships.
The CASE tool may provide separate script variables for each relationship.
The following are the separate script variables with sample values:
| Type of Relationship and Cardinality | RELATIONSHIP_TRAVERSAL_PATH_NAME | RELATIONSHIP_TRAVERSAL_CLASS_NAME |
| One to One Aggregation, e.g. Car to Motor | AGGREGATION_ONE_NAME, e.g. currentMotor | AGGREGATION_ONE_CLASS, e.g. Motor |
| One to One Association, e.g. Car to CellularPhone | ASSOCIATION_ONE_NAME, e.g. currentCellularPhone | ASSOCIATION_ONE_CLASS, CellularPhone |
| One to Many Aggregation, e.g. Car to Tire | AGGREGATION_MANY_NAME, e.g. currentTires | AGGREGATION_MANY_CLASS, e.g. Tire |
| One to Many Association, e.g. Car to Passenger | ASSOCIATION_MANY_NAME, e.g. currentPassengers | ASSOCIATION_MANY_CLASS, e.g. Passenger |
Alternatively, the CASE tool may have a single O-O entity with
script variables to implement relationships. A single O-O entity
could collect all the recommended relationship information recommended
in The Object Database Standard: ODMG-93 edited by R.G.G.
Cattell [Cattell-93]. A single O-O entity may have the following
script variables with sample values for the association 1 to 1
relationship between Car and CellularPhone:
Script Variable Sample Value
RELATIONSHIP_TYPE Association,
RELATIONSHIP_CARDINALITY OneToZero/One,
RELATIONSHIP_SOURCE_NAME Car,
RELATIONSHIP_TARGET_NAME CellularPhone,
RELATIONSHIP_TRAVERSAL_PATH_NAME currentCellularPhone,
RELATIONSHIP_PATH_CLASS_NAME CellularPhone,
RELATIONSHIP_CONSTRAINT N/A,
RELATIONSHIP_ORDER_BY_NAME N/A,
RELATIONSHIP_ORDER_BY_CLASS_NAME N/A,
RELATIONSHIP_INVERSE_TRAVERSAL_NAME currentCar, RELATIONSHIP_INVERSE_TRAVERSAL_CLASS_NAME Car,
RELATIONSHIP_DESCRIPTION This is a 1 to 1 association relationship.
The Object Model Information (Meta) Model Table of
O-O Entities and Script Variables is shown below. The attributes
and relationships on the class diagram are script variables. A
script variable representing an attribute is typically a string
of characters. A script variable representing a relationship is
typically the name of a collection of strings. For example, the
script variable within the repeat operator [ATTRIBUTE_NAME]
would list all the attribute names of a class,
e.g. speed, gasQuantity, etc. This lists the attribute names,
e.g. speed, gasQuantity, etc. Some script variables could be implemented
as a Boolean value, e.g. True or False. For example, CLASS_IS_PARAMETERIZED
could hold yes/no or true/false values.
| O-O Entity | Script Variables Holding Attribute Information | [Repeated Script Variables] Holding Relationship Information |
| System | SYSTEM_NAME, SYSTEM_ACCESS, SYSTEM_IMPORTS, SYSTEM_ENCLOSING_SYSTEM, SYSTEM_SUBSYSTEMS, SYSTEM_DESCRIPTION | [CLASS_NAME] |
| Class | CLASS_NAME, CLASS_CARDINALITY, CLASS_ACCESS, CLASS_CONCURRENCY, CLASS_FILENAME, CLASS_IS_PARAMETERIZED, CLASS_PARAMETER_TYPE, CLASS_SIZE, CLASS_ABSTRACT_OR_CONCRETE, CLASS_IS_INDEXED, CLASS_PERSISTENCE, CLASS_LIBRARY_BASE_CLASS, CLASS_AUTHOR_INITIALS, CLASS_INVARIANT, CLASS_DESCRIPTION | [ATTRIBUTE_NAME], [OPERATION_NAME], [INCLUDE_FILE], [SUPERCLASS_NAME], [ASSOCIATION_ONE_NAME], [ASSOCIATION_MANY_NAME], [AGGREGATION_ONE_NAME], [AGGREGATION_MANY_NAME] |
| Attribute | ATTRIBUTE_NAME, ATTRIBUTE_TYPE, ATTRIBUTE_ACCESS, ATTRIBUTE_MAX_VALUE, ATTRIBUTE_MIN_VALUE, ATTRIBUTE_CONSTRAINT, ATTRIBUTE_INITIAL_VALUE, ATTRIBUTE_IS_QUALIFIER, ATTRIBUTE_IS_DERIVED, ATTRIBUTE_IS_KEY, ATTRIBUTE_IS_CONSTANT, ATTRIBUTE_CLASS_OR_OBJECT_ATTRIBUTE, ATTRIBUTE_DESCRIPTION, CPP_ATTRIBUTE_STATIC, CPP_ATTRIBUTE_CONSTANT | |
| Operation | OPERATION_NAME, OPERATION_RETURN_TYPE, OPERATION_ACCESS, OPERATION_TRANSFORMATION, OPERATION_PRECONDITION, OPERATION_POSTCONDITION, OPERATION_EXCEPTION_TYPE, OPERATION_EXCEPTION_NAME, OPERATION_CLASSIFICATION, OPERATION_CONCURRENCY,
OPERATION_CLASS_OR_OBJECT_OPERATION, OPERATION_TIME, OPERATION_SIZE, OPERATION_CODE, OPERATION_COMMENT_1, OPERATION_COMMENT_2, OPERATION_COMMENT_3, OPERATION_DESCRIPTION CPP_OPERATION_VIRTUAL, CPP_OPERATION_PURE_VIRTUAL, CPP_OPERATION_CONSTANT | |
| Association1to1 | ASSOCIATION_ONE_NAME, ASSOCIATION_ONE_CLASS | |
| Association1toM | ASSOCIATION_MANY_NAME, ASSOCIATION_MANY_CLASS | |
| Aggregation1to1 | AGGREGATION_ONE_NAME, AGGREGATION_ONE_CLASS | |
| Aggregation1toM | AGGREGATION_MANY_NAME, AGGREGATION_MANY_CLASS | |
| Superclass | SUPERCLASS_NAME | |
| IncludeFile | INCLUDE_FILE |
The Object Model has a number of diagrams and specifications
display or collect information in script variables. Script variables
are displayed in the class diagram below.
The following sample class diagram shows the values
for the script variables. For example, CLASS_NAME
has the value Car. ATTRIBUTE_NAME
has the value speed. OPERATION_NAME
has the value start. ASSOCIATION_ONE_NAME
or RELATIONSHIP_TRAVERSAL_PATH_NAME
has the value currentCellularPhone.
O-O entities and script variables in the major specification
forms are listed below.
| Specification Name | Specification Labels | Script Variables |
| System Specification | System Name,
Access, Imports, Enclosing System, Subsystems, Description | SYSTEM_NAME,
SYSTEM_ACCESS, SYSTEM_IMPORTS, SYSTEM_ENCLOSING_SYSTEM, SYSTEM_SUBSYSTEMS, SYSTEM_DESCRIPTION |
| Class Specification | Class Name,
Cardinality, Access, Concurrency, File Name, Parameterized (Yes/No), Parameter Type, Form (Abstract or Concrete), Indexed (Yes/No), Persistence (Temporary or Persistent), Size, Description | CLASS_NAME,
CLASS_CARDINALITY, CLASS_ACCESS, CLASS_CONCURRENCY, CLASS_FILENAME, CLASS_IS_PARAMETERIZED, CLASS_PARAMETER_TYPE, CLASS_ABSTRACT_OR_CONCRETE, CLASS_IS_INDEXED, CLASS_PERSISTENCE, CLASS_SIZE, CLASS_DESCRIPTION |
| Operation Specification | Operation Name,
Access, Return Type, Transformation, Precondition, Postcondition, Exception Name, Exception Type, Classification, Concurrency, Form (Class or Object Operation), Time, Size, Code, Comment 1, Comment 2, Comment 3 Description | OPERATION_NAME,
OPERATION_ACCESS, OPERATION_RETURN_TYPE, OPERATION_TRANSFORMATION, OPERATION_PRECONDITION, OPERATION_POSTCONDITION, OPERATION_EXCEPTION_NAME, OPERATION_EXCEPTION_TYPE, OPERATION_CLASSIFICATION, OPERATION_CONCURRENCY, OPERATION_CLASS_OR_OBJECT_OPERATION, OPERATION_TIME, OPERATION_SIZE, OPERATION_CODE, OPERATION_COMMENT_1, OPERATION_COMMENT_2, OPERATION_COMMENT_3, OPERATION_DESCRIPTION |
| Attribute Specification | Attribute Name,
Type, Access, Maximum Value, Minimum Value, Initial Value, Constraint, Qualifier (Yes/No), Derived (Yes/No), Key (Yes/No), Constant (Yes/No), Form (Class or Object Attribute), Description | ATTRIBUTE_NAME,
ATTRIBUTE_TYPE, ATTRIBUTE_ACCESS, ATTRIBUTE_MAX_VALUE, ATTRIBUTE_MIN_VALUE, ATTRIBUTE_INITIAL_VALUE, ATTRIBUTE_CONSTRAINT, ATTRIBUTE_IS_QUALIFIER, ATTRIBUTE_IS_DERIVED,
ATTRIBUTE_IS_KEY, ATTRIBUTE_IS_CONSTANT, ATTRIBUTE_CLASS_OR_OBJECT_ATTRIBUTE, ATTRIBUTE_DESCRIPTION |
| Relationship Specification | Traversal Path Name 1:1 Association
Traversal Class Name 1:1 Association Traversal Path Name 1:MAssociation Traversal Class Name 1:MAssociation Traversal Path Name 1:1 Aggregation Traversal Class Name 1:1 Aggregation Traversal Path Name 1:M Aggregation Traversal Class Name 1:M Aggregation Superclass Name | ASSOCIATION_ONE_NAME
ASSOCIATION_ONE_CLASS ASSOCIATION_MANY_NAME ASSOCIATION_MANY_CLASS AGGREGATION_ONE_NAME AGGREGATION_ONE_CLASS AGGREGATION_MANY_NAME AGGREGATION_MANY_CLASS SUPERCLASS_NAME |
If the CASE tool has a single specification for relationships,
then the following table shows sample specification labels and
script variables.
| Relationship Specification | Relationship Type,
Cardinality, Source, Target, Traversal Path Name, Traversal Class Name, Constraint Order By Name, Order By Class, Inverse Traversal Path Name, Inverse Traversal Class Name, Description | RELATIONSHIP_TYPE, RELATIONSHIP_CARDINALITY, RELATIONSHIP_SOURCE_NAME, RELATIONSHIP_TARGET_NAME, RELATIONSHIP_TRAVERSAL_PATH_NAME, RELATIONSHIP_TRAVERSAL_CLASS_NAME, RELATIONSHIP_CONSTRAINT, RELATIONSHIP_ORDER_BY_NAME, RELATIONSHIP_ORDER_BY_CLASS, RELATIONSHIP_INVERSE_TRAVERSAL_PATH_NAME,
RELATIONSHIP_INVERSE_TRAVERSAL_CLASS_NAME, RELATIONSHIP_DESCRIPTION |
The major use of script variables is to create scripts
for custom reports and code generation. The script to create a
sample Object Model report (data dictionary) is listed below.
After the script is run, then the table is imported into a Windows
word processor to be able to set fonts, sorting, and queries.
The brackets [] indicate the start and stop of the repeat statement.
This script repeats for every class in the system. This script
creates a text file with a comma field delimiter and a CARRIAGE
RETURN record delimiter.
CLASS_NAME, Class, CLASS_NAME
[ATTRIBUTE_NAME, Attribute, CLASS_NAME]
[OPERATION_NAME, Operation, CLASS_NAME]
[ASSOCIATION_ONE_NAME, Traversal Path 1:1 Association, CLASS_NAME]
[ASSOCIATION_MANY_NAME, Traversal Path 1:M Association, CLASS_NAME]
[AGGREGATION_ONE_NAME, Traversal Path 1:1 Aggregation, CLASS_NAME]
[AGGREGATION_MANY_NAME, Traversal Path 1:M
Aggregation, CLASS_NAME]
If the CASE tool provides a single O-O entity for
relationships, substitute the variable for RELATIONSHIP_TRAVERSAL_NAME
for AGGREGATION_ONE_NAME, ASSOCIATION_ONE_NAME,
AGGREGATION_MANY_NAME, and ASSOCIATION_MANY_NAME.
The following is a sample Object Model report. This is a data dictionary listing O-O entities.
Name of the Entity Type of Entity Enclosing Class
(Identifier Name)
| Car | Class | -- |
| speed | Attribute | Car |
| start | Operation | Car |
| currentCellularPhone | Traversal Path 1:1 Association | Car |
| CellularPhone | Class | -- |
| phoneNumber | Attribute | CellularPhone |
| makePhoneCall | Operation | CellularPhone |
The Dynamic Model (Interactions) Information (Meta)
Model describes the O-O entities and relationships in the Dynamic
Model. The dynamic model provides a time-oriented point of view
of a system to model the sequence of interactions over time. The
O-O entities are system, interaction scenario, object, and interaction.
Each O-O entity is represented as a class, e.g. the Interaction
Class. Each class has attributes, relationships, and operations.
The attributes and relationships become script variables. Each
class has the following operations: create, update, and delete.
In this section we will follow a progression as shown below for
the Dynamic Model (Interactions).
Dynamic Dynamic Model Dynamic Model Dynamic Model (Interactions) O-O Entities
Model Class Diagram of Table of and Script Variables in Diagrams
Objective O-O Entities and O-O Entities and
and O-O Script Variables Script Variables
Entities Dynamic Model (Interactions) O-O Entities
and Script Variables in Specifications
Dynamic Model (Interactions) O-O Entities
and Script Variables in Reports
The Dynamic Model Information (Meta) Model class diagram is shown below. It has the Rumbaugh OMT graphic notation. We can see that the Interaction Class has a number of attributes and a single relationship. Its attributes are INTERACTION_SENDER_OBJECT_NAME, INTERACTION_SENDER_CLASS_NAME, etc. The CASE tool provides a fill-in form or dialog box to enter operation information. The CASE tool provides a script variable for each attribute and relationship. Refer to your CASE tool documentation for the current script variables.
The Dynamic Model (Interactions) class diagram showing
O-O entities and script variables is shown below. It has the Rumbaugh
OMT graphic notation. We can see that the Object has the attribute
OBJECT_NAME. We see that the INTERACTION
class has the attribute INTERACTION_OPERATION_NAME.
The CASE tool provides a fill-in form or dialog box to enter operation
information. The CASE tool provides a script variable for each
attribute and relationship. The CASE tool may implement single
script variable INTERACTION_SYNCHRONIZATION
in place of INTERACTION_SIMPLE,
INTERACTION_BALKING, INTERACTION_TIMEOUT,
INTERACTION_SYNC, and INTERACTION_ASYNC.
The Dynamic Model (Interactions) Information (Meta)
Model Table of O-O Entities and Script Variables is shown below.
The attributes and relationships on the class diagram are script
variables.
| O-O Entity | Script Variables Holding Attribute Information | [Repeated Script Variables] Holding Relationship Information |
| Object | OBJECT_NAME, OBJECT_CLASS_NAME, OBJECT_DESCRIPTION | [INTERACTION_OPERATION_NAME] |
| Interaction | INTERACTION_SENDER_OBJECT_NAME, INTERACTION_SENDER_CLASS_NAME, INTERACTION_SENDER_OPERATION_NAME, INTERACTION_RECEIVER_OBJECT_NAME, INTERACTION_RECEIVER_CLASS_NAME, INTERACTION_OPERATION_NAME, INTERACTION_OPERATION_PARAMETERS, INTERACTION_OPERATION_RETURN_TYPE, INTERACTION_BALKING, INTERACTION_TIMEOUT, INTERACTION_SYNC, INTERACTION_ASYNC, INTERACTION_SIMPLE, INTERACTION_SEQUENCE_NUMBER, INTERACTION_DESCRIPTION | None |
The Dynamic Model (Interactions) has a number of diagrams and specifications display or collect information in script variables. Script variables are displayed in the object interaction diagram below.
The following sample object interaction diagram shows the values for the script variables. For example, INTERACTION_SEQUENCE_NUMBER has the value 1. INTERACTION_RECEIVER_OPERATION_NAME has the value start. INTERACTION_RECEIVER_OBJECT_NAME has the value car1. INTERACTION_RECEIVER_CLASS_NAME has the value Car.
O-O entities and script variables in major specification
forms are listed below.
| Specification Name | Specification Label | Script Variable |
| Object Specification | Name,
Class, Description | OBJECT_NAME,
OBJECT_CLASS_NAME, OBJECT_DESCRIPTION |
| Interaction Specification | Sender Object Name,
Sender Class Name Sender Operation Name Receiver Object Name Receiver Class Name Receiver Operation Name Receiver Operation Parameters Receiver Operation Return Type Synchronization Simple, Synchronization Balking, Synchronization Timeout Synchronization Synchronous Synchronization Asynchronous Sequence Number, Description | INTERACTION_SENDER_OBJECT_NAME, INTERACTION_SENDER_CLASS_NAME,
INTERACTION_SENDER_OPERATION_NAME INTERACTION_RECEIVER_OBJECT_NAME, INTERACTION_RECEIVER_CLASS_NAME, INTERACTION_OPERATION_NAME, INTERACTION_OPERATION_PARAMETERS, INTERACTION_OPERATION_RETURN_TYPE, INTERACTION_SIMPLE, INTERACTION_BALKING, INTERACTION_TIMEOUT, INTERACTION_SYNC, INTERACTION_ASYNC, INTERACTION_SEQUENCE_NUMBER, INTERACTION_DESCRIPTION |
The major use of script variables is to create scripts
for custom reports and code generation. The script to create a
sample Dynamic Model (Interactions) report (object interaction
scenario) is listed below. After the script is run, then the table
is imported into a Windows word processor to be able to set fonts,
sorting, and queries. The brackets [] indicate the start and stop
of the repeat statement. This script repeats for every interaction
for each interaction scenario.
[ INTERACTION_SEQUENCE_NUMBER, INTERACTION_SENDER_OBJECT_NAME,
INTERACTION_RECEIVER_OBJECT_NAME, INTERACTION_OPERATION_NAME
]
The following is a sample Dynamic Model (Interactions) report. This is an object interaction scenario.
Sequence Sender Object Receiver Object Invoked Operation
| 1 | External | car1 | start |
| 2 | car1 | motor1 | start |
The Dynamic Model Information (meta) model (States)
describes various O-O entities and relationships in the Dynamic
Model. The dynamic model provides a time-oriented point of view
of a system to model the state changes over time. The O-O entities
are system, class, state, and transition. Each O-O entity is represented
as a class, e.g. the State Class and the Transition Class. Each
class has attributes, relationships, and operations. The attributes
and relationships become script variables. Each class has the
following operations: create, update, and delete. In this section
we will follow a progression as shown below for the Dynamic Model
(States). Refer to your CASE tool documentation for the current
script variables.
Dynamic Dynamic Model Dynamic Model Dynamic Model (States) O-O Entities
Model Class Diagram of Table of and Script Variables in Diagrams
Objective O-O Entities and O-O Entities and
and O-O Script Variables Script Variables
Entities Dynamic Model (States) O-O Entities
and Script Variables in Specifications
Dynamic Model (States) O-O Entities
and Script Variables in Reports
The Dynamic Model (States) Information (Meta) Model
class diagram is shown below. It has the Rumbaugh OMT graphic
notation. We can see that the State Class has a number of attributes
and a single relationship. Its attributes are STATE_NAME,
STATE_DESCRIPTION, etc. The relationship
is [TRANSITION_EVENT]. The relationship
has a cardinality. For example, a state has zero to many transitions.
The CASE tool provides a fill-in form or dialog box to enter operation
information. The CASE tool provides a script variable for each
attribute and relationship.
Dynamic Model (States) Class Diagram Showing O-O
Entities and Script Variables
The Dynamic Model (States) Table of O-O Entities
and Script Variables is shown below. Each attribute and relationship
on the class diagram is a script variable. A script variable representing
an attribute is a string of characters. A script variable representing
a relationship is the name of collection of strings. For example,
the script variable STATES would list all the state names of a
class, e.g. OffState and OperatingState. A CASE tool may also
implement a collection, e.g. STATE_LIST_NAME
and EVENT_LIST_NAME to provide a
list of states and a list of events.
Dynamic Model (States) Information (Meta) Model Table of O-O Entities and Script Variables
| O-O Entity | Script Variables Holding Attribute Information | [Repeated Script Variables] Holding Relationship Information |
| State Group | STATE_ALL_INITIAL_STATE, STATE_ALL_TERMINAL_STATE, STATE_ALL_FAULT_STATE | [STATE-NAME] |
| State | STATE_NAME, STATE_CLASS_NAME, STATE_SUPERSTATE, STATE_DO_ACTIVITY, STATE_ENTRY_ACTION, STATE_EXIT_ACTION, STATE_EVENT_ACTION, STATE_DESCRIPTION | [TRANSITION_EVENT] |
| Transition | TRANSITION_EVENT, TRANSITION_EVENT_WITH_PARAMETERS, TRANSITION_CONDITION, TRANSITION_ACTION, TRANSITION_CURRENT_STATE, TRANSITION_NEXT_STATE, TRANSITION_SEQUENCE_NUMBER, TRANSITION_DESCRIPTION |
The Dynamic Model (States) has a number of diagrams
and specifications display or collect information in script variables.
Script variables are displayed in the state diagram below.
The following sample state diagram shows the values for the script variables. For example, STATE_NAME has the value Off_State. TRANSITION_EVENT_WITH_PARAMETERS has the value start. TRANSITION_CONDITION has the value gasStatus == OK. TRANSACTION_ACTION has the value motor1.start().
O-O entities and script variables in
the major specification forms are listed below.
| Specification Name | Specification Label | Script Variable |
| State Group | Initial State
Terminal State Fault State | STATE_ALL_INITIAL_STATE,
STATE_ALL_TERMINAL_STATE, STATE_ALL_FAULT_STATE |
| State Specification | State Name,
State Class Name, State Superstate, State Do Activity, State Entry Action, State Exit Action, State Event Action, State Description | STATE_NAME,
STATE_CLASS_NAME, STATE_SUPERSTATE, STATE_DO_ACTIVITY, STATE_ENTRY_ACTION, STATE_EXIT_ACTION, STATE_EVENT_ACTION, STATE_DESCRIPTION |
| Transition Specification | Event,
Event Parameters, Condition, Action, Current State, Next State, Description | TRANSITION_EVENT,
TRANSITION_EVENT_PARAMETERS, TRANSITION_CONDITION, TRANSITION_ACTION, TRANSITION_CURRENT_STATE, TRANSITION_NEXT_STATE, TRANSITION_DESCRIPTION |
The major use of script variables is to create scripts
for custom reports and code generation. The script to create a
sample Dynamic Model (States) report (state transition table)
is listed below. After the script is run, then the table is imported
into a Windows word processor to be able to set fonts, sorting,
and queries. The brackets [] indicate the start and stop of the
repeat statement. This script repeats for every transition This
script creates a text file with a comma field delimiter and a
CARRIAGE RETURN record delimiter.
[ TRANSITION_CURRENT_STATE, TRANSITION_EVENT, TRANSITION_CONDITION,
TRANSITION_ACTION, TRANSITION_NEXT_STATE ]
The following is a sample Dynamic Model (States)
report. This is a state transition table.
Current State Event Conditions Actions Next State
| Off_State | start | gasQuantity == OK | motor1.start | Operation_State |
| Operating_State | stop | motor1.stop | Termination |
The Functional Model Information (meta) model describes
operations. The O-O entities are class, operation, and parameter.
The functional model provides a transformation point of view of
a system to model operations that transform inputs into outputs.
Each O-O entity is represented as a class, e.g. the Operation
Class. Each class has attributes, relationships, and operations.
The attributes and relationships become script variables. Each
class has the following operations: create, update, and delete.
The O-O entities are the same as the O-O entities on the Object
Model. These entities are repeated here because the functional
model provides a different point of view and different reports
from the object model. In this section we will follow a progression
as shown below for the Functional Model. Refer to your CASE
tool documentation for the current script variables.
Functional Functional Model Functional Model Functional Model O-O Entities
Model Class Diagram of Table of and Script Variables in Diagrams
Objective O-O Entities and O-O Entities and
and O-O Script Variables Script Variables
Entities Functional Model O-O Entities
and Script Variables in Specifications
Functional Model O-O Entities
and Script Variables in Reports
The Functional Model Information (Meta) Model class diagram is shown below. It has the Rumbaugh OMT graphic notation. We can see that the Operation Class has a number of attributes. The key attributes in this mode are OPERATION_NAME, OPERATION_PARAMETERS, OPERATION_TRANSFORMATION, and OPERATION_RETURN_TYPE. The CASE tool provides a fill-in form or dialog box to enter operation information. The CASE tool provides a script variable for each attribute and relationship. See the Operation Entity in the Object Model Information Model class diagram.
The Functional Information (Meta) Model Table of O-O Entities and Script Variables is the Operation Entity in the Object Model Information Model. Each Operation Entity attribute and relationship on the class diagram is a script variable. See the Operation Entity in the Object Model Information Model Table of O-O entities and script variables.
The Functional Model has a number of diagrams and
specifications display or collect information in script variables.
Script variables are displayed in the operation diagram below.
The following sample operation diagram shows the values for the script variables. For example, OPERATION_NAME has the value addGas. OPERATION_PARAMETERS has the value float newGas. OPERATION_TRANSFORMATION has the value gasQuantity = gasQuantity + newGas. OPERATION_RETURN_TYPE has the value float.
O-O entities and script variables in operation specification
forms are listed below. This shows the Operation Entity in the
Object Model Information Model.
| Specification Name | Specification Label | Script Variable |
| Operation Specification | Operation Name,
Access, Return Type, Transformation, Precondition, Postcondition, Exception Name, Exception Type, Classification, Concurrency, Form (Class or Object Operation), Time, Size, Comment1, Comment2, Comment3, Description | OPERATION_NAME,
OPERATION_ACCESS, OPERATION_RETURN_TYPE, OPERATION_TRANSFORMATION, OPERATION_PRECONDITION, OPERATION_POSTCONDITION, OPERATION_EXCEPTION_NAME, OPERATION_EXCEPTION_TYPE, OPERATION_CLASSIFICATION, OPERATION_CONCURRENCY, OPERATION_CLASS_OR_OBJECT_OPERATION, OPERATION_TIME, OPERATION_SIZE, OPERATION_COMMENT_1, OPERATION_COMMENT_2, OPERATION_COMMENT_3, OPERATION_DESCRIPTION |
The major use of script variables is to create scripts
for custom reports and code generation. The script to create a
sample Functional Model report (operations table) is listed below.
After the script is run, then the table is imported into a Windows
word processor to be able to set fonts, sorting, and queries.
The brackets [] indicate the start and stop of the repeat statement.
This script repeats for every class. This script creates a text
file with a comma field delimiter and a CARRIAGE RETURN record
delimiter.
[CLASS_NAME, OPERATION_NAME, OPERATION_PARAMETERS,
OPERATION_TRANSFORMATION, OPERATION_RETURN_TYPE]
The following is a sample Functional Model report.
This is an operations table.
Class Operation Name Input Transformation Output
Parameters (Return Type)
| Car | addGas | float newGas | gasQuantity = gasQuantity + newGas | float |
| Car | start | gasQuantity = gasQuantity - .1 |
The purpose of this section was to describe the O-O entities and script variables in the Object Model, Dynamic Model (Interactions), Dynamic Model (States), and Functional Model. An information (meta) model consisting of a class diagram and table of O-O entities and script variables was presented for each of these models.