Search code examples
umldynamic-librarydeployment-diagram

How are dynamically loaded libraries represented in deployment diagrams?


My deployment diagram has a device with a Windows ExecutionEnvironment in it. The application uses several dynamically loaded libraries, some of which are deployed with the application, others into the system itself.

How are dynamically loaded libraries normally represented in deployment diagrams?


My current theory is my application gets its very own execution environment within the Windows where I deploy my application specific dynamically loaded libraries, and have the system libraries deployed outside it:

deployment diagram

For above diagram the system has v1 of libraryA and libraryB installed, and v2 of libraryA is deployed with the application, shadowing the system version.


Solution

  • Your approach makes perfectly sense:

    ExecutionEnvironments represent standard software systems that application components may require at execution time.

    Moreover:

    Artifacts elaborate and reify the abstract notion of DeployedArtifact. They represent concrete elements in the physical world, may have Properties representing their features and Operations that can be performed their instances, and may be multiply-instantiated so that different instances may be deployed to various DeploymentTargets, each with separate property values.

    This applies perfectly to dynamic libraries, where there is one library loaded by the OS and that may be used by multiple applications, each in its own address space.

    Some hints:

    • You could use the «Library» and «Executable» stereotypes of the UML standard profile to better distinguish different kind of artifacts.
    • You could add the dependency from the executable to the required libraries