Prof. Dr. rer. nat. Daniel D. Abdala [email protected] Usados para demonstrar como objetos interagem para executar um caso de uso; Junto com diagramas de seqüência, são usados para clarificar os papéis dos objetos que executam um determinado fluxo de eventos; Principal fonte de informação para determinar: • Interfaces • Responsabilidades de uma classe Colaboração Mais estático Seqüência Dinâmico Relacionamentos entre objetos: • Colaboração: Definido explicitamente; • Seqüência: Pode ser inferido indiretamente; Legibilidade: • Colaboração: Tende a degradar a medida que o número de objetos e mensagens aumenta; • Seqüência: Se mantém sempre legível; Difícil de demonstrar informações descritivas adicionais tais como: • Andamento; • pontos de decisão; • outras informações não estruturadas. Elementos • Atores (atorName); • Objetos (objectName : className); • Links / Mensagens. Os objetos podem ser usados nos diagramas de colaboração das seguintes maneiras: • Uma classe de objeto pode não estar especificada. Normalmente, você primeiro cria um diagrama de colaboração com objetos e depois especifica a classe. • Os objetos podem não ter nome, mas é recomendável nomeálos se você quiser diferenciar os diversos objetos da mesma classe. • Uma classe de objeto pode se representar no diagrama de colaboração, caso participe ativamente da colaboração. Atores • Dispara a interação. Links -Os vínculos seguinte maneira: são definidos da • Um link é um relacionamento existente entre objetos, entre os quais pode haver troca de mensagens. Nos diagramas de colaboração, o link aparece como uma linha sólida entre dois objetos. • Um objeto interage com outros objetos ou navega até eles através dos links existentes entre eles. • Um link pode ser uma instância de uma associação ou pode ser anônimo, o que significa que sua associação não foi especificada. Mensagem é uma comunicação entre objetos que contém as informações para o início da atividade em questão. Nos diagramas de colaboração, as mensagens aparecem como uma seta rotulada perto de um link. Isso significa que o link é usado para transportar ou entregar a mensagem ao objeto de destino. A seta ao longo do link aponta na direção do objeto de destino (aquele que receberá a mensagem). A seta é rotulada com o nome da mensagem e seus parâmetros. Ela também pode ser rotulada com um número que indique a seqüência da mensagem no processo geral de interação. Geralmente, os números seqüenciais são usados nos diagramas de colaboração porque são a única forma de descrever o seqüenciamento relativo das mensagens. Os diagramas de componentes capturam a estrutura física da implementação Têm como objetivo: • organizar o código fonte (ambiente de desenvolvimento) • Construir uma release executável (ambiente de produção) • Especificar componentes como base de dados, etc. Contém componentes, interfaces e relações entre componentes Os pacotes de componentes podem ser utilizados para modelar a arquitetura física Identificar as principais peças do sistema Um pedaço de software reutilizável, bem encapsulado e “facilmente” substituível. • São blocos (peças) que combinados constroem o sistema pretendido. • A dimensão dos componentes não é homogênea, existindo num mesmo sistema, componentes de diferentes dimensões. Quais são os bons candidatos a serem componentes do sistema? • Itens que desempenham uma funcionalidade que é utilizada recorrentemente no sistema • Exemplos: componentes de logging, parsers de XML, componentes de gestão de carrinhos de compra (shopping carts), etc. Em UML um componente pode efetuar as mesmas funcionalidades que uma classe faz • Generalização • Associação com outros componentes ou classes • Implementação de interfaces Um componente representa um empacotamento físico de elementos relacionados logicamente (normalmente classes)