UML is used for a wide variety of domains and targets and must therefore be adapted to correspond to the concerns and concepts specific to each target.
For example, the concept of persistence must be introduced when modeling database schemas, while concepts specific to programming languages must be added for targets.
Similarly, the concept of service is required when modeling SOA architectures, while the concept of the system is central to large system modeling.