UML Modeling Techniques > Class modeling > Composite structure diagram > Composite structure diagram symbols
  
Composite structure diagram symbols
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 replaces the System Architecture Diagram. For information about using the System Architecture Migration Utility to migrate your System Architecture Diagrams to Composite Structure Diagrams, see Overview of System Architecture Migration utility (System Architecture Migration utility).
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.
For more information, see Actor (dictionary item), and Creating an actor.
Association
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.
For more information, see the following topics:
Association (dictionary item)
Creating an association
Overview of association redefinitions
Class
A Composite Structure Diagram shows Classes as top-level items using the following notation.
The main compartment of a Class can contain Parts and its boundary can include Ports.
For more information, see the following topics:
Class (dictionary item)
Creating a class
Overview of nested classes (includes data types, interfaces and signals)
Data Type
A Composite Structure Diagram shows Classes as top-level items using the following notation.
The main compartment of a Data Type can contain Parts and its boundary can include Ports.
For more information, see Creating a data type, and Data store (dictionary item).
Dependency
You can add Dependencies between Classes, Data Types, Interfaces, Signals, Parts and Ports on a Composite Structure Diagram.
For information about the use of interface realization and uses Dependencies with Interface Classes, see Overview of interfaces.
For more information, see Creating a dependency, and Dependency (dictionary item).
Interface
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.
For more information, see the following topics:
Adding a dependency to a lollipop or cup on a diagram
Adding an existing interface to a diagram
Creating an interface
Interface (dictionary item)
Overview of interfaces
Populating interfaces as lollipops and cups on a diagram
IO Flow
A Composite Structure Diagram can show an IO Flow as an IO Flow Link between items using the following notation.
When an IO Flow is realized by an Association, a Composite Structure Diagram can show the IO Flow on the Association using the following notation.
For more information, see the following topics:
Changing the direction of an io flow on a diagram
Creating an io flow
IO flow (dictionary item)
Populating io flows that are realized by a link on a diagram
Part
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.
For more information, see the following topics:
Adding an existing part to a composite structure diagram
Attribute (dictionary item)
Creating a part
Overview of part and port redefinitions
Overview of parts
Overview of rolling up part and port features
Rescoping a part
Role (dictionary item)
Port
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.
For more information, see the following topics:
Adding an existing port to a composite structure diagram
Attribute (dictionary item)
Creating a port
Overview of part and port redefinitions
Overview of ports
Overview of rolling up part and port features
Rescoping a port
Role (dictionary item)
Signal
A Composite Structure Diagram shows Signals as top-level items using the following notation.
The main compartment of a Signal can contain Parts and its boundary can include Ports.
For more information, see Creating a signal, and Signal (dictionary item).
Redefinitions
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:
Overview of association redefinitions
Overview of part and port redefinitions
Overview of rolling up part and port features