Os elementos do modelo UML não precisam estar no mesmo arquivo.
Você pode dividir um único modelo UML em fragmentos, coletas
de elementos que são armazenadas em arquivos separados, mas que, na realidade, fazem parte do modelo principal. A capacidade de dividir um modelo em fragmentos é particularmente útil em ambientes de desenvolvimento em equipe, nos quais várias equipes trabalham em um modelo compartilhado.
Você pode dividir um modelo em fragmentos extraindo pacotes, classificadores
e diagramas em subunidades físicas. Embora os fragmentos sejam armazenados em arquivos
separados, você pode abrir e editar o modelo como se ele fosse um único arquivo. Nesse caso, o modelo completo, incluindo o modelo principal e todos os fragmentos desse modelo, é mencionado como o modelo lógico.
Quando você abre um modelo que contém fragmentos, poderá ver os elementos fragmentados na
visualização Explorador de Projetos, mas não o conteúdo dos
fragmentos. Esses fragmentos fechados são indicados por uma sobreposição com um traço vermelho no centro:
Quando você acessa algum
dos elementos do fragmento, tal como abrindo o pacote fragmentado manualmente ou abrindo
um diagrama que contém um ou mais dos elementos do fragmento, o fragmento é carregado e
a sobreposição no pacote muda para indicar o fragmento aberto:
Dessa maneira, os modelos de fragmentação permitem que uma equipe trabalhe no mesmo modelo sem editar o mesmo arquivo.
A capacidade de salvar partes de um modelo como fragmentos é útil pelas seguintes razões:
- O gerenciamento de alteração é mais fácil porque o número e a complexidade das mesclagens de modelos são significativamente reduzidos e, em alguns caso, eliminados.
- Problemas de desempenho e cobertura de memória são melhorados, particularmente em modelos grandes.
- Você pode usar fragmentos para forçar determinados níveis de disciplinas de arquitetura e design. Por exemplo, um projeto pode estipular que o modelo seja fragmentado por área funcional.
- Você pode separar o desenvolvimento de diagramas visuais do desenvolvimento de conteúdo de modelo semântico salvando os diagramas como fragmentos.
Você pode abrir um fragmento abrindo ou expandindo-o na visualização Explorador de Projetos, acessando os elementos do fragmento (como abrindo um diagrama que contém um ou
mais dos elementos do fragmento) ou clicando com o botão direito do mouse no
modelo (ou em qualquer outro contêiner de fragmentos) e, em seguida,
clicando em Abrir Todos os Subfragmentos.
Boas Práticas para Usar Fragmentos de Modelos
Considere as seguintes boas práticas se você usar fragmentos de modelos:
- Estruture o modelo em vários fragmentos pequenos para que menos mesclagens sejam requeridas.
- Os fragmentos devem ser independentes, com referências mínimas entre fragmentos.
- Armazene os fragmentos no mesmo projeto como o modelo principal, usando uma estrutura de diretório bem-definida. Se você tiver de mover um fragmento, use a refatoração e certifique-se de que todos os fragmentos associados estejam presentes de modo que referências cruzadas sejam atualizadas.
- Se os fragmentos estiverem em projetos separados, use mapas de caminhos para identificar seus locais.
- Seu espaço de trabalho deve conter todos os fragmentos que pertencem ao modelo no qual você está trabalhando, incluindo todos os fragmentos referidos.
- Não crie fragmentos excessivos. Fragmentos não ajudam em pequenos modelos e podem até mesmo ter um impacto negativo.
- Gerencie cuidadosamente os fragmentos; fragmentos não-gerenciados podem resultar em modelos corrompidos.
Absorvendo Fragmentos de Modelos
Se um modelo contiver fragmentos que não são mais requeridos, você pode absorver os elementos de modelos em um fragmento novamente no arquivo de modelo pai. Quando elementos são absorvidos, a conexão entre o arquivo de modelo pai e o arquivo de fragmento é quebrada e o arquivo de fragmento é excluído.
Reparando Fragmentos de Modelos
Se um modelo incluir fragmentos que
contenham referências cruzadas quebradas ou referências para fragmentos ausentes, você poderá
reparar esses problemas utilizando a visualização Editor de Modelos.