O que são pacotes e diagramas de pacotes
Pacote é um mecanismo para organizar e gerenciar elementos de modelos no UML, agrupando elementos de modelos conceitualmente semelhantes e relacionados (incluindo estáticos e dinâmicos) em um pacote, formando módulos com diversas funções ou usos, e controlando a visibilidade dos elementos no pacote para facilitar a compreensão de sistemas complexos.
Um diagrama de pacotes é composto por relacionamentos entre pacotes, exibindo as dependências entre os diversos módulos do sistema por meio da descrição dos relacionamentos entre pacotes.
Representação de Pacotes
Os pacotes são representados de maneira semelhante às pastas do sistema operacional, portanto, no UML, utilizam-se símbolos de pasta semelhantes para representá-los:
Nome do Pacote
Dentro do mesmo nível, cada pacote deve ter um nome distinto dos outros pacotes. Os nomes dos pacotes podem ter duas formas:
1. Nome Simples (Simple Name)O nome simples contém apenas a string do nome do pacote, como no exemplo abaixo:
2. Nome de Caminho (Path Name)Em muitos casos, um pacote pode conter outros pacotes. Quando se utiliza um pacote interno, pode-se usar o nome de caminho para especificar o caminho do pacote, com a sintaxe básica: Nome do Pacote Externo::Nome do Pacote Interno. A imagem abaixo ilustra que o pacote “Borrow” está localizado dentro do pacote “SystemInterface”:
Elementos Dentro do Pacote
Pacotes são mecanismos de agrupamento, portanto, um pacote pode conter qualquer elemento do UML, como classes, casos de uso, interfaces, componentes, nós, etc., e também pode conter outros pacotes, diagramas de casos de uso, diagramas de colaboração, diagramas de sequência, etc.
Visibilidade dos Elementos Dentro do Pacote
A visibilidade dos elementos dentro de um pacote inclui três tipos principais:
A imagem abaixo mostra os três tipos de visibilidade dos elementos dentro de um pacote:
Contém três métodos de representação de visibilidade para elementos
A visibilidade das três classes “classe A”, “classe B” e “classe C” na figura acima são públicas, privadas e protegidas respectivamente.
Relacionamentos Entre Pacotes
Os relacionamentos entre pacotes são principalmente de dependência e generalização.
1. DependênciaA dependência entre pacotes refere-se à existência de uma dependência entre alguns elementos de dois pacotes. A dependência é representada por uma linha pontilhada com uma seta, apontando do pacote que depende para o pacote sendo dependido. Os relacionamentos de dependência entre pacotes podem ser generalização, implementação, importação, etc. A imagem abaixo representa a dependência entre dois pacotes:
A dependência de importação (import dependency) permite que os elementos de um pacote acessem os elementos de outro pacote e pode ser representada adicionando o estereótipo <<import>> na linha pontilhada. A dependência de importação não é transitiva.
2. GeneralizaçãoA generalização entre pacotes é semelhante à generalização entre classes. A generalização entre pacotes refere-se a um pacote especializado substituindo elementos de um pacote geral e podendo adicionar novos elementos. Na prática, a generalização entre pacotes também é um tipo de dependência.
Estereótipos de Pacote
A imagem abaixo mostra alguns estereótipos de pacotes e utiliza diferentes gráficos ou símbolos para representá-los:
Princípios de Design de Pacote
Durante a modelagem, pode-se seguir os seguintes princípios:
Técnicas de Modelagem de Diagramas de Pacote
Strictamente falando, o diagrama de pacotes não é um diagrama UML no sentido verdadeiro, mas desempenha um papel importante na categorização de elementos de modelo, estrutura do modelo e namespace de programa. No processo de modelagem, podem-se usar as seguintes práticas para desenhar diagramas de pacotes:
Usando o ProcessOn para Desenhar Diagramas de Pacotes
No ProcessOn, você pode criar diagramas de pacotes dentro de arquivos UML, ou adicionar elementos gráficos necessários à criação do diagrama de pacotes em um diagrama de fluxo.
1. Criar PacoteArraste o elemento "pacote" da seção de componentes gráficos UML na lateral esquerda do editor para a área em branco do editor à direita para criar o pacote.
Crie um pacote usando ProcessOn
2. Renomear PacoteClique no “Nome do Pacote” do gráfico do pacote para renomeá-lo.
3. Adicionar Elementos ao PacoteDurante a criação do diagrama, você pode arrastar gráficos da seção de componentes gráficos à esquerda para a área em branco do editor para criar gráficos. Depois, selecione o gráfico e ajuste as propriedades relacionadas através da barra de ferramentas superior e do painel de ferramentas à direita.
Adicione elementos ao pacote
4. Adicionar Relacionamentos Entre PacotesPara adicionar relacionamentos, use a tecla de atalho “L”, ou arraste o elemento “linha” da seção de componentes gráficos básicos à esquerda para a área em branco do editor, ou mova diretamente de uma extremidade de um gráfico para outra extremidade de um gráfico. Para adicionar uma dependência, selecione o “pacote dependente”, clique em uma extremidade e arraste até o “pacote dependido”, soltando o mouse para completar a dependência.
Exemplos de Modelagem
A seguir, dois exemplos de diagramas de pacotes para ilustrar a aplicação prática dos diagramas de pacotes:
O primeiro exemplo reflete a organização dos elementos do modelo durante a modelagem, usando pacotes para organizar diversos modelos conforme a fase de análise e design do sistema.
A organização de cada elemento do modelo durante o processo de modelagem
O segundo exemplo descreve a organização dos elementos do sistema durante o desenvolvimento. A UI inclui várias interfaces de usuário usadas, BLL contém várias classes ou interfaces para processamento de lógica de negócios, DAL contém classes relacionadas ao acesso a dados, e Common armazena componentes ou classes
compartilhados entre os módulos do sistema.
Organização de vários elementos no desenvolvimento de sistemas