diff --git a/Faculdade/Modelagem-de-Sistemas/Aula 08.md b/Faculdade/Modelagem-de-Sistemas/Aula 08.md new file mode 100644 index 0000000..2bc526b --- /dev/null +++ b/Faculdade/Modelagem-de-Sistemas/Aula 08.md @@ -0,0 +1,49 @@ +# Aula 8 - Diagrama de atividades + +**Fluxograma:** fluxograma pode ser usado para representar o fluxo de procedimentos ou processos das empresas. + +## Principais elementos do diagrama de atividades + +- **Atividade:** Retângulo com bordas arredondadas. +- ![Atividade](../../media/modelagem_de_sistemas/aula08/img/img001.png) +- **Transição:** Setas contínuas que representam o fluxo de trabalho entre atividades. +- ![Transição](../../media/modelagem_de_sistemas/aula08/img/img002.png) +- **Decisões:** Losango, usado para controlar os desvios (caminhos) do fluxo de controle. +- **Condições de guarda:** São condições associadas a transições entre uma atividade e outra, indicando que a atividade que sucede somente será executada se a condição de guarda for verdadeira. +- ![Decisão](../../media/modelagem_de_sistemas/aula08/img/img003.png) +- **Ponto de merge:** + - **Desvios:** a decisão, que divide em dois ou mais caminhos (fluxos de atividades). Tem um fluxo de entrada e N fluxos de saída; + - **Intercalações:** local onde dois ou mais caminhos (fluxos de atividades) se juntam e continuam como apenas um fluxo. É usado o mesmo losango da decisão. + - Os caminhos que se juntam foram separados anteriormente pelo elemento desvio. Tem N fluxos de entrada e um fluxo de saída. +- ![Pondo de merge](../../media/modelagem_de_sistemas/aula08/img/img003.png) +- **Processamento em paralelo:** Bifurcação e união (ou junção): barras horizontais que sincronizam atividades que vão ocorrer em paralelo. No caso, as atividades que ocorrem em paralelo são processar pedido e faturar pedido. + + +## Representando o fluxo de controle paralelo + +A UML dotou o diagrama de atividades de dois elementos que operam em conjunto, que permitem expressar o comportamento paralelo, ou seja, uma ou mais atividades que podem acontecer ao mesmo tempo. Muitos afirmam ser esse o grande diferencial do diagrama de atividades da UML para outras ferramentas gráficas, como o fluxograma, que se atem apenas a representar o processamento sequencial. + +A programação em paralelo em algoritmos concorrentes não é muito comum no mundo comercial, sendo mais usada em software básico (como por exemplo, em sistemas operacionais). + +O poder do paralelismo do diagrama de atividade é mais comumente usado para representar processos de negócio ou fluxos de trabalho. + +Para iniciar ou sincronizar dois ou mais fluxos de trabalho em paralelo, são usados dois tipos de barras de sincronização: **bifurcação (fork)** e **junção (joint)**. + +## Para que usar o diagrama de atividades? + +Mesmo que voltados para as utilidades descritas a seguir, o uso de diagrama de atividades não ocorre em larga escala, e os principais motivos são: + +1. Documentar sistemas não é uma prática usual no Brasil. +2. Em sistemas desenvolvidos sob o paradigma da orientação a objetos, o particionamento do sistema é por classes, e não por funcionalidades (como seria nos paradigmas estruturado e essencial); como o diagrama de atividades descreve um comportamento, estaria, pela lógica, mais relacionado a funcionalidades. + +Aplicações mais usuais: +1. **Modelagem de processos de negócios e fluxos de trabalho:** Essa utilização é que mais tira proveito do fato de o diagrama de atividades permitir representar fluxos de controle paralelos, já que em muitos processos de negócio e em fluxos de trabalho, as sequências de atividades costumam acontecer em paralelo. +2. **Modelagem da lógica de um caso de uso complexo:** Muitas vezes, a especificação textual de casos de uso complexos demanda muito esforço e, por vezes, por sua extensão, é difícil de ser visualizada como um todo (ocupando mais de uma folha de papel ou de editor de texto). +3. **Modelagem da lógica de uma operação complexa:** Embora não seja muito usual, os métodos de classes podem ter uma lógica complexa, especialmente em classes de controle; neste caso, o diagrama de atividades pode ser útil para representar a lógica desse método. +4. **Modelar a lógica de algoritmos paralelos para programas concorrentes:** Pode-se valer dos elementos (separações e junções) usados pelo diagrama de atividades para representar o processamento paralelo em programas concorrentes. + +## Subatividades no diagrama de atividades: + +As atividades, quando complexas, podem ser decompostas em subatividades. Neste caso, tal atividade decomposta terá um diagrama especificando suas subatividades e o diagrama principal terá uma representação diferenciada — com símbolo do ancinho, conforme esta imagem: + +- ![Sub atividade](../../media/modelagem_de_sistemas/aula08/img/img005.png) diff --git a/Faculdade/Modelagem-de-Sistemas/modelagem_sistemas_compilado.md b/Faculdade/Modelagem-de-Sistemas/modelagem_sistemas_compilado.md index a101858..a3d17e6 100644 --- a/Faculdade/Modelagem-de-Sistemas/modelagem_sistemas_compilado.md +++ b/Faculdade/Modelagem-de-Sistemas/modelagem_sistemas_compilado.md @@ -461,3 +461,53 @@ O foco aqui é a sequência da troca de mensagens. ![diagrama sequencia](../../media/modelagem_de_sistemas/aula05/img/img016.png) [Exemplo de diagrama de sequencia (pdf)](../../media/modelagem_de_sistemas/aula05/pdf/exemplo_sequencia.pdf) + +# Aula 8 - Diagrama de atividades + +**Fluxograma:** fluxograma pode ser usado para representar o fluxo de procedimentos ou processos das empresas. + +## Principais elementos do diagrama de atividades + +- **Atividade:** Retângulo com bordas arredondadas. +- ![Atividade](../../media/modelagem_de_sistemas/aula08/img/img001.png) +- **Transição:** Setas contínuas que representam o fluxo de trabalho entre atividades. +- ![Transição](../../media/modelagem_de_sistemas/aula08/img/img002.png) +- **Decisões:** Losango, usado para controlar os desvios (caminhos) do fluxo de controle. +- **Condições de guarda:** São condições associadas a transições entre uma atividade e outra, indicando que a atividade que sucede somente será executada se a condição de guarda for verdadeira. +- ![Decisão](../../media/modelagem_de_sistemas/aula08/img/img003.png) +- **Ponto de merge:** + - **Desvios:** a decisão, que divide em dois ou mais caminhos (fluxos de atividades). Tem um fluxo de entrada e N fluxos de saída; + - **Intercalações:** local onde dois ou mais caminhos (fluxos de atividades) se juntam e continuam como apenas um fluxo. É usado o mesmo losango da decisão. + - Os caminhos que se juntam foram separados anteriormente pelo elemento desvio. Tem N fluxos de entrada e um fluxo de saída. +- ![Pondo de merge](../../media/modelagem_de_sistemas/aula08/img/img003.png) +- **Processamento em paralelo:** Bifurcação e união (ou junção): barras horizontais que sincronizam atividades que vão ocorrer em paralelo. No caso, as atividades que ocorrem em paralelo são processar pedido e faturar pedido. + + +## Representando o fluxo de controle paralelo + +A UML dotou o diagrama de atividades de dois elementos que operam em conjunto, que permitem expressar o comportamento paralelo, ou seja, uma ou mais atividades que podem acontecer ao mesmo tempo. Muitos afirmam ser esse o grande diferencial do diagrama de atividades da UML para outras ferramentas gráficas, como o fluxograma, que se atem apenas a representar o processamento sequencial. + +A programação em paralelo em algoritmos concorrentes não é muito comum no mundo comercial, sendo mais usada em software básico (como por exemplo, em sistemas operacionais). + +O poder do paralelismo do diagrama de atividade é mais comumente usado para representar processos de negócio ou fluxos de trabalho. + +Para iniciar ou sincronizar dois ou mais fluxos de trabalho em paralelo, são usados dois tipos de barras de sincronização: **bifurcação (fork)** e **junção (joint)**. + +## Para que usar o diagrama de atividades? + +Mesmo que voltados para as utilidades descritas a seguir, o uso de diagrama de atividades não ocorre em larga escala, e os principais motivos são: + +1. Documentar sistemas não é uma prática usual no Brasil. +2. Em sistemas desenvolvidos sob o paradigma da orientação a objetos, o particionamento do sistema é por classes, e não por funcionalidades (como seria nos paradigmas estruturado e essencial); como o diagrama de atividades descreve um comportamento, estaria, pela lógica, mais relacionado a funcionalidades. + +Aplicações mais usuais: +1. **Modelagem de processos de negócios e fluxos de trabalho:** Essa utilização é que mais tira proveito do fato de o diagrama de atividades permitir representar fluxos de controle paralelos, já que em muitos processos de negócio e em fluxos de trabalho, as sequências de atividades costumam acontecer em paralelo. +2. **Modelagem da lógica de um caso de uso complexo:** Muitas vezes, a especificação textual de casos de uso complexos demanda muito esforço e, por vezes, por sua extensão, é difícil de ser visualizada como um todo (ocupando mais de uma folha de papel ou de editor de texto). +3. **Modelagem da lógica de uma operação complexa:** Embora não seja muito usual, os métodos de classes podem ter uma lógica complexa, especialmente em classes de controle; neste caso, o diagrama de atividades pode ser útil para representar a lógica desse método. +4. **Modelar a lógica de algoritmos paralelos para programas concorrentes:** Pode-se valer dos elementos (separações e junções) usados pelo diagrama de atividades para representar o processamento paralelo em programas concorrentes. + +## Subatividades no diagrama de atividades: + +As atividades, quando complexas, podem ser decompostas em subatividades. Neste caso, tal atividade decomposta terá um diagrama especificando suas subatividades e o diagrama principal terá uma representação diferenciada — com símbolo do ancinho, conforme esta imagem: + +- ![Sub atividade](../../media/modelagem_de_sistemas/aula08/img/img005.png) diff --git a/media/modelagem_de_sistemas/aula08/img/img001.png b/media/modelagem_de_sistemas/aula08/img/img001.png new file mode 100644 index 0000000..ba0855d Binary files /dev/null and b/media/modelagem_de_sistemas/aula08/img/img001.png differ diff --git a/media/modelagem_de_sistemas/aula08/img/img002.png b/media/modelagem_de_sistemas/aula08/img/img002.png new file mode 100644 index 0000000..fb9adbe Binary files /dev/null and b/media/modelagem_de_sistemas/aula08/img/img002.png differ diff --git a/media/modelagem_de_sistemas/aula08/img/img003.png b/media/modelagem_de_sistemas/aula08/img/img003.png new file mode 100644 index 0000000..8f7740a Binary files /dev/null and b/media/modelagem_de_sistemas/aula08/img/img003.png differ diff --git a/media/modelagem_de_sistemas/aula08/img/img004.png b/media/modelagem_de_sistemas/aula08/img/img004.png new file mode 100644 index 0000000..0b0323f Binary files /dev/null and b/media/modelagem_de_sistemas/aula08/img/img004.png differ diff --git a/media/modelagem_de_sistemas/aula08/img/img005.png b/media/modelagem_de_sistemas/aula08/img/img005.png new file mode 100644 index 0000000..66827ec Binary files /dev/null and b/media/modelagem_de_sistemas/aula08/img/img005.png differ