The Composite Structure Diagram is a UML 2.0 diagram that is useful for modeling the decomposition of structured classes (Classes, Data Types, Interfaces and Signals) through Parts and Ports, and the flow of information between those Parts and Ports. The Composite Structure Diagram provided with Modeler includes support for IO Flows, which is a SysML extension to UML information flows. An important difference between a Composite Structure Diagram and a Class Diagram is that a Composite Structure Diagram shows decomposition in context.
The Composite Structure Diagram can show Actors, Associations, Classes, Data Types, Dependencies, Interfaces, IO Flows, Parts, Ports, Interface Classes, IO Flows and Signals.
Actor
A Composite Structure Diagram shows Actors as top-level items using the following notation.
You can add Associations (typically called connectors on a Composite Structure Diagram) between Classes, Data Types, Interfaces, Signals, Parts, Ports and Actors on a Composite Structure Diagram. When you create an Association on a Composite Structure Diagram, the Association is created between each item in the context of its containing items.
On a Composite Structure Diagram, you can now create Associations as shallow or deep. Unless you have a good reason to do otherwise, always create Shallow Associations. For more information, see
Shallow and deep associations.
On a Composite Structure Diagram you can reconnect Associations.
Composite Structure Diagrams do not show aggregations.
A Composite Structure Diagram shows Interfaces as top-level items using the following notation.
The main compartment of a Data Type can contain Parts and its boundary can include Ports.
In addition, Interfaces can be shown as provided Interface Classes (lollipops) and required Interface Classes (cups) that are dependent on Classes, Data Types, Interfaces and Signals, Parts and Ports.
A Part is a Role or an Attribute (with a Basic Type, Class, Data Type, Interface, Signal or Type Definition set as its data type) in the context of a top-level Class, Data Type, Interface or Signal, and its contained Parts and Ports. A Part appears on a Composite Structure Diagram as a box or a box with a compartment. Non-composite Parts have a dashed outline. A Part has a compartment when it shows contained Parts or Ports.
Note that if the Part contains a Part that has had its Default Value changed in context, on a Composite Structure Diagram the type of the containing Part is shown in brackets. In the preceding example, the Part2 part in context has a Default Value that is different from the Part2 part on the type, that is, Class2.
A Port is an aggregate Role or Attribute (with a Basic Type, Class, Data Type, Interface, Signal or Type Definition set as its data type) set up as a Port in the context of a top-level Class, Data Type, Interface or Signal, and its contained Parts and Ports. An aggregate Role or Attribute is set up as a Port by selecting the Port check box on its Property Pages. A Port appears on a Composite Structure Diagram as a box on the boundary of a Class, Signal, Part or Port. Non-composite Parts have a dashed outline.
When you create a Part or Port, you create that Part or Port in the context of a top-level Class, Data Type, Interface or Signal, and its contained Parts and Ports. If a Part or Port inherits Parts or Ports from its type (Class, Data Type, Interface or Signal), the inherited Parts and Ports are used in a different context to that of the Class, Data Type, Interface or Signal. When a Part or Port is created in a different context, Modeler creates that Part or Port as a redefinition so that you can refine it independently of the item it redefines.
Modeler can also create Associations as redefinitions.
For more information about redefinitions, see the following topics: