Search code examples
architectureuml

Components, Modules, and Subsystems


What is the difference between Components, Modules, and Subsystems in the light of software engineering?

Thanks in advance!


Solution

  • Here are some findings from UML 2.5:

    • Component: This sub clause specifies a set of constructs that can be used to define software systems of arbitrary size and complexity. In particular, it specifies a Component as a modular unit with well-defined Interfaces that is replaceable within its environment. The Component concept addresses the area of component-based development and component-based system structuring, where a Component is modeled throughout the development life cycle and successively refined into deployment and run-time.

      on p. 206. Actually you find a lot of info about components.

    • Subsystem: A number of UML standard stereotypes exist that apply to Component. For example, «Subsystem» to model large-scale Components, and «Specification» and «Realization» to model Components with distinct specification and realization definitions, where one specification may have multiple realizations (see the Standard Profiles).

      on p. 208 (see also p. 680). Subsystem is rarely used.

    • Module: The term module is not used at all in UML 2.5. However, lots of programming languages use that term to bundle things (mostly classes).