CAST uses OMG CISQ AFP specifications to determine when the tables that form a Data Entity are considered as "detail" as shown below:
The OMG CISQ AFP specifications states the following:
In order for a data table to be grouped under a master data table, the following tests must be checked in sequence:
During the data entity grouping process described above, a special analysis is performed for all SQL tables. All other object types are used on a one-to-one basis to create datafunction objects (including those defined manually in the CAST Transaction Configuration Center.
For SQL tables, the automated CAST Transaction Configuration Center grouping process may cause a "main object" (or master) table of a Data Entities to appear as a "detail object" of another Data Entity. Note that this situation only occurs via the automated grouping process - i.e. it is not possible to achieve this manually using the CAST Transaction Configuration Center GUI.
This default automatic behaviour provided by the CAST Transaction Configuration Center is, however, contrary to the OMG CISQ AFP specification that states that "when table A is a master and also a detail of master table B, it should be merged under master table B with all its detailed tables".
DF_A ( A, a1, a2 ) where A is master and a1, and a2 are detailsDF_B ( B, A ) where B is master and A is a detail
in the above example, and according to the OMG CISQ AFP specification, DF_A (Data Entity A) should be removed and merged into DF_B (Data Entity B) as follows:
DF_B ( B, A, a1, a2 ) where B is Master
In order to resolve this issue, CAST has provided an on-demand option that will ensure that the OMG CISQ AFP specifications are fully adhered to. The option can be activated by:
Below you will find the SQL script required to activate/deactivate the option for each RDBMS supported by CAST. Note that you will need to modify the scripts as follows:
declare ret int := 0 ;beginret := SET_TCC_OPTION_DFREORDER( TURN_ON , TRACE_ON );end;
CAST Storage Service
set search_path=db_localselect SET_TCC_OPTION_DFREORDER (TURN_ON , TRACE_ON );
Microsoft SQL Server
exec SET_TCC_OPTION_DFREORDER TURN_ON , TRACE_ON
The following situations are not covered by the option:
DF_A ( A, B) where A is Master DF_B ( B, A) where B is Master
Applying this option may decrease the total number of Data Entities and as a consequence will cause changes in the computed Function Point values for Data Entities and Transactions.
When the TRACE_ON value is set to "1", logging is saved to the WK_TCC_REORDER_TRACE table in the CAST Analysis Service.
If you decide to deactivate the option (i.e. run the relevant script with the value TURN_ON set to "0") then you will need to run the Compute option to undo the changes introduced by activating the option.