Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between a subsystem and a component

Tags:

uml

modeling

I would like to ask what is the difference between a subsystem and a component in the UML sense?

like image 468
WebMonster Avatar asked May 05 '10 22:05

WebMonster


3 Answers

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.

like image 89
Bruce Avatar answered Oct 04 '22 19:10

Bruce


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.

like image 25
izilotti Avatar answered Oct 04 '22 19:10

izilotti


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.

like image 29
Preet Sangha Avatar answered Oct 04 '22 20:10

Preet Sangha