Diagrama de Classes (UML) São Paulo, 2011 Diagramas UML Universidade Paulista (UNIP) Introdução e Conceitos sobre Diagrama de Seqüência Prof. MSc. Vladimir Camelo [email protected] 19/03/10 [email protected] 1 Diagrama de Classes (UML) Diagramas UML Introdução O Diagrama de sequência é um diagrama comportamental que procura determinar a sequência de eventos que ocorrem em um determinado processo, identificando quais mensagens devem ser disparadas entre os elementos envolvidos e em que ordem. Este diagrama determina 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. 19/03/10 [email protected] 2 Diagrama de Classes (UML) Introdução Diagramas UML O diagrama de sequência baseia-se: No diagrama de casos de uso, havendo normalmente um diagrama de sequência para cada caso de uso declarado. No diagrama de classes, já que as classes dos objetos utilizados no diagrama de sequência estão descritas nele. O diagrama de sequência possibilita: Validar e complementar um diagrama de classes (identificação de métodos, que serão utilizados como mensagens). 19/03/10 [email protected] 3 Diagrama de Classes (UML) Diagramas UML Exemplo de criação de um diagrama de seqüência 19/03/10 [email protected] 4 Diagrama de Classes (UML) Diagramas UML Exemplo de criação de um diagrama de seqüência 19/03/10 [email protected] 5 Diagrama de Classes (UML) Diagramas UML Atores Os atores declarados 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ço, gerando eventos que iniciam processos. Suas representações são idênticas as dos atores criados nos diagramas de casos de uso, porém, contendo uma linha de vida. Os atores não são realmente obrigatórios em um diagrama de sequência, mas são utilizados com frequência. 19/03/10 [email protected] 6 Diagrama de Classes (UML) Atores Diagramas UML Representação: Ator Usuário Linha de vida 19/03/10 [email protected] 7 Diagrama de Classes (UML) lifelines Diagramas UML 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 (objeto). Lifelines em um diagrama de sequência tem a mesma notação utilizada no diagrama de objetos, diferenciando-se por uma linha de vida. O lifeline pode existir desde o início do processo ou ser criado durante o decorrer da execução do mesmo. Isto pode ser observado no exemplo apresentado a seguir. Escaneado de Guedes (2009 ). 19/03/10 [email protected] 8 Diagramas UML Diagrama de Classes (UML) Gilleanes T. A. Guedes. UML 2 – uma abordagem prática. São Paulo, Editora Novatec, 2009. pág 203 19/03/10 [email protected] 9 Diagrama de Classes (UML) Linha de vida Diagramas UML 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. A linha de vida é interrompida com um “X” quando o objeto é destruído. Um objeto não precisa necessariamente existir quando o processo é iniciado, podendo ser criado ao longo do mesmo. 19/03/10 [email protected] 10 Diagrama de Classes (UML) Diagramas UML Foco de controle e ativação Indica os períodos em que um determindao 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. Os focos de controle são representados dentro da linha de vida de um objeto, porém, enquanto as linhas de vida são representadas por tracejados finos, o foco de controle é representado por um linha mais grossa. 19/03/10 [email protected] 11 Diagramas UML Diagrama de Classes (UML) Gilleanes T. A. Guedes. UML 2 – uma abordagem prática. São Paulo, Editora Novatec, 2009. pág 204 19/03/10 [email protected] 12 Diagrama de Classes (UML) Diagramas UML 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 a comunicação entre dois atores, neste caso não disparando métodos. Um diagrama de seuência em geral é iniciado por um evento externo, causando por algum ator, o que acarreta o disparo de um método em um dos objetos. 19/03/10 [email protected] 13 Diagrama de Classes (UML) Mensagens ou estímulos As mensagens podem ser disparadas: Diagramas UML Um ator e outro ator; Um ator e um objeto, onde um ator produz um evento que dispara um método em um objeto; 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 mesmmo, disparando um método em si próprio, o que é conhecido como auto-chamada. 19/03/10 [email protected] 14 Diagrama de Classes (UML) Mensagens ou estímulos Diagramas UML As mensagens podem ser disparadas: 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. 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 sequêncial é demonstrada de cima para baixo. 19/03/10 [email protected] 15 Diagrama de Classes (UML) Diagramas UML Mensagens ou estímulos Os textos contidos nas mensagens primeiramente identificam qual evento ocorreu e forçou o envio de uma mensagem e qual método foi chamado. As duas informações são separadas por um símbolo de dois PONTOS ( : ). Podem ocorrer eventos que não disparam métodos. Neste caso, a mensagem descreve apenas o eventou que ocorreu, sem símbolo de dois pontos e nenhum texto após os mesmos. 19/03/10 [email protected] 16 Diagrama de Classes (UML) Mensagens ou estímulos Diagramas UML A UML considera dois tipos de mensagens trocadas entre objetos: Mensagens síncronas: o objeto que enviou a mensagem aguarda a conclusão do processamento da mensagem feito pelo objeto de destino, para então prosseguir seu fluxo de execução, ou seja, existe um sincronismo rígido entre os dois objetos. A notação UML para uma mensagem síncrona é a de um segmento de reta com uma seta cheia; 19/03/10 [email protected] 17 Diagrama de Classes (UML) Mensagens ou estímulos Diagramas UML A UML considera dois tipos de mensagens trocadas entre objetos: Mensagens assíncronas: o objeto de origem envia a mensagem e prossegue seu processamento independente do tratamento da mensagem feito no destino. De forma geral, todas as comunicações entre atores e objetos são feitas por meio de mensagens assíncronas. A notação UML para uma mensagem assíncrona é a de um segmento de reta com uma meia seta. 19/03/10 [email protected] 18 Diagramas UML Diagrama de Classes (UML) Nesta figura pode-se observar que a mensagem da figura descreve simplesmente o evento. Gilleanes T. A. Guedes. UML 2 – uma abordagem prática. São Paulo, Editora Novatec, 2009. pág 205 19/03/10 [email protected] 19 Diagramas UML Diagrama de Classes (UML) Nesta figura pode-se observar que a mensagem da figura descreve o evento e, após os dois pontos, o método que foi disparado por ele. Estes métodos podem ou não conter parâmetros. Gilleanes T. A. Guedes. UML 2 – uma abordagem prática. São Paulo, Editora Novatec, 2009. pág 206 19/03/10 [email protected] 20 Diagrama de Classes (UML) Diagramas UML Mensagens ou estímulos Quando a mensagem é dirigida a um objeto já existente, 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. 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. 19/03/10 [email protected] 21 Diagramas UML Diagrama de Classes (UML) Gilleanes T. A. Guedes. UML 2 – uma abordagem prática. São Paulo, Editora Novatec, 2009. pág 206 19/03/10 [email protected] 22 Diagrama de Classes (UML) Mensagens ou estímulos Diagramas UML Uma mensagem podem representar um método destrutor, ou seja, um método que elimina um objeto não mais necessário. Gilleanes T. A. Guedes. UML 2 – uma abordagem prática. São Paulo, Editora Novatec, 2009. pág 207 19/03/10 [email protected] 23 Diagrama de Classes (UML) Mensagens de retorno Diagramas UML Esse tipo de mensagem identifica a resposta a uma mensagem para o objeto ou ator que a chamou. 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. 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. 19/03/10 [email protected] 24 Diagramas UML Diagrama de Classes (UML) Gilleanes T. A. Guedes. UML 2 – uma abordagem prática. São Paulo, Editora Novatec, 2009. pág 207 19/03/10 [email protected] 25 Diagrama de Classes (UML) Autochamadas ou autodelegações Diagramas UML 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. Gilleanes T. A. Guedes. UML 2 – uma abordagem prática. São Paulo, Editora Novatec, 2009. pág 208 19/03/10 [email protected] 26 Diagrama de Classes (UML) Diagramas UML Detalhes de tempo Às vezes pode ser necessário definir detalhes do tempo de uma mensagem, como por exemplo, o tempo máximo de espera até que uma mensagem seja disparada. 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, e a mensagem, em vez de ser representada na horizontal, como é o padrão, é a apresentada na diagonal. 19/03/10 [email protected] 27 Diagramas UML Diagrama de Classes (UML) Gilleanes T. A. Guedes. UML 2 – uma abordagem prática. São Paulo, Editora Novatec, 2009. pág 209 19/03/10 [email protected] 28 Diagrama de Classes (UML) Diagramas UML Mensagens perdidas e mensagens encontradas Uma mensagem perdida representa uma mensagem que foi enviada e sua confirmação de recebimento não foi recebida, podendo significar que a mensagem não chegou a seu destino, ou pode ainda representar uma mensagem enviada a um destino não representada no diagrama. 19/03/10 [email protected] 29 Diagrama de Classes (UML) Diagramas UML Mensagens perdidas e mensagens encontradas Uma mensagem encontrada representa o recebimento de uma mensagem enviada por um elemento desconhecido ou um elemento não reprsentado no diagrama, ou o recebimento de uma mensagem que fora dada como perdida, pois seu tempo de espera por resposta poderia ter sido encerrado. 19/03/10 [email protected] 30 Diagrama de Classes (UML) Mensagens perdidas e mensagens encontradas Diagramas UML Tanto as mensagens perdidas quanto as mensagens encontradas são representadas por um círculo preenchido. Quando se trata de uma mensagem perdida, o círculo é atingido pela mensagem; já quando se trata de uma mensagem encontrada, esta parte do círculo. Uma aplicação para uso de mensagens perdidas e mensagens encontradas pode ser a representação de troca de mensagens entre objetos localizados em máquinas (hosts) diferentes, possivelmente distantes entre si, onde a comunicação é realizada por meio de algum tipo de protocolo de rede. 19/03/10 [email protected] 31 Diagramas UML Diagrama de Classes (UML) Gilleanes T. A. Guedes. UML 2 – uma abordagem prática. São Paulo, Editora Novatec, 2009. pág 210 19/03/10 [email protected] 32 Diagrama de Classes (UML) Portas Diagramas UML É possível representar umobjeto do diagrama de sequência contendo instâncias das portas declaradas na classe a que ele pertence. Dessa forma o objeto poderá ter mais de uma linha de vida, o que possibilita a representação de mensagens externas e internas no objeto. 19/03/10 [email protected] 33 Diagramas UML Diagrama de Classes (UML) Gilleanes T. A. Guedes. UML 2 – uma abordagem prática. São Paulo, Editora Novatec, 2009. pág 210 19/03/10 [email protected] 34 Diagrama de Classes (UML) Fragmentos de interação Diagramas UML Os fragmentos de interação são noções abstratas de unidades de interação geral. Um fragmento de interação é uma parte de uma interação. Cada fragmento da interação é considerado como uma interação independente. Um fragmento de interação é representado como um retângulo que envolve toda a inetração, além de conter uma aba no canto superior esquerdo, contando um operador que determina qual tipo de diagrama de interação ele se refere. O operador sd apresentado na figura a seguir (Guedes, 2009), indica que é um diagrama de seuência. 19/03/10 [email protected] 35 Diagramas UML Diagrama de Classes (UML) Gilleanes T. A. Guedes. UML 2 – uma abordagem prática. São Paulo, Editora Novatec, 2009. pág 211 19/03/10 [email protected] 36 Diagramas UML Diagrama de Classes (UML) Gilleanes T. A. Guedes. UML 2 – uma abordagem prática. São Paulo, Editora Novatec, 2009. pág 212 19/03/10 [email protected] 37 Diagrama de Classes (UML) Diagramas UML Fragmentos combinados e operadores de interação Nas versões anteriores à versão 2.0 da UML, os diagrams de sequência tinham dificuldade em trabalhar questões como testes sesenão, laços ou processamentos paralelos. Essas questões foram abordadas a partir da versão 2.0 por meio do uso de fragmentos combinados, que possibilitam uma modelagem semi-independente da parte do diagrama onde deve-se enfocar problemas como os enunciados. 19/03/10 [email protected] 38 Diagrama de Classes (UML) Diagramas UML Fragmentos combinados e operadores de interação Os fragmentos combinados são representados por um retângulo que determina a área de abrangência do fragmento no diagrama, além de conterem ainda uma subdivisão em sua extremidade superior esquerda para identificar a descrição do fragmento combinado e seu operador de interação, que define o tipo de fragmento que está sendo modelado. 19/03/10 [email protected] 39 Diagrama de Classes (UML) Fragmentos combinados e operadores de interação Diagramas UML Operadores de interação mais comuns são: Alt – Abreviatura de Alternatives (Alternativas): Esse operador de interação define que fragmento combinado representa uma escolha entre dois ou mais comportamentos. 19/03/10 [email protected] 40 Diagramas UML Diagrama de Classes (UML) Gilleanes T. A. Guedes. UML 2 – uma abordagem prática. São Paulo, Editora Novatec, 2009. pág 216 19/03/10 [email protected] 41 Diagrama de Classes (UML) Fragmentos combinados e operadores de interação Diagramas UML Operadores de interação mais comuns são: Opt – Abreviatura de Option (Opção): Esse operador de interação determina que o fragmento combindao 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. 19/03/10 [email protected] 42 Diagramas UML Diagrama de Classes (UML) Gilleanes T. A. Guedes. UML 2 – uma abordagem prática. São Paulo, Editora Novatec, 2009. pág 217 19/03/10 [email protected] 43 Diagrama de Classes (UML) Fragmentos combinados e operadores de interação Diagramas UML Operadores de interação mais comuns são: Par – Abreviatura de Parallel (Paralelo): Esse operador de interação determina que o fragmento combindao representa uma execução paralela de dois ou mais comportamentos. 19/03/10 [email protected] 44 Diagramas UML Diagrama de Classes (UML) Gilleanes T. A. Guedes. UML 2 – uma abordagem prática. São Paulo, Editora Novatec, 2009. pág 218 19/03/10 [email protected] 45 Diagrama de Classes (UML) Fragmentos combinados e operadores de interação Diagramas UML Operadores de interação mais comuns são: Loop – Abreviatura de Looping (Laço): Esse operador de interação determina que o fragmento combindao representa um laço que poderá ser repetido diversas vezes. 19/03/10 [email protected] 46 Diagramas UML Diagrama de Classes (UML) Gilleanes T. A. Guedes. UML 2 – uma abordagem prática. São Paulo, Editora Novatec, 2009. pág 219 19/03/10 [email protected] 47 Diagrama de Classes (UML) Fragmentos combinados e operadores de interação Diagramas UML Operadores de interação mais comuns são: Break – Abreviatura de Break (Quebra): Esse operador de interação indica uma quebra na execução normal do processo. É utilizado principalmente para modelar o tratamento de exceções. 19/03/10 [email protected] 48 Diagramas UML Diagrama de Classes (UML) Gilleanes T. A. Guedes. UML 2 – uma abordagem prática. São Paulo, Editora Novatec, 2009. pág 221 19/03/10 [email protected] 49 Diagrama de Classes (UML) Fragmentos combinados e operadores de interação Diagramas UML Operadores de interação mais comuns são: Critical Region (Região crítica): Esse operador de interação indentifica uma operação atômica que não pode ser interrompida por outro processo até ser totalmente concluída. 19/03/10 [email protected] 50 Diagramas UML Diagrama de Classes (UML) Gilleanes T. A. Guedes. UML 2 – uma abordagem prática. São Paulo, Editora Novatec, 2009. pág 221 19/03/10 [email protected] 51 Diagrama de Classes (UML) Fragmentos combinados e operadores de interação Diagramas UML Existem outros operadores de interação menos utilizadoque são: Neg – Negative (Negativo): Esse operador de interação representa eventos considerados como inválidos, que não devem ocorrer. Todos os eventos não contidos em um fragmento combinado do tipo Neg (quando existir um) são considerados positivos. 19/03/10 [email protected] 52 Diagrama de Classes (UML) Fragmentos combinados e operadores de interação Diagramas UML Existem outros operadores de interação menos utilizadoque são: Assertion (Afirmação): Esse operador de interação é o oposto do anterior, representando eventos considerados como válidos. Todos os eventos não contidos em um fragmento combinado do tipo assertion são automaticamente considerados negativos. 19/03/10 [email protected] 53 Diagrama de Classes (UML) Fragmentos combinados e operadores de interação Diagramas UML Existem outros operadores de interação menos utilizadoque são: Ignore (Ignorar): Esse operador de interação Ignore determina que as mensagens contidas no fragmento devem ser ignoradas. Essas mensagens podem ser consideradas insignificantes e são intuitivamente ignoradas se apareceram em uma execução correspondente. Alternativamente pode-se entender Ignore como significando que as mensagens que são ignoradas podem aparecer em qualquer lugar nos eventos. 19/03/10 [email protected] 54 Diagrama de Classes (UML) Fragmentos combinados e operadores de interação Diagramas UML Existem outros operadores de interação menos utilizadoque são: Consider (Considerar): Esse operador de interação é o oposto do anteriro e determina que as mensagens devem obrigatoriamente ser consideradas e que todas as outras mensagens não contidas no fragmento devem ser automaticamente desconsideradas. Tanto o operador de interação Ignore como Consider são frequentemente utilizados juntos com os operadores Neg e Assertion, de maneira que um fragmento pode conter o outro. 19/03/10 [email protected] 55 Diagrama de Classes (UML) Fragmentos combinados e operadores de interação Diagramas UML Existem outros operadores de interação menos utilizadoque são: Seq – Abreviatura de Weak Sequencing (Sequência Fraca): Esse operador de interação identifica uma situação na qual as ocorrências de evento devem atender essas propriedades: As ordens das ocorrências de evento dentro de cada um dos operandos são mantidas no resultado; Ocorrências de evento em linhas de vida diferentes de operandos podem vir em qualquer ordem; 19/03/10 [email protected] 56 Diagrama de Classes (UML) Fragmentos combinados e operadores de interação Diagramas UML Existem outros operadores de interação menos utilizadoque são: Seq – Abreviatura de Weak Sequencing (Sequência Fraca): Esse operador de interação identifica uma situação na qual as ocorrências de evento devem atender essas propriedades: Ocorrências de evento na mesma linha de vida de operandos diferentes são ordenadas de tal forma que uma ocorrência de evento do primeiro operando venha antes do segundo operando. 19/03/10 [email protected] 57 Diagrama de Classes (UML) Fragmentos combinados e operadores de interação Diagramas UML Existem outros operadores de interação menos utilizadoque são: Strict – Abreviatura de Strict Sequencing (Sequência Estrita): Esse operador de interação Strict apresenta um refinamento do perador weak sequencing e garante que todas as mensagens no fragmento combinado sejam ordenadas do início ao fim. 19/03/10 [email protected] 58 Diagrama de Classes (UML) São Paulo, 2011 Diagramas UML Universidade Paulista (UNIP) Introdução e Conceitos sobre Diagrama de Seqüência Prof. MSc. Vladimir Camelo [email protected] 19/03/10 [email protected] 59