Pergunta

Por uma questão de simplicidade:

Existe um sistema baseado em permissão no lugar com diferentes tipos de níveis de usuários e ações (pense: UNIX permissões do sistema de arquivo)

Qual seria a melhor abordagem para visualizar isso em UML?

Foi útil?

Solução

I normalmente têm classes que representam usuários, funções e permissões. Usuários pertencem a papéis e funções são concedidas permissões. Permissões são necessárias para acessar outros objetos. Em UML suponho que você modelo como uma classe base abstrata e ter várias implementações diferentes, uma para cada função.

Normalmente, eu modelar um Permissão como conjuntos de objetos contendo de,, classes legíveis graváveis ??apagar-capazes entidade de negócios (talvez contendo exclusões de propriedade ou inclusões). Cada função, em seguida, tem uma permissão. Essa permissão permite ou nega o acesso a uma ou mais classes. A permissão é por padrão negado, eo acesso só é permitido se a classe está no conjunto apropriado para a ação solicitada.

Outras dicas

Eu gosto de pensar de um objeto de sistema de arquivo tem de ter uma série de métodos padrão, cada um dos quais tem uma permissão associada.

Existem 9 métodos / permissões de geralmente de interesse: as combinações de (usuário, grupo, Outros) * (ler, escrever, executar). Além disso, há opções como Sticky and SetUID.

Um objeto de sistema de arquivos é associado com um usuário e um grupo. Um utilizador está associado com qualquer número de grupos.

O usuário atual é associado com qualquer número de grupos.

A descrição acima é coisa diagrama de classe bastante normal. sistema de arquivos objetos, usuários, grupos, associações. E os objetos do sistema de arquivos tem uma pilha de atributos e os 9 métodos canônicos.

A restrição sobre o que é permitido não tem um diagrama arrumado. É um conjunto de expressões de regras. A primeira é que conjunto de permissões para uso (usuário, grupo ou outro) e, em seguida, que a permissão no conjunto (ler, escrever ou executar).

Você poderia, suponho, definir uma classe de usuários com algum conjunto de objetos concretos (Unix tem usuário, grupo, outros), e uma classe de operações com algum conjunto de objetos concretos (Unix tem ler, escrever, executar) . Você pode então definir permissões com duas associações: uma para classe de usuário e uma para a classe operação.

Eu acho que é mais fácil de lista apenas os métodos set completas que a fussily diagramar as instâncias de classe combinações de usuário e instâncias de classe operação.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top