Part IV Creating C++ Code Generation Scripts
  1. Creating Scripts for the Object, Dynamic, and Functional Models

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.

  1. Using the Information (Meta) Model

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

Figure Progression in Presenting O-O Entities and Script Variables

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.

  1. What is the Information (Meta) Model?

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.

  1. Why is the Information (Meta) Model Important?

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

Figure Class Diagram and Table of O-O Entities and 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.

  1. Object Model O-O Entities and 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

Figure Presenting Object Model O-O Entities and Script Variables
  1. Object Model O-O Entities and Script Variables in a Class Diagram

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.

Figure Class Diagram Showing O-O Entities and Script Variables in the Object Model

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.

  1. Object Model O-O Entities and Script Variables in a Table

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.

Object Model Table of O-O Entities and Script Variables

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]
ClassCLASS_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

  1. Object Model Script Variables in Diagrams

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.

Figure Class Diagram Showing Script Variables in the Object Model

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.

Figure Class Diagram Showing Script Variable Values
  1. Object Model Script Variables in Specifications

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

  1. Object Model Script Variables in Reports

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.

Script to Generate the Data Dictionary in the Object Model

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)

CarClass --
speed Attribute Car
start Operation Car
currentCellularPhone Traversal Path 1:1 Association Car
CellularPhone Class --
phoneNumber Attribute CellularPhone
makePhoneCall Operation CellularPhone

  1. Dynamic Model (Interactions) O-O Entities and Script Variables

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

Figure Presenting O-O Entities and Script Variables in the Dynamic Model (Interactions)

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.

  1. Dynamic Model (Interactions) O-O Entities and Script Variables in a Class Diagram

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.

  1. Dynamic Model (Interactions) O-O Entities and Script Variables in a Class Diagram

Figure Class Diagram Showing O-O Entities and Script Variables in the Dynamic Model (Interactions)
  1. Dynamic Model (Interactions) O-O Entities and Script Variables in a Table

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.

Dynamic Model (Interactions) Table of O-O Entities and 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

  1. Dynamic Model (Interactions) O-O Entities and Script Variables in Diagrams

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.

Figure Object Interaction Diagram (Box Form) Showing Script Variables

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.

Figure Sample Object Interaction Diagram (Box Form)

Figure Sample Object Interaction Diagram (Line Form)
  1. Dynamic Model (Interactions) Script Variables in Specifications

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

  1. Dynamic Model (Interactions) Script Variables in Reports

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.

Script to Generate the Object Interaction Scenario in the Dynamic Model

[ 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

1External car1 start
2car1 motor1 start

  1. Dynamic Model (States) O-O Entities and Script Variables

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

Figure Presenting O-O Entities and Script Variables in the Dynamic Model (States)
  1. Dynamic Model (States) O-O Entities and Script Variables in a Class Diagram

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

Figure Class Diagram Showing O-O Entities and Script Variables in the Dynamic Model (States)
  1. Dynamic Model (States) O-O Entities and Script Variables in a Table

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]
StateSTATE_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

  1. Dynamic Model (States) O-O Entities and Script Variables in the State Diagram

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.

Figure State Diagram Showing Script Variables

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().

Figure State Diagram Showing Script Variable Values
  1. Dynamic Model (States) Script Variables in Specifications

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

  1. Dynamic Model (States) Script Variables in Reports

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.

Script to Generate the State Transition Table in the Dynamic Model

[ 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 startgasQuantity == OK motor1.start Operation_State
Operating_State stop motor1.stop Termination

  1. Functional Model O-O Entities and Script Variables

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

Figure Presenting O-O Entities and Script Variables in the Functional Model
  1. Functional Model O-O Entities and Script Variables in a Class Diagram

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.

  1. Functional Model O-O Entities and Script Variables in a Table

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.

  1. Functional Model O-O Entities and Script Variables in a Diagram

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.

Figure Diagram Showing Script Variables

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.

Figure Diagram Showing Values of Script Variables
  1. Functional Model Script Variables in Specifications

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

  1. Functional Model Script Variables in Reports

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.

Script to Generate the Data Dictionary in the Object Model

[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)

CaraddGas float newGas gasQuantity = gasQuantity + newGas float
Carstart gasQuantity = gasQuantity - .1

  1. Summary

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.

buy cialis cialisfunsurforg cialisfunsurforg onlinehtml site cialis and back pain cialis levitra vs combine viagra and cialis allowed black buy casino cialis diet gambling health jack phentermine poker tag viagra xhtml canada over the counter cialis viagra cialis generic viagra cialis viagra levitra prices women take cialis drug buy cialis tadalafil cialis drinking alcohol cialis online usa levitra vs cialis vs viagra brand name cialis cheapest soft cialis cialis get viagra cialis viagra taking cialis with viagra buy cialis where cialis drugs cialis over dose lowest price generic cialis buy cialis generic ciales web site marketing cialis interaction precautions cialis western open add cialis link new buying generic cialis cialis free cialis suggest url valium detox buy cialis pharmacy cialis experience cialis pills online cialis buy cialis dream pharmaceutical cialis and oral sex cialis lawyer columbus compare viagra cialis levitra viagra cialis levitra buy cialis shop tadalafil cialis fast heart rate cialis online pharmacy online pharmacy cialis seychelles buy cialis ebay find tadalafil cheap cialis cialis injury attorney cincinnati cialis uk similar drugs for cialis buy cialis online submit=buy cialis online cialis dose it work cialis no prescription needed generic cialis muncie indiana buy cialis genericf hostingcom link cialis cheap no prescription cialis injury attorney cleveland cialis versus viagra 20mg cialis canada cialis deals cialis forum cialis free consultation cialis sample price viagra cialis levitra buy cialis link onlineinttc cialis class action lawsuit cialis levitra combine cialis and levitra viagra allowed black buy casino cialis diet gambling jack low online order phentermine poker tag viagra xhtml can cialis and viagra be taken together cialis free sample coupon cialis soft tab online consultation purchase cialis buy cialis online us cialis commercial cialis line differences viagra cialis levitra allowed black casino cialis diet gambling health jack phentermine poker tag viagra xhtml can i get cialis in canada cialis free samples cialis samples sale without prescription cialis in detroit area buy cialis cialis drug prescription cialis on second attempt generic viagra cialis levitra best cialis price canadian perscription of cialis cialis free trial cialis site suggest samples of viagra cialis levitra buy cialis now cialis cheap cialis injury lawyer ohio cialis viagra vs valium buying online buy discount cialis cialis effects side cialis online discount cialis soft allowed black buy casino cialis diet gambling jack online order phentermine poker tag viagra xhtml by cialis comment post posted cialis for sale on line cialis prescription las posas de ciales buy canada cialis cheap generic cialis cialis generic price cialis soft tab prescription cialis on line buy cialis online viagra cialis compare levitra cialis link online suggest discount generic cialis . buy tadalafil cialis cialis for sale cialis open western lowest cialis levitra prices buy cialis dosage effects online side warning cheap cialis generic cialis free sample cialis soft tab online consultation usa side effects of cialis buy cialis link suggest cialis attorney columbus cialis information pamphlet cialis stories viagra cialis generica buy cialis viagra cialis compared to viagra cialis new viagra dangers of taking cialis allowed cialis tag viagra xhtml canada cialis cialis for woman cialis overnight hypertension treatment using cialis buy cheap cialis canadian cialis cialis for women cialis price order cialis submit=order cialis buy cialis in the uk cheapest cialis generic cialis generic cialis sale review cialis levitra viagra buy cialis link onlinenew pharminfo cialis and liver disease cialis how to avoid backache cialis soft tabs penis pump plus cialis buy cialis online cialis comparison levitra viagra cialis icos lily online cialis tadalafil swflash 1.cab buy cialis online dreampharmaceuticals cialis co drug eli impotence lilly cialis julilatiwaveprohostingcom link onlinehtml cialis samples submit=cialis samples mixing cialis and viagra buy cialis without prescription cheap cialis submit=cheap cialis cialis female view cialis review lawsuits involving blindness caused by cialis buy cialis generic online canada cialis line cialis female opinion cialis online submit=cialis online generic cialis submit=generic cialis buy cialis link onlinenettc can you mix cialis and viagra cialis fda approval cialis online buy generic cialis 20 mg best price cialis buy viagra cialis levitra cialis erectile dysfunction cialis official website erection does not go down after taking cialis black casino cialis diet followup gambling health jack phentermine poker post viagra cialis 20mg cialis generic link suggest cialis woman sitemap2 add cialis link buy generic cialis cialis dosage cialis melt packs buy generic cialis online