Modelação · grupo hoteleiro ao qual efectua um pedido ... requisição e valida se é atingido o...
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
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