Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
* * Modelagem de Sistemas Prof. Valentino D´Ambrosi Jr. Seção 7 * * Nossas aulas Seção 1 - 29/01/2015 Seção 2 - 05/02/2015 Seção 3 - 12/02/2015 – ED1 Seção 4 - 19/02/2015 - N1 Seção 5 - 26/02/2015 Seção 6 - 05/03/2015 – ED2 Seção 7 - 10/03/2015 Seção 8 – 12/03/2015 – N2 Seção 9 - 17/03/2015 – ED3 Seção 10 - 26/03/2015 – U2 * * DIAGRAMA DE INTERAÇÃO * * Introdução O diagrama de casos de uso descreve quais as funcionalidades que o sistema deve possuir. Com o modelo de casos de uso podemos responder questões como: o que o sistema deve fazer e para quem ele deve fazer. O diagrama de casos de uso não deixa claro o funcionamento interno do sistema. * * Introdução O modelo de casos de uso não responde as seguintes perguntas: Quais são as operações que devem ser executadas internamente ao sistema? A que classes essas operações pertencem? Quais objetos participam da realização desse caso de uso? O diagrama de classes mostra uma outra visão do sistema, uma visão estática dos elementos internos e como eles se relacionam. * * Introdução Porém o diagrama de classes também não responde algumas questões: De que forma os objetos colaboram para que determinado caso de uso seja realizado? Em que ordem as mensagens são enviadas durante essa realização? Que informações precisam ser enviadas em uma mensagem de um objeto a outro? Será que há responsabilidades ou mesmo classes que ainda não foram identificadas? * * Introdução O modelo de casos de uso e de classes são representações incompletas. Para fechar a modelagem de um sistema precisamos criar modelos de interações. Modelos de interação mostram as mensagens trocadas entre os objetos para execução de cenários dos casos de uso. Através do modelo de interações podemos validar o diagrama de classes. * * Diagramas de Interação Realização de um caso de uso é a representação interna do caso de uso. Modelos de interação representam a realização interna de um caso de uso. Na UML são os diagramas de interação que modelam aspectos de interação do sistema. * * Diagramas de Interação São diagramas de interação da UML 2.0: diagrama de sequência, diagrama de comunicação (ou colaboração), diagrama de visão geral de interação e diagrama de tempo. O diagrama de sequência da destaque para a ordem temporal que as mensagens são trocadas entre os objetos. O diagrama de comunicação da ênfase para os relacionamentos existentes entre os objetos de um mesmo cenário. * * Diagramas de Interação Diagramas de sequência são largamente utilizados em projetos. Exemplo: * * Diagramas de Interação Exemplo: * * Diagramas de Interação O diagrama de visão geral de interação é utilizado para apresentar uma visão geral de diversas interações entre objetos. Cada interação é representada por um diagrama de interação. Diagramas de interação descrevem o funcionamento interno de um caso de uso. Diagramas de interação descrevem a sequência de troca de mensagens entre objetos. * * Diagramas de Sequência e Comunicação Diagramas de sequência e comunicação possuem notação bem comum: Mensagens Atores Objetos Classes * * Diagramas de Sequência e Comunicação - Mensagens O princípio mais importante entre objetos é o conceito de troca de mensagens. Um envio de mensagem é a solicitação de uma operação ou serviço. Um software pode ser visto como uma rede de objetos que trocam mensagens. As funcionalidades do software são realizadas pelos objetos. * * Diagramas de Sequência e Comunicação - Mensagens “Uma mensagem representa a requisição de um objeto remetente a um objeto receptor para que este último execute alguma operação definida em sua classe.” Uma mensagem é a chamada de um método implementado dentro de uma classe. Em um diagrama a representação de uma mensagem requer sempre um objeto remetente e um objeto receptor. * * Diagramas de Sequência e Comunicação - Mensagens “Em uma mensagem podemos passar informações que serão utilizadas no objeto receptor (parâmetros). • Tipos de Mensagens: • Mensagem Síncrona O remetente fica bloqueado até que o receptor termine de atender a requisição. Método definido na classe do objeto receptor. •Mensagem Assíncrona O objeto remetente não aguarda a resposta do receptor para prosseguir com o seu processamento. * * Diagramas de Sequência e Comunicação - Mensagens Tipos de Mensagens: Mensagem de Sinal Mensagem utilizada para enviar um sinal. Um sinal pode ser o envio de uma requisição entre dois módulos em um sistema distribuído. Mensagem de Retorno É aquela mensagem utilizada para enviar o retorno de uma mensagem enviada anteriormente. Mensagem Reflexiva É aquela enviada para um método da própria classe. * * Diagramas de Sequência e Comunicação - Mensagens Sintaxe de uma Mensagem: Uma mensagem e representada por uma seta, cujo sentido e do objeto remetente para o objeto receptor. As setas possuem rotulos que especificam a mensagem que esta sendo trocada (uma mesma classe pode possuir mais de um metodo). O rotulo pode ser apenas o nome do metodo do objeto receptor. * * Diagramas de Sequência e Comunicação - Mensagens Sintaxe de uma Mensagem: O rotulo também pode ser a assinatura completa do método. Sintaxe completa: [[expressão-sequencia] controle:] [v:=] nome [(argumentos)] A parte dentro dos colchetes e opcional. * * Diagramas de Sequência e Comunicação - Mensagens Sintaxe de uma Mensagem: Obrigatória e somente o nome do método. Expressão-sequência: Utilizada para remover ambiguidades sobre quando uma determinada mensagem foi enviada em relação as outras. No diagrama de sequência do exemplo as mensagens foram numeradas com 1, 1.1 e 1.1.1. * * Diagramas de Sequência e Comunicação - Mensagens Expressão-sequência: A mensagem 1.1 foi enviada antes da mensagem 1.1.1. Podemos utilizar a numeração em níveis ou sem níveis. A numeração em níveis proporciona a indicação que uma determinada mensagem foi enviada por causa de outra mensagem. * * Diagramas de Sequência e Comunicação - Mensagens Expressão-sequência: O formato em níveis pode ser sufixado com letras para indicar que duas mensagens estão sendo enviadas em paralelo. Exemplo: 1.2a e 1.2b Controle: Campo utilizado quando precisamos mostrar que o envio de uma mensagem esta condicionado ao valor de uma expressão lógica (clausula-condição). * * Diagramas de Sequência e Comunicação - Mensagens Controle: Este campo também pode ser utilizado para indicar quantas vezes uma mensagem deve ser enviada (clausula-iteração). Se aparecer uma clausula-condição esta mensagem só e enviada se a condição for verdadeira. A clausula-iteração e representada por um asterisco e indica que a mensagem e enviada diversas vezes. * * Diagramas de Sequência e Comunicação - Mensagens Controle: Podemos também em uma clausula iteração definir o limite inferior e o limite superior de vezes que uma mesma mensagem será enviada. Exemplo: *[i:=1…10] Variável: E o elemento v da sintaxe apresentada. * * Diagramas de Sequência e Comunicação - Mensagens Variável: Representa o valor a ser retornado pelo método a ser executado. Nome e argumentos: O elemento nome representa • o nome do método do objeto receptor. Um método pode conter uma lista de argumentos, que podem ser especificados dentro dos parênteses. * * Diagramas de Sequência e Comunicação - Mensagens Exemplos: 1: adicionarItem(item) 3: [a > b]: trocar(a,b) 1.2: *:desenhar() 1.1.3: *[i:=1…10]: figura[i].desenhar() 4: x:= selecionar(e) * * Diagramas de Sequência e Comunicação - Atores Atores de um DCU podem participar de um diagrama de interação. A notação de um ator em um diagrama de interação é igual de um DCU. * * Diagramas de Sequência e Comunicação - Objetos Objetos em um diagrama de interação possuem a mesma notação de um objeto em um diagrama de objetos. A UML 2.0 define o formato da expressão interna de um objeto da seguinte forma: nome_do_objeto [seletor] : nome_classe ref ocorrência_interação * * Diagramas de Sequência e Comunicação - Objetos Componentes da Expressão: nome_objeto É o nome de uma instância de uma determinada classe. Elemento opcional da expressão. Normalmente nomeamos objetos quando precisamos referenciar o mesmo objeto em mais de um lugar no diagrama. Exemplo: * * Diagramas de Sequência e Comunicação - Objetos Componentes da Expressão: nome_classe corresponde ao nome da classe da instância. seletor elemento opcional. Serve para indicar que uma instância de uma classe pertence a uma coleção de objetos. Exemplo: Lista * * Diagramas de Sequência e Comunicação - Objetos Componentes da Expressão: ocorrência_interação este elemento é opcional. Serve para referênciar outro diagrama de interação. Quando este elemento for utilizado a palavra “ref” precisa ser posicionada a sua esquerda. * * Diagramas de Sequência e Comunicação - Classes Existem situações que enviamos mensagens para classes e não para objetos. Se uma classe participar de um caso de uso precisamos representar esta classe no diagrama de interação. Mensagens são chamadas de métodos (como já visto anteriormentente). Mensagens para classes são chamadas de métodos estáticos. * * Diagramas de Sequência e Comunicação - Classes A notação de classe e objeto em um diagrama de interação são iguais. A diferença está no fato de que na representação de classe, o nome da classe não é sublinhado. Exemplo: * * Diagramas de Sequência e Comunicação - Coleções de Objetos Diagrama de interação permitem a representação de objetos, classes e multiobjetos. Multiobjetos são coleções de objetos de uma mesma classe. Podemos utilizar um multiobjeto da UML para representar a implementação de uma lista de objetos em Java. * * Diagramas de Sequência e Comunicação - Coleções de Objetos Notação de multiobjetos: 2 retângulos sobrepostos. Exemplo: Em um código Java implementamos coleções de objetos através de estruturas de dados como ArrayList, List, Vector, ect. * * Diagramas de Sequência e Comunicação - Coleções de Objetos São algumas das operações possíveis com coleções de objetos: adicionar um objeto a lista. remover um objeto da lista. procurar um objeto na lista. * * DIAGRAMA DE SEQUÊNCIA * * Diagramas de Sequência OBJETIVO = mostrar a ordem temporal que as interações entre objetos acontecem. Notações já estudadas de um diagrama de sequência: • Mensagem • Classe e objetos • Coleção de objetos • Atores * * Diagramas de Sequência Notações não estudadas (ainda): Linha da Vida Envio de mensagens Ocorrência de execução Criação e destruição de objetos * * Diagramas de Sequência Linha da Vida O primeiro passo da criação de um diagrama de sequência é identificar os objetos que estão relacionados com o caso de uso que será modelado. O segundo passo é posicionar os objetos no diagrama. Linha de vida são elementos compostos por duas partes: cabeça e cauda. * * Diagramas de Sequência Linha da Vida A cabeça é a representação do objeto ou da classe. A cauda é uma linha vertical tracejada. Podemos ter caudas em • objetos e atores. O ator e sua cauda devem ser posicionados no extremo da esquerda de um diagrama de sequência. * * Diagramas de Sequência Linha da Vida Ordem de Posicionamento dos Elementos em um Diagrama de Sequência: Da esquerda para a direita -> ator, objetos com os quais o ator interage, objetos de controle, objetos de entidade. * * Diagramas de Sequência Envio de Mensagens Mensagens em um diagrama de sequência são representadas por flechas na horizontal ligando uma linha de vida a outra. O objeto de onde parte a flecha é o remetente. O objeto para o qual aponta a flecha é o receptor. * * Diagramas de Sequência Envio de Mensagens Para cada tipo de mensagem existe um tipo de flecha: * * Diagramas de Sequência Envio de Mensagens O rótulo de uma mensagem deve ser posicionado acima da flecha. Um diagrama de sequência deve ser lido da esquerda para a direita e de cima para baixo. Quanto mais abaixo uma mensagem está no diagrama de sequência mais recentemente esta mensagem foi enviada. * * Diagramas de Sequência Envio de Mensagens Podemos ainda ter mensagens reflexivas. Mensagens reflexivas são aquelas que partem e chegam no mesmo objeto. * * Diagramas de Sequência Ocorrência de Execução Representa o tempo que o objeto realiza alguma operação. São representados por blocos retangulares posicionados sobre a linha da vida. O inicio de uma ocorrência de execução é quando o receptor recebe uma mensagem. O término de uma ocorrência de execução é quando o objeto terminou de realizar a operação. * * Diagramas de Sequência Ocorrência de Execução O uso dos blocos de execução não é obrigatório. Se for utilizado torna desnecessário o uso de mensagem de retorno. * * Diagramas de Sequência Criação e Destruição de Objetos No momento que instanciamos um objeto no código estamos criando este objeto. Java possui mecanismos de destruição automática de objetos. Em diagramas de sequência temos notações para representar a criação e a destruição de objetos. * * Diagramas de Sequência Criação e Destruição de Objetos Primeiro precisamos identificar se um objeto é criado antes do caso de uso começar ou durante o caso de uso. Se o objeto já existir antes do inicio das interações do caso de uso, posicionamos este objeto no topo do diagrama. Caso contrário posicionamos o objeto na vertical no momento que ele é criado. * * Diagramas de Sequência Criação e Destruição de Objetos A instanciação de um objeto sempre é feita por outro objeto. Mensagens de criação de objetos podem ser rotuladas de duas maneiras: <<create>> Com o nome do método construtor. Mensagens de criação de objetos são representadas por uma flecha pontilhada. * * Diagramas de Sequência Criação e Destruição de Objetos A flecha pontilhada deve apontar para a cabeça e não para a cauda de uma linha de vida. Exemplo: * * Diagramas de Sequência Criação e Destruição de Objetos A destruição de um objeto é representada por um X no final da linha de vida de um objeto. Mensagens de destruição são rotuladas por <<destroy>>. A flecha de destruição não é pontilhada. * * DIAGRAMA DE COMUNICAÇÃO * * Diagramas de Comunicação Diagrama de comunicação exibe os objetos relevantes de um caso de uso e as ligações entre esses objetos. Mostra as mensagens sendo trocadas entre os objetos. * * Diagramas de Comunicação Como em um diagrama de sequência podemos ter: Objetos e classes Multiobjetos Referências para um elemento de uma coleção Objetos em um diagrama de comunicação são ligados através de linhas. As linhas correspondem a relacionamentos entre objetos: associação, agregação, composição e dependência. * * Diagramas de Comunicação A leitura do diagrama de comunicação é diferente de um diagrama de sequência. Em um diagrama de sequência a posição vertical indica a ordem que as mensagens foram enviadas. Em um diagrama de comunicação só sabemos a ordem de envio das mensagens através das expressões de sequência. * * Diagramas de Comunicação Isso torna expressões de sequência obrigatórias em um diagrama de comunicação. O sentido da mensagem é indicado por uma seta posicionada próxima ao rótulo da mensagem. A seta aponta para o objeto receptor da mensagem. * * Diagramas de Comunicação Em um diagrama de comunicação também podemos representar a criação e destruição de um objeto. A criação de objetos são rotuladas com {new}. A destruição de objetos são rotuladas com {destroyed}. Os rótulos de criação e destruição podem ser posicionados dentro do objeto ou próximos a linha. * * Diagramas de Sequência Exemplo Completo Caso de Uso * * Diagramas de Sequência Exemplo Completo Diagrama de Classes * * Diagramas de Sequência Exemplo Completo Diagrama de Sequência * * Diagramas de Comunicação Exemplo Completo Diagrama de Comunicação * * Modelagem Identifique as classes que participam em cada caso de uso. Essas são as entidades do mundo real que estariam envolvidas na tarefa do caso de uso se este fosse executado manualmente. Exemplo: Disciplina, Pagamento, Venda, Pedido, etc. Identifique as classes que ajudam a organizar as tarefas a serem executadas pelo caso de uso. Exemplo: classes de controle. * * Modelagem Identificar quais objetos são criados durante a execução do caso de uso. Identificar quais objetos criam outros objetos. Durante a modelagem • de um diagrama de interação pode surgir a necessidade de um objeto que não exista no diagrama de classes. Também podem surgir novos métodos, atributos e associações. * * Modelagem Utilize notas explicativas no seu modelo de interação para explicar partes mais complicadas. Nas notas explicativas podemos utilizar texto livre ou pseudocódigo. * * Exercício A partir do diagrama de comunicação abaixo construa o diagrama de classes. Especifique classes, relacionamentos e métodos que são possíveis de serem extraídos a partir do diagrama de comunicação. * * Contato valentino.junior@bilac.com.br Obrigado pela atenção de todos(as). @ *
Compartilhar