I would like to ask what is the difference between a subsystem and a component in the UML sense?
I have to agree with Preet, but practically, a subsystem is larger than a component. I use components for libraries (either bought, pillaged, or built) and subsystems for a part of the whole system that performs a given integrated function. For example, in a blood processing device, the centrifuge driver and control would be a component. The integrated blood suction regulation (which includes safety mechanisms, motor control, user control, and communications) would be a subsystem.
Before UML 2.0 I could perfectly see a <<subsystem>>
as a design-time <<component>>
, which would finally become a <<component>>
. The UML 1.4 defines component as "A modular, deployable, and replaceable part of a system that encapsulates implementation and exposes a set of interfaces. A component is typically specified by one or more classifiers (e.g., implementation classes) that reside on it, and may be implemented by one or more artifacts (e.g., binary, executable, or script files)."
After the aforementioned "fuzziness" was introduced to the UML (in UML 2.0), I am more inclined to use <<subsystem>>
as a larger <<component>>
, and see both of them as replaceable and reusable constituents of a system.
From IBM developerWorks - UML basics: The component diagram
The UML 2 specification is quite vague on how a subsystem is different from a component. The specification does not treat a component or a subsystem any differently from a modeling perspective. Compared with UML 1.x, this UML 2 modeling ambiguity is new. But there's a reason. In UML 1.x, a subsystem was considered a package, and this package notation was confusing to many UML practitioners; hence UML 2 aligned subsystems as a specialized component, since this is how most UML 1.x users understood it. This change did introduce fuzziness into the picture, but this fuzziness is more of a reflection of reality versus a mistake in the UML 2 specification.
So in short none.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With