Olá sejam bem-vindos ao canal engenharia de software com ênfase O IML Eu sou professor Janes Guedes e eu já atuo na área de modelagem de software há vários anos eu tenho quatro livros publicados sobre o assunto e eu já ministrei diversas palestras e cursos técnicos sobre modelagem de software utilizando a linguagem uml na aula de hoje eu vou dar continuidade ao tema sobre o diagrama de atividades dessa vez enfocando alguns recursos mais avançados como nós de objeto Então vamos dar início à nossa aula eu gosto sempre de fazer uma pequena propaganda eu já publiquei quatro
livros sobre o assunto meu primeiro livro foi o em uma abordagem prática que na época tratava da em 1.5 mas abordava o MR2 no final do vídeo no final do livro depois eu l o livro O MR2 guia de consulta rápida em seguida eu lancei o MR2 guia prático e finalmente eu lancei o meu livro mais completo que é o MR2 uma abordagem prática que se encontra na terceira Edição Então vamos dar continuidade ao tema sobre o diagrama de atividades na aula anterior eu apresentei a onde o diagrama de atividades pode ser aplicado e os
seus componentes básicos como atividade nós de ação nós de decisão fluxo de controle dessa vez eu vou falar sobre partições de atividade as partições de atividade também chamados de raias de natação elas são um tipo de grupo de atividade que agrupa um conjunto de elementos envolvidos na atividade como por exemplo o conjunto de nós e um conjunto de fluxos de controle entre outros elementos possíveis Então essas partição asas partições de atividade elas permitem representar o fluxo de um processo que passa é manipulado por diversos atores e também em situações em que o processo passa por
diversos setores ou departamentos então aqui nós temos exemplo de partições de atividade para quem assistiu A aula anterior vocês lembram que eu modelei um diagrama de atividade referente ao processo de emissão de saldo dessa vez eu acrescentei duas partições uma representando o as ações do ator cliente e outra representando as ações do ator sistema do ator sistema não do sistema propriamente dito as partições de atividade deixam o diagrama de atividade mais semelhante à documentação do caso de uso quando a atividade se refere à descrição de um caso de uso específico então eh o o diagrama
de atividade fica mais semelhante àquela documentação Então nesse processo o diferente do processo que foi demonstrado anteriormente eu consigo incluir as ações do cliente então o cliente o processo inicia com o cliente informando o número da conta o sistema em resposta consulta a conta e testa se a conta for inválida o processo encerrado se a conta for válida Então se passa para a ação de Solicitar senha vocês reparem que existe esse texto entre que é chamado de condição de guarda que estabelece a condição para se seguir um fluxo ou outro após a senha ser solicitada
o cliente em resposta Informa a senha o fluxo passa para a partição do cliente e depois da senha ter sido informada o fluxo retorna pra partição do sistema onde o sistema valida a senha e Testa o resultado dessa validação se a senha for inválida o processo encerrado e se a senha for válida se passa para a ação de consultar saldo depois se apresenta o saldo se encerra a atividade bom vou falar um pouquinho sobre nós de objeto os nós de objeto eles são uma Instância de uma classe e essa Instância esse nó de objeto pode
estar disponível em um determinado ponto da atividade o nó de objeto ele pode ser criado durante uma atividade pode ser destruído durante uma atividade pode ser consultado pode ser atualizado na forma mais tradicional os nós de objetos são representados como um retângulo então Aqui nós temos um exemplo de nó de objeto que tem a mesma representação utilizada pelo diagrama de objetos ou seja um retângulo e dentro desse retângulo nós temos que informar no mínimo o nome da classe à qual ele pertence poderia se definir um nome mas em geral isso não é necessári eu pessoalmente
não uso muito eu sei que esse é o nome de objeto da classe conta comum porque o nome vem definido depois de dois pontos o que tiver antes do dos dois dos dois pontos é o nome do objeto o que estiver depois dos dois pontos é o nome da classe bom falar um pouquinho sobre fluxo de objetos fluxos de objetos são muito semelhantes aos fluxos de controle porém Eles transmitem objetos ou dados ã então ele representa um fluxo de valores que vai conter esses objetos ou dados que são enviados a partir de de um nó
de objeto ou para um nó de objeto ah e o fluxo de objetos ele pode ser utilizado entre outras funções para recuperar informações de um objeto modificar o estado de objeto por exemplo definindo um valor para um dos seus atributos ou instanciar ou destruir um objeto entre outras possibilidades então Aqui nós temos dois exemplos de fluxo de objetos o fluxo de objetos é representado por uma seta muito semelhante ao fluxo de controle eu pessoalmente não vejo diferença entre as duas então aqui eu tenho um nó de objeto da classe conta comum onde há um fluxo
de objetos para ação consultar saldo quer dizer que a ação consultar saldo está recuperando informações desse objeto e aqui eu tenho um nó de ação Abrir conta que tem um fluxo de objetos para um objeto da mesma classe esse fluxo de objetos nesse dessa situação está criando um objeto da classe conta comum ah nessa situação Inicial não fica bem claro se e se o objeto está sendo consultado ou criado Mas nós vamos ver nessa aula alguns mecanismos que permitem deixar Isto mais claro Aqui nós temos o mesmo diagrama referente ao processo de emissão de saldo
dessa vez com fluxo de objetos vocês podem notar então que existem três objetos da classe conta comum dentro desse diagrama ou três símbolos representando objetos da classe conta comum Ah então isso permite tornar esse diagrama mais eh fácil de entender então por exemplo a a ação consultar conta ela consulta um nó de objeto da classe conta comum o o mesmo ocorre com ação validar senha um objeto da classe conta comum o mesmo nessa situação ele é ah consultado e da mesma forma quando a ação consultar saldo executado novamente um objeto da classe contra comum ele
é consultado para recuperar o saldo em questão então esses nós de objeto eles enriquecem o diagrama informando nessa situação de onde as informações estão sendo consultadas e retiradas bom vou falar sobre alfinetes alfinetes é é a meia tradução para pins da uml PIN quer dizer literalmente alfinete Então alfinetes são nós de objeto que eles representam ou uma saída de uma ação ou uma entrada para uma ação então quando representa uma saída um alfinete ele recebe os resultados da ação os valores resultantes daquela ação e quando representa uma entrada um alfinete ele fornece valores para aquela
ação então Aqui nós temos dois exemplos de alfinetes então aqui o alfinete é representado como nó de objeto tradicional e no segundo exemplo no segundo exemplo emb baixo eles são representados ã colados a ação de saída ou ação de entrada o exemplo é o mesmo são duas opções duas alternativas para utilizar alfinetes então a ação de de atender pedido gera como saída o nó de objeto da classe pedido e Ação enviar pedido Recebe como entrada um nó de objeto a classe pedido eh o mesmo ocorre no exemplo de baixo a ação atender pedido gera um
objeto da classe pedido como saída e a ação de enviar pedido Recebe como entrada um nó de objeto da classe pedido então a ação de atender pedido gera um objeto da classe pedido e a ação de enviar pedido trabalha com esse objeto gerado eh os nós de objetos eles podem ter Estados em algumas situações pode ser útil determinar o estado de um nó de objeto então aqui nós damos continuidade ao exemplo anterior então ah após executar ação analisar pedido gera-se como saída um objeto da classe pedido e ele o estado dele é aceito o pedido
foi analisado e foi aceito eh esse pedido Ele é recebido como entrada pela ação atender pedido e o estado desse do nó de objeto ainda é aceito mas após o ação atender pedido ser executado ela vai gerar como saída um um nó de objeto da classe pedido Ele não vai ser gerado nesse caso ele vai ser só alterado e seu estado passa a ser atendido esse mesmo nó de objeto é recebido pela ação de enviar pedido que recebe o nó de objeto da classe pedido ainda com o estado atendido então Aqui nós temos um exemplo
de nós de objetos com os seus estados representados Isso facilita a compreensão do qual qual papel está sendo desempenhado pelo nó de objeto em uma determinada situação Ah eu também posso aplicar efeitos sobre os no objeto e eles deixam mais claro o que está ocorrendo naquele fluxo de objetos específicos Então os efeitos eles podem ser de entrada ou de saída e basicamente eles podem ser do tipo Create read update ou delete Ou seja eu posso eh os efeitos podem representar a criação de um objeto a leitura doss valores de um objeto a leitura dos seus
atributos a atualização dos seus atributos ou a destruição dos objetos o efeito Create ele só é possível n nas ações de uma ação nas aliás nas saídas de uma ação somente na saída de uma ação um objeto pode ser criado e o efeito delete é só somente na entrada de uma ação vamos ver exemplos disso então Aqui nós temos alguns eh uns exemplos de efeitos sobre nós e objetos então aqui eu continuei eh o exemplo que havia sido mostrado anteriormente sobre análise e atendimento de um pedido em que eh a ação de analisar pedido gera
como saída um nó de objeto da classe pedido Ele vai ter o estado aceito ele vai possuir o estado Aceito mas aqui eu tenho um efeito sobre aquele nó de objeto eu estou dizendo que esse objeto ele foi criado e ele foi construído a partir desse momento em seguida o mesmo nó de objeto da classe pedido é recebido como entrada pela ação de atender pedido e aqui o efeito que está ocorrendo sobre o no de objeto é o de leitura a ação de atender pedido está lendo o pedido em questão e Aqui nós temos novamente
nós temos um um outro exemplo de diagrama de atividades dessa vez enfocando a atividade de realizar depósito referente ao caso de uso realizar depósito onde eu tenho nós de objetos com efeitos Então eu tenho duas partições de atividade uma representando o funcionário outra representando o sistema as ações do funcionário e as ações do sistema Então os o a atividade se inicia com o funcionário informando o número da conta em resposta o sistema ele consulta a conta referente à aquele número aqui vocês podem ver que está sendo consultado o objeto da classe conta comum e o
efeito desse fluxo de objetos é o de leitura Então estou lendo valores daquele objeto em seguida eu passo para o nó de decisão onde eu verifico se a conta for inválida aquele aquela conta não foi encontrada Então se encerra a atividade já se a conta for válida Então se passa para a ação de solicitar valor e ah se volta o fluxo volta para a partição do funcionário quem vai informar o valor para depósito após o valor ser dep for ser informado o fluxo de controle volta para a partição do sistema onde o sistema irá Executar
a ação de somar valor ao saldo então há um fluxo de objetos para o nó de objeto da classe conta comum que tem como efeito ã o um update significa que os valores desse objeto estão sendo atualizados após o movimento é registrado o movimento relativo ao depósito é registrado e há o novo fluxo de objeto Para um objeto da classe movimento notem que o fluxo de objetos possui efeito Create quer dizer que o objeto da classe movimento está sendo instanciado nesse momento após isso a atividade se encerra então nós terminamos mais essa aula sobre o
diagrama de atividades eu espero que esse conteúdo tenha sido útil para vocês se vocês gostaram desse vídeo eu peço que vocês deem like compartilhem com quem possa se Inter sobre esse conteúdo e se vocês acharem esse considerarem esse vídeo útil e se ainda não estão inscritos no canal eu peço que se inscrevam obrigado pela atenção [Música]