Análise e Projeto de Sistemas OO Realizações de O Diagrama Use Case apresenta uma visão externa do sistema Diagramas de Interação descrevem como use cases são realizados como interações entre associações de objetos Há dois tipos de Diagramas de Interação Diagramas de Sequência Diagramas de Colaboração 219 Diagramas de Interação 220 Diagrama de Sequência Diagrama de Interação: Modelos que descrevem como grupos de objetoscolaboram para obter algum comportamento Tipicamente um diagrama de interação captura o comportamento de um único use-case 221 Um Diagrama de Sequência mostra a interação entre objetos tendo em vista a sequência de tempo Mostra: objetos e classes envolvidos a seqüência de mensagens trocadas pelos objetos, necessárias para desenvolver a funcionalidade do cenário Na maioria das vezes se identifica com um Caso de Uso específico, porque um Caso de Uso, em geral, refere-se a um processo disparado por um usuário; 222 Diagrama de Sequência Cenários Nem sempre um Caso de Uso gera obrigatoriamente um Diagrama de Seqüência, como é muitas vezes, o que ocorre com os Casos de uso do tipo <<include >>, porque estes têm que ser executados juntamente com os outros Casos de Uso que os utilizam e, por isso muitas vezes suas etapas são descritas nos Diagramas de Seqüência relativos aos Casos de Uso que os utilizam. Nada impede que se defina um Diagrama de Seqüência exclusivo para um Caso de Uso utilizado por outros Casos de Uso através da associação 223 <<include>>. Cenários Descrevem como funciona o use case; Um cenário é uma instância de um use case; Cenário é um caminho através do fluxo de eventos de use case; Cenários ajudam a identificar objetos, classes e interação entre objetos necessários para desenvolver a funcionalidade de um use case; 224 Componentes de um Diagrama de Sequência ATORES Cenários são documentados via diagrama de interação (seqüência e colaboração); Cenário documenta como as responsabilidades especificadas no use case são distribuídas entre os objetos e classes do sistema; 225 São exatamente os mesmos descritos no Diagrama de Casos de uso, ou seja, são entidades externas que interagem com o sistema e que solicitam serviços, gerando dessa forma eventos que iniciam processos. 226 Componentes de um Diagrama de Sequência Componentes de um Diagrama de Sequência OBJETOS OBJETO Representam as instâncias das classes envolvidas no processo ilustrado pelo Diagrama de Seqüência. É composto por um nome, antes do (:) em minúsculo; Seguido do nome da classe que o objeto pertence, depois do (:) com as iniciais maiúsculas; Possui uma Linha de Vida, representada por uma linha vertical tracejada (abaixo do objeto) 227 Componentes de um Diagrama de Sequência 228 Componentes de um Diagrama de Sequência OBJETOS Um objeto pode existir desde o início do processo ou ser criado durante o decorrer da execução do mesmo: No primeiro caso: retângulo aparecerá na parte superior do diagrama; No segundo caso: retângulo surgirá na mesma altura em que a mensagem que o criar for chamada 229 1º CASO 2º CASO 230 Componentes de um Diagrama de Sequência Componentes de um Diagrama de Sequência LINHA DE VIDA FOCO DE CONTROLE OU ATIVAÇÃO Representa o tempo em que um objeto existiu durante um processo. É interrompida com um “X” quando o obejto é destruído. Um objeto não precisa necessariamente existir quando o processo é iniciado podendo ser criado durante o processo. Indica os períodos em que um determinado objeto está participando ativamente do processo; Identifica os momentos em que um objeto está executando um ou mais métodos utilizados em um processo específico. 231 Componentes de um Diagrama de Sequência 232 MENSAGENS ou ESTÍMULOS 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 simplesmente a comunicação entre dois atores, o que no caso não dispara nenhum método. Um Diagrama de Seqüência em geral é iniciado por um evento externo, causado por algum ator, o que acarreta o disparo de um método em um dos objetos. A ocorrência deste evento inicia o processo. 233 234 MENSAGENS ou ESTÍMULOS MENSAGENS ou ESTÍMULOS As mensagens podem ser disparadas entre: Um ator e outro ator: não muito comum, mas pode permitir uma melhor compreensão do processo como um todo; Um ator e um objeto: ator produz um evento que força o disparo de um método em um objeto; Um objeto e um objeto: constitui a ocorrência mais comum de mensagens, onde um obejto trasmite uma mensagem para outro obejto solicitando a execução de um método; Um objeto e um ator: somente ocorre quando um obejto envia uma mensagem de retorno em resposta a chamada de um método 235 solicitado, contendo seus resultados. MENSAGENS ou ESTÍMULOS São representadas por retas entre os dois componentes envolvidos, contendo uma seta para indicar qual objeto ou ator disparou a manesgaem no outro objeto. O texto contido na mensagem identifica primeiro qual o evento ocorreu e forçou o envio da mensagem e qual o método foi chamado; Pode haver mensagens somente com o evento ou com a chamada ao método. 236 MENSAGENS ou ESTÍMULOS Mensagens de Retorno Exemplos: Identifica a resposta a uma mensagem para o objeto ou ator que a chamou. Pode retornar informações específicas do método chamado ou simplesmente um valor indicando se o método foi executado com sucessso ou não. 237 238 MENSAGENS ou ESTÍMULOS MENSAGENS ou ESTÍMULOS Auto-chamadas ou Auto-delegações Condições ou Condições de Guarda São mensagens que um objeto envia para si mesmo. Uma mensagem parte do objeto e atinge o próprio objeto: Indicam que uma mensagem só poderá ser enviada a um objeto se uma determinada condição for verdadeira. Normalmente entre colchetes na mensagem, mas podem ser também representadas por meio de restrições: 239 Visões Dinâmicas - Diagramas de Seqüência : Mais Exemplos... : chamador a {b - a < 1 s.} b {c - b < 10 s} c A chamada é transmitida através da rede {d'- d < 5 s} d : permutador : receptor 3: disca dígito 4: transmite d' 8: pára sinal Ponto de Entrada Mostra o período durante o qual um objeto está executando uma ação Representa: 2: espera sinal 6: telefone toca Mensagem para si mesmo Tempo de duração da ação controle de relacionamento entre a ativação e suas chamadas 7: resposta do telefone neste ponto as partes podem falar Visões Dinâmicas - Diagramas de Seqüência Foco de Controle 1: ergue receptor 5: sinal tocando 240 9: pára chamada 241 Link Foco de Controle 242 Diagramas de Colaboração Diagrama de Colaboração : Curso : Disciplina Um Diagrama de Colaboração mostra interações organizadas à volta de objetos e as ligações de um para o outro 2 : valida_curso 7: recupera_prerequisitos:ListaPreRequisitos 3: va lida _dis ciplina Outra forma de representar cenários : Pre Requisito : Aluno 1: pedido_de_matricula (ma tricula _id, disc _id) É formado por: 6: obter_prerequisitos : ListaPreRequisitos : Interface Matricula : Grade Curricular 5: verifica se aluno já matriculado e aprovado 8: consulta_prerequisitos(ListaPreRequisitos l) objetos(retângulos) interações entre objetos(linhas ligando objetos) mensagens (texto e setas do cliente para o forncedor) 4: valida_turma 9: co nsulta_vaga : 10: [se existe vaga] incluir_aluno 11: [se não existe vaga] incluir_aluno_espera Historico : Turma 243 244