Você está na página 1de 50

UML Aula I Diagramas de Caso de Uso, Sequncia e Colaborao

Ricardo Argenton Ramos


Engenharia de Software II 2013.1

Um Exerccio
Como voc pode representar ?
Uma casa de 2 andares, 4 quartos, 2 banheiros, 1 sala, 1 cozinha e 1 copa;

ps. Imagine que voc um corretor de imveis e que o cliente no est prximo da casa.

Assim como o texto de descrio de uma casa do exerccio anterior importante que voc utilize outros mecanismos de abstrao para ajudar que o cliente entenda o seu produto. Tais como grficos, figuras, projetos etc.

Contedo desta aula


UML Diagramas de Caso de Uso, Classes, Sequncia, Colaborao

RAMOS, R. A. . Treinamento Prtico em UML. 1. ed. So Paulo: Digerati, 2006. v. 1. 144p .

UML Linguagem de Modelagem

BOOCH Diagrama de Estados Diagrama de Objetos (colaborao) Diagramas de Processo (desenvolvimento) Diagramas de Mdulos (componentes)

UML

OMT Diagrama de Estados

OOSE Casos de Uso Subsistemas (Pacotes) Diagramas de Interaes

UML
uma linguagem de modelagem para: Estados, Atividades, Componentes e Aplicao.

Visualizao, Especificao, Construo, Documentao e Comunicao.

Diagramas de Caso de Uso


Um diagrama de casos de uso descreve a relao entre atores (usurios de um sistema, pode ser tambm outros sistemas) e casos de uso (funcionalidades) de um dado sistema. Este um diagrama que permite dar uma viso global e de alto nvel do sistema, sendo fundamental a definio correta da sua fronteira.

Exemplo

Casos de Uso e Cenrios


Um cenrio uma determinada seqncia de aes que ilustra um comportamento do sistema. Numa definio mais abstrata, deve-se entender um cenrio como uma instncia de um caso de uso, sendo normal que um caso de uso possa ser descrito por dezenas de possveis cenrios. Uma designao alternativa para cenrio, por vezes utilizada, fluxo de aes.

Casos de Uso e Cenrios


Deve-se especificar o comportamento de um caso de uso descrevendo textualmente um ou mais fluxos de aes, de modo que um usurio no tcnico o possa entender sem dificuldade. Tal especificao deve incluir:
Como e quando o caso de uso comea e termina; Quando que o caso de uso interage com os atores; Que objetos so trocados; Cenrio principal, e Cenrios alternativos (e.g., situaes de exceo).

Exemplo 1

Validar Usurio usurio

Exemplo 1: Especificao textual do caso de uso Validar Usurio.


Nome: Validar Usurio Cenrio Principal O caso de uso inicia-se quando o sistema apresenta uma tela que pede ao cliente o seu carto eletrnico. O cliente introduz o seu carto magntico e, atravs de um pequeno teclado, a sua senha. Note-se que o cliente pode limpar a introduo da sua senha inmeras vezes e re-introduzir um novo nmero antes de pressionar o boto Entrar. O cliente ativa o boto Entrar para confirmar. O sistema l a senha e a respectiva identificao do carto, e verifica se vlido. Se a senha for vlida o sistema aceita a entrada e o caso de uso termina. Cenrio Alternativo 1 (Cliente cancela operao) O cliente pode cancelar a transao em qualquer momento ativando o boto Cancelar, implicando a re-inicializao do caso de uso. No realizada qualquer alterao conta do cliente. Cenrio Alternativo 2 (senha invlida) Se o cliente introduz uma senha invlida o carto MB ejetado e o caso de uso reinicializado. Se tal ocorrer 3 vezes consecutivas, o sistema aciona medidas de segurana e recolhe o carto e cancela a transao; no permitindo qualquer interao nos 2 minutos seguintes.

Casos de Uso e Cenrios


Outras formas alternativas ou complementares, podem ainda incluir:
A especificao de pr e ps-condies, Os atores que iniciam o caso de uso, Os atores que beneficiam com o caso de uso, Um ou mais diagramas de interao.

Outro exemplo
Informao itens

Comprar Itens Valor a ser pago

Comprar Itens
1.Cliente chega a um Caixa com vrios itens que deseja comprar. 2. O Caixa comea a nova venda. 3.O Caixa registra o identificador de cada item. 4.Sistema registra o item vendido. Preo do item e sua descrio so exibidos. Os passos 3 e 4 so repetidos, at que o Caixa indique o seu fim. 5.Sistema apresenta o total da venda. 6.Caixa informa Cliente do total e solicita pagamento. 7.Cliente realiza o pagamento. 8.Caixa registra o valor recebido no caixa. 9.Um recibo gerado. 10.Caixa entrega o troco para o cliente. 11.Cliente sai com os itens comprados e recibo

Erro comum em Casos de Uso


representar como casos de uso passos individuais, operaes ou transaes. Exemplo: Imprimir recibo no um caso de uso e sim uma operao de impresso, um passo no processo mais amplo de Comprar Itens

Como identificar um Caso de Uso


1 mtodo:
Identificar os atores relacionados a um sistema ou organizao. Para cada ator, identificar os processos que eles iniciam ou dos quais eles participam.

2 mtodo:
Identificar os eventos externos aos quais um sistema deve responder Relacionar os eventos a atores e a casos de uso.

Classificao de Casos de Uso


Primrios
Processos comuns, principais. (ex: comprar itens)

Secundrios
Processos menos importantes ou raros (ex: solicitar estocagem de novo produto)

Opcionais
Processos que podem no ser considerados.

Relaes entre Casos de Uso


Os casos de uso podem encontrar-se relacionados atravs de trs tipos de relaes:
generalizao, incluso e extenso.

Estas relaes potenciam significativamente o reuso da especificao de requisitos. Este um aspecto essencial da filosofia dos casos de uso e que normalmente no facilmente apreendido pelos praticantes inexperientes.

Generalizao em Casos de Uso


O caso de uso Validar Usurio especializado em outros dois, que utilizam diferentes mecanismos de identificao do usurio: Testar Senha e Leitura com Smartcard.

usurio

Incluso em Casos de Uso


A relao de incluso (include) entre casos de uso corresponde a uma relao tpica de delegao, significando que o caso base incorpora o comportamento do outro caso relacionado. Usa-se a relao de incluso para evitar a descrio dos mesmos fluxos de aes inmeras vezes. A relao de incluso representada por uma relao de dependncia (seta tracejada) com o esteretipo include.

Incluso em Casos de Uso


Os casos de uso Obter Extrato de Conta ou Realizar Pagamentos exigem que seja realizada previamente uma validao do respectivo usurio. Para que essa funcionalidade no seja especificada mais que uma vez, os casos anteriores incorporam-na (como sua) ao estabelecerem uma relao de incluso com o caso Validar Usurio.

usurio

Especificao textual do caso de uso Obter Extrato de Conta


Nome: Obter Extrato de Conta Cenrio Principal Incluir caso de uso Validar Usurio. Obter e verificar o nmero da conta. Selecionar todas as linhas de movimentos realizados nos ltimos 30 dias. Produzir uma lista resumo com esses movimentos, apresentando a data, o tipo de movimento (dbito ou crdito), uma breve descrio e o valor do movimento. Produzir o saldo corrente da conta. Emitir um documento com essa informao, imprimindo no terminal do caixa eletrnico o referido documento. Apresentar mensagem no visor do terminal para o cliente retirar o extrato. Registrar na conta do cliente que esta operao foi realizada com sucesso. Cenrio Alternativo 1

Extenso em Casos de Uso


Uma relao de extenso (extend) entre casos de uso significa que o caso de uso base incorpora implicitamente o seu comportamento num local especificado indiretamente pelo caso de uso que usado. Ou seja, o caso de uso destino pode ser estendido com o comportamento de outro(s) caso(s) de uso(s). Uma relao de extenso permite representar: A parte de um caso que um usurio v como opcional, ou como existindo vrias alternativas. Um sub-fluxo de aes que executado apenas se determinadas condies se verificarem. Vrios fluxos de aes que podem ser inseridos num determinado ponto de extenso, de forma controlada, atravs de uma interao explcita com um ator.

Extenso em Casos de Uso


O caso de uso destino estendido num ou mais pontos, designados por pontos de extenso os quais so mecanismos de variabilidade. Ou seja, so pontos de entrada do caso de uso que lhe d algum nvel de configurao e versatilidade.

Especificao textual do caso de uso Obter Extrato de Conta revisto.


Nome: Obter Extrato de Conta Pontos de Extenso: N. de dias Cenrio Principal Incluir caso de uso Validar Usurio. Obter e verificar o nmero da conta. Selecionar o n. de dias com base no qual se produz o extrato. (N. de dias). Por omisso so selecionados os ltimos 30 dias. Produzir uma lista resumo com esses movimentos, apresentando a data, o tipo de movimento (dbito ou crdito), uma breve descrio e o valor do movimento. Produzir o saldo corrente da conta. Emitir um documento com essa informao produzida imprimindo no terminal do caixa eletrnico o referido documento. Apresentar mensagem no visor do terminal para o cliente retirar o extrato. Registrar na conta do cliente que esta operao foi realizada com sucesso. Cenrio Alternativo 1

Especificao textual do caso de uso Seleciona N. de Dias


Nome: Seleciona N. de Dias Tipo: Abstrato Cenrio Principal apresentado uma tela em que o usurio pode especificar o n. de dias desejado, atravs da marcao em vrios botes numricos (de 0 a 9). H uma caixa de texto construda dinamicamente que vai apresentando o valor corrente. Por fim, o usurio aciona o boto Confirmar e o valor construdo retornado ao caso destino no seu respectivo ponto de extenso. Cenrio Alternativo 1 Idntico ao cenrio principal. Em qualquer momento o usurio pode marcar sobre o boto Apagar de modo a apagar o algarismo introduzido mais recentemente. Cenrio Alternativo 2 Idntico ao cenrio principal. Quando o usurio marca Confirmar e o valor introduzido for superior a 59 dias apresentada uma mensagem de aviso que o nmero mximo 59, e o caso reiniciado. Cenrio Alternativo 3 Idntico ao cenrio principal. Em qualquer momento o usurio pode selecionar o boto Cancelar O caso termina e retornado o valor 1 (dia) por omisso.

Atores
Um ator o conceito que representa, em geral, um papel que um usurio desempenha relativamente ao sistema em anlise. Todavia, um ator no necessariamente um papel de um usurio; pode corresponder a um papel desempenhado por um outro sistema de informao, por um equipamento de hardware especializado, ou pela simples passagem de tempo. O conjunto total de atores de todos os casos de uso reflete todos os elementos que interagem com o sistema.

Generalizao de Atores

Exerccio
Seguindo a metodologia passada pelo professor, faa o diagrama de casos de uso para um sistema de Inscrio de um congresso, por exemplo o SICOMP (Simpsio Interinstitucional de Computao).

Diagramas de Sequncia
Um diagrama de seqncia ilustra uma interao segundo uma viso temporal. Um diagrama de seqncia representado atravs de duas dimenses:
a dimenso horizontal, que representa o conjunto de objetos intervenientes; e a dimenso vertical que representa o tempo.

A apresentao destas dimenses pode ser invertida, se for conveniente. No existe qualquer significado na ordenao horizontal dos objetos intervenientes, ou seja, na sua disposio relativa.

Diagramas de Sequncia
Modelagem do comportamento do sistema descrio do que um sistema faz sem explicar como ele faz. Enfatizam a ordenao das mensagens trocadas entre os objetos e atores. construdo a partir de um caso de uso.

Exemplo de um diagrama de seqncia

Outro Exemplo Partindo do diagrama de Casos de Uso

Outro Exemplo Partindo do diagrama de Casos de Uso

Vamos fazer um diagrama de seqncia de uma chamada Telefnica


Empresa Telefnica - Central
Jos: Chamador 1. Retira o Telefone do gancho Pedro: Chamado

Vamos fazer um diagrama de seqncia de uma chamada Telefnica


Empresa Telefnica - Central
Jos: Chamador 1. Retira o Telefone do gancho 2. Tom de discagem 3. Discagem do nmero Pedro: Chamado

4. Tom de controle

5. Toque de chamada 6. Retira fone do gancho

7. Conversao 9. Repe o Telefone do gancho

8. Conversao 10. Tom de ocupado

...

Diagramas de Colaborao
Um diagrama de colaborao ilustra uma interao organizada espacialmente. De forma distinta dos diagramas de seqncia, um diagrama de colaborao mostra as relaes entre objetos que desempenham diferentes papis. Por outro lado, um diagrama de colaborao no mostra o tempo como uma dimenso separada, pelo que a seqncia de interaes e de atividades concorrentes representada usando-se nmeros seqenciais.

Diagramas de Colaborao
A ordem de uma interao descrita atravs de uma seqncia de nmeros, normalmente com incio em 1. Num fluxo de controle procedimental, os nmeros de comunicao de uma subseqncia so representados de acordo com o respectivo nvel de incluso. Para uma seqncia de interaes no procedimental, i.e., entre objetos concorrentes, todos os nmeros de uma seqncia encontram-se ao mesmo nvel.

Exemplo Diagramas de Colaborao

Diagrama de colaborao na forma de diagrama de instncias.

Diagramas de Colaborao tipos de representao


Um diagrama de colaborao pode ser representado por duas formas:
nvel de especificao (o diagrama ilustra os papis que as classes e associaes desempenham, bem como as suas mensagens), ou nvel de instncia (o diagrama ilustra objetos, ligaes e estmulos).

A primeira forma apresenta os papis e estrutura definida na colaborao subjacente, enquanto que a segunda ilustra uma instncia que deve ser conforme com os papis de uma colaborao.

Exemplo 1: Diagramas de Colaborao Pessoa com distintos Papis.


Num contexto acadmico, uma pessoa pode desempenhar dois papis distintos. Por um lado, uma pessoa, como professor, pode ser o regente ou coordenador de (zero ou mais) disciplinas e pode ser responsvel pela superviso de (zero ou mais) estudantes. Por outro lado, uma pessoa como estudante tem necessariamente um tutor (o professor que o supervisiona), e inscreve-se em (zero ou mais) disciplinas. Mostra-se neste exemplo as relaes entre diagramas de classes, de colaborao de nvel especfico, e de colaborao de nvel de instncias.

Exemplo 1: Diagramas de Classes.

Exemplo 1: Diagramas de Colaborao Pessoa com distintos Papis.

Diagrama de colaborao no nvel de especificao

Exemplo 1: Diagramas de Colaborao Pessoa com distintos Papis.

Diagrama de colaborao no nvel de Instncias

Exemplo da Mquina de Bebidas


Considere para o efeito que a mquina composta, entre outros, por trs objetos principais:
Interface: o painel de interface com o usurio; Registradora: a caixa registradora, que guarda o dinheiro; Dispensa: a caixa/armrio que guarda as diferentes bebidas.

Considere ainda que o cenrio a representar composto pela seguinte seqncia de aes:
O cliente insere o dinheiro na ranhura no painel de interface da mquina; O cliente seleciona o tipo de bebida; O dinheiro vai at a caixa registradora, esta atualiza a sua reserva de dinheiro; A interface pede a bebida dispensa; A dispensa envia a bebida selecionada para o painel de interface; A interface devolve a bebida ao cliente;

Exemplo da Mquina de Bebidas: Diagrama de Sequncia: Comprar Bebidas

Exemplo da Mquina de Bebidas: Diagrama de Colaborao: Comprar Bebidas

Voltando ao Exemplo de uma ligao telefnica


Empresa Telefnica - Central

1. Retira o Telefone do gancho

Pedro: Chamado Jos: Chamador

Voltando ao Exemplo de uma ligao telefnica


Empresa Telefnica - Central

1. Retira o Telefone do gancho 3. Discagem do nmero 9. Repe o Telefone do gancho

6. Retira fone do gancho 11. Repe fone no gancho 2. Tom de discagem 4. Tom de controle 7. Conversao 5. Toque de chamada 8. Conversao 10. Tom de ocupado

Pedro: Chamado

Jos: Chamador