Baixe o app para aproveitar ainda mais
Prévia do material em texto
- -1 MODELAGEM DE SISTEMAS MODELOS BÁSICOS DE ANÁLISE - -2 Olá! Bom dia! Em um sistema orientado a objetos, cada objeto representado, num determinado momento, encontra-se em um estado específico, particular. E, durante o seu ciclo de vida, pode estar em diferentes e finitos estados. O Diagrama de Estados visa, fundamentalmente, apresentar os estados possíveis de um objeto, as transições entre eles e os eventos que ocasionam essas transições. Analisando-as, torna-se possível mapear operações que o objeto precisa realizar e, assim, refinamos e melhoramos cada vez mais o Diagrama de Estados, bem como outros diagramas usados na modelagem do sistema, como, por exemplo, o diagrama de classes. É sobre isso que vamos falar nesta aula. Objetivos 1. Identificar os conceitos e elementos do diagrama de estados; 2. Aplicar a construção de diagrama de estados. Estado de um objeto O estado de um objeto compreende todas as suas associadas aos de cada umapropriedades valores correntes delas. Tais propriedades compreendem os . Ou seja, o éatributos de uma classe estado de um objeto determinado pelos , em um determinado momento. valores de seus atributos Para garantir a é salutar que apenas os métodos que denotam opropriedade do encapsulamento, comportamento da classe à qual o objeto pertence alterem os seus respectivos atributos. Dessa forma, apenas os métodos da própria classe a que o objeto pertença devem alterar o seu estado. O período de tempo em que o objeto permanece e , chamamos de , ou seja, o tempo quevivo ativo ciclo de vida decorre desde a sua até sua . Durante o ciclo de vida, o objeto pode ter finitos estados,criação destruição caracterizados por determinados valores de alguns de seus atributos. Pela análise das transições de estados, é possível identificar as operações que precisam ser realizadas para responder aos eventos. Tais operações estarão mapeadas em a que o objeto pertence.métodos da classe O que ajuda na análise das transições entre os estados de um objeto é o diagrama da UML diagrama de , ou simplificadamente,transição de estados diagrama de estados. O Diagrama de Transição de Estados – DTE - -3 O apresenta os possíveis estados de um objeto e demonstra, por meiodiagrama de transição de estados - DTE das transições, os eventos que geram as mudanças de um estado para outro(s), durante todo o ciclo de vida do objeto. Em outras palavras, o descreve o DTE ciclo de vida de objetos de uma classe, os eventos que causam as transições entre estados e as operações resultantes. Diferentemente dos diagramas de interação (que descrevem o comportamento de objetos de diferentes classes, mostrando a interação entre elas), o DTE mostra o comportamento de objetos de uma única classe. Não é preciso desenvolver um DTE para cada classe do sistema, e sim para aquelas que possuem um número conhecido e finito de estados (maior que um estado). A UML possui um conjunto rico de elementos para descrever o DTE. veja: • Básicos: estado e transições; • Conceitos relacionados: evento, ação e atividade; • Menos utilizados, mas úteis em momentos específicos transições internas, estados aninhados e estados concorrentes. Conceitos Básicos: Estado, Evento e Transição Veja, agora, alguns conceitos básicos do diagrama de transição de estados: Estado O estado de um objeto é a sua condição específica, em algum momento em que ele está sendo usado no sistema. Segundo a definição de 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 . Cada estado de um objeto é, em geral, determinadotempo finito pelos valores de seus atributos. Esta imagem mostra a representação de um estado, segundo a UML — um retângulo com bordas arredondadas: Evento Um evento é a de um estímulo gerado para o objeto, capaz de ocorrência (interna ou externa) mudar o seu estado atual. Transição Uma transição indica um movimento de um estado para o outro, pela ocorrência de um evento. • • • - -4 A imagem a seguir mostra o evento e a consequente transição de estado, onde a ocorrência do evento faz com que haja a transição (representada pela seta) entre o “estado UML 1” para o “estado UML 2”. A seta indica a direção da transição. Observe: Exemplo de Diagrama de Transição de Estados Os estados podem ser classificados em dois tipos, que são chamados de . São eles:pseudoestados Estado inicial O estado é representado pelo e denota o pseudoestado de um objeto no momento deinicial círculo preenchido sua , quando ele é instanciado na memória. mostrando o início decriação Só há um estado inicial em um DTE, sua leitura. Veja o exemplo: Estado final O estado é representado pelo círculo preenchido com outro final círculo em volta e denota o pseudoestado . É um estado opcional, no DTE, e também pode haver mais um. Veja odo fim do ciclo de vida de um objeto exemplo: A figura a seguir mostra um exemplo simples de diagrama de estados que contempla os elementos básicos, que foram explicados anteriormente. Veja - -5 Neste exemplo, o estado inicial indica o estado quando o objeto é criado, por isso citamos como pseudoestado, pois na verdade ainda não é propriamente um estado. Analisando um Diagrama de Estados e seus Elementos Vamos identificar os elementos do diagrama de estados, analisando a figura a seguir, que apresenta o diagrama de estado (DTE) de uma classe Quarto de um sistema de gestão hoteleira: - -6 O início ocorre no pseudoestado inicial que é a bola preta, cuja seta aponta para o estado ,Disponível efetivamente o estado em que fica o quarto inicialmente. Ou seja, assim que o objeto é criado (estado inicial), ele já entra no estado . Imagine um quarto sendoDisponível criado (novo quarto) que, ao ser inserido no sistema (estado inicial), entra no estado .Disponível Estando no estado Disponível, o estado pode transitar para o estado quando ocorre o evento “Reservado ”.Cliente faz Reserva Ou seja, assim que um cliente confirma uma reserva, o estado do objeto quarto transita (muda) para .Reservado Estando no estado de Reservado, pode haver duas transições distintas: • Transição (de volta) para o estado Disponível se ocorrer o evento “ ”;Reserva é cancelada • Transição para o estado Ocupado, se ocorrer o evento “ (chega ao hotel para Cliente faz check-in” hospedar-se). Do estado Ocupado, só pode haver transição para o estado , na medida em que ocorre o evento “Em Limpeza ” (deixa o hotel).Cliente faz check-out Estando no estado , o quarto voltará ao estado na ocorrência do evento “Em Limpeza Disponível Atendente ”.libera Quarto Estando no estado , o Quarto pode mudar também para o estado Final, quando for excluído doDisponível sistema (quarto deixa de existir para hospedagem). Exemplo de diagrama de estados Os estados determinam e delimitam as operações que podem ser realizadas com aquele objeto. Veja um exemplo: • • - -7 Pela análise do DTE, um hóspede não pode chegar ao hotel e hospedar-se sem que tenha feito uma reserva: isto é interpretado pela ausência de transição entre os estados e . Somente existe transição paraDisponível Ocupado o estado , estando no estado .Ocupado Reservado Para que seja possível a ocupação de quarto sem a devida reserva, o DTE deveria ser como o representado na imagem a seguir, em que, pela transição de Disponível para Ocupado, acabamos com a obrigação de reservar um quarto para poder ocupá-lo. A representação das transições entre os estados e foi feita por uma seta dupla (nas duasDisponível Reservado direções). Na seta que representa a transição do estado Disponível para Reservado, temos a ocorrência do evento “Cliente Faz Reserva”; Na seta que representa a transição de Reservado para Disponível, temos a ocorrência do evento “Reserva é cancelada”. Detalhando a Transição A , em um diagrama de estados, indica um . Cada transiçãotransiçãomovimento de um estado para outro possui um rótulo que possui três partes. Veja: - -8 Assinatura do gatilho Via de regra, é um único evento que demanda a mudança de estado. No exemplo inicial, sobre os estados do do hotel, usamos apenas a assinatura do gatilhoQuarto (Cliente Faz , ou seja, o evento que ocasiona a transição de estado.Reserva, Cliente Faz Check-in etc.) É raro que esteja ausente, mas pode ocorrer e denota que a transição é feita imediatamente. Sentinela Quando estiver , corresponde a uma condição que deve ser para quepresente verdadeira a transição ocorra. Se , indica que a transição sempre acontece. É representadaausente entre com a condição dentro.colchetes [..], Atividade É um executado durante a transição. A ausência de atividade diz quecomportamento nada é feito durante a transição. Exemplo de transição completa O trecho de DTE a seguir mostra uma . Veja a descrição: transição completa A leitura é a seguinte: Ao realizar um 'saque de R$" e o saldo ficar menor que zero, a conta transita para o estado , em queBloqueada fica 'aguardando um depósito", que torne o saldo zerado ou positivo (maior ou igual a zero). Um evento pode denotar mais de uma transição e, neste caso, as sentinelas devem expressar condições que sejam mutuamente exclusivas, por motivos óbvios. O estado final indica que o ciclo do objeto está encerrado e a sua máquina de estados está completa. Ações de Entrada e Saída, Transições internas e Atividades Seguem algumas características avançadas do DTE, que ajudam a otimizá-lo, a reduzir a quantidade de estados e a sua complexidade: Ações de entrada e saída São ações realizadas dentro do estado, assim que entra no estado (entrada) e antes de sair dele (saída), independentemente da transição. Veja a descrição: - -9 A cláusula denomina uma ação de entrada no estado, assim como a cláusula Exit é usada para ações deEntry saída; A cláusula pode ser usada para especificar uma ação a ser efetivada no momento em que o objeto entra noEntry respectivo estado; A cláusula especifica ações a serem realizadas sempre que o objeto sai de determinado estado.Exit Transição interna Os estados podem 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, o objeto fica ocioso em um estado até que um evento ocorra. Porém, talvez 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 indica que há uma atividade naquele estado.do Exemplo de ações de Entrada e Saída, Transições internas e Atividades Veja, agora, um exemplo de como declarar no estado ações de entrada ( ), de saída ( ) e atividades ( ):Entry Exit do Acrescentando uma transição interna, temos: - -10 Descrição: • O evento, que demanda a ação; • A condição de guarda para a execução da atividade; • A atividade interna que será realizada. Retornando ao exemplo do DTE referente à classe do sistema , poderíamos eliminar o estado Quarto Hotel Em , fazendo com que a Limpeza seja uma ação de saída ( ) do estado , e assim, reduziremos olimpeza Exit Ocupado número de estados. Ou seja, quando o cliente fizer o check-in, 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 ( ), deExit nome Limpeza, ao estado .Ocupado O diagrama de estado alterado para atender ao especificado, é representado na imagem a seguir: • • • - -11 Observe que: Desaparece o estado ;Em limpeza A limpeza passa a ser uma atividade que será realizada antes do estado transitar para ;Disponível Entre , a transição pode acontecer nos dois sentidos: de Disponível para Ocupado,Disponível e Ocupado quando ocorrer o evento “Cliente Faz Check-in”; e de para , quando ocorrer o eventoOcupado Disponível “Cliente faz Check-out”. Superestados Um superestado, também chamado de , ajuda a estado composto simplificar a modelagem de , sendo composto de vários estados ou subestados.comportamentos complexos Observe a seguinte regra para a definição dos superestados: Todos os estados dentro de um estado composto herdam suas transições. Um pode ser ou . Segue um exemplo de ,estado composto sequencial concorrente superestado sequencial ilustrado em duas imagens: - -12 A segunda imagem mostra o desdobramento do estado Ativo, composto dos subestados Solicitado, Em produção, Embalando e Entregue. Passo a Passo para a Construção do DTE O (diagrama de transição de estado) deve ser elaborado para classes cujos objetos tenham dois ou maisDTE estados. Veja o passo a passo para a construção do DTE: 1 Identifique todos os estados relevantes para a classe. 2 Analise os possíveis eventos que ocasionam mudança de estado. Para cada evento, identifique qual transição ele ocasiona. 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 que estão envolvidos. 6 Defina o estado inicial e os eventuais estados finais. • • - -13 7 Desenhe o diagrama. Contribuições do DTE ao Diagrama de Classes Para finalizarmos esta aula, veja algumas contribuições do ao :DTE Diagrama de Classes • O pode ser construído com base nas DTE 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 . Por exemplo: o comportamento do método comportamento do objetos nos respectivos estados sacar() da classe ContaBancária varia em função do estado no qual esta classe se encontra. Saques, por exemplo, não podem ser realizados em uma conta que esteja no estado .Bloqueada O que vem na próxima aula •A finalidade, os elementos e a construção do diagrama de atividades; •As situações em que o uso do diagrama de atividades será útil; •A construção do diagrama de atividades. CONCLUSÃO Nesta aula, você: • Identificou a finalidade do diagrama de estados. • Reconheceu quando usar o diagrama de estados; • Identificou como se deriva o diagrama de estados com base no diagrama de classes. • • • Saiba mais Para saber mais sobre os tópicos estudados nesta aula, leia os seguintes textos: UML. Disponível aqui: https://www.uml.org/ Diagrama de estados. Disponível aqui: https://www.mindomo.com/pt/mindmap/versoes-% 20uml-164c4e92e9c8458ca29cd8e569b1511f • • • - -14 Referências BOOCH, G.; JACOBSON, I.; RUMBAUGH, J. — Guia do Usuário. 2. ed. Rio de Janeiro: Elsevier, 2005. cap. 1 e 2.UML FOWLER, Martin. — um breve guia para a linguagem padrão. 3. ed. Porto Alegre: Artmed, 2005.UML essencial cap. 1 LARMAN, Craig. : uma introdução à análise e ao projeto orientados a objetos e aoUtilizando UML e padrões processo unificado. 3. ed. Porto Alegre: Artmed, 2007. cap. 2.
Compartilhar