Subsystem

A Subsystem is based on the partitioning of an entire Domain. The number of Subsystems in a Domain is dependent upon the Domain subject matter and complexity.

A Subsystem is composed of objects that tend to cluster, i.e., they have many interconnections with one another but few interconnections with objects in different clusters.

Inter-Subsystem relationships, communications, and accesses are captured in the Subsystem Relationship Model (SRM), Subsystem Communication Model (SCM), and Subsystem Access Model (SAM) respectively.

Part I: Graphical Model

Graphical Model

Part II: Objects and Attributes

1. DOMAIN (S_DOM)

Domain ( Dom_ID, Name, Descrip, Full_Der, Config_ID )

Identifiers:
Dom_ID

A typical software system generally consists of distinct and independant subject matters. A Shlaer/Mellor analysis partition is based within each of these subject matters - each subject matter is called a Domain. A Domain is inhabited by its own conceptual entities (called objects). A domain may be partitioned into subsystems depending upon it's complexity. Each Domain is given a mission statement which provides a charter for the construction of the OOA models.

1.1. Domain.Dom_ID

Full Name: Domain Identifier

Data Type: arbitrary_id

1.2. Domain.Name

Full Name: Domain Name

Data Type: string

1.3. Domain.Descrip

Full Name: Domain Description

Data Type: string

1.4. Domain.Full_Der

Full Name: Fully Derived Flag

A flag indicating whether the Object Communication Model and Object Access Model are fully derived from the information contained in the Object Information Model and Action Specifications.

Domain:
Value 0 indicates OCM and OAM are not fully derived.
Value 1 indicates OCM and OAM are fully derived.

Data Type: boolean

1.5. Domain.Config_ID

Full Name: Configuration Identifier

The configuration ID of the version mangement configuration which the domain is a part of (See Page 57 of BridgePoint Tool Guide). This ID can be used to access the V_CONFIG record corresponding to the Domain/Subsystem Configuration.

Data Type: arbitrary_id

2. SUBSYSTEM (S_SS)

Subsystem ( SS_ID, Name, Descrip, Prefix, Num_Rng, Dom_ID )

Identifiers:
SS_ID

A Subsystem is based on the partitioning of an entire Domain. The number of Subsystems in a Domain is dependent upon the Domain subject matter and complexity.

A Subsystem is composed of objects which tend to cluster, i.e., objects which have many relationships with one another but few relationships with objects in different clusters.

Inter-Subsystem relationships, asynchronous communications, and synchronous accesses are captured in the Subsystem Relationship Model, Subsystem Communication Model and Subsystem Access Model, respectively.

2.1. Subsystem.SS_ID

Full Name: Subsystem Identifier

Data Type: arbitrary_id

2.2. Subsystem.Name

Full Name: Subsystem Name

Data Type: string

2.3. Subsystem.Descrip

Full Name: Subsystem Description

Data Type: string

2.4. Subsystem.Prefix

Full Name: Subsystem Keyletter Prefix

The subsystem keyletter prefix is used when objects are created in the subsystem - the subsystem keyletter prefix is used as the default prefix in the object keyletters.

Data Type: string

2.5. Subsystem.Num_Rng

Full Name: Subsystem Number Range Start

The subsystem number range start is used when objects and relationships are created in the subsystem - the subsystem number range start is used as the default auto-numbering start value in the newly created Object's number and newly created Relationship's number.

Data Type: integer

2.6. Subsystem.Dom_ID (R)

Domain: Same as Domain.Dom_ID

References:
Domain.Dom_ID (across R1)

3. EXTERNAL ENTITY (S_EE)

External Entity ( EE_ID, Name, Descrip, Key_Lett, Dom_ID )

Identifiers:
EE_ID

An External Entity represents something outside of the Domain being modeled that interacts with objects within the Domain being modeled. The interactions are showed by Event Communications in the Object Communication Models and Data Accesses in the Object Access Models. Each External Entity is given a unique name and keyletters within a Domain.

3.1. External Entity.EE_ID

Full Name: External Entity Identifier

Data Type: arbitrary_id

3.2. External Entity.Name

Full Name: External Entity Name

Data Type: string

3.3. External Entity.Descrip

Full Name: External Entity Description

Data Type: string

3.4. External Entity.Key_Lett

Full Name: External Entity Key Letters

Data Type: string

3.5. External Entity.Dom_ID (R)

Domain: Same as Domain.Dom_ID

References:
Domain.Dom_ID (across R8)

4. EXTERNAL ENTITY IN MODEL (S_EEM)

External Entity in Model ( EEmod_ID, EE_ID, Modl_Typ, SS_ID )

Identifiers:
EEmod_ID + EE_ID

The External Entity in Model is the presence of an External Entity in a model such as the Object Communication Model or Object Access Model. The same External Entity can be represented by more than one External Entity in Model in the same model to enhance model layout.

4.1. External Entity in Model.EEmod_ID

Full Name: External Entity in Model Identifier

Data Type: arbitrary_id

4.2. External Entity in Model.EE_ID (R)

Domain: Same as External Entity.EE_ID

References:
External Entity.EE_ID (across R9)

4.3. External Entity in Model.Modl_Typ

Full Name: Model Type

Domain: Value indicates what type of model the External Entity is in:
Value 6 indicates Object Communication Model
Value 7 indicates Object Access Model

Data Type: integer

4.4. External Entity in Model.SS_ID (R)

Domain: Same as Subsystem.SS_ID

References:
Subsystem.SS_ID (across R7)

5. EXTERNAL ENTITY DATA ITEM (S_EEDI)

External Entity Data Item ( EEdi_ID, EE_ID, Name, Descrip, DT_ID )

Identifiers:
EEdi_ID + EE_ID

Interactions between Objects and External Entities shown in the Object Access Models involve the access of data. An External Entity Data Item is a characteristic of an External Entity that an Object may read.

5.1. External Entity Data Item.EEdi_ID

Full Name: External Entity Data Item Identifier

Data Type: arbitrary_id

5.2. External Entity Data Item.EE_ID (R)

Domain: Same as External Entity.EE_ID

References:
External Entity.EE_ID (across R11)

5.3. External Entity Data Item.Name

Full Name: External Entity Data Item Name

Data Type: string

5.4. External Entity Data Item.Descrip

Full Name: External Entity Data Item Description

Data Type: string

5.5. External Entity Data Item.DT_ID (R)

Domain: Same as Data Type.DT_ID

References:
Data Type.DT_ID (across R15)

6. EXTERNAL ENTITY EVENT (S_EEEVT)

External Entity Event ( EEevt_ID, EE_ID, Numb, Mning, Are_KL_C, Cust_KL, Drv_Lbl, Descrip )

Identifiers:
EEevt_ID + EE_ID

An External Entity Event identifies an interaction between an Object and an External Entity and is captured on an Object Communication Model. Each External Entity Event is given a unique label.

6.1. External Entity Event.EEevt_ID

Full Name: External Entity Event Identifier

Data Type: arbitrary_id

6.2. External Entity Event.EE_ID (R)

Domain: Same as External Entity.EE_ID

References:
External Entity.EE_ID (across R10)

6.3. External Entity Event.Numb

Full Name: External Entity Event Number

Data Type: integer

6.4. External Entity Event.Mning

Full Name: External Entity Event Meaning

Data Type: string

6.5. External Entity Event.Are_KL_C

Full Name: Are Key Letters Custom Flag

This is a flag that indicates whether custom label keyletters are used for the External Entity Event.

Domain:
Value 01 indicates custom label keyletters are used.
Value 10 indicates External Entity keyletters are used.

Data Type: boolean

6.6. External Entity Event.Cust_KL

Full Name: External Entity Event Label Key Letters

Data Type: string

6.7. External Entity Event.Drv_Lbl (M)

Full Name: Derived External Entity Event Label

Holds the event label - derived by concatenating the key letters and the event number.

If the Are_KL_C attribute is 0, then the value of the External Entity.NameKey_Lett attribute is concatenated with the External Entity.Numb atttribute.

If the Are_KL_C attribute is 1, then the value of the External Entity.Cust_KL attribute is concatenated with the External Entity.Numb atttribute.

Data Type: string

6.8. External Entity Event.Descrip

Full Name: External Entity Event Description

Data Type: string

7. EXTERNAL ENTITY EVENT DATA ITEM (S_EEEDI)

External Entity Event Data Item ( EEedi_ID, EE_ID, Name, Descrip, DT_ID )

Identifiers:
EEedi_ID + EE_ID

Synchronous interactions from Objects to External Entities modeled by allowing an Object to synchronously access the data items of the External Entity - the interaction is captured on the Object Communication Model. An External Entity Data Item is a characteristic of an External Entity.

7.1. External Entity Event Data Item.EEedi_ID

Full Name: External Entity Event Data Item Identifier

Data Type: arbitrary_id

7.2. External Entity Event Data Item.EE_ID (R)

Domain: Same as External Entity.EE_ID

References:
External Entity.EE_ID (across R12)

7.3. External Entity Event Data Item.Name

Full Name: External Entity Event Data Item Name

Data Type: string

7.4. External Entity Event Data Item.Descrip

Full Name: External Entity Event Data Item Description

Data Type: string

7.5. External Entity Event Data Item.DT_ID (R)

Domain: Same as Data Type.DT_ID

References:
Data Type.DT_ID (across R16)

8. EXTERNAL ENTITY EVENT DATA (S_EEEDT)

External Entity Event Data ( EE_ID, EEevt_ID, EEedi_ID )

Identifiers:
EE_ID + EEevt_ID + EEedi_ID

This object serves as a correlation table.

8.1. External Entity Event Data.EE_ID (R)

Domain: Same as External Entity.EE_ID

References:
External Entity Event.EE_ID (across R13)
External Entity Event Data Item.EE_ID (across R13)

8.2. External Entity Event Data.EEevt_ID (R)

Domain: Same as External Entity Event.EEevt_ID

References:
External Entity Event.EEevt_ID (across R13)

8.3. External Entity Event Data.EEedi_ID (R)

Domain: Same as External Entity Event Data Item.EEedi_ID

References:
External Entity Event Data Item.EEedi_ID (across R13)

9. DATA TYPE (S_DT)

Data Type ( DT_ID, Dom_ID, Name, Descrip )

Identifiers:
DT_ID
DT_ID + Dom_ID

An analyst can assign a data type to the various data items in the OOA, e.g., object attribute, state model event data item, transformer/bridge parameter/return value.

This data type does not capture the representation of the data items, but rather, the characteristics of the data items including:

  1. Value Definition, e.g., whole numbers
  2. Value Range, e.g., values between 0 and 10
  3. Operations, e.g., +, -, *, /

9.1. Data Type.DT_ID

Full Name: Data Type Identifier

Data Type: arbitrary_id

9.2. Data Type.Dom_ID (R)

Domain: Same as Domain.Dom_ID

References:
Domain.Dom_ID (across R14)

9.3. Data Type.Name

Full Name: Data Type Name

Data Type: arbitrary_id

9.4. Data Type.Descrip

Full Name: Data Type Description

Data Type: string

10. CORE DATA TYPE (S_CDT)

Core Data Type ( DT_ID, Core_Typ )

Identifiers:
DT_ID

Core Data Types are those data types which are fundamental, or core, to all data types.

10.1. Core Data Type.DT_ID (R)

Domain: Same as Data Type.DT_ID

References:
Data Type.DT_ID (across R17)

10.2. Core Data Type.Core_Typ

Full Name: Core Data Type Core Type

Domain: Valid Core Types:
0 = void
1 = boolean
2 = integer
3 = real
4 = string
5 = unique_id
6 = current_state
7 = same_as_base
8 = inst_ref<Object>
9 = inst_ref_set<Object>
10 = inst<Event>
11 = inst<Mapping>
12 = inst_ref<Mapping>

Data Type: integer

11. USER DATA TYPE (S_UDT)

User Data Type ( DT_ID, CDT_ID, User_Typ )

Identifiers:
DT_ID

User Data Types are those data types which have been derived from the core data types - they typically are derived because more assumptions can be made about the range of values which can be stored or they are derived to serve as a common funneling point for several data items which share some common data type.

11.1. User Data Type.DT_ID (R)

Domain: Same as Data Type.DT_ID

References:
Data Type.DT_ID (across R17)

11.2. User Data Type.CDT_ID (R)

Domain: Same as Data Type.DT_ID

References:
Core Data Type.DT_ID (across R18)

11.3. User Data Type.User_Typ

Full Name: User Data Type User Type

Domain:
0 = user defined
1 = date
2 = timestamp
3 = inst_ref<Timer>

Data Type: integer

12. BRIDGE (S_BRG)

Bridge ( Brg_ID, EE_ID, Name, Descrip, Brg_Typ, DT_ID )

Identifiers:
Brg_ID

A Bridge is a method associated with an External Entity - bridges can be synchronously called from Action Specifications.

12.1. Bridge.Brg_ID

Full Name: Bridge Identifier

Data Type: arbitrary_id

12.2. Bridge.EE_ID (R)

Domain: Same as External Entity.EE_ID

References:
External Entity.EE_ID (across R19)

12.3. Bridge.Name

Full Name: Bridge Name

Data Type: string

12.4. Bridge.Descrip

Full Name: Bridge Description

Data Type: string

12.5. Bridge.Brg_Typ

Full Name: Bridge Type

Domain:
0 = user defined
1 = predefined bridge

Data Type: integer

12.6. Bridge.DT_ID (R)

Domain: Same as Data Type.DT_ID

References:
Data Type.DT_ID (across R20)

13. BRIDGE PARAMETER (S_BPARM)

Bridge Parameter ( BParm_ID, Brg_ID, Name, DT_ID )

Identifiers:
BParm_ID

A parameter to a bridge.

13.1. Bridge Parameter.BParm_ID

Full Name: Bridge Parameter Identifier

Data Type: arbitrary_id

13.2. Bridge Parameter.Brg_ID (R)

Domain: Same as Bridge.Brg_ID

References:
Bridge.Brg_ID (across R21)

13.3. Bridge Parameter.Name

Full Name: Bridge Parameter Name

Data Type: string

13.4. Bridge Parameter.DT_ID (R)

Domain: Same as Data Type.DT_ID

References:
Data Type.DT_ID (across R22)

Part III: Relationships

R1.Domain IS PARTITIONED INTO Subsystem (1:Mc)
Subsystem IS FIRST LEVEL OF PARTITIONING FOR Domain

Formalization:
Subsystem.Dom_IDDomain.Dom_ID

R2.Subsystem IS DECOMPOSED INTO Object (1:Mc)
Object IS CONTAINED IN Subsystem

Formalization:
Object.SS_IDSubsystem.SS_ID

R3.Subsystem CAN CONTAIN OBJECTS FROM OTHER SUBSYSTEMS VIA Imported Object (1:Mc)
Imported Object REPRESENTS AN OBJECT FROM ANOTHER SUBSYSTEM IN Subsystem

Formalization:
Imported Object.SS_IDSubsystem.SS_ID

R4.Subsystem CONTAINS Relationship (1:Mc)
Relationship ABSTRACTS ASSOCIATIONS BETWEEN OBJECTS IN Subsystem

Formalization:
Relationship.SS_IDSubsystem.SS_ID

R5.Subsystem CONTAINS Communication Path (1:Mc)
Communication Path ABSTRACTS ASYNCHRONOUS COMMUNICATION BETWEEN OBJECTS IN Subsystem

Formalization:
Communication Path.SS_IDSubsystem.SS_ID

R6.Subsystem CONTAINS Access Path (1:Mc)
Access Path ABSTRACTS SYNCHRONOUS DATA ACCESS BETWEEN OBJECTS IN Subsystem

Formalization:
Access Path.SS_IDSubsystem.SS_ID

R7.Subsystem CONTAINS External Entity in Model (1:Mc)
External Entity in Model IS A PRESENCE OF AN EXTERNAL ENTITY IN Subsystem

Formalization:
External Entity in Model.SS_IDSubsystem.SS_ID

R8.Domain INTERACTS WITH External Entity (1:Mc)
External Entity INTERACTS WITH Domain

Formalization:
External Entity.Dom_IDDomain.Dom_ID

R9.External Entity IS REPRESENTED BY External Entity in Model (1:Mc)
External Entity in Model IS A PRESENCE IN SUBSYSTEM MODEL OF External Entity

Formalization:
External Entity in Model.EE_IDExternal Entity.EE_ID

R10.External Entity CAN RECEIVE ASYNCHRONOUS COMMUNICATION VIA External Entity Event (1:Mc)
External Entity Event IS VEHICLE OF COMMUNICATION FOR External Entity

Formalization:
External Entity Event.EE_IDExternal Entity.EE_ID

R11.External Entity Data Item IS DATA FOR External Entity (Mc:1)
External Entity CAN BE ACCESSED SYNCHRONOUSLY VIA External Entity Data Item

Formalization:
External Entity Data Item.EE_IDExternal Entity.EE_ID

R12.External Entity CAN ASYNCHRONOUSLY COMMUNICATE VIA External Entity Event Data Item (1:Mc)
External Entity Event Data Item IS DATA FOR EVENTS OF External Entity

Formalization:
External Entity Event Data Item.EE_IDExternal Entity.EE_ID

R13.External Entity Event MAY CARRY External Entity Event Data Item (Mc:Mc)
External Entity Event Data Item IS CARRIED VIA External Entity Event
External Entity Event Data ASSOCIATES External Entity Event AND External Entity Event Data Item 1-(Mc:Mc)

Formalization:
External Entity Event Data.EEevt_IDExternal Entity Event.EEevt_ID
External Entity Event Data.EE_IDExternal Entity Event.EE_ID
External Entity Event Data.EEedi_IDExternal Entity Event Data Item.EEedi_ID
External Entity Event Data.EE_IDExternal Entity Event Data Item.EE_ID

R14.Domain CONTAINS DEFINED Data Type (1:Mc)
Data Type DEFINES TYPES WITHIN Domain

Formalization:
Data Type.Dom_IDDomain.Dom_ID

R15.Data Type DEFINES THE TYPE OF External Entity Data Item (1:Mc)
External Entity Data Item IS DEFINED BY Data Type

Formalization:
External Entity Data Item.DT_IDData Type.DT_ID

R16.Data Type DEFINES THE TYPE OF External Entity Event Data Item (1:Mc)
External Entity Event Data Item IS DEFINED BY Data Type

Formalization:
External Entity Event Data Item.DT_IDData Type.DT_ID

R17.Data Type IS A (SUPERTYPE OF) Core Data Type
Data Type IS A (SUPERTYPE OF) User Data Type

Core Data Type IS A (SUBTYPE OF) Data Type
User Data Type IS A (SUBTYPE OF) Data Type

Formalization:
Core Data Type.DT_IDData Type.DT_ID
User Data Type.DT_IDData Type.DT_ID

R18.Core Data Type DEFINES DOMAIN OF User Data Type (1:Mc)
User Data Type ARE DEFINED WITHIN Core Data Type

Formalization:
User Data Type.CDT_IDCore Data Type.DT_ID

R19.External Entity USES Bridge (1:Mc)
Bridge PROVIDES ACCESS TO External Entity

Formalization:
Bridge.EE_IDExternal Entity.EE_ID

R20.Data Type DEFINES THE RETURN VALUE Bridge (1:Mc)
Bridge RETURN VALUE DEFINED BY Data Type

Formalization:
Bridge.DT_IDData Type.DT_ID

R21.Bridge IS PART OF Bridge Parameter (1:Mc)
Bridge Parameter CONTAINS Bridge

Formalization:
Bridge Parameter.Brg_IDBridge.Brg_ID

R22.Data Type DEFINES THE TYPE OF Bridge Parameter (1:Mc)
Bridge Parameter IS DEFINED BY Data Type

Formalization:
Bridge Parameter.DT_IDData Type.DT_ID