1.1. Namespace
Da mesma forma que utilizamos nosso sobrenome para identificar os membros da nossa família, podemos utilizar namespaces para agregar componentes semelhantes.
Um pacote UML também oferece um namespace para classificadores que você coloca no pacote. Isso significa que uma vez que você colocar um elemento em um pacote, o seu nome torna-se único para um elemento desse tipo nesse pacote. Você pode criar um elemento com o mesmo nome em um pacote diferente, e ele vai ter uma definição diferente (assim como seu conteúdo). Veja esta analogia em termos de Windows Explorer.
Assim como podemos criar quantas subpastas quisermos em uma hierarquia de arquivos e pastas, podemos criar quantos níveis hierárquicos desejarmos, representando cada subnível por um ponto (“.”) e o nome do subnível. Exemplo, suponha que você tenha uma estrutura hierárquica de pacotes que represente em primeiro nível o nome da empresa, depois o nome do sistema, depois o nome da funcionalidade, para esse exemplo, o padrão do namespace seria “empresa.sistema.funcionalidade.componente”.
Você pode ter dois arquivos com mesmo nome em duas pastas diferentes e esses arquivos (apesar de possuírem o mesmo nome) poderão ter conteúdos completamente diferentes. Exemplo: suponha que seu pacote chama “SistemaX” e que dentro dele exista uma classe de nome “Cliente”, pelo fato de você ter colocado essa classe dentro do pacote, ela pode ser representada pelo namespace “SistemaX.Cliente”.
X