Composite structure diagrams are a UML tool used to model a system’s internal structure, showing how its parts, ports, and connectors interact at runtime. Unlike class diagrams, they focus on the internal composition and collaboration of components.
In this guide, we’ll show you how to make a composite structure diagram step by step, including defining parts, adding ports and connectors, setting multiplicity and visibility, and grouping parts into collaborations. You’ll also learn best practices and see real-world examples to help you model complex systems clearly and effectively.
Steps to Create a UML Composite Structure Diagram
Creating a composite structure diagram is like building a mini blueprint of a system—showing how all the pieces fit and work together. Here’s how you can do it:
Step 1: Place the classifier
Start by creating the main classifier, which represents the overall system or component you want to model.
On your diagram canvas, draw a large rectangle and label it with the classifier’s name — for example, “Car” if you’re modeling a vehicle system. This rectangle will act as a container for all the internal parts, ports, and connections you’ll add next.
Think of it as the “boundary” of your system, giving structure to what happens inside.
Creately tip: Use Creately’s UML diagram tool and its shape library to drag and drop a prebuilt structured classifier shape directly onto your canvas. With quick smart drawing tools and auto-alignment guides, you can easily position and label it. If you’re starting from a template, use Creately’s composite structure diagram templates to skip setup and jump right into modeling.
Step 2: Add the parts inside the classifier
Now that you’ve set up your classifier, it’s time to define its internal components. Inside the rectangle, draw smaller rectangles to represent parts — the individual roles or components that make up the system.
Arrange these parts logically. For example, inside the “Car” classifier, you might add Engine, Wheel, and Axle parts. Place related parts close to each other to make the interactions easier to visualize.
Creately tip: Use Creately’s snap-to-grid feature to keep parts aligned and evenly spaced. You can label each part directly and attach notes and data fields to each part to record additional information, like attributes, operations, or constraints..
Step 3: Add ports
Next, you’ll define how your system interacts with the outside world or between internal parts. Draw small squares on the borders of your classifier or on individual parts — these represent ports, which act as connection points. Label each port clearly according to its role. For instance, your Engine might have a FuelPort, and your Brake might have a HydraulicPort.
Place ports logically — on the side of the part or system where the interaction naturally occurs.
Step 4: Draw connectors
Now, it’s time to show how your parts communicate. Use solid lines to connect parts or ports that interact with one another. Each connector represents a communication path — the exchange of data, energy, or control signals.
For example, connect FuelTank.OutputPort to Engine.FuelPort to show that fuel flows from the tank to the engine. Avoid unnecessary line crossings to keep the diagram tidy and easy to interpret.
Creately tip: Use Creately’s smart connectors to automatically attach and route lines between ports and parts. You can adjust curvature, add arrowheads, or label connectors with message types or signal names. If the diagram grows complex, use layers to separate internal and external interactions for better visibility.
Step 5: Specify multiplicity
Each part in your diagram may represent one or multiple instances. Add multiplicity values next to the parts or ports to clarify this. For example, a car typically has four wheels (Wheel[4]) and one engine (Engine[1]).
These annotations help anyone reading the diagram understand how many instances of each component exist in the system.
Creately tip: Use inline text editing in Creately to quickly add multiplicity values like [1], [4], or [0..*] directly next to part names. You can also use data fields to store multiplicity or instance details for reference without cluttering the diagram.
Step 6: Set visibility
Next, define which parts and ports are accessible externally and which remain internal.
Use UML visibility symbols:
+for public elements (accessible outside the classifier)-for private elements (internal only)#for protected elements (accessible to subclasses)
For instance, the Engine might be internal (-), while a ControlPort is public (+) since it connects to an external controller.
Step 7: Add collaborations (if needed)
Sometimes, several parts work together to perform a specific function. To represent this, group related parts into a collaboration. Draw a dashed ellipse or container around those parts and label it with the collaboration’s name — for example, “ParkingSystem” if it includes the Car, ParkingSensor, and ParkingController parts.
This helps simplify complex systems by showing reusable interaction patterns between components.
Creately tip: Use grouping tools in Creately to visually cluster related parts and apply color-coded backgrounds for clarity. You can also link each collaboration to a separate sub-diagram or document, making it easy to explore more detail when needed.
Step 8: Review and refine
Finally, take a moment to review your diagram. Check that:
Each part, port, and connector is labeled clearly.
Multiplicities and visibility markers are correct.
The layout is clean and logically organized.
If your diagram feels cluttered, adjust spacing, align parts, or simplify unnecessary details. A well-structured diagram should be easy for anyone to understand at a glance.
Creately tip: Use presentation mode in Creately to view your diagram without distractions or share it with your team for feedback. With real-time collaboration and commenting, everyone can refine the structure together. When ready, export your diagram as a PDF, PNG, or SVG for documentation.
Free Composite Structure Diagram Templates
Now that you know how to make a composite structure diagram, here are some ready-to-use examples to get you started.
UML Composite Structure Diagram Template
Bank ATM UML Composite Structure Diagram Example
Apache Tomcat 7 Server UML Composite Structure Diagram Example
Simple UML Composite Structure Diagram Template
Computer System Composite Structure Diagram Example
Best Practices for Effective Modeling
Creating a composite structure diagram isn’t just about connecting parts—it’s about making your system easy to understand and maintain. Here are a few best practices to keep in mind:
Maintain clarity
Keep your diagram simple and easy to read. Avoid overcrowding it with too many elements. If a system feels too complex, consider splitting it into multiple diagrams or using modular views to focus on specific areas.
Be consistent
Stick to standard UML notation and naming conventions throughout your diagram. This makes it easier for others—especially developers, architects, and stakeholders—to interpret your model correctly.
Ensure modularity
Break down your system into smaller, logical parts. Represent each module as an internal structure or part within the composite diagram. This helps you visualize how different parts interact without overwhelming the big picture.
Document everything
Add meaningful labels, notes, and annotations to describe the purpose and behavior of each element. If you’re using Creately, you can attach notes and data fields directly to elements, so anyone viewing the diagram understands the context instantly.
Leverage visual organization
Align and group related components neatly. Use consistent color coding or shapes to differentiate between roles, parts, and connectors. Creately’s smart layout and formatting options make this quick and visually appealing.
Use abstraction wisely
Don’t expose every internal detail at once—use encapsulation to show only the necessary parts or interfaces that other components need to interact with.
FAQs About Composite Diagrams in UML
How is a port different from an interface?
Can a part have multiple instances?
Wheel[4] for four wheels.When should I use composite vs component diagrams?
Can a composite structure diagram represent both software and hardware systems?
How do multiplicity ranges work in composite diagrams?
[4]), optional parts (e.g., [0..1]), or ranges (e.g., [1..*]) to indicate how many instances of a part may exist.What mistakes should I avoid when creating a composite diagram?

