DESCRIPTION:
This module tests the effects of changing the identifier of a
structure contained in the CSS. Changes which occur to the original
structure, the resulting structure and the state of the CSS are
examined.
The following truth table applies when the original and resulting
identifier are different. The information regarding changes to the
CSS network may be derived from the "Org Cont", "Rst Cont" and
NON-EXIST of the resulting state of the truth table.
INITIAL STATE | | RESULTING STATE
----------------------------------------| |-----------------------------------
TC# |Org | Org |Org : Res | Res |Res | |Org | Org |Org : Res | Res |Res
|Stat | Ref |Post : Stat | Ref |Post| |Stat | Cont|Post : Stat | Cont|Post
----------------------------------------| |-----------------------------------
1 | NON-EXIST : NON-EXIST | | NON-EXIST : clos | emp | npt
2 | NON-EXIST : clos | nrf | npt| | NON-EXIST : clos | emp | npt
3 | NON-EXIST : clos | nrf | pst| | NON-EXIST : clos | emp | pst
4 | NON-EXIST : clos | ref | npt| | NON-EXIST : clos | emp | npt
5 | NON-EXIST : clos | ref | pst| | NON-EXIST : clos | emp | pst
6 | NON-EXIST : open | nrf | npt| | NON-EXIST : open | emp | npt
7 | NON-EXIST : open | nrf | pst| | NON-EXIST : open | emp | pst
8 | NON-EXIST : open | ref | npt| | NON-EXIST : open | emp | npt
9 | NON-EXIST : open | ref | pst| | NON-EXIST : open | emp | pst
| |
10 |clos | nrf | npt : NON-EXIST | | NON-EXIST : clos | org | npt
11 |clos | nrf | npt : clos | nrf | npt| | NON-EXIST : clos | org | npt
12 |clos | nrf | npt : clos | nrf | pst| | NON-EXIST : clos | org | pst
13 |clos | nrf | npt : clos | ref | npt| | NON-EXIST : clos | org | npt
14 |clos | nrf | npt : clos | ref | pst| | NON-EXIST : clos | org | pst
15 |clos | nrf | npt : open | nrf | npt| | NON-EXIST : open | org | npt
16 |clos | nrf | npt : open | nrf | pst| | NON-EXIST : open | org | pst
17 |clos | nrf | npt : open | ref | npt| | NON-EXIST : open | org | npt
18 |clos | nrf | npt : open | ref | pst| | NON-EXIST : open | org | pst
| |
19 |clos | nrf | pst : NON-EXIST | |clos | emp | pst : clos | org | npt
20 |clos | nrf | pst : clos | nrf | npt| |clos | emp | pst : clos | org | npt
21 |clos | nrf | pst : clos | nrf | pst| |clos | emp | pst : clos | org | pst
22 |clos | nrf | pst : clos | ref | npt| |clos | emp | pst : clos | org | npt
23 |clos | nrf | pst : clos | ref | pst| |clos | emp | pst : clos | org | pst
24 |clos | nrf | pst : open | nrf | npt| |clos | emp | pst : open | org | npt
25 |clos | nrf | pst : open | nrf | pst| |clos | emp | pst : open | org | pst
26 |clos | nrf | pst : open | ref | npt| |clos | emp | pst : open | org | npt
27 |clos | nrf | pst : open | ref | pst| |clos | emp | pst : open | org | pst
| |
28 |clos | ref | npt : NON-EXIST | |clos | emp | npt : clos | org | npt
29 |clos | ref | npt : clos | nrf | npt| |clos | emp | npt : clos | org | npt
30 |clos | ref | npt : clos | nrf | pst| |clos | emp | npt : clos | org | pst
31 |clos | ref | npt : clos | ref | npt| |clos | emp | npt : clos | org | npt
32 |clos | ref | npt : clos | ref | pst| |clos | emp | npt : clos | org | pst
33 |clos | ref | npt : open | nrf | npt| |clos | emp | npt : open | org | npt
34 |clos | ref | npt : open | nrf | pst| |clos | emp | npt : open | org | pst
35 |clos | ref | npt : open | ref | npt| |clos | emp | npt : open | org | npt
36 |clos | ref | npt : open | ref | pst| |clos | emp | npt : open | org | pst
| |
37 |clos | ref | pst : NON-EXIST | |clos | emp | pst : clos | org | npt
38 |clos | ref | pst : clos | nrf | npt| |clos | emp | pst : clos | org | npt
39 |clos | ref | pst : clos | nrf | pst| |clos | emp | pst : clos | org | pst
40 |clos | ref | pst : clos | ref | npt| |clos | emp | pst : clos | org | npt
41 |clos | ref | pst : clos | ref | pst| |clos | emp | pst : clos | org | pst
42 |clos | ref | pst : open | nrf | npt| |clos | emp | pst : open | org | npt
43 |clos | ref | pst : open | nrf | pst| |clos | emp | pst : open | org | pst
44 |clos | ref | pst : open | ref | npt| |clos | emp | pst : open | org | npt
45 |clos | ref | pst : open | ref | pst| |clos | emp | pst : open | org | pst
| |
46 |open | nrf | npt : NON-EXIST | |open | emp | npt : clos | org | npt
47 |open | nrf | npt : clos | nrf | npt| |open | emp | npt : clos | org | npt
48 |open | nrf | npt : clos | nrf | pst| |open | emp | npt : clos | org | pst
49 |open | nrf | npt : clos | ref | npt| |open | emp | npt : clos | org | npt
50 |open | nrf | npt : clos | ref | pst| |open | emp | npt : clos | org | pst
| |
51 |open | nrf | pst : NON-EXIST | |open | emp | pst : clos | org | npt
52 |open | nrf | pst : clos | nrf | npt| |open | emp | pst : clos | org | npt
53 |open | nrf | pst : clos | nrf | pst| |open | emp | pst : clos | org | pst
54 |open | nrf | pst : clos | ref | npt| |open | emp | pst : clos | org | npt
55 |open | nrf | pst : clos | ref | pst| |open | emp | pst : clos | org | pst
| |
56 |open | ref | npt : NON-EXIST | |open | emp | npt : clos | org | npt
57 |open | ref | npt : clos | nrf | npt| |open | emp | npt : clos | org | npt
58 |open | ref | npt : clos | nrf | pst| |open | emp | npt : clos | org | pst
59 |open | ref | npt : clos | ref | npt| |open | emp | npt : clos | org | npt
60 |open | ref | npt : clos | ref | pst| |open | emp | npt : clos | org | pst
| |
61 |open | ref | pst : NON-EXIST | |open | emp | pst : clos | org | npt
62 |open | ref | pst : clos | nrf | npt| |open | emp | pst : clos | org | npt
63 |open | ref | pst : clos | nrf | pst| |open | emp | pst : clos | org | pst
64 |open | ref | pst : clos | ref | npt| |open | emp | pst : clos | org | npt
65 |open | ref | pst : clos | ref | pst| |open | emp | pst : clos | org | pst
Explanation of columns:
TC# Test case number
INITIAL STATE Indicates the state of the original and resulting
structure before the execution of the <change structure
identifier> function.
NON-EXIST The original or resulting structure does not
exist in the CSS at the time the <change structure
identifier> is executed.
Org or Res Stat open The structure is open at the time the <change
structure identifier> function is executed.
clos The structure is closed at the time the <change
structure identifier> function is executed.
Org or Res Ref ref Another structure in the CSS contains an execute
structure element referring to the designated
structure at the time the <change structure
identifier> function is executed.
nrf No other structure in the CSS contains an execute
structure element referring to the designated
structure at the time the <change structure
identifier> function is executed.
Org or Res Post pst The structure is posted to some workstation
at the time the <change structure identifer>
function is executed.
npt The structure is not posted to any workstation
at the time the <change structure identifier>
function is executed.
RESULTING STATE Indicates the state of the original and resulting
structure after the execution of the <change structure
identifier> function.
NON-EXIST No structure exists with the original identifier
in the CSS after the <change structure identifier>
function is executed.
Org Stat open The structure with the original structure
identifier is open after the <change structure
identifier> function is executed.
clos The structure with the original structure
identifier is closed after the <change structure
identifier> function is executed.
Org Cont emp The structure with the original identifier is
empty after the <change structure identifier>
function is executed.
Org Post pst The original structure identifier is posted to
the same workstation(s) after the <change structure
identifer> function is executed as it was before.
npt The original structure identifier is not posted to
any workstation after the <change structure
identifier> function is executed.
--------------------------------------------------------------
Res Stat open The structure with the resulting structure
identifier is open after the <change structure
identifier> function is executed.
clos The structure with the resulting structure
identifier is closed after the <change structure
identifier> function is executed.
Res Cont org The contents, if any, of the resulting structure
are replaced by the contents of original structure
after the <change structure identifier> function
is executed.
emp The structure with the resulting structure
identifier is empty after the <change structure
identifer> function is executed.
Res Post pst The resulting structure identifier is posted to
the same workstation(s) after the <change structure
identifier> function is executed as it was before.
npt The resulting structure identifier is not posted
to the any workstation after the <change structure
identifier> function is executed.
SEMANTIC REQUIREMENTS:
SR1. When the original and resulting structure identifiers
differ, <change structure identifier> causes the transition from
the initial state to the resulting state as described in the truth
table.
#F
129
#F 129
SR2. <Change structure identifier> creates an empty structure when the original and resulting structure identifier are the same and the common structure does not exist.
#F 129
SR3. When the original and resulting structure identifier are the same and the common structure exists, then no action is performed by execution of <change structure identifier>.
#F 129
SR4. When the original and resulting identifier are the same and the existing common structure is open, then the element position of the structure remains as is after execution of <change structure identifier>.
#F 129
SR5. When the original and resulting structure identifiers differ and the original structure is open after execution of <change structure identifier>, then the element pointer is positioned at 0.
#F 129
SR6. When the original and resulting structure identifiers differ and the resulting structure is open after execution of <change structure identifer>, then the element pointer is positioned at the last element (0 if the structure is empty).
LOCAL DICTIONARY:
Functions ---
129: pcstid <change structure identifier>
Data Structures ---
1 ... operating_state
1.3 ... structure_state
4 ... phigs_state_list
4.2 ... name_of_open_structure
4.3 ... element_pointer
5 ... workstation_state_list
5.7 ... list_of_posted_structures
7 ... structure_state_list
7.1 ... structure_identifier
7.2 ... list_of_workstations_to_which_posted
7.3 ... list_of_structure_elements
7.3.4 ... execute_structure
SEMANTIC CROSS-REFERENCES:
02.01.01/SR05
LOCAL SUBROUTINES: The programs in this module use special-purpose
subroutines:
1. TSTCID performs a test case for the <change structure
identifier> function. Based on the input parameters, it sets up a
test message, executes the function, examines the result, and
issues pass or fail.
2. ELSTR creates a substring consisting of integer pairs to
represent the contents of a structure. Within each pair, the
first value indicates the element type (execute structure or
label) and the second value indicates the element content.
3. TCSCID returns a substring used in the formulation of the test
message. The substring indicates the precondition and expected
postcondition of a particular structure. The structure can be
non-existent, opened or closed, referenced or not referenced,
posted or not posted, and empty or with the contents of original
structure.
4. ACTST returns the actual state of a structure. The structure
can be non-existent, opened or closed, posted or not posted, and
empty or with the contents of original structure or some other
contents.
Calling structure:
TSTCID
/ | \
/ | \
/ | \
/ | \
ELSTR TCSCID ACTST
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.