Modelação · grupo hoteleiro ao qual efectua um pedido ... requisição e valida se é atingido o...

16
Modelação Diagramas de Sequencia References: - A practical guide to SysML (chapter 8) - Systems Engineering with SysML/UML, Modeling, Analysis, Design (Chapter 3) Gabriel Pestana ([email protected])

Transcript of Modelação · grupo hoteleiro ao qual efectua um pedido ... requisição e valida se é atingido o...

Modelação

Diagramas de Sequencia

References:- A practical guide to SysML (chapter 8)- Systems Engineering with SysML/UML, Modeling, Analysis, Design (Chapter 3)

Gabriel Pestana

([email protected])

Objectivo

Um diagrama de sequência mostra uma interacção, isto é, uma sequência de mensagens trocadas entre vários objectos num determinado contexto (caso de utilização, operação, etc.)

Enfatiza a comunicação e passagem de controlo entre objectos ao longo do tempo

Útil para descrever uma sequência particular de funcionamento, mas não muitas sequências alternativas e ciclos ou acções realizadas por um objecto que não envolve comunicação com outros objectos

06/05/2009 2

Objectos e linhas de vida

Cada objecto participante é representado por uma caixa em cima de uma linha vertical a traço interrompido - (lifeline)

Uma barra de activação mostra o período de tempo durante o qual um objecto está a executar uma acção. Chamadas recursivas provocam barras empilhadas

Criação de objecto é representada por mensagem dirigida à própria caixa que representa o objecto (em vez de ser dirigida à lifeline)

Podem aparecer actores (objectos externos ao sistema), normalmente a iniciar interacções

O tempo cresce de cima para baixo

06/05/2009 3

objecto1:Classe1 objecto2: :Classe3 :Classe4

Mensagens

Uma mensagem é uma comunicação entre objectos (emissor e receptor) que veicula informação na expectativa de provocar uma resposta (acção ou actividade)

• Uma acção de um objecto capaz de provocar uma resposta noutro objecto pode ser modelada como uma mensagem do primeiro para o segundo objecto

Uma mensagem é representada por uma seta horizontal, do emissor para o receptor, com o nome e possíveis argumentos

Nota: A um caso de uso (use case) pode corresponder vários diagramas de sequência, para descrever sequências normais e sequências excepcionais de funcionamento

06/05/2009 4

objecto1:Classe1 objecto2: :Classe3

mensagem

Sequence Diagram (SD)

Apresentação de quatro exemplos de caso de uso onde se destacam os principais componentes de um Diag. de Sequência

Descrever apenas sequências normais de funcionamento dos casos de utilização

• Exemplo 1: Processamento de um Empréstimo Bancário via Internet

• Exemplo 2: Reserva de uma estadia num Hotel para um determinado destino Turístico

• Exemplo 3: Serviço de aprovisionamento dá despacho de uma requisição de material

• Exemplo 4: Levantamento dinheiro máquina multibanco (ATM)

06/05/2009 5

Sequence Diagram (SD)Exemplo 1: Empréstimo Bancário

Uma aplicação web, externa ao sistema, interage com o sistema bancário para abertura de um procedimento de contrair um empréstimo

Um pedido para a contracção de um empréstimo requer a disponibilização de um conjunto de dados para validar a sua aprovação

A formalização do pedido de empréstimo só é viabilizada se os dos fornecidos estiverem correctos e se não for detectada nenhuma omissão

Concluído o procedimento administrativos referente à abertura de um pedido para a a contracção de um empréstimo é cálculado da taxa de risco associado ao empréstimo

Envio do pedido de aprovação do empréstimo ao Gabinete de Gestão de Empréstimos (CreditBureau – entidade externa ao sistema bancário

Source: http://www.ibm.com/developerworks/java/library/j-jmod0508/06/05/2009 6

Sequence Diagram (SD)Exemplo 1: Empréstimo Bancário

O primeiro passo no desenho de um Diag. de Sequência é determinar se o diagrama irá representar uma interacção com uma entidades externas ou apenas entidades internas

• Entidades internas são normalmente representadas por uma classe ou instancia de uma classe

• Entidades externas identificam a presença de um actor/subsistema na interacção

Uma interacção pode ser desencadeada por um actor/subsistema, embora seja mais provável ser desencadeada por uma classe genérica

06/05/2009 7

Sequence Diagram (SD)Exemplo 1: Empréstimo Bancário (cont.)

Identificado o objecto que irá iniciar a interacção o passo seguinte consiste em adicionar os objectos que irão interagir no cenário/caso de utilização descrito. O nome dos objectos deve reflectir o comportamento das classes, no exemplo descrito abaixo temos:

• LoanApplication - is required when applying for a loan. It contains information about the applicant and the desired loan.

• LoanRequest - is a form the bank sends out to a credit bureau upon receiving a loan application

06/05/2009 8

Sequence Diagram (SD)Exemplo 1: Empréstimo Bancário (cont.)

Mapeamento dos intervenientes, objectos e actores (eixo horizontal) com uma representação da evolução temporal da troca de mensagens (eixo vertical)

06/05/2009 9

OBS.: uma mensagem é uma comunicação entre objectos (emissor e receptor) que veicula informação e provocar uma resposta (acção ou actividade)

• When a message is received by a class or instance, it creates lifeline of the receiving object -activation. An activation represents the flow of control in the method of the receiver.

• Once a message is received, the receiving object can, in turn, send messages to itself or to other objects.

Sequence Diagram (SD)Exemplo 1: Empréstimo Bancário (final)

O objecto CreditChecker é responsável por estabelecer a comunicação entre LoanRequest e o CreditBureau ou seja assegura a conexão para o processamento dos pedidos de empréstimos junto da entidade externa (CreditBureau). Os pedidos de empréstimo recepcionados pela entidade externa são processados de acordo com a sua disponibilidade (procedimento representado pela mensagem inclinada - requestCreditReport)

06/05/2009 10

Diagramas de Sequência Exemplo 2: Reserva de uma estadia num Hotel

Uma agencia de viagens selecciona um determinado grupo hoteleiro ao qual efectua um pedido de reserva de uma estadia num determinado destino Turístico (Hotel)

Validação da disponibilidade de quartos no hotel para o período da estadia

• A reserva só deve ser efectuada se o hotel tiver disponibilidade para o período da estadia (nº de dias)

Confirmada a disponibilidade o sistema deverá proceder à reserva da estadia e devolver uma confirmação de que a reserva foi efectuada com sucesso

06/05/2009 11

Sequence Diagram (SD)Exemplo 2: Reserva de uma estadia num Hotel

06/05/2009 12http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/uml/diagramas/interacao/sequencia.htm

Diagramas de Sequência Exemplo 3: requisição de material

Serviço de aprovisionamento dá despacho de uma requisição de material

• Sequência normal, existências em stock

• Sequência excepcional, ruptura de stock

Inserir no sistema a lista de material/produtos a requisitar

Para cada linha do pedido validar se existe disponibilidade em stock para satisfazer a requisição de material

• Se stock disponível satisfaz a quantidade solicitada no pedido de requisição e valida se é atingido o ponto de encomenda, i.e., stock mínimo.

• Se quantidade em stock ≤ “stock mínimo” então proceder à emissão de uma nova encomenda ao fornecedor

• Se stock não disponível para satisfazer o pedido proceder à emissão de uma nova encomenda ao fornecedor (reposição de stock)

06/05/2009 13

Diagrama de SequênciaExemplo 3: requisição de material

06/05/2009 14

[e =“sim"]retirar(q)

:Janela de

Selecção de

Pedidos :Pedido:Linha de

Pedido

e2:Encomenda

tratar()* tratar()

:Item de

Stock

e:=existeProd(q)

b:=stockMin()

[b=“sim”] criar()

[e=“nao”] criar()e1:Encomenda

Para cada

linha do

pedido

Valida se quantidade

pedida pode ser

satisfeita

Para repor stock

Para poder satisfazer pedido

nova encomenda fornecedor,

i.e., reposição de stock

criação de

objecto

Diagrama de SequênciaExemplo 4: Levantamento dinheiro máquina multibanco

Um utilizador solicita numa máquina ATM um pedido de levantamento de dinheiro

• Pressupõe-se que o caso de uso de validação do acesso foi executado com sucesso

O sistema ATM valida os dados do utilizador, bem como o montante solicitado

O sistema ATM solicita a validação do débito à respectiva entidade bancária

O sistema Bancário valida os dados e devolve o saldo da conta.

O sistema ATM conclui a transacção com o envio ao sistema da entidade bancária de um pedido de débito do montante solicitado ao saldo da conta.

O sistema ATM disponibiliza o dinheiro solicitado ao utilizador.

06/05/2009 15

Diagrama de SequênciaExemplo 4: Levantamento dinheiro máquina multibanco

06/05/2009 16

selecciona opção de levantamento

cust:Customer teller: ATM theirBank: Bank

introduz cartão

introduz PIN

selecciona montantesolicita transacção

Representação simplificada do diagrama de sequência