Guia Extra: Engenharia de Software e Modelagem UML • Bloco 2: Requisitos e Processos em Modelo • Demonstrações Práticas


🏢 Exemplo 1: Empréstimo entre Bibliotecas — AS-IS

Hoje, quando uma unidade não tem o livro, o leitor precisa ir até outra unidade.

flowchart LR
    subgraph LEITOR["Raia: Leitor"]
        S((Início)) --> A["Pedir livro no balcão"]
        C["Ir até a outra unidade"] --> F(((Fim)))
    end
    subgraph BIB["Raia: Bibliotecária"]
        A --> B{"× Tem na unidade?"}
        B -->|"sim"| D["Emprestar"]
        B -->|"não"| E["Telefonar para as outras unidades"]
        E --> C
        D --> F2(((Fim)))
    end

Gargalos observados: o telefonema leva em média 12 minutos; em 30% das vezes o livro já foi emprestado quando o leitor chega.


🚚 Exemplo 2: O Mesmo Processo — TO-BE

flowchart LR
    subgraph REDE["Piscina: Rede de bibliotecas"]
        subgraph LEI["Raia: Leitor"]
            S((Início)) --> P["Solicitar pelo SGB"]
            R["Retirar na unidade escolhida"] --> F(((Fim)))
        end
        subgraph SIS["Raia: SGB"]
            P --> G{"× Disponível na rede?"}
            G -->|"não"| RES["Registrar reserva"] --> F3(((Fim: na fila)))
            G -->|"sim"| PAR{"+ divide"}
            PAR --> AV["Avisar unidade de origem"]
            PAR --> BL["Bloquear exemplar"]
            AV --> J{"+ junta"}
            BL --> J
        end
        subgraph MAL["Raia: Malote"]
            J --> T["Transportar em até 2 dias"] --> R
        end
    end

O gateway paralelo (+) mostra que avisar a unidade e bloquear o exemplar acontecem ao mesmo tempo, e a junção espera os dois terminarem.


🐍 Exemplo 3: Medindo o Ganho

# ganho_to_be.py — comparação de tempo médio do leitor (em minutos)
as_is = {"balcão": 5, "telefonemas": 12, "deslocamento": 45}
to_be = {"pedido no SGB": 2, "retirada na unidade": 5}

total_as_is = sum(as_is.values())
total_to_be = sum(to_be.values())
print(f"AS-IS: {total_as_is} min | TO-BE: {total_to_be} min")
print(f"Redução: {100 * (total_as_is - total_to_be) / total_as_is:.0f}%")

Saída:

AS-IS: 62 min | TO-BE: 7 min
Redução: 89%