Baixe o app para aproveitar ainda mais
Prévia do material em texto
Juntamente com o diagrama/especificações de casos de uso e o diagrama de classes, o diagrama de sequência forma o tripé da análise, ou seja, uma tríplice aliança de modelos que podem ser usados nas fases de modelagem de requisitos e análise do sistema. Os três, juntos, já são um excelente caminho de modelagem, nessas fases. Uma das grandes contribuições do diagrama de sequência é identificar novos métodos para as classes, além de colaborar com a identificação de qual classe deve conter um determinado método. Igualmente relevante é a utilização do diagrama de estados para as classes relevantes do sistema em estudo. Através da análise do diagrama de transição de estados dos objetos de um sistema, é possível prever as possíveis operações necessárias em função de eventos que possam ocorrer, bem como melhorarmos e refinarmos o diagrama de classes com novas propriedades (atributos e métodos). 1. Apresentar o diagrama de sequência, sob o enfoque da UML, com seus elementos; 2. Apresentar o diagrama de transição de estados, com ponto de vista da UML, com seus elementos. Os diagramas de interação, de forma geral, mostram como as classes colaboram em determinados comportamentos. A UML, em sua versão 2.0, oferece algumas formas de modelar interações, sendo o diagrama de sequência mais usado deles. Outro diagrama de interação popular é o diagrama de comunicação que, nas versões anteriores a 2.0 da UML, era chamado de diagrama de colaboração. Num mesmo projeto, podemos até usar os 2 diagramas de interação: diagrama de sequência ou comunicação (antigo colaboração), mas para interações ou comportamentos diferentes. Não faz sentido usar ambos, por exemplo, para representar um mesmo cenário de uso, pois eles têm o mesmo objetivo, porém com focos diferentes. Todavia, para Linguagem de Modelagem Unificada (UML) Aula 4: Diag. de Sequ., de Estados e de Atividade Introdução Objetivos Diagramas de interação cenários, casos de uso ou comportamentos diferenciados, podemos optar por um dos dois. Em geral, usa-se apenas um deles por todo o projeto. O diagrama de sequência é o mais adequado, pelo fato de focar a temporalidade (daí o seu nome) da interação, que é relevante. Já o diagrama de comunicação foca nas mensagens enviadas entre objetos que estão relacionados. Porém, cada um tem sua vantagem, que, por sua vez, atua como desvantagem. Diagrama de sequência Vantagem: há como saber a ordem de envio das mensagens. Diagrama de comunicação Vantagem: normalmente, permite construir modelos mais legíveis comparativamente aos diagramas de sequência. Nesta aula, iremos nos ater apenas ao diagrama de sequência, devido à falta de tempo, mas incentivamos que você pesquise e entenda o funcionamento do diagrama de comunicação (ou colaboração, nas versões da UML anteriores a 2.0). Acompanhe, a seguir, o tripé da análise. Do ponto de vista da fase de análise de sistemas existem 3 modelos que se integram e formam uma boa base mínima para modelagem e documentação de sistemas de informação. São eles: diagrama e especificações de casos de uso, diagrama de classes e diagrama de sequência, cuja relação é apresentada no esquema. Esses três diagramas formam o chamado Tripé da Análise. Vejamos como tais diagramas se integram. Figura 1 – Tripé da análise Autor: elaborado pelo autor Casos de uso (em suas especificações) apresentam especificam o comportamento do sistema (ou parte dele), descrevendo as funcionalidades deste. O caso de uso é um conjunto de cenários, onde: Atenção! O tripé da análise http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t03a.png 1. O cenário é uma sequência de passos que descreve uma interação entre sistema e um usuário. 2. Todo caso de uso tem o cenário principal, que é o “caminho sem erros”, ou seja, tudo acontece sem nenhum problema ou exceção. 3. A cada problema ou exceção pode-se derivar um novo cenário, mostrando como o sistema vai se comportar. É sob essa ótica, onde o diagrama de sequência contribui com a descoberta de novas operações, que para desenvolvermos esse diagrama de sequência é necessário ter em mãos: Diagrama de casos de uso; Especificação de cada caso de uso; Diagrama conceitual de classes. O diagrama de classes, conceitual, mostra as classes do domínio do problema. O diagrama de sequência mostra a interação entres os objetos (classes) de um determinado cenário (caso de uso). Para cada cenário de um caso de uso, teremos um diagrama. Em contrapartida, o diagrama de sequência contribui com a descoberta de novas operações, que serão acrescidas nos métodos das classes envolvidas no diagrama de sequência. Vale observar que, ao elaborarmos o diagrama de sequência, podemos realizar alterações de melhorias e acréscimos tanto nas especificações de casos de uso como no diagrama de casos de uso e, principalmente, no diagrama de classes, onde, além de novos métodos para as classes já existentes, poderemos também modelar novas classes. Essas alterações são normais, sadias e realmente acontecem, pois à medida que vamos evoluindo e nos aprofundando no sistema, aumentamos nossa compreensão e capacidade de modelar o sistema mais adequadamente. A seguir, vamos aprofundar sobre o diagrama de sequência. O diagrama de sequência visa mostrar como as classes envolvidas interagem (trocam mensagens) para a realização de um caso de uso, mais especificamente de um cenário de uso (parte de um caso de uso). O nome “sequência” advém do fato de ele descrever, ao longo da linha do tempo, a sequência de comunicações entre os objetos. Veja, a seguir, o primeiro exemplo de diagrama de sequência, a partir do qual explicaremos os elementos básicos e a correlação com casos de uso e classes. Atenção! O diagrama de sequência Figura 2 – Diagrama de sequência Autor: elaborado pelo autor 1. O ato é o mesmo do caso de uso: correntista representado por boneco. 2. Interface é o formulário com o qual o ator interage. 3. Conta Corrente e Movimento Conta são classes do modelo conceitual de classes. 4. ‘Agencia e Conta’ e ‘Senha’ são dados informados pelo ator correntista sobre sua conta corrente. 5. Validar AgConta (Agencia e Conta) e Validar Senha são métodos da classe Conta Corrente, que são chamados por uma mensagem síncrona enviada à classe. 6. ObterSaldoConta (Agencia, Conta, Data) é um método da classe Movimento Conta, que é chamado por uma mensagem síncrona enviada à classe. 7. ObterSaldoConta, por sua vez, chama o método Calcular Saldo (Data) através de uma autochamada, ou seja, o método chamado pertence à própria classe. Isso também é chamado de autodelegação. 8. A linha pontilhada vertical que aparece em cada elemento: Ator, Interface e classes chama-se Linha da Vida. 9. A caixa que aparece ao longo da Linha da Vida chama-se Caixa de Ativação e mostra quando cada elemento está ativo na interação. 10. Observe que antes da chamada os métodos ValidarSenha têm [Agencia e Contas Validas]. Isso é uma condição de guarda. Entre colchetes as condições são apresentadas. O método ValidarSenha somente será executado se a condição for satisfeita. 11. Da mesma forma, antes da chamada ao método ObterSaldoConta (Agencia, Conta e Data), temos a condição de guarda [Ag, Conta e Senha válidos], indicando que o referido método apenas será executado se a condição for verdadeira. 1) Cabe destacar que o diagrama de sequência apresentado refere-se ao cenário principal do caso de uso Emitir Saldo Conta, abaixo descrito e cujo trecho de diagrama também é apresentado. Especificação de casos de uso Caso de Uso: Emitir Saldo Conta Cenário Principal 1. Correntista Informa Agencia e Conta corrente 2. Sistema valida Agencia e Conta 3. Correntista Informa senha de acesso 4. Sistema valida senha de acesso 5. Sistema calcula saldo do dia corrente, com base nas movimentações da conta e saldo anterior. 6. Sistemas apresenta saldo ao correntista 2) Cabe destacar que o diagrama de sequência apresentado refere-se ao Cenário Principal do caso de uso Emitir Saldo Conta, abaixo descrito e cujo trecho de diagramaestá abaixo. Trecho de diagrama de caso de uso relacionado à interação: http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t04a.png Figura 3 – Diagrama de caso de uso Autor: elaborado pelo autor 3) Cabe destacar que o diagrama de sequencia apresentado refere-se ao Cenário Principal do caso de uso Emitir Saldo Conta, abaixo descrito e cujo trecho de diagrama está abaixo. Diagrama de classes – a figura abaixo exibe o trecho de diagrama de classe relacionado a esse diagrama de sequência: Figura 4 – Diagrama de classe Autor: elaborado pelo autor Dentre os elementos do diagrama de sequência, podemos destacar: Os objetos participantes da interação são organizados na horizontal; Abaixo de cada objeto existe uma linha (linha de vida); Cada linha de vida possui o seu foco de controle (caixa de ativação); O foco de controle indica que o objeto está fazendo algo; As mensagens entre objetos são representadas com linhas horizontais rotuladas partindo da linha de vida do objeto remetente e chegando à linha de vida do objeto receptor. A figura a seguir, extraída do livro UML essencial: um breve guia para a linguagem-padrão de modelagem de objetos, de Martin Fowler, mostra os elementos principais de um diagrama de sequência. Todos os elementos que citamos no exemplo dado anteriormente estão bem elucidados nela. Figura 5 – Diagrama de sequência Autor: elaborado pelo autor O diagrama de sequência e seus elementos http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t04b.png http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t04c.png http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t05a.png 1. Participante: Ator e classes que participam da interação; 2. Linha da vida de cada participante; 3. Caixa de ativação indicando o quanto o participante está ativo na interação; 4. Mensagem: chamado de um método da classe, onde chega a mensagem; 5. Retorno: mensagem de retorno da mensagem (chamada ao método da classe); 6. Autochamada: chamada de uma método da própria classe. Representando decisões no diagrama de sequência Muitas vezes, precisamos representar que determinadas mensagens serão enviadas ou não, de acordo com uma condição, chamada condição de guarda, ou, ainda, representar um conjunto de mensagens mutuamente exclusivas. Conforme podemos observar na imagem abaixo, vemos um trecho de diagrama de sequencia, onde representamos a decisão. Observe que temos o retângulo, com uma linha tracejada dentro. Na parte de cima, inicial do retângulo, temos a condição de guarda [Tipo Cliente =F] e na parte de baixo, após a linha tracejada, temos outra condição de guarda [Tipo Cliente = F]. Vejamos como funciona: Figura 6 – Decisões Autor: elaborado pelo autor 1. O ator informa o tipo de cliente, que pode ser F (física) ou J (jurídica) 2. Se o Tipo Cliente = F (primeira condição de guarda) = VERDADE, executa-se as mensagens que estão associadas a essa condição, ou seja as mensagens que estão antes do tracejado. Ator informa os dados da pessoa física (Dados Cliente Fis) Ocorre a inserção desses dados , através da chamada ao método Inserir CliFis(), que está na classe Pessoa Física 3. Se o Tipo Cliente = F = FALSO, desvia-se para a execução das mensagens que estão após a linha tracejada, onde temos uma outra condição de guarda a ser avaliada 4. Se Tipo Cliente = J (segunda condição de guarda) = VERDADE executa-se as mensagens que estão associadas a essa condição, ou seja as mensagens que estão após o tracejado. a) Ator informa os dados da pessoa Juridica (Dados Jur) a) Ocorre a inserção desses dados , através da chamada ao método Inserir CliJur(), que está na classe Pessoa Jurídica. Decisões e repetições no diagrama de sequência http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t06a.png O exemplo a seguir, mostra que podem haver tantas condições de guarda quantas forem necessárias. Abaixo temos Opcão = A, Opção = B e Else. Figura 7 – Decisões Autor: elaborado pelo autor Como funciona este diagrama? Se [Opcão = A] é verdade, chama o método Msg1 do Objeto 1 Senão Se [Opção = B] é verdade, chama o método Mgs2 do Objeto 2 Senão Chama o método Msg3 do Objeto 3 Agora vejamos como representar Repetições no diagrama de sequencia. Além dos elementos já discutidos, o diagrama de sequencia possibilita que especifiquemos REPETIÇõES, ou seja uma ou mais mensagens que são executadas repetidas vezes. O trecho de diagrama de sequencia abaixo, a representação da repetição, na caixa LOOP, chamada quadro de interação, com a condição de guarda [Para cada item de venda], ou seja enquanto houver item na venda e o caixa (ator) digitar um cod produto, as mensagens e interações contidas na caixa LOOP serão executadas. Figura 8 – Repetições Autor: elaborado pelo autor O diagrama de sequência dispõem de 2 notações extras para representar, respectivamente, a criação (<<Create>>) e a destruição (<<Destroy>>) de objetos participantes da interação. Na figura, vemos o uso da criação do participante (Objeto Criado). Após criado, quando recebe a mensagem <<Create>>, representada pelo método (CriaObjeto()), o Objeto Criado Criação de destruição de objetos http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t06b.png http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t06c.png pode receber e enviar mensagens normalmente. Na figura, temos o exemplo da destruição de objetos, quando o objeto destruidor envia a mensagem <<destroy>>, representada pela execução do método DestroyMessage(). O Elemento, representado pelo X no objeto destruído, representa o seu fim. Um objeto pode se autodestruir, o que é representado por um X ao final da linha de vida de um objeto (nesse caso, é como se o objeto enviasse uma destruição a si próprio). Figura 10 – Autodestruição Autor: elaborado pelo autor Como hoje as linguagens possuem sistema de coleta de lixo, não se excluem objetos diretamente, mas pode ser relevante indicar que o objeto não é mais necessário e não pode ser utilizado. Os exemplos dados de diagramas de sequência usaram, até aqui, apenas um tipo de mensagem, a síncrona, ou seja, a que, uma vez enviada, aguarda o retorno (seta pontilhada na direção contrária à mensagem enviada) com a sua conclusão (tal qual uma chama de rotina em um programa). O outro tipo é a assíncrona, ou seja, a que, uma vez enviada, não necessitar esperar por uma resposta, sendo possível continuar o fluxo do processamento. Figura 11 – Tipos de mensagens Autor: Urupong/istock Atenção! Tipos de mensagens: síncronas e assíncronas http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t07b.png http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/11tiposMensagens.jpg Um bom exemplo de uso de mensagens assíncronas se dá em sistemas que necessitem de processamento concorrente, e por isso devem permitir representar mensagens concorrentes assíncronas (mensagens que são processadas em paralelo sem um tempo definido para a sua realização e sem esperar o retorno da mensagem para prosseguir). A figura a seguir mostra um exemplo de mensagem assíncrona (seta vazia), representada pela chamada ao método Message1(), que sai do Objeto 1 para o Objeto 2. Mostramos, logo abaixo, a Message2(), síncrona (seta cheia), para que se perceba a diferença. Figura 12 – Mensagem assíncrona Autor: elaborado pelo autor Uma das questões de relevância que surge ao modelarmos classes é: qual classe deve ser responsável por um determinado método, ou seja, em qual classe devemos alocar esse método. Para tal decisão devemos levar em consideração volume, desempenho, segurança e outros aspectos físicos inerentes à implementação. Existe um conjunto de critérios que devem ser avaliados, e nosso foco aqui não é nos estendermos nesse assunto, mas alertar da preocupação. Apenas para citar: devemos alocar os métodos de forma que tenhamos baixo acoplamento e alta coesão entre as classes. Existe um padrão (solução já dada, estudada e adaptada) que diz que: - O método deve ser colocado na classe queconhece a informação (tratada pelo método). Esse padrão chama-se “padrão especialista”. Padrão é uma solução já usada em projetos anteriores, que deve ser usada e ajuda a dar soluções eficientes em nossos projetos. Existem outros padrões classificados em diferentes tipos a serem considerados, que podem ser objeto de uma pesquisa para expansão dos conhecimentos nesse sentido. Os diagramas de interação, em que o diagrama de sequência é um deles, ajudam a clarear essa questão, e, muitas vezes, perceberemos que fizemos uma escolha equivocada da classe onde inicialmente alocamos determinados métodos. A seguir, faça a atividade proposta, relacionada ao conteúdo visto até aqui. Considere o diagrama de casos de uso, a especificação (descrição textual) do caso de uso “Registrar Locação”, e o diagrama de classes a seguir. Clique aqui [../downloads/a04_t10a.pdf] para visualizar os diagramas. Responsabilidade das classes Atividade proposta http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t08a.png http://pos.estacio.webaula.com.br/cursos/ATU234/downloads/a04_t10a.pdf Com base nessa documentação apresentada, elabore o diagrama de sequência para o cenário principal do caso de uso “Registrar Locação”. Clique aqui [../downloads/a04_t10b.pdf] para visualizar uma das possíveis respostas, incluindo as alterações propostas para o diagrama de classes. O diagrama de máquina de estados representa os possíveis estados de um objeto: demonstram, por meio das transições, os eventos que geram a mudança. Esse tipo também é chamado de diagrama de transição de estados, que chamaremos de DTE doravante. Figura 13 – Diagrama de máquina de estados Autor: Urupong/istock O Diagrama de Máquina de Estados representa os possíveis estados de um objeto, demonstram, por meio das transições, os eventos que geram a mudança. O estado de um objeto é uma condição específica de um objeto, em algum momento em que o mesmo esta sendo usado no sistema. Segundo a definição de UML Guia de Usuário[Booch, Rumbauch e Jaconson, 2006], estado é uma condição ou situação na vida de um objeto durante o qual o objeto satisfaz alguma condição, realiza alguma atividade ou aguarda um evento. Um objeto permanece em um estado por um tempo finito. Um evento é a ocorrência de um estímulo gerado para o objeto, capaz de mudar o seu estado atual. Uma transição indica um movimento de um estado para o outro. Vamos identificar os elementos do Diagrama de Estados, analisando a figura abaixo que apresenta o diagrama de estado de uma Classe QUARTO de um Sistema de Hotel. O diagrama de máquina de estados Estados, evento e transição http://pos.estacio.webaula.com.br/cursos/ATU234/downloads/a04_t10b.pdf http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/13diagramaMaquina.png Figura 14 – Estados, evento e transição Autor: gorodenkoff/istock.com 1. O inicio ocorre no pseudo estado inicial que é a bola preta cuja seta aponta para o estado DISPONíVEL, efetivamente o estado que fica o quarto inicialmente; 2. Estando no estado de Disponível o quarto pode mudar para o estado de Reservado quando ocorre o evento “Cliente faz Reserva”; 3. Estando no estado de Reservado podem haver 2 transições De volta para o estado de Disponível se ocorrer o evento “Reserva é cancelada” Para o estado de Ocupado , se ocorrer o evento “Cliente faz checkin”; 4. Do estado Ocupado, vai haver a mudança para o estado Em Limpeza, na medida em que ocorre o evento “Cliente faz checkout”; 5. Estando no estado Em Limpeza, o quarto voltará ao estado de Disponível na ocorrência do evento “Atendente libera Quarto”; 6. Estando no estado Disponível, o Quarto pode mudar também para o estado Final, quando o mesmo for excluído do sistema (evento); A figura a seguir, um diagrama simples de estados, mostra os elementos básicos que foram aplicados no exemplo anterior. Figura 15 – Diagrama de estados Autor: elaborado pelo autor. O estado inicial indica o estado quando o objeto é criado, por isso citou-se como pseudoestado; pois, na verdade, ainda não é um estado propriamente. Um diagrama de transição de estados (DTE) somente pode ter estado inicial. estados cíclicos, como as estações do ano, os sinais de trânsito e até mais de um, no DTE. O diagrama de estados e seus elementos básicos http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t12a.png http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t13a.png A transição, em um diagrama de estados, indica um movimento de um estado para outro. Cada transição possui um rótulo que possui três partes: Assinatura do gatilho [sentinela] / atividade, onde: 1. Assinatura do gatilho, via de regra, é um único evento que demanda a mudança de estado. No exemplo inicial, sobre os estados do QUARTO de hotel, usamos apenas assinatura do gatilho, ou seja, o evento que ocasiona a transição de estado. É raro que esteja ausente, mas pode ocorrer e denota que a transição é feita imediatamente. 2. Sentinela, se estiver presente, é uma condição que deve ser verdadeira para que a transição ocorra. Se ausente, indica que a transição sempre acontece. 3. Atividade é um comportamento executado durante a transição. A ausência de atividade diz que nada é feito durante a transição. Um evento pode denotar mais de uma transição, e, nesse caso, as sentinelas devem expressar condições que sejam mutuamente exclusivas, por motivos óbvios. O estado final indica que ciclo do objeto está encerrado e sua máquina de estados completa. Ações de Entrada e Saída São ações que são realizadas dentro do estado, assim que entra no estado (entrada) e antes de sair do estado (saída), independente da transição. A cláusula ENTRY denomina uma ação de entrada no estado, assim como a cláusula EXIT é usada para ações de saída. Transição interna Os estados pode reagir a eventos, que não ocasionam transição, usando atividades internas. Ou seja, são eventos que precisam ser tratados, mas que não ocasionam transição de estado. As atividades internas não disparam ações de entrada e saída, na medida em que não saem e entram do objeto, em decorrência do evento. Atividades Em geral, objeto fica ocioso em um estado até que um evento ocorra. Porém, pode ser que você deseje que um objeto permaneça realizando uma tarefa até que determinado evento ocorra. Ou seja, executa uma atividade enquanto está nesse estado. A cláusula DO indica que há uma atividade naquele estado. Retomando ao exemplo do DTE referente à classe QUARTO do sistema de hotel, poderíamos eliminar o estado EM LIMPEZA, fazendo com que a LIMPEZA seja uma ação de saída (Exit) do estado OCUPADO, e, assim, reduziremos o número de estados. Em outras palavras: quando o cliente fizer o checkin, evento que ocasiona a transição de OCUPADO, em vez de ir para o estado EM LIMPEZA, iria direto para DISPONÍVEL, e acrescentaríamos uma ação de saída (EXIT) de nome limpeza ao estado OCUPADO. Veja um exemplo de como declarar no estado, ações de entrada (ENTRY), de saída (EXIT) e atividades (DO). A continuidade do exemplo, acrescentando-se uma transição interna. O evento que demanda a ação; A condição de guarda para a execução da atividade; A atividade interna que será realizada. Detalhando a transição Ações de entrada e saída, transições internas e atividades Um superestado ajuda a simplificar a modelagem de comportamentos complexos, sendo composto de vários estados . Um superestado é composto de subestados e é chamado de estado composto. Um estado composto pode ser sequencial ou concorrente. Abaixo o exemplo de um superestado sequencial, ilustrado em 2 imagens. Figura 19 – Superestados Autor: elaborado pelo autor O primeiro diagrama é o principal e tem 1 superestado, de nome ATIVO. Observe que ele tem um símbolo dentro, que mostra que contém em si outros estados. A segunda imagem mostra o desdobramento do estado ATIVO, compostos dos subestados SOLICITADO, EM PRODUÇãO, EMBALANDO e ENTREGUE. Figura 20 – Desdobramentos do estado ATIVO Autor: elaborado pelo autor O Estado CANCELADO tem uma transição doestado ATIVO, denotando que pode haver uma transição de qualquer estado do superestado ATIVO para o estado CANCELADO. Se não fosse assim haveria 1 transição de cada estado para CANCELADO, o que não estaria errado, mas tornaria o desenho mais complexo. O DTE (diagrama de transição de estado) deve ser elaborado para classes cujos objetos tenham 2 ou mais estados. 1. Identifique todos estados relevantes para a classe. 2. Analise os possíveis eventos que ocasionam mudança de estado. Para cada evento, identifique qual a transição que ele ocasiona. Superestados Passo a passo para construção do DTE http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t16a.png http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t16b.png 3. Para cada estado: Identifique as transições possíveis quando um evento ocorre; Identifique os eventos internos e ações correspondentes. 4. Para cada transição: Verifique se há fatores que influenciam no seu disparo (definição de condições de guarda e ações). 5. Para cada condição de guarda e para cada ação, identifique os atributos e ligações eenvolvidos. 6. Defina o estado inicial e os eventuais estados finais. 7. Desenhe o diagrama. O DTE pode ser construído com base nas especificações de casos de uso, nos diagramas de interação e nos diagramas de classes. Novas propriedades (atributos e métodos) podem ser descobertos, ao elaboramos o DTE, e devem ser incorporados ao diagrama de classes. Pode ser necessária a atualização de um ou mais métodos de uma classe para refletir o comportamento do objetos nos respectivos estados. Por exemplo, o comportamento do método sacar() da classe ContaBancária varia em função do estado no qual essa classe se encontra. E saques não podem ser realizados em uma conta que esteja no estado bloqueada. Para saber mais sobre as versões da UML, acesse o link. Versões UML - Mind Map. Clique aqui [https://www.mindomo.com/pt/mindmap/versoes-%20uml- 164c4e92e9c8458ca29cd8e569b1511f] Para saber mais sobre UML, acesse o site Unified Modeling Language (UML) Resource Page. Clique aqui [http://www.uml.org/] Contribuições do DTE ao diagrama de classes Aprenda mais Exercícios de fixação Questão 1 - (Eletrobrás) Com relação ao diagrama de sequência, assinale a resposta correta. Mostra a temporalidade dos eventos que afetam o sistema. Ajuda na identificação de novos casos de uso. https://www.mindomo.com/pt/mindmap/versoes-%20uml-164c4e92e9c8458ca29cd8e569b1511f http://www.uml.org/ Mostra a sequência temporal das mensagens trocadas entre os objetos na realização de um cenário de uso. Mostra como as classes se relacionam, indicando quantos objetos participam do relacionamento. Mostra o relacionamento entre os casos de uso. Questão 2 - Com relação ao relacionamento entre os diagramas de caso de uso mais especificação dos casos de uso, diagrama de classe e de sequência, analise as assertivas abaixo. I. O diagrama de sequência se baseia no diagrama de classes para obter os cenários de uso. II. O diagrama de sequência retorna ao diagrama de classe os novos métodos descobertos em sua elaboração. III. O diagrama de sequência usa a especificação de caso de uso para ver o passo a passo das mensagens, a ordem de suas ocorrências e os cenários de uso. IV. O diagrama de sequência usa o diagrama de classes para identificar as classes que contêm os objetos que interagem. Com base em sua análise, assinale a opção correta: Estão corretas apenas as opções II, III e IV. Estão corretas apenas as assertivas II e IV. Estão corretas apenas as assertivas I, II e IV. Estão corretas apenas as assertivas I e IV. Estão corretas apenas as assertivas II e III. Questão 3 - O diagrama de sequência é fundamental, uma vez que relaciona dois outros diagramas de suma relevância: classes e casos de uso. Sobre os conceitos e elementos do diagrama de sequência, analise as assertivas que se seguem: I. O diagrama de sequência mostra quais as classes, e como (através de que método) elas realizam as funcionalidades de um determinado caso de uso. II. Uma das limitações do diagrama de sequência é a impossibilidade de representar mensagens disparadas sob alguma condição. III. Iterações podem ser representadas no diagrama de sequência, e facilmente podemos identificar o conjunto de mensagens que se repetem por um retângulo envolvendo tais mensagens. IV. Uma das limitações do diagrama de sequência é a impossibilidade de representar chamadas de métodos da própria classe. Com base em sua análise das assertivas, assinale a opção que indica as alternativas corretas. Estão corretas apenas as assertivas I e III. Estão corretas apenas as assertivas II, III e IV. Estão corretas apenas as assertivas III e IV. Estão corretas apenas as assertivas II e III. Estão corretas as assertivas I, II, III e IV. Questão 4 - (IBGE) Sobre os diagramas de sequência e comunicação, é correto afirmar: Não se destinam ao mesmo objetivo. Destinam-se ao mesmo objetivo, mas devemos sempre usar os dois juntos. Destinam-se ao mesmo objetivo, e o de sequência evidencia a colaboração entre os objetos. Destinam-se ao mesmo objetivo, e o de comunicação evidencia o tempo de envio das mensagens. Destinam-se ao mesmo objetivo, e o de sequência mostra a ordem sequencial, no tempo, em que as mensagens são trocadas entre os objetos. Questão 5 - Observe o diagrama de sequência a seguir. Analise as assertivas a seguir relativas ao diagrama de sequência. I. Msg1(), Msg2() e Msg3() são enviadas incondicionalmente. II. Msg3() sempre será enviada. III. Msg1() somente será enviada se opção = A. IV. Msg2() somente será executada se Opção = B. Com base em sua análise, assinale a única opção correta. Estão corretas apenas III e IV. Estão corretas apenas II, III e IV. Estão corretas I, II, III e IV. Nenhuma assertiva é correta. Está correta apenas II. Questão 6 - (TRE): O diagrama de estados: Mostra o fluxo de informações do sistema. Mostra apenas os estados de uma classe. Mostra cada estado e as respectivas transições de estado de um objeto. http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_obj01_q05.png Mostra as atividades de um classe. Mostra os estados de um caso de uso. Questão 7 - Quando devemos modelar o diagrama de estado de uma classe? Para toda classe do modelo de negócios. Para toda classe cujo objeto tenha no mínimo 3 estados. Para toda classe cujo objeto tenha pelo menos 2 estados. Para toda classe cujos métodos forem complexos. Para toda classe de diagrama de projeto. Questão 8 - (Eletrobras) Observe o diagrama de transição de estados a seguir. Suponha que, num dado momento, o sistema se encontra no Estado0 e que ocorra a seguinte sequência de eventos: a, b, c, b, b, b, c, a. O estado do sistema após a ocorrência desses eventos será: Estado0 Estado3 Estado1 Estado4 Estado2 Questão 9 - No que se refere às características avançadas do diagrama de transição de estados, assinale a única opção errada. Uma ação de entrada de um estado é executada sempre que entra naquele estado. Uma ação de saída de um estado é executada durante todo o tempo em que o objeto encontra-se naquele objeto. Uma atividade interna é executada até que um evento ocorra. http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_obj02_q03.png Nesta aula, você: Compreendeu a integração dos modelos de casos de uso, de classes e sequência que formam o tripé da análise num conjunto mínimo de modelos que podem ser usados nas fases de análise de requisitos e de sistemas; Identificou os elementos do diagrama de sequência da UML; Aprendeu a elaborar um diagrama de sequência; Identificou os elementos do diagrama de estados da UML; Aprendeu a elaborar um diagrama de estados. BEZERRA, Eduardo. Princípios de análise e projeto de sistemas com UML, 2/E. 2. ed. Campus, 2006. Capítulo 1. BOOCH, G.; JACOBSON, I.; RUMBAUGH, J. UML - guia do usuário. 2. ed. Rio de Janeiro: Campus, 2006. FOWLER, M. UML Essencial: um breve guia para a linguagem-padrão de modelagem de objetos. 3.ed. Porto Alegre: Artmed, 2005. LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a objetos e ao desenvolvimento interativo. 3. ed. Bookman, 2008. PRESSMAN, R. S. Engenharia de Software: uma abordagem profissional. 7. ed. McGraw Hill Brasil – Grupo A, 2011. SOMMERVILLE, I. Engenharia de Software. 8. ed. Pearson, 2007. Um superestado é composto de outros estados. E possível haver uma transição de um superestado para um estado X, indicando que de qualquer estado do superestado poderá haver a transição para o estado X. Questão 10 - Como se chama a seta que indica, no Diagrama de Transição de Estados, a mudança de um estado X para um estado Y? Transição Evento Ação interna Atividade externa Ação de EXIT Síntese Referências
Compartilhar