Recursive Design

Part I: Graphical Model

Graphical Model

Part II: Objects and Attributes

1. PROJECT (RD_P)

Project ( Arbitrary ID, Name, Notation, Description )

Identifiers:
Arbitrary ID

1.1. Project.Arbitrary ID (A)

Data Type: Project ID

1.2. Project.Name

Data Type: Name

1.3. Project.Notation

Data Type: Notation

1.4. Project.Description

Data Type: Description

2. EXTERNAL PROJECT (RD_EP)

External Project ( Project, Order, Name, Description )

Identifiers:
Project + Order

2.1. External Project.Project (R)

References:
Project.Arbitrary ID (across R2)

2.2. External Project.Order (A)

Data Type: External Project Order

2.3. External Project.Name

Data Type: Name

2.4. External Project.Description

Data Type: Description

3. ASSET (RD_A)

Asset ( Project, Order, Asset ID )

Identifiers:
Project + Order
Project + Asset ID

3.1. Asset.Project (R)

References:
Project.Arbitrary ID (across R1)

3.2. Asset.Order (A)

Data Type: Asset Order

3.3. Asset.Asset ID (M)

Data Type: Asset ID

4. LOCAL ASSET (RD_LA)

Local Asset ( Project, Asset )

Identifiers:
Project + Asset

4.1. Local Asset.Project (R)

References:
Asset.Project (across R4)

4.2. Local Asset.Asset (R)

References:
Asset.Asset ID (across R4)

5. IMPORTED ASSET (RD_IA)

Imported Asset ( Project, Asset, External Project, External Asset )

Identifiers:
Project + Asset

5.1. Imported Asset.Project (R)

References:
Asset.Project (across R4)
External Project.Project (across R5)

5.2. Imported Asset.Asset (R)

References:
Asset.Asset ID (across R4)

5.3. Imported Asset.External Project (R)

References:
External Project.Order (across R5)

5.4. Imported Asset.External Asset

Data Type: Asset ID

6. DOMAIN (RD_D)

Domain ( Project, Asset, Name, Domain Category, Mission Statement, Information Model )

Identifiers:
Project + Asset
Project + Name

The following definition is taken from [OOA91]:

"Definition. A domain is a separate real, hypothetical, or abstract world inhabited by a distinct set of objects that behave according to rules and polices characteristic of the domain."

6.1. Domain.Project (R)

References:
Asset.Project (across R3)

6.2. Domain.Asset (R)

References:
Asset.Asset ID (across R3)

6.3. Domain.Name

Data Type: Name

6.4. Domain.Domain Category

Data Type: Domain Category

6.5. Domain.Mission Statement

Data Type: Description

6.6. Domain.Information Model (R)

References:
Information Model.Arbitrary ID (across R6)

7. BRIDGE (RD_B)

Bridge ( Project, Asset, Client Domain, Server Domain, Client Role, Server Role, Client Assumptions, Server Requirements, Operation Owner, Label Prefix )

Identifiers:
Project + Asset
Operation Owner

7.1. Bridge.Project (R)

References:
Asset.Project (across R3)
Domain.Project (across R8)
Domain.Project (across R8)

7.2. Bridge.Asset (R)

References:
Asset.Asset ID (across R3)

7.3. Bridge.Client Domain (R)

References:
Domain.Name (across R8)

7.4. Bridge.Server Domain (R)

References:
Domain.Name (across R8)

7.5. Bridge.Client Role

Data Type: Name

7.6. Bridge.Server Role

Data Type: Name

7.7. Bridge.Client Assumptions

Data Type: Description

7.8. Bridge.Server Requirements

Data Type: Description

7.9. Bridge.Operation Owner (R)

References:
Operation Owner.Arbitrary ID (across R410)

7.10. Bridge.Label Prefix (M)

Data Type: Label Prefix

8. LAYER (RD_L)

Layer ( Project, Asset, Name, Description, Operation Owner, Label Prefix )

Identifiers:
Project + Asset
Project + Name
Operation Owner

8.1. Layer.Project (R)

References:
Asset.Project (across R3)

8.2. Layer.Asset (R)

References:
Asset.Asset ID (across R3)

8.3. Layer.Name

Data Type: Name

8.4. Layer.Description

Data Type: Description

8.5. Layer.Operation Owner (R)

References:
Operation Owner.Arbitrary ID (across R410)

8.6. Layer.Label Prefix (M)

Data Type: Label Prefix

9. CONNECTION (RD_C)

Connection ( Project, Layer, Domain, Role )

Identifiers:
Project + Layer + Role

9.1. Connection.Project (R)

References:
Domain.Project (across R7)
Layer.Project (across R9)

9.2. Connection.Layer (R)

References:
Layer.Name (across R9)

9.3. Connection.Domain (R)

References:
Domain.Name (across R7)

9.4. Connection.Role

Data Type: Name

Part III: Relationships

R1.Project DEFINES Asset (1:Mc)
Asset IS DEFINED BY Project

Formalization:
Asset.Project  Project.Arbitrary ID

R2.Project USES ASSETS DEFINED IN External Project (1:Mc)
External Project DEFINES ASSETS USED BY Project

Formalization:
External Project.Project  Project.Arbitrary ID

R3.Asset IS A (SUPERTYPE OF) Bridge
Asset IS A (SUPERTYPE OF) Domain
Asset IS A (SUPERTYPE OF) Layer

Bridge IS A (SUBTYPE OF) Asset
Domain IS A (SUBTYPE OF) Asset
Layer IS A (SUBTYPE OF) Asset

Formalization:
Bridge.Project  Asset.Project
Bridge.Asset  Asset.Asset ID
Domain.Project  Asset.Project
Domain.Asset  Asset.Asset ID
Layer.Project  Asset.Project
Layer.Asset  Asset.Asset ID

R4.Asset IS A (SUPERTYPE OF) Imported Asset
Asset IS A (SUPERTYPE OF) Local Asset

Imported Asset IS A (SUBTYPE OF) Asset
Local Asset IS A (SUBTYPE OF) Asset

Formalization:
Imported Asset.Project  Asset.Project
Imported Asset.Asset  Asset.Asset ID
Local Asset.Project  Asset.Project
Local Asset.Asset  Asset.Asset ID

R5.Imported Asset IS LOCATED IN External Project (Mc:1)
External Project DEFINES LOCATION OF Imported Asset

Formalization:
Imported Asset.Project  External Project.Project
Imported Asset.External Project  External Project.Order

R6.Domain DEFINES Information Model (1:1c)
Information Model IS DEFINED BY Domain

Formalization:
Domain.Information Model  Information Model.Arbitrary ID

R7.Domain PROVIDES CAPABILITIES TO Connection (1c:Mc)
Connection ALLOWS LAYER TO OBSERVE AND/OR CONTROL Domain

Formalization:
Connection.Project  Domain.Project
Connection.Domain  Domain.Name

R8.Domain ASSUMES CAPABILITIES PROVIDED BY SERVER Domain (Mc:Mc)
Domain PROVIDES CAPABILITIES REQUIRED BY CLIENT Domain
Bridge SATIFIES ASSUMPTIONS OF CLIENT Domain USING CAPABILITIES PROVIDED BY SERVER Domain M-(Mc:Mc)

Formalization:
Bridge.Project  Domain.Project
Bridge.Client Domain  Domain.Name
Bridge.Project  Domain.Project
Bridge.Server Domain  Domain.Name

R9.Layer DEFINES Connection (1:Mc)
Connection ALLOWS DOMAIN TO BE OBSERVED AND/OR CONTROLLED BY Layer

Formalization:
Connection.Project  Layer.Project
Connection.Layer  Layer.Name