Dia g ra m a de C a s o s de U s o
Importante salientar que antes de iniciar a anlise de cada caso de uso em especfico, importante ter a viso geral do sistema que est sendo proposto, por meio das definies de todos os casos de uso. Para isso, utiliza-se o diagrama de casos de uso, composto de: Atores; Casos de uso; Relacionamentos: Incluso (include) Extenso (extend) Generalizao (generalization)
2
Dia g ra m a de C a s o s de U s o
O ator em um diagrama de Casos de Uso (DCU) um PAPEL DESEMPENHADO POR ALGUMA COISA EXTERNA ao sistema (no necessariamente uma pessoa). Outros sistemas (externos) tambm podem ser atores. Atores so representados pelos bonequinhos. A representao do Caso de Uso no Diagrama simples: a elipse representa uma forma que o sistema se comporta do ponto de vista do Ator. O nome do Caso de Uso uma forma de elucidar esse comportamento do sistema, assim sendo, o nome do caso de uso define o OBJETIVO do Ator, isto , o que ele quer fazer no sistema.
uc Casosd...
Ator
uc CasosdeUso
Cadastrar clientes
Dia g ra m a de C a s o s de U s o
Uma linha conecta atores aos Casos de Uso informando que o sistema permitir ao Ator usar o Caso de Uso diretamente. Ex: o ator vendedor quem inicia o caso de uso Cadastrar clientes.
uc CasosdeUso
u c : e x e m p lo s is te m a d e ve ndas
Cadastrar clientes
Efetuar v endas
Gerente
Registrar recebimentos
Dia g ra m a de C a s o s de U s o :
R e la c io n a m e n to de In c lu s o (<<in c lu de >>) Indica que um caso de uso (base) contm o comportamento definido em outro caso de uso. utilizado quando existem comportamentos comuns a vrios casos de uso. Esses comportamentos so descritos em um nico caso de uso que includo em todos os outros que possuem o mesmo comportamento.
<<include>> A B
Dia g ra m a de C a s o s de U s o :
R e la c io n a m e n to de In c lu s o (<<in c lu de >>)
<<include>> A B
O caso de uso includo o b rig a to ria m e n te in s e rido n o c a s o de u s o b a s e sempre que este executado. Um ponto de incluso (in c lu s io n p o in t) indica o local no caso de uso base ao qual o caso de uso includo est associado. B e s s e n c ia l pa ra o c o m po rta m e n to de A .
6
Dia g ra m a de C a s o s de U s o
R e la c io n a m e n to de In c lu s o (<<in c lu de >>) Exemplo: O s ta k e h o ld e r do sistema de pedidos solicitou que exista uma forma de imprimir a segunda via da Venda realizada. Considerando que o caso de uso Efetuar Vendas (j existente) tenha em seu fluxo principal a opo de imprimir a venda que est sendo feita, podese extrair o trecho e criar um caso de uso Imprimir cpia da venda
Dia g ra m a de C a s o s de U s o
R e la c io n a m e n to de E x te n s o (<<e x te n d>>) Incio da tcnica de Caso de Uso: analistas tinham um problema para acrescentar comportamentos em Casos de Uso que j estavam definidos. Eles imaginavam que seria muito bom se o Caso de Uso definido abrisse uma porta para que os novos comportamentos da evoluo do software fossem incorporados. Essa foi a motivao do relacionamento extend.
Dia g ra m a de C a s o s de U s o
R e la c io n a m e n to de E x te n s o (<<e x te n d>>) Especifica que o comportamento de um caso de uso incorpora implicitamente o comportamento de outro caso de uso em um ou mais locais especficos chamados de pontos de extenso (e x te n s io n p o in ts ). Esses pontos so definidos no caso de uso base e a extenso ser adicionada a ele sob uma condio. utilizado para adicionar condicionalmente comportamentos para um caso de uso existente. Esse relacionamento modela um comportamento opcional do sistema, ou seja, a e x e c u o do c a s o de u s o e s te n dido n o o b rig a t ria a o e x e c u ta r o c a s o de u s o b a s e .
Dia g ra m a de C a s o s de U s o
R e la c io n a m e n to de E x te n s o (<<e x te n d>>) O relacionamento extend do caso de uso B para o caso de uso A indica que o caso de uso B po de s e r acrescentado para descrever o comportamento de A (no essencial).
A <<extend>>
10
Dia g ra m a de C a s o s de U s o
R e la c io n a m e n to de E x te n s o (<<e x te n d>>)
Cadastrar Clientes
11
Dia g ra m a de C a s o s de U s o
Com incluso e extenses
Cadastrar Clientes
<<extend>>
Vendedor Efetuar Vendas <<include>> Consultar Vendas <<extend>> Imprimir cpia da venda Registrar Recebimentos Gerente
12
Dia g ra m a de C a s o s de U s o
R e la c io n a m e n to de g e n e ra liza o (<<g e n e ra liz a tio n >>) Entre atores: Os casos de uso de B so tambm casos de uso de a.
Ator B
Ator A
Entre casos de uso: Representa um caso de uso generalizado (pai) que descreve as caractersticas compartilhadas por todos os casos de uso especializados (filhos).
Caso de uso A
Caso de uso B
13
Dia g ra m a de C a s o s de U s o
E x e m plo : Explique o diagrama de casos de uso abaixo:
Fazer Pedido
Cliente
Cancelar Pedido
14
A n lis e de C a s o s de U s o (c o n tin u a o )
A identificao de todos os casos de uso devem atender o que os clientes desejam do sistema; De posse da descrio expandida (narrativa) de cada um deles: Verificar o texto dos casos de uso expandidos. Selecionar termos que representam informao transmitida do ator para o sistema. Agrupar sinnimos.
15
A n lis e de C a s o s de U s o (c o n tin u a o )
C a s o de U s o E s s e n c ia l
C a da s tra r u m c lie n te F lu x o prin c ipa l 1. O cliente chega ao balco para fazer seu cadastro 2. O atendente solicita seu nome e um comprovante de renda (com valor total da renda atualizado) 3. O atendente faz a classificao do cliente e atribui um percentual de desconto 4. O atendente informa ao cliente que seu registro foi feito com sucesso. F lu x o s de e x c e o F E 1 - C lie n te n o le m b ra s u a re n da 1. O cliente no tem um comprovante de renda 2. O atendente solicita que seja providenciado 3. O cliente se dispe a providenciar 4. O registro suspenso. F lu x o s a lte rn a tiv o s No h
A n lis e de C a s o s de U s o (c o n tin u a o )
Termos identificados na 1 avaliao do analista: Cliente Nome Comprovante de Renda Classificao do cliente Percentual de Desconto Em um outro momento o analista pode necessitar esclarecer junto ao stakeholder: Por que necessrio ter um comprovante de renda? O que classificao do cliente e como feita a classificao? Como o percentual de desconto atribudo? Ou pode ser que essas informaes tenham sido obtidas em uma conversa prvia, que tenha sido inclusive gravada em udio.
A n lis e de C a s o s de U s o (c o n tin u a o )
O cliente pode explicar ao analista que (quase nunca de forma to direta como segue): A empresa mantm um cadastro de clientes, com seu cdigo, nome, renda e tipo (Prata e Ouro). Os clientes podem se cadastrar na empresa e participar de 2 categorias (tipos) distintas. Clientes tipo Ouro so aqueles com renda superior a 1000 reais. Estes tm 10% de desconto no valor das suas faturas. Clientes prata so aqueles com renda entre 300 e 1000 reais e tem desconto de 5%. Os demais clientes cadastrados com renda inferior a 300 reais no tem classificao (tipo) e no possuem desconto; Como seria a classe cliente???
A n lis e de C a s o s de U s o (c o n tin u a o )
O analista pode identificar a classe de domnio Cliente, como segue:
class Venda
class Venda
class Venda
-/ -
ou
ClienteOuro ClientePrata
ou
+ti p o
A n lis e de C a s o s de U s o (c o n tin u a o )
Identificar as classes Identificar responsabilidades de cada classe Identificar relacionamentos Identificar atributos Identificar persistncia
20
A n lis e de C a s o s de U s o (c o n tin u a o )
No primeiro passo de anlise, identificaremos trs tipos de classes:
Fronteira Entidade Controle
21
A n lis e de C a s o s de U s o (c o n tin u a o )
C a s o de U s o E s s e n c ia l
C a da s tra r u m c lie n te F lu x o prin c ipa l 1. O cliente chega ao balco para fazer seu cadastro 2. O atendente informa o procedimento e solicita o nome do cliente e um comprovante de renda (com valor total da renda atualizado) [FE1] 3. [EV] O atendente registrar o nome e a renda do cliente 4. [RS] O sistema exibe a classificao do cliente e o percentual de desconto autorizado. 5. O atendente informa ao cliente que seu registro foi feito com sucesso. F lu x o s de e x c e o F E 1 - C lie n te n o le m b ra s u a re n da 1. O cliente no tem um comprovante de renda 2. O atendente solicita que seja providenciado 3. O cliente se dispe a providenciar 4. O registro suspenso. F lu x o s a lte rn a tiv o s No h
A n lis e de C a s o s de U s o (c o n tin u a o )
uma classe de fronteira para lidar com a interao dos atores com o sistema. uma classe de entidade para representar as informaes relevantes do cliente. uma classe de controle para gerenciar o fluxo de execuo do caso de uso.
23
A n lis e de C a s o s de U s o (c o n tin u a o )
TelaCadastroCliente
ControladorCliente
Cliente
<<control>> ControladorCliente
<<entity>> Cliente
24
A n lis e de C a s o s de U s o (c o n tin u a o )
<<boundary>> TelaCadastroCliente
<<control>> ControladorCliente
<<entity>> Cliente
S teremos um cliente? Onde ficaro armazenados os demais? Que classe ser responsvel por realizar as tarefas de persistncia?
25
A n lis e de C a s o s de U s o (c o n tin u a o )
Para cada classe de entidade que precise ser persistente, criada uma nova classe com o esteretipo <<entity collection>> ou <<persistence>>.
<<boundary>> TelaCadastroCliente <<control>> ControladorCliente <<entity>> Cliente
Aps a identificao das classes, necessrio descobrir quais so as responsabilidades de cada classe, o que cada uma precisa fazer. Os diagramas de interao (seqncia e colaborao) so muito teis nesta tarefa. Inicialmente deve-se identificar as informaes trocadas entre os elementos identificados na categorizao BCE.
27
: CadastroClientes : TelaCadastroCliente : Atendente 1 : nome, renda() 2 : nome, renda() 3 : calcula o % de desconto() : ControladorCliente : Cliente
4 : classifica o cliente()
5 : Cria a entidade()
28
Regio de execuo
4 : classifica o cliente()
Estmulo ou mensagem enviada de um objeto para o outro, ou executada pelo mesmo objeto
5 : Cria a entidade()
Quando a linha est cheia, o sistema est ativo (operando ou aguardando o resultado de alguma operao)
29
: CadastroClientes : TelaCadastroCliente : Atendente 1 : nome, renda() 2 : nome, renda() 3 : calcula o % de desconto() : ControladorCliente : Cliente
4 : classifica o cliente()
Por que existe esse envio de informaes? O que TelaCadastroCliente precisa fazer? O mesmo vale para as demais
5 : Cria a entidade()
30
Aps identificarmos as responsabilidades (mtodos) pelos diagramas de interao, devemos acrescentar os mtodos nas classes previamente identificadas (1 passo); Exemplo das classes com mtodos:
<<boundary>> TelaCadastroCliente +cadastrar(nome, renda) <<control>> ControladorCliente +cadastrar(nome, renda) +calculaDesconto() +classificaCliente()
Tambm necessrio identificar quais os atributos das classes Um bom conhecimento do domnio do problema bastante importante para esta tarefa, principalmente na identificao de atributos das classes de entidade Nesta etapa ainda no precisamos indicar quais os tipos dos atributos
32
33
A n lis e de C a s o s de U s o (c o n tin u a o )
E fe tu a r L o g in (re s u m o do c a s o de u s o )
Fluxo principal:
1. Usurio informa login e senha
34
A n lis e de C a s o s de U s o (c o n tin u a o )
Que classes preciso criar?
uma classe de fronteira para lidar com a interao dos atores com o sistema uma classe de entidade para representar as informaes relevantes do aluno uma classe de controle para gerenciar o fluxo de execuo do caso de uso
35
A n lis e de C a s o s de U s o (c o n tin u a o )
TelaLogin
ControladorLogin
Us uario
36
A n lis e de C a s o s de U s o (c o n tin u a o )
< < boundary > > TelaLogin < < c ontrol> > ControladorLogin < < entity > > Us uario
S teremos um usurio? Onde ficaro armazenados os demais usurios? Que classe ser responsvel por realizar as tarefas de persistncia?
37
A n lis e de C a s o s de U s o (c o n tin u a o )
Para cada classe de entidade que precise ser persistente, criada uma nova classe com o esteretipo <<entity collection>> ou <<persistence>>
<<boundary>> TelaLogin
<<control>> ControladorLogin
<<entity>> Usuario
38
Aps a identificao das classes, necessrio descobrir quais so as responsabilidades de cada classe, o que cada uma precisa fazer. Os diagramas de interao (seqncia e colaborao) so muito teis nesta tarefa. Inicialmente deve-se identificar as informaes trocadas entre os elementos identificados durante e categorizados pela mtodo BCE.
39
Aps a identificao das classes, necessrio descobrir quais so as responsabilidades de cada classe, o que cada uma precisa fazer. Os diagramas de interao (sequncia e colaborao) so muito teis nesta tarefa
: usur io : TelaLogin : Con tr olado rLogin : Cadas troA lunos
efetuarLogin(login, s enha) efetua rLogin( log in, s e nha) c hec ar(login, s enh a)
40
Aps identificarmos as responsabilidades (mtodos) pelos diagramas de interao, devemos acrescentar os mtodos nas classes previamente identificadas (1 passo); Exemplo das classes com mtodos:
<<boundary>> TelaLogin efetuarLogin(login, senha) <<control>> ControladorLogin efetuarLogin(login, senha) registrarSessao()
<<entity>> Usuario
41
Tambm necessrio identificar quais os atributos das classes Um bom conhecimento do domnio do problema bastante importante para esta tarefa, principalmente na identificao de atributos das classes de entidade Nesta etapa ainda no precisamos indicar quais os tipos dos atributos
42
43
Classe criada para armazenar (servir de depsito, repositrio) de usurios Conceito do domnio do problema
44
P a u s a pa ra o rg a n iza r o s e le m e n t o s :
P a c ote s
Em UML, um pacote definido como: "Um mecanismo de propsito geral para organizar elementos semanticamente relacionados em grupos." Todos os modelos de elementos que so ligados ou referenciados por um pacote so chamados de "Contedo do pacote". Um pacote possui vrios modelos de elementos, e isto significa que estes no podem ser includos em outros pacotes.
InterfaceGrafica Domnio
Controladora
Persistencia
45