0

I have to draw a component diagram that depicts the architecture of my system with its subsystem decomposition and its dependencies.

My system has a 3 tier architecture:

  • The top layer just acts as a system boundary: it gets the HTTP parameter, calls a method and returns a simple response. For this reason, my presentation layer is composed of only one subsystem. Later, during the design or implementation phases, it could be composed of many classes (For example many Java Servlets) but still part of a single subsystem.

  • The middle layer contains all the business logic. I partitioned the layer "horizontally" so that each partition covers different areas of the application domain.

Now I need to depict the interfaces and relationships between my subsystem. This is how it would look like:

enter image description here

Is it possible for a single socket to connect to many balls? And can I omit the arrows?

1

2 Answers 2

1

The UML specifications describe this notation (section 10.4.4):

If a Dependency is wired from a Usage to an InterfaceRealization that are represented using a socket and a lollipop, the dependency arrow may be shown joining the socket to the lollipop

You may relate a named element to as many dependencies as needed, so nothing prevents several dependencies of the same socket to different interface realizations / lollipops be shown.

1

The socket represents an interface that is required or used by a component. The ball represents an interface that is offered or implemented by a component.

It is fairly natural that several components use the same interface and similarly it is not hard to see a situation where the same interface is offered by multiple components. So far, there is nothing wrong or odd with your picture.

Where your picture does become odd to me is that apparently each component offers the exact same interface multiple times. It is not forbidden, but it requires a bit more explanation in the document that this diagram will be a part of. And if each of the 3 or 4 balls on the business layer components actually represents a separate interface, then you probably need to have also 4 sockets on the Presentation subsystem to show that it uses several interfaces to interact with the layer below.

1
  • Thank you for the clarification! Actually, my error was that I was using the lollipop icon to depict a "method" and the socket ball to depict a generic "calls" scenario. Commented Feb 16, 2022 at 18:14

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.