In this example, TopModel is a Rational Rose® RealTime model that contains development components; for example, you can use this model to transform and build an entire product. This model shares the CorePackage package and two different block components for the system: Block1 and Block2. These block models represent small, component-level pieces of the overall system.

The block models have corresponding development models, which are named BlockModel1 and BlockModel2. Each development model owns a Block package and shares the CorePackage package as the top model.
In this migration scenario from Rational Rose RealTime to a later Rational® UML modeling product, you should import the TopModel model first, and you should specify that the CorePackage package, Block1 model and Block2 model import as shadow packages. After you import the TopModel model, you can import each block model. However, when you migrate the block models, each model imports with a duplicate shadow package for CorePackage. You should avoid duplicate content, because it is difficult to maintain and can cause serious memory resource issues during the import process. For example, if you then import the BlockModel1 model, the CorePackage package appears as a shadow package in two different contexts.
To reuse the CorePackage shadow package and to eliminate duplicate shadow packages, you should create a separate model and project from the CorePackage shadow package before you begin the import process. When you create a separate model from the shadow package, you eliminate the dependency of the smaller block models on the entire project, and all duplicate shadow packages are redirected to a common package that resides in a separate model and project.