Diagrama de Atividades - UML - Parte V

212 views2997 WordsCopy TextShare
Prof Gilleanes Guedes Engenharia de Software e UML
Esta é a quinta e última aula sobre o diagrama de atividades. Esta última aula enfoca recursos e mec...
Video Transcript:
Olá sejam bem-vindos ao canal engenharia de software com ênfase uml Eu sou professor ganes GES 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 utilizando a linguagem uml na aula de hoje eu pretendo concluir o tema sobre o diagrama de atividades dessa vez enfocando alguns mecanismos e Recursos mais avançados desse diagrama Então vamos iniciar a nossa aula como eu falei essa é a quinta aula sobre o diagrama de atividades e também a última aqui eu
vou enfocar alguns mecanismos avançados desse diagrama Vamos iniciar então eu gosto sempre de fazer uma pequena propaganda como eu falei eu já publiquei quatro livros sobre o assunto o meu primeiro livro foi o mrr uma abordagem prática que na época tratava da omr 1.5 mas já já abordava o MR2 no final do livro depois eu lancei o MR2 guia de consulta rápida que era exclusivo sobre o MR2 depois eu lancei o livro O MR2 guia prático e finalmente eu lancei o meu livro mais completo mais atualizado que é o MR2 uma abordagem prática que se
encontra na terceira Edição Mas vamos ao conteúdo da aula eu vou falar sobre a ação de chamada de comportamento é um tipo de nó de ação especial que invoca a execução de um comportamento em geral esse comportamento é representado por uma atividade então Aqui nós temos exemplos de ação de ações de chamadas de comportamento aqui eu estou enfocando o processo de encerramento de conta eh uma ação de chamada de comportamento tem a mesma a representação de uma atividade normal exceto pelo símbolo de ancinho de cabeça para baixo que fica no canto inferior direito então o
processo de encerrar conta ele precisa invocar várias outras atividades para poder ser concluído uma vez que eu preciso emitir o saldo da conta para saber se ela está positiva ou negativa se ela estiver positiva eu tenho que invocar o processo de realizar se ela tiver negativa eu tenho que invocar o processo de realizar depósito e se for a única conta do cliente eu tenho que invocar o processo de gerenciar clientes para atualizar o cadastro do cliente como Inativo então notem que esse processo ele tem várias chamadas de comportamento Então primeiramente eu invoco o comportamento de
emissão de saldo aí eu faço um teste se o saldo for positivo como demonstra a condição de guarda eu invoco o processo de realizar saque senão se o saldo for negativo eu faço uma chamada ao comportamento do processo realizar depósito os dois fluxos que foram divididos são unidos por um nó de União eu caio num segundo nó de decisão para determinar se é necessário atualizar o cadastro do cliente para Inativo se for necessário então eu faço uma chamada de comportamento para o processo de gerenciar clientes depois o fluxo que foi dividido é novamente unido por
um nó de união e aí eu executo a ação propriamente dita dessa atividade que é a ação de encerrar conta que atualiza um objeto da classe conta especial como Demonstra o efeito sobre o o fluxo de objetos depois de encerrar a conta a atividade encerrada então isso aqui são exemplos de ações de chamada de comportamento e eu vou falar também sobre a ação de chamada de operação eh diferente da ação de chamada de comportamento que invoca uma atividade completa a ação de chamada de operação ela pode invocar como o nome diz uma operação um método
então basicamente ela solicita a execução de uma de uma operação eem um objeto de uma classe Ah então Aqui nós temos uma uma ação de chamada de operação onde é executada ação de abertura de conta nessa ação ao invés de se executar passo a passo o o como eh abrir uma conta se faz uma invocação ao método a operação Abrir conta que está contida na classe conta comum e nós temos também as regiões de atividades interrompe que são um outro tipo de grupo de atividade basicamente uma atividade interrompa circula ela engloba um certo número de
elementos de uma atividade que podem sofrer uma interrupção então a região de atividade interrompa determina que todo processo que estiver envolvido por ela pode ser interrompido não importando em que elemento a interrupção ocorra então Aqui nós temos o exemplo de região de atividade interrompam um exemplo que já havia sido demonstrada em aulas anteriores sobre o diagrama de atividade que é o processo de vendas e nós acrescentamos uma região de atividade interrompem todo esse setor do processo de vendas pode ser interrompido quer dizer que o cliente pode cancelar a compra H enquanto a atividade se encontrar
nesse nessa área do processo notem que existe aqui uma ação de espera de recebimento de sinal tá que fica esperando que eh seja feito o cancelamento do pedido se esse sinal for recebido então é gerado um fluxo de interrupção para ação Cancelar pedido que irá atualizar o pedido para cancelado notem o estado do objeto da classe pedido como cancelado e o efeito no fluxo para de update ou seja de atualização então aqui essa região de atividade interrompo ela determina que esta é uma área que é um que esse conjunto do processo representado pela atividade pode
eh sofrer um cancelamento depois que passar dele nenhuma nenhum outro cancelamento seria aceito bom e nós temos os nós de atividades estruturadas na verdade existem vários tipos de nós de Atividade estruturada existe o nó de Atividade estruturada básico que basicamente ele encapsula um conjunto de atividades um conjunto de ações aliás que ficam escondidas que não ficam eh explícitas no diagrama então ele permite representar uma parte agrupada ou estruturada de um trecho de uma atividade como eu disse pode ser um trecho não explícito de ações ou podem ser eh pode representar escolhas de conjuntos de ações
ou laços envolvendo um conjunto de ações como nós vamos ver ao longo dessa aula bom então Aqui nós temos o de nó de Atividade estruturada básica onde as ações estão encapsuladas então aqui eu estou representando um processo onde é calculado o número fatorial Então se recebe o valor a calcular esse valor é transmitido por um fluxo de objetos para uma Atividade estruturada Ah o valor recebido por um alfinete o nó de objeto da classe fatorial e todo o processo de cálculo de fatorial é feito internamente nesse nó de Atividade estruturada sem que nós saibamos que
ações são executadas depois O resultado é transmitido por um alfinete de saída que é recebido pela ação de apresentar resultado e a atividade se encerra Ah esse tipo de nó de Atividade estruturada pode ser útil Quando se usa bibliotecas que nós não temos conhecimento de seu de seu funcionamento interno por exemplo bom existem outros tipos de nós de Atividade estruturada em que nós podemos detalhar as suas ações por exemplo nós temos os nós condicionais então o nó condicional ele possui uma ou mais cláusulas e cada uma delas representa um dos possíveis caminhos que podem ser
executados de acordo com as condições estabelecidas uma cláusula ela possui duas subs a primeira ela contém o teste que determina se a alternativa em questão deve ser executada e a segunda contém o corpo da alternativa como nós vamos ver neste exemplo então Aqui nós temos um exemplo de no condicional onde é feito um teste se os números a serem apresentados são pares Então deve se mostrar no vídeo o número é par sen não deve se mostrar que o número é ímpar então nós representamos isso como um nó de Atividade estruturada do tipo condicional ou simplesmente
nó condicional que é representado como um retângulo com as bordas tracejadas e o estereótipo conditional então Aqui nós temos um um nó de ação simples que recebe um número transmite esse número por meio de um fluxo de objetos que é recebido por um nó de objetos um alfinete e Aqui nós temos um nó condicional onde é feito avaliação do número existem dois testes ou duas cláusulas que são feitas então na primeira CL clusula o teste é se o número é par simplesmente eu verifico se o resto da divisão do número por do é igual a
zero então o número é par então no corpo dessa cláusula eu mostro que o número é par na segunda cláusula é feito um teste se o a se a divisão do número por dois é diferente de se o resto da divisão do número por dois é diferente de zero nesse caso você executa o corpo dessa cláusula que no caso só tem uma ação onde eu vou mostrar o número é ímpar e nós temos um outro tipo de nó de Atividade estruturada que é que são os nós de laço que basicamente como o nome diz representam
um laço iterativo Ou seja pode ter várias iterações ele possui três partes iniciação ou setup teste e corpo então na iniciação que fica na primeira divisão basicamente se iniciam quaisquer variáveis que serão necessárias ao laço na segunda se determina Qual é a condição para que o laço seja executado e na terceira contém eh são demonstradas as etapas que deverão ser executadas as ações que deverão ser executadas se aquela condição for verdadeira então Aqui nós temos um exemplo de nó de laço ele é uma Atividade estruturada contendo estereótipo Loop aqui nós chamamos esse nó de laço
de apresentar números pares de 2 a 10 então na divisão de iniciação eu inicio a variável número com valor do na divisão de teste eu verifico se o valor da variável número é menor ou igual a 10 e no corpo do laço eu mostro o conteúdo da variável número e incremento essa variável com valor de dois aumento em dois o valor da variável o número e aí volta se testar se o número é menor é menor ou igual a 10 enquanto o teste for verdadeiro eu executo as ações que estão no corpo desse nó de
laço e nós temos ainda um outro tipo de Atividade estruturada que é a região de expansão essa atividade ela toma como entrada uma ou mais coleções de valores e para cada valor dessas coleções ela executa os os nós de ação e os fluxos que estiverem contidos dentro da região eh isso produz coleções de saída que não Obrigatoriamente terão o mesmo número da das coleções de entrada eh existem basicamente três tipos de região de expansão que são as regiões de expansão iterativas as regiões de expansões paralela e as regiões de expansão de fluxo as regiões de
expansão iterativas elas possuem um elas possuem um conjunto de interações que vão ocorrer na ordem dos elementos que forem recebidos a região de expansão paralela a as interações elas são independentes e podem ocorrer paralelamente e na região de expansão de fluxo ou de stream ah existe uma única execução da região em que os valores da coleção de entrada serão extraídos e colocados dentro da execução da região de expansão como um fluxo aqui nós temos o exemplo de região de expansão essa é uma região de expansão do tipo iterativa então nós temos uma um nó de
ação simples que fornece as avaliações dos alunos transmite essas avaliações por meio de um de um alfinete um nó de objeto ã o fluxo de objetos atinge um um uma um conjunto de nós três nós três alfinetes ã ligados isso e para representar a coleção que vai ser recebida pela região de expansão nessa região de expansão é feito o cálculo das médias das das avaliações dos alunos então para cada aluno ele é consultado e se calcula a média do aluno E aí é gerado uma coleção que é ã transmitida como saída para um nó de
objeto um alfinete da ação gerar boletins dos alunos nós temos também os conectores conectores são basicamente um atalho uma vez que às vezes um diagrama de atividades pode ser muito extenso e o fluxo ele tem que retornar para uma parte muito distante do diagrama ou pular avançar para uma fase para uma uma parte muito distante diagrama e às vezes para evitar ter que cruzar eh fluxos se pode utilizar esses conectores basicamente eles são atalho então Aqui nós temos um exemplo aqui nós temos uma ação que o fluxo de controle atinge um atalho chamado de a
e em uma outra parte do diagrama esse mesmo atrio chamado de a ele atinge uma nova ação então eu pulo hã um conjunto de ações para eh não ter que fazer fluxos de controle muito extensos ou não ter que cruzar eh fluxos de controle ou ações então eu utilizo conectores como um atalho então eu sei opa a ação atingiu esse conector a eu tenho que eu tenho que procurar um outro conector de mesmo nome para saber que eh onde é a continuação daquele fluxo de controle Aqui nós temos um ex exemplo do de diagrama de
atividades referente ao processo de realizar saque é um dos processos que ainda não foi apresentado eh sobre o o Sistema de Controle bancário que nós estamos modelando Então essa atividade é dividida em duas partições de atividade ou raias de natação uma representando as ações do cliente outra representando as as ações do sistema partições e atividade já foram explicadas em outras aulas então atividade se inicia com o cliente informando o número da conta o sistema em resposta consulta a conta notem que há um fluxo de objetos eh de um objeto da classe conta comum com o
efeito de read significa que o conteúdo esse objeto está sendo lido Ou seja a conta está sendo consultada E aí se atinge um nodo de decisão para determinar se a conta é inválida então a atividade tem que ser encerrada caso contrário se a conta for válida então é solicitada a senha eh em resposta o o Cliente informa a senha o fluxo retorna para a partição de atividade do sistema onde é executada a ação para validar a senha novamente um objeto da classe conta como é lido como Demonstra o efeito no fluxo do tipo read e
se faz um teste novamente representado por um nó de decisão onde se a senha for invida se encerra a atividade e se a senha for válida se solicita o valor para sacar o fluxo volta para a partição de atividade do cliente que informa o valor e novamente o fluxo retorna para a partição do sistema onde o valor é diminuído do saldo notem que um objeto da classe conta comum é atualizado como representa o fluxo de objetos com efeito update depois ah o movimento no caso ele é registrado ã notem que um objeto da classe movimento
é criado Como como é representado pelo nó de objetos com efeito Create e após isso a atividade é encerrada e Aqui nós temos um outro exemplo de diagrama de atividade referente ao processo de emissão de extrato esse essa atividade também contém duas partições de atividade uma representando as ações do cliente outra representando tando as ações do do sistema onde o cliente ele informa ah o o número da conta a conta é consultada pelo sistema notem que existe um fluxo de objetos que parte de um objeto da classe conta comum que é lido pela ação como
demonstra feito read o fluxo atinge um nó de decisão que verifica se a conta é inválida como demonstra a condição de guarda se for inválida se encerra a atividade sen não se a conta for válida se solicita a senha o fluxo de controle volta para a partição de atividade do cliente que informa a senha e o fluxo novamente retorna para a partição do sistema que valida a senha notem que novamente Ele lê o objeto da classe conta comum como Demonstra o fluxo de objetos com efeito read E aí o fluxo de controle atinge um nó
de decisão que testa se a senha for inválida a atividade encerrada se a senha for válida é solicitado o período do extrato o fluxo de controle volta para cliente que informa o período Inicial e final do estrato que ele deseja o fluxo volta novamente pro sistema onde eh são são validados os períodos e então o fluxo de controle atinge o nó de decisão que testa se os períodos forem válidos a atividade é encerrada se os períodos forem válidos Então são selecionados todos os movimentos daquele período notem que existe um objeto da classe movimento que é
lido como Demonstra o fluxo de objetos com efeito read E aí se testa se não há movimentos do período a atividade é encerrada caso contrário se há movimentos se posiciona no primeiro movimento se apresenta o movimento e se testa novamente para ver se ainda há movimentos se ainda há movimentos então se posiciona o próximo movimento e e se volta para atividade apresentar movimentos eh no momento que não houver mais movimentos a atividade encerrada observem que eh os objetos lidos a partir da do movimento eles têm uma ordenação como é representado por essa anotação do Tipo
ordering aqui tá escrito ordering igual Order quer que os movimentos eles estão ordenados e a ordenação é feita pela a data do movimento e a hora do movimento então nós concluímos essa última aula sobre o diagrama de atividades eu espero que vocês tenham gostado dessa aula espero que ela tenha sido útil se vocês gostaram da aula eu peço que vocês curtam esse vídeo compartilhem com quem possa se interessar pelo conteúdo e se ainda não estão inscritos eu peço que se inscrevam no canal obrigado pela atenção nós nos vemos nas próximas aulas [Música]
Related Videos
Restrições - Nova Edição - Diagrama de Classes - Parte III
20:47
Restrições - Nova Edição - Diagrama de Cla...
Prof Gilleanes Guedes Engenharia de Software e UML
735 views
BPMN - Business Process Model and Notation - Modelo e Notação de Processo de Negócio
27:36
BPMN - Business Process Model and Notation...
Prof Gilleanes Guedes Engenharia de Software e UML
251 views
Técnicas de Leitura Orientadas a Objetos - OORTs
44:51
Técnicas de Leitura Orientadas a Objetos -...
Prof Gilleanes Guedes Engenharia de Software e UML
190 views
Introdução à Qualidade de Software
55:40
Introdução à Qualidade de Software
Prof Gilleanes Guedes Engenharia de Software e UML
1,465 views
Maturidade
1:29:57
Maturidade
Formação Extraordinária
144 views
Organismos Normativos & Normas de Qualidade ISO IEC 25000 - SQuaRE
30:08
Organismos Normativos & Normas de Qualidad...
Prof Gilleanes Guedes Engenharia de Software e UML
1,202 views
Modelo de Negociação de Requisitos por Análise de Preferências de Multicritérios
23:00
Modelo de Negociação de Requisitos por Aná...
Prof Gilleanes Guedes Engenharia de Software e UML
74 views
Sistemas Operacionais - Gerenciamento de memoria virtual
27:04
Sistemas Operacionais - Gerenciamento de m...
Daniel David
21 views
Modelo de Negociação Ganha-Ganha (Win-Win)
26:51
Modelo de Negociação Ganha-Ganha (Win-Win)
Prof Gilleanes Guedes Engenharia de Software e UML
72 views
Curso de UML - Diagrama de Sequência UML - Exemplo Básico
18:45
Curso de UML - Diagrama de Sequência UML -...
Bóson Treinamentos
60,994 views
CONHEÇA 5 TIPOLOGIAS TEXTUAIS | Profe Carlos Muchacho
20:50
CONHEÇA 5 TIPOLOGIAS TEXTUAIS | Profe Carl...
Profe Carlos Muchacho
40 views
MPS–BR - Melhoria de Processo do Software Brasileiro
28:21
MPS–BR - Melhoria de Processo do Software ...
Prof Gilleanes Guedes Engenharia de Software e UML
1,684 views
A Fórmula dos Leads Quentes 🔥
23:48
A Fórmula dos Leads Quentes 🔥
Lucas Ciotti
45 views
O que é um Diagrama de Atividade UML - Introdução
13:48
O que é um Diagrama de Atividade UML - Int...
Bóson Treinamentos
34,970 views
Bloqueadores de Mudança, Dispensáveis & Acopladores - Maus Cheiros de Código - Parte III
28:50
Bloqueadores de Mudança, Dispensáveis & Ac...
Prof Gilleanes Guedes Engenharia de Software e UML
1,097 views
Aula 2   Terminologia e conceito
19:34
Aula 2 Terminologia e conceito
Thuan Lemos
9 views
Modelo Espiral Ganha-Ganha (Win-Win Spiral Model) - Negociação de Requisitos
31:11
Modelo Espiral Ganha-Ganha (Win-Win Spiral...
Prof Gilleanes Guedes Engenharia de Software e UML
53 views
Easy Win-Win - Quality Assurance - Easy Win-Win Integrado com Técnicas de Garantia de Qualidade
36:27
Easy Win-Win - Quality Assurance - Easy Wi...
Prof Gilleanes Guedes Engenharia de Software e UML
71 views
O Padrão Internacional de Especificação de Requisitos ISO/IEC/IEEE 29148:2018
1:16:23
O Padrão Internacional de Especificação de...
Prof Gilleanes Guedes Engenharia de Software e UML
1,828 views
Bayesian Networks
39:57
Bayesian Networks
Bert Huang
324,481 views
Copyright © 2024. Made with ♥ in London by YTScribe.com