Diagrama de Colaboração UML Diagrama de Colaboração O que diferencia um diagrama de colaboração de um diagrama de sequencia é o fato de que o tempo não é mais representado por linhas verticais, mas sim através de uma numeração, que pode ser de duas formas: simples (1,2,3,...) composta (1.1, 1.2, 1.2.1, ...) Um objeto é representado como um retângulo, contendo no seu interior um rótulo, que informa o nome do objeto e o nome da classe, separados por dois pontos. Detalhe: ambos podem ser omitidos. Diagrama de Colaboração Os dois tipos de diagramas são chamados diagramas de interação O objetivo é mostrar como as pós-condições serão executadas Quando se deseja mostrar apenas as sequências de interações, o diagrama de sequência tora-se mais simples, já o de colaboração é mais adequado quando se deseja expressar mais detalhes da colaboração entre objetos. Diagrama de Colaboração Diagrama de Colaboração Diagrama de Colaboração Um diagrama de colaboração ilustra uma interação organizada espacialmente. Mostra as relações entre objetos que desempenham diferentes papéis. Por outro lado, um diagrama de colaboração não mostra o tempo como uma dimensão separada, mas através de numeração. A ordem de uma interação é descrita através de uma sequencia de números, normalmente com início em 1. Num fluxo de controle procedimental, os números de comunicação de uma subsequência são representados de acordo com o respectivo nível de inclusão. Para uma sequencia de interações não procedimental, i.e., entre objetos concorrentes, todos os números de uma sequencia encontram-se ao mesmo nível. Diagrama de Colaboração Diagrama de Colaboração • Um diagrama de colaboração pode ser representado por duas formas: nível de especificação (o diagrama ilustra os papéis que as classes e associações desempenham, bem como as suas mensagens), ou nível de instância (o diagrama ilustra objetos, ligações e estímulos). A primeira forma apresenta os papéis e estrutura definida na colaboração subjacente, enquanto que a segunda ilustra uma instância que deve ser conforme com os papéis de uma colaboração. Diagrama de Colaboração - Exemplo Pessoa com distintos Papéis “Num contexto acadêmico, uma pessoa pode desempenhar dois papéis distintos. Por um lado, uma pessoa, como professor, pode ser o regente ou coordenador de (zero ou mais) disciplinas e pode ser responsável pela supervisão 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”. Diagrama de Colaboração - Exemplo Diagrama de Colaboração - Exemplo Diagrama de Colaboração - Notação Classe e instâncias Diagrama de Colaboração - Notação Links Um link é uma conexão entre dois objetos É uma instância de uma associação Indica alguma forma de navegabilidade e visibilidade Diagrama de Colaboração - Notação Mensagens Observe o número de sequência das mensagens Diagrama de Colaboração - Notação Parâmetros O tipo do parâmetro é opcional Diagrama de Colaboração - Notação Valor do retorno Diagrama de Colaboração - Notação Iteração A iteração é mostrada com um número de sequência e um * A mensagem é enviada repetidamente Diagrama de Colaboração - Notação Iteração Valores de recorrência podem ser incluídos Diagrama de Colaboração - Notação Iteração Mais de uma mensagem pode ser enviada na iteração Diagrama de Colaboração - Notação Criação de instâncias A mensagem de criação independente de linguagem é "create" O estereótipo «new» pode ser usado Diagrama de Colaboração - Notação Sequenciamento de mensagens A primeira mensagem não é numerada Diagrama de Colaboração - Notação Sequenciamento de mensagens Tem várias alternativas para numerar as demais mensagens, incluindo um esquema hierárquico Diagrama de Colaboração - Notação Mensagens condicionais A mensagem só é enviada se o teste resultar em TRUE Diagrama de Colaboração - Notação Caminhos condicionais mutuamente exclusivos Diagrama de Colaboração - Notação Caminhos condicionais mutuamente exclusivos