terça-feira, dezembro 11, 2007

Generalização de atores - Dicas de modelagem de casos de uso

Pergunta originada na lista UML-BR sobre atores em diagramas de caso de uso:



Vamos imaginar um sistema de vendas. Nele temos:


Ator: Vendedor --> Casos de uso: "Emite Pedido de Venda" e "Emite Cotação"


Ator: Gerente --> Casos de uso: "Aprova Pedido" e "Aprova Cotação"


Vamos considerar, que há um "ator especial" que tem um função especifica:



Ator: Supervisor --> Caso de uso: "Mantém Preços de Venda"


Neste cenário, o nosso ator Vendedor se relaciona com os Casos de Usos Emitir Pedido de Venda e Emitir Cotação. O nosso ator Gerente se relaciona com os casos de Usos Aprovar Pedido e Aprovar Cotação. O Supervisor se relaciona com o caso de Uso Manter Preço Venda.



Sabe-se que um Gerente pode também "se passar"por um vendedor. Considerando isto, como posso deixar claro no meu diagrama de casos de uso que um gerente pode assumir o papel de vendedor ?



Minha Resposta:



Primeiro: é importante sempre deixar claro que o ator representa um papel ou perfil (role em inglês) no sistema. Portanto, nada impede que você tenha uma pessoa que possua dois perfis distintos do ponto de vista do sistema. Nesse caso não haveria necessidade de mostrar isso de forma explícita.



Agora, se você quiser deixar bem explícita essa regra no diagrama você pode usar um relacionamento de generalização entre atores. No seu caso, o gerente de vendas herda de vendedor. Isso denota que o gerente de vendas também pode realizar as funcionalidades relacionadas com o vendedor.



Vide a figura abaixo para entender como ficaria o diagrama de casos de uso:

Marcadores:

2 Comentários:

At 9:33 PM, Blogger Lucas Vasconcelos disse...

José, conheci o seu blog através do "TI na Bahia".

O seu exemplo deixou claro o uso de generalização de atores - e pelo que li, isso parece bastante raro.

Recentemente me interessei por análise OO e UML e tenho dúvida em relação a forma de descrever/documentar os cenários alternativos de um caso de uso.

Você poderia me responder qual seria a melhor (mais simples, ou até mesmo a que você usa...) forma para fazer isto?

[]'s

 
At 4:08 PM, Blogger Paula disse...

Legal Papo. Tenho uma dúvida com relação ao que seria perfisXatores.
Atores seriam os perfis do sistema (aquele que damos acesso de leitura, escrita e etc)?
Mas se for permitido a um gestor modificar esse tipo de acesso (RW), não poderiamos estar tirando do ator sua condição de ator? Nesse caso vc não acharia melhor chamar de usuário e o perfil definiria que usuário teria aquele acesso?

Saliento que no seu exemplo para mim ficou claro que eles são atores pq é uma função da organização que é executada por determinada pessoa.

 

Postar um comentário

Links para este artigo:

Criar um link

<< Home


Veja as Estatísticas