Baixe o app para aproveitar ainda mais
Prévia do material em texto
ANÁLISE E PROJETO DE SISTEMAS II UNIVERSIDADE ESTADUAL DE GOIÁS CÂMPUS CERES BACHARELADO EM SISTEMAS DE INFORMAÇÃO CERES - 2019 DIAGRAMA DE SEQUÊNCIA INTRODUÇÃO INTRODUÇÃO Diagrama comportamental. Procura determinar a sequência de eventos que ocorrem em um determinado processo. Identifica quais mensagens devem ser disparadas entre os elementos envolvidos e em que ordem. INTRODUÇÃO Determinar a ordem em que os eventos ocorrem, as mensagens que são enviadas, os métodos que são chamados e como os objetos interagem dentro de um determinado processo é o objetivo principal desse diagrama. INTRODUÇÃO Baseia-se no diagrama de casos de uso, havendo normalmente um diagrama de sequência para cada caso de uso declarado, uma vez que um caso de uso, em geral, refere-se a um processo disparado por um ator. INTRODUÇÃO O diagrama de sequência depende também do diagrama de classes, já que as classes dos objetos utilizados no diagrama de sequência estão descritas nele. INTRODUÇÃO O diagrama de sequência também complementa o diagrama de classes, pois é ao modelar um diagrama de sequência que se percebe quais métodos são necessários declarar em que classes. ATORES ATORES Os atores modelados neste diagrama são instâncias dos atores declarados no diagrama de casos de uso, representando entidades externas que interagem com o sistema e que solicitam serviços, gerando, assim, eventos que iniciam processos. ATORES Esses atores costumam ser apresentados como bonecos magros idênticos aos usados no diagrama de casos de uso, porém, contendo uma linha de vida. ATORES LIFELINES LIFELINES Um lifeline é um participante individual em uma interação. Na maioria das vezes um lifeline irá se referir a uma instância de uma classe que participa de uma iteração, ou seja, em geral um lifeline é um objeto. LIFELINES Um lifeline é representado por um retângulo. A linha tracejada vertical que surge a partir do objeto representa a linha de vida do mesmo. LIFELINES LIFELINES No exemplo temos um lifeline chamado perfis1 e esse lifeline é uma instância da classe Pessoa_Fisica. LIFELINES Um lifeline pode existir desde o inicio do processo ou ser criado durante o decorrer da execução do mesmo. No primeiro caso, o retângulo que representa o lifeline aparecerá na parte superior do diagrama. Já no segundo caso, o retângulo surgirá na mesma altura em que a mensagem que o criar for chamada. LIFELINES LIFELINES Neste exemplo temos dois lifelines, perfis1 e comum1. O objeto perfis1 esteve ativo desde o início do processo. Já o objeto comum1 foi instanciado ao longo do processo. LIFELINES Ainda existe mais duas instâncias de objetos no diagrama, cujos nomes não foram definidos, que se referem respectivamente à classe Interface_Banco, uma classe de fronteira e à classe Controlador_Banco, uma classe de controle. LIFELINES Além disso, existem dois atores interagindo nesse processo, os atores Cliente e Funcionário. LIFELINES Linha de Vida A linha de vida representa o tempo em que um objeto (lifeline) existe durante um processo. As linhas de vida são representadas por linhas finas verticais tracejadas, partindo do retângulo que representa o objeto. LIFELINES Linha de Vida A linha de vida é interrompida com um “X” quando o objeto é destruído. LIFELINES Linha de Vida Um objeto não precisa necessariamente existir quando o processo é iniciado, podendo ser criado ao longo do mesmo e só terão uma linha de vida a partir desse momento. LIFELINES Foco de Controle ou Ativação Indica os períodos em que um determinado objeto está participando ativamente do processo, ou seja, identifica os momentos em que um objeto está executando um ou mais métodos utilizados em um processo específico. LIFELINES Foco de Controle ou Ativação Os focos de controle são representados dentro da linha de vida de um objeto. LIFELINES Foco de Controle ou Ativação LIFELINES Foco de Controle ou Ativação Ao observarmos o exemplo, podemos perceber que o objeto perfis1 participou ativamente do processo quando do disparo do método conCpf, indicando que o foco de controle do processo estava sobre o objeto perfis1. LIFELINES Foco de Controle ou Ativação Os focos de controle são representados dentro da linha de vida de um objeto. MENSAGENS OU ESTÍMULOS MENSAGENS OU ESTÍMULOS As mensagens são utilizadas para demonstrar a ocorrência de eventos, que normalmente forçam a chamada de um método em algum dos objetos envolvidos no processo. Pode ocorrer, no entanto, de uma mensagem representar a comunicação entre dois atores, nesse caso, não disparando métodos. MENSAGENS OU ESTÍMULOS As mensagens podem ser disparadas entre: • Um ator e outro ator; • Um ator e um objeto, onde um ator produz um evento que dispara um método em um objeto; MENSAGENS OU ESTÍMULOS As mensagens podem ser disparadas entre: • Um objeto e outro objeto, o que constitui a ocorrência mais comum de mensagens, onde um objeto transmite uma mensagem para outro, em geral solicitando a execução de um método. Um objeto pode inclusive enviar uma mensagem para si mesmo, disparando um método em si próprio (autochamada); MENSAGENS OU ESTÍMULOS As mensagens podem ser disparadas entre: • Um objeto e um ator, o que normalmente ocorre quando um objeto envia uma mensagem de retorno em resposta à chamada de um método solicitado, contendo seus resultados. MENSAGENS OU ESTÍMULOS As mensagens são representadas por linhas entre dois componentes, contendo setas indicando qual componente enviou a mensagem e qual a recebeu. As mensagens são apresentadas na posição horizontal entre as linhas de vida dos componentes e sua ordem sequencial é demonstrada de cima para baixo. MENSAGENS OU ESTÍMULOS Os textos contidos nas mensagens primeiramente identificam qual evento ocorreu e forçou o envio da mensagem e qual método foi chamado. As duas informações são separadas por um símbolo de dois pontos (:). MENSAGENS OU ESTÍMULOS Podem ocorrer eventos que não disparam métodos. Nesse caso, a mensagem descreve apenas o evento que ocorreu, sem o símbolo de dois pontos e nenhum texto após os mesmos. MENSAGENS OU ESTÍMULOS Também pode acontecer de somente o método chamado ser descrito, sem detalhar qual evento ocorreu. MENSAGENS OU ESTÍMULOS Exemplo de mensagem disparada entre atores: Este exemplo representa uma conversação entre dois atores e que, portanto, não gera o disparo de nenhum método. MENSAGENS OU ESTÍMULOS Exemplo de mensagem enviada por um objeto que dispara um método em outro. Deve-se evitar colocar muitos detalhes nas chamadas de métodos para impedir que o diagrama de sequência torne-se muito extenso. MENSAGENS OU ESTÍMULOS Exemplo de mensagem enviada por um objeto que dispara um método em outro. Deve-se evitar colocar muitos detalhes nas chamadas de métodos para impedir que o diagrama de sequência torne-se muito extenso. MENSAGENS OU ESTÍMULOS Quando a mensagem é dirigida a um objeto já existente, a seta da mensagem atinge a linha de vida do objeto, engrossando-a, identificando que o foco de controle está sobre o objeto em questão. MENSAGENS OU ESTÍMULOS No entanto, quando a mensagem cria um novo objeto, a seta atinge o retângulo que representa o objeto, indicando que a mensagem representa um método construtor e que o objeto passa a existir somente a partir daquele momento. MENSAGENS OU ESTÍMULOS MENSAGENS OU ESTÍMULOS Nesse exemplo, o objeto da classe controlador_Banco dispara o método abrir_Conta no objeto comum1 da classe Conta_Comum, instanciando esse objeto a partir desse momento. MENSAGENS OU ESTÍMULOS Uma mensagem pode também representar um método destrutor, ou seja, um método que elimina um objeto não mais necessário. Nesse caso a mensagem atinge a linha de vida de um objeto e a interrompe com um X. MENSAGENS OU ESTÍMULOSMENSAGENS OU ESTÍMULOS Nesse exemplo, existe um objeto car1 pertencente a uma classe Carrinho, que representa um carrinho de compras que pode ter muitos itens, representados pelos objetos da classe Item_Carrinho. MENSAGENS OU ESTÍMULOS Se em algum momento o cliente resolver cancelar a compra de algum dos itens do carrinho, o objeto da classe Carrinho deverá disparar um método destrutor no objeto da classe Item_Carrinho, representado pelo método Excluir. MENSAGENS OU ESTÍMULOS Mensagens de retorno Esse tipo de mensagem identifica a resposta a uma mensagem para o objeto ou ator que a chamou. MENSAGENS OU ESTÍMULOS Mensagens de retorno Uma mensagem de retorno pode retornar informações específicas do método chamado ou apenas um valor indicando se o método foi executado com sucesso ou não. MENSAGENS OU ESTÍMULOS Mensagens de retorno As mensagens de retorno são representadas por uma linha tracejada contendo uma seta fina que aponta para o objeto que recebe o resultado do método chamado. MENSAGENS OU ESTÍMULOS Mensagens de retorno MENSAGENS OU ESTÍMULOS Mensagens de retorno A mensagem emitida pelo objeto perfis1 para o objeto da classe Controlador_Banco, após este ter disparado o método conCpf no primeiro objeto, retorna os dados do cliente consultado. MENSAGENS OU ESTÍMULOS Mensagens de retorno Observe que o valor retornado é do tipo String. Alguns autores só modelam as mensagens de retorno consideradas realmente importantes para evitar deixar o diagrama muito poluído. MENSAGENS OU ESTÍMULOS Autochamadas ou Autodelegações Autochamadas são mensagens que um objeto envia para si mesmo. No caso de autochamadas, uma mensagem parte da linha de vida do objeto e atinge a linha de vida do próprio objeto. MENSAGENS OU ESTÍMULOS Autochamadas ou Autodelegações MENSAGENS OU ESTÍMULOS Autochamadas ou Autodelegações O objeto perfis1 dispara em si mesmo a chamada ao método de validação de CPF, valCpf. MENSAGENS OU ESTÍMULOS Detalhes de Tempo Às vezes pode ser necessário definir detalhes de tempo de uma mensagem, como por exemplo, o tempo máximo de espera até que uma mensagem seja disparada. MENSAGENS OU ESTÍMULOS Detalhes de Tempo Quando se quer demonstrar o tempo que uma mensagem leva em consideração antes de ser disparada, deve-se usar restrições de duração. MENSAGENS OU ESTÍMULOS Detalhes de Tempo MENSAGENS OU ESTÍMULOS Detalhes de Tempo Nesse exemplo, o controlador de vendas espera 30 minutos até o cliente realizar alguma operação sobre o pedido. Se esse tempo for ultrapassado sem haver qualquer movimentação ou confirmação no pedido, este será cancelado. MENSAGENS OU ESTÍMULOS Detalhes de Tempo Observe que a mensagem que dispara o método que cancelará o pedido tem uma restrição de duração que determina que devem esperar 30 minutos antes de disparar o método cancelar_Pedido, que é um método destrutor. FRAGMENTOS DE INTERAÇÃO FRAGMENTOS DE INTERAÇÃO Um fragmento de interação é uma parte de uma interação. Cada fragmento de interação é considerado como uma interação independente. Um fragmento de interação é representado por um retângulo que envolve toda a interação, além de conter uma aba no canto superior esquerdo, contendo um operador que determina qual tipo de diagrama de interação ele se refere. FRAGMENTOS DE INTERAÇÃO FRAGMENTOS DE INTERAÇÃO O operador sd, indica que o fragmento é um diagrama de sequência. O texto seguinte contém a descrição da interação que está sendo modelada, normalmente contendo apenas o nome da interação. FRAGMENTOS DE INTERAÇÃO O uso do fragmento de interação possibilita ao mesmo ser referenciado por meio do operador “ref” (abreviatura de Referred). O “ref” significa que se deve procurar por um diagrama cujo nome é o mesmo do nome apresentado após o operador “ref”, ou seja, o fragmento faz referência a outro diagrama. FRAGMENTOS DE INTERAÇÃO Essa aplicação é chamada de interação e permite que se montem diagramas mais complexos que fazem referência a outros diagramas como se fossem sub-rotinas, detalhadas em separado, diminuindo assim o tamanho do diagrama e facilitando sua leitura e compreensão. FRAGMENTOS DE INTERAÇÃO FRAGMENTOS DE INTERAÇÃO Nesse exemplo, o cliente solicita ao funcionário o encerramento da conta, para encerrar é necessário primeiro verificar o saldo, para determinar se é preciso sacar ou depositar algum valor. FRAGMENTOS DE INTERAÇÃO Como o processo já se encontra modelado é contraproducente ter que modelar esses passos novamente, além do que, se houver alguma mudança no processo, ele terá que ser alterado nos dois diagramas. FRAGMENTOS DE INTERAÇÃO O uso de interação é colocado sobre as linhas de vida dos objetos envolvidos no processo, e o ator (pode ser um objeto) solicita sua execução por meio de uma mensagem. Essa mensagem pode conter um texto, mas o próprio uso de interação é autoexplicativo. FRAGMENTOS DE INTERAÇÃO É possível também encontrar usos de interação simplesmente sobrepostos às linhas de vida dos objetos que fazem parte do processo, sem nem ao menos chamá-las por meio de uma mensagem, como se as instruções contidas nos usos de interação fossem adicionadas automaticamente ao diagrama. FRAGMENTOS DE INTERAÇÃO FRAGMENTOS DE INTERAÇÃO Nesse exemplo, ao realizar um saque é necessário registrar esse movimento e, como os passos do processo de registrar movimento estão detalhados em outro diagrama de sequência, apenas colocamos seu uso de interação sobre as linhas de vida dos objetos que participarão do processo, sem ao menos enviar uma mensagem a esse uso de interação. FRAGMENTOS DE INTERAÇÃO Os usos de interação podem se constituir em uma simples chamada a outro fragmento de interação ou podem passar parâmetros para o mesmo, receber o retorno da chamada e etc. Muitas vezes as associações de inclusão e extensão do diagrama de casos de uso denotam a necessidade da existência de usos de interação nos diagramas de sequência. FRAGMENTOS COMBINADOS FRAGMENTOS COMBINADOS Os fragmentos combinados são representados por um retângulo que determina a área de abrangência do fragmento no diagrama, além de conter uma subdivisão em sua extremidade superior esquerda para identificar a descrição do fragmento que está sendo modelado. FRAGMENTOS COMBINADOS Alt Para exemplificar alguns exemplos desses fragmentos, temos o Alt (Alternatives ou Alternativas). Este operador de interação define que o fragmento combinado representa uma escolha entre dois ou mais comportamentos. FRAGMENTOS COMBINADOS Alt Esse tipo de fragmento combinado costuma utilizar condições de guarda (texto entre colchetes que estabelece uma regra ou condição), também conhecida como restrições de interação, para definir o teste a ser considerado na escolha de um dos comportamentos. FRAGMENTOS COMBINADOS Alt FRAGMENTOS COMBINADOS Alt Nesse exemplo deve ser feita uma escolha entre duas operações, se o saldo da conta for positivo, ele executará um saque, se estiver negativo, o cliente deverá depositar o valor necessário para cobrir o saldo negativo da conta antes de encerrá-la. FRAGMENTOS COMBINADOS Alt Em cada alternativa foi feita uma referência a um uso de interação, na primeira ao processo de realizar saque e na segunda ao processo de realizar depósito, mas pode ser modelado uma sequência. FRAGMENTOS COMBINADOS Alt As divisões é chamada de separador de operando de interação e o conteúdo é conhecido como operando de interação. FRAGMENTOS COMBINADOS Opt Abreviatura de Option (Opção). Esse operador de interação determina que o fragmento combinado representa uma escolha de comportamento onde esse comportamento será ou não executado, não havendo uma escolha entre mais de um comportamento possível. FRAGMENTOS COMBINADOS Opt FRAGMENTOS COMBINADOS Opt Nesse exemplo, após ser realizadoo saque ou depósito, pode ser necessário dar manutenção no cadastro do cliente, tornando-o inativo, caso a conta a ser encerrada seja a única por ele possuída. FRAGMENTOS COMBINADOS Opt O uso do Opt foi indicado por significar que os passos nele contido serão ou não executados dependendo de sua condição, determinada pela restrição de interação “Se for a única conta”. FRAGMENTOS COMBINADOS Opt Conclui-se também que o processo Encerrar Conta tem uma associação de extensão com o processo Manter Cliente. Nesse caso, faz-se um teste para saber se o caso de uso será ou não extendido refletindo na restrição imposta. FRAGMENTOS COMBINADOS Par Abreviatura de Parallel (Paralelo). Esse operador de interação determina que o fragmento combinado representa uma execução paralela de dois ou mais comportamentos. FRAGMENTOS COMBINADOS Par FRAGMENTOS COMBINADOS Par O motorista deve realizar duas operações simultâneas sobre o objeto car1 da classe Carro para poder dirigi-lo: soltar a embreagem e pressionar o acelerador. FRAGMENTOS COMBINADOS Par Note que uma linha tracejada divide os operandos de interação representando cada operação paralela. FRAGMENTOS COMBINADOS Loop Abreviatura de Looping (Laço). Esse operador de interação determina que o fragmento combinado representa um laço que poderá ser repetido diversas vezes. FRAGMENTOS COMBINADOS Loop FRAGMENTOS COMBINADOS Loop Nesse exemplo temos um processo que aumenta o valor de todos os produtos de uma determinada categoria. O mesmo método é aplicado a cada produto pertencente à categoria selecionada.
Compartilhar