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 )

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)

6. DOMAIN (RD_D)

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

Identifiers:
Project + Asset

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 R7)
Domain.Project (across R7)

7.2. Bridge.Asset (R)

References:
Asset.Asset ID (across R3)

7.3. Bridge.Client Domain (R)

References:
Domain.Asset (across R7)

7.4. Bridge.Server Domain (R)

References:
Domain.Asset (across R7)

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
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 + Role

9.1. Connection.Project (R)

References:
Layer.Project (across R8)
Domain.Project (across R8)

9.2. Connection.Layer (R)

References:
Layer.Asset (across R8)

9.3. Connection.Domain (R)

References:
Domain.Asset (across R8)

9.4. Connection.Role

Data Type: Name

10. TASK (RD_T)

Task ( Project, Order, Name, Description )

Identifiers:
Project + Order
Project + Name

10.1. Task.Project (R)

References:
Project.Arbitrary ID (across R9)

10.2. Task.Order (A)

Data Type: Task Order

10.3. Task.Name

Data Type: Name

10.4. Task.Description

Data Type: Description

11. TASK ACTIVITY (RD_TA)

Task Activity ( Project, Task Row, Activity Column, Short Note, Long Note )

Identifiers:
Project + Task Row + Activity Column

11.1. Task Activity.Project (P)

11.2. Task Activity.Task Row (P)

11.3. Task Activity.Activity Column (M)

Data Type: Positive Integer

11.4. Task Activity.Short Note

Data Type: Description

11.5. Task Activity.Long Note

Data Type: Description

12. ASSET ACTIVITY (RD_AA)

Asset Activity ( Project, Task, Activity, Asset )

Identifiers:
Project + Task + Asset
Project + Task + Activity

12.1. Asset Activity.Project (R)

References:
Task Activity.Project (across R10)
Task.Project (across R11)
Asset.Project (across R11)

12.2. Asset Activity.Task (R)

References:
Task Activity.Task Row (across R10)
Task.Order (across R11)

12.3. Asset Activity.Activity (R)

References:
Task Activity.Activity Column (across R10)

12.4. Asset Activity.Asset (R)

References:
Asset.Asset ID (across R11)

13. SUBSYSTEM ACTIVITY (RD_SA)

Subsystem Activity ( Project, Task, Activity, Information Model, Subsystem )

Identifiers:
Project + Task + Information Model + Subsystem
Project + Task + Activity

13.1. Subsystem Activity.Project (R)

References:
Task Activity.Project (across R10)
Task.Project (across R12)

13.2. Subsystem Activity.Task (R)

References:
Task Activity.Task Row (across R10)
Task.Order (across R12)

13.3. Subsystem Activity.Activity (R)

References:
Task Activity.Activity Column (across R10)

13.4. Subsystem Activity.Information Model (R)

References:
Subsystem.Partitioned Information Model (across R12)

13.5. Subsystem Activity.Subsystem (R)

References:
Subsystem.Name (across R12)

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 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.Asset
Bridge.Project  Domain.Project
Bridge.Server Domain  Domain.Asset

R8.Layer OBSERVES AND/OR CONTROLS Domain (Mc:Mc)
Domain IS OBSERVED AND/OR CONTROLLED BY Layer
Connection CONNECTS Layer AND Domain M-(Mc:Mc)

Formalization:
Connection.Project  Layer.Project
Connection.Layer  Layer.Asset
Connection.Project  Domain.Project
Connection.Domain  Domain.Asset

R9.Task IS DEFINED BY Project (Mc:1)
Project DEFINES Task

Formalization:
Task.Project  Project.Arbitrary ID

R10.Task Activity IS A (SUPERTYPE OF) Asset Activity
Task Activity IS A (SUPERTYPE OF) Subsystem Activity

Asset Activity IS A (SUBTYPE OF) Task Activity
Subsystem Activity IS A (SUBTYPE OF) Task Activity

Formalization:
Asset Activity.Project  Task Activity.Project
Asset Activity.Task  Task Activity.Task Row
Asset Activity.Activity  Task Activity.Activity Column
Subsystem Activity.Project  Task Activity.Project
Subsystem Activity.Task  Task Activity.Task Row
Subsystem Activity.Activity  Task Activity.Activity Column

R11.Task IS PERFORMED TO DELIVER Asset (Mc:Mc)
Asset DELIVERED BY PERFORMING Task
Asset Activity CAPTURES NOTES REGARDING PERFORMANCE OF Task DELIVERING Asset 1-(Mc:Mc)

Formalization:
Asset Activity.Project  Task.Project
Asset Activity.Task  Task.Order
Asset Activity.Project  Asset.Project
Asset Activity.Asset  Asset.Asset ID

R12.Task IS PERFORMED TO DELIVER Subsystem (Mc:Mc)
Subsystem DELIVERED BY PERFORMING Task
Subsystem Activity CAPTURES NOTES REGARDING PERFORMANCE OF Task DELIVERING Subsystem 1-(Mc:Mc)

Formalization:
Subsystem Activity.Project  Task.Project
Subsystem Activity.Task  Task.Order
Subsystem Activity.Information Model  Subsystem.Partitioned Information Model
Subsystem Activity.Subsystem  Subsystem.Name