Fragments in UML models
You can divide a model into fragments by extracting packages, classifiers, and diagrams into physical subunits. Although the fragments are stored in separate files, you can open and edit the model as though it were in a single file. In this case, the complete model, including both the main model and all of the fragments of that model, is referred to as the logical model.
When you open a model that contains fragments, you can see the fragmented elements in the Project Explorer view, but not the contents of the fragments. These closed fragments are indicated by an overlay with a red strike through it:


The ability to save portions of a model as fragments is helpful for the following reasons:
- Change management is easier because the number and complexity of model merges is significantly reduced and in some cases eliminated.
- Performance and memory footprint issues are improved, particularly in large models.
- You can use fragments to enforce certain levels of architectural and design discipline. For example, a project might stipulate that the model be fragmented by functional area.
- You can separate the development of visual diagrams from the development of the semantic model content by saving the diagrams as fragments.
You can open a fragment by opening or expanding it in the Project Explorer view, accessing the elements in the fragment (such as by opening a diagram that contains one or more of the elements in the fragment), or by right-clicking the model (or any other container of fragments) and then clicking Open All Sub-Fragments.
Best practices for using model fragments
Consider the following best practices if you use model fragments:
- Structure the model into several small fragments so that fewer merges are required.
- Fragments should be fairly independent, with minimal cross-fragment references.
- Store fragments in the same project as the main model, using a well-defined directory structure. If you must move a fragment, use refactoring and ensure that all associated fragments are present so that cross-references are updated.
- If fragments are in separate projects, use pathmaps to identify their locations.
- Your workspace should contain all the fragments that belong to the model you are working on, including all referenced fragments.
- Do not create excessive fragments. Fragments do not help in small models and might even have a negative impact.
- Carefully manage the fragments; mismanaged fragments can result in corrupt models.
Absorbing model fragments
If a model contains fragments that are no longer required, you can absorb the model elements in a fragment back into the parent model file. When elements are absorbed, the connection between the parent model file and the fragment file are broken, and the fragment file is deleted.
Repairing model fragments
If a model includes fragments that contain broken cross-references, or references to missing fragments, you can repair these problems by using the Model Editor view.