RAD Studio (Common)
Designing a UML 2.0 Component Diagram

Following are tips and techniques that you can use when working with UML 2.0 Component Diagrams. It can be convenient to start creation of a model with Component Diagrams if you are modeling a large system. For example, a distributed, client-server software system, with numerous interconnected modules. You use Component Diagrams for modeling a logical structure of your system, while you use Deployment Diagrams for modeling a physical structure.

To design a UML 2.0 Component Diagram, follow this general procedure:

  1. Create a hierarchy of components. The largest component can be the whole system or its major part (for example, server application, IDE, service).
    Tip: You can create nested component nodes. There are two methods for creating a nested component node: You can select an existing component and add a child component inside. Alternatively, you can create two separate components and connect them with an Association-Composition link.
  2. In the hierarchy of components, you can end up by adding concrete classes and instance specifications. You can create them on a Component Diagram directly, or create them on a Class Diagram and put shortcuts on a Component Diagram.
  3. Create interfaces. Each component can have a provided interface and a required interface.
  4. Optionally, create artifacts. Usually, you describe physical artifacts of your system on Deployment Diagrams. But if some component is closely connected with its physical store, add and link an artifact to a Component Diagram.
    Tip: You can create nested artifacts.
  5. Optionally, create ports for your components. You can attach a port to a component and link it with several classes or components inside. In this case, when a message arrives, this port decides which class must handle it.
  6. Draw links between elements.
  7. You can optionally create shortcuts to related elements of other diagrams.

Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!