OpenCyber Academy
Pesquisa doutoral · Capítulo 7 · Português
Código do curso: OCA-206Capítulo 07: OCA-206-C007

Capítulo 7 — Síntese da tese e arquivo de reprodutibilidade

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

Mapa da aula

Aula 07 publicada. Mapa, exemplo, EX039.

flowchart TD
  N0["7.1 Mapa do argumento"]
  N1["7.2 Formato"]
  N2["7.3 Arquivo em camadas"]
  N3["7.4 Documentando dados e modelos sintéticos"]
  N4["7.5 Limitações com direção"]
  N5["Síntese do capítulo"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5
  N5 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX039"]

Desenho lógico

flowchart LR
  N0["7.1 Mapa do argumento"]
  N1["7.2 Formato"]
  N2["7.3 Arquivo em camadas"]
  N3["7.4 Documentando dados e modelos sintéticos"]
  N4["7.5 Limitações com direção"]
  N5["Síntese do capítulo"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> Q["EX039"]
[7.1 Mapa do argumento]
    |
    v
[7.2 Formato]
    |
    v
[7.3 Arquivo em camadas]
    |
    v
[7.4 Documentando dados e modelos sintéticos]
    |
    v
[7.5 Limitações com direção]
    |
    v
[Síntese do capítulo]
    |
    v
[Exemplo resolvido] --> [Exercício EX039]

Objetivos de aprendizagem e conexão

Ao final deste capítulo, você será capaz de (1) mapear o argumento da tese das evidências até a alegação, (2) escolher um formato de tese, (3) construir um arquivo em camadas, verificado por hashes, que falha de forma fechada (fail closed), (4) documentar dados e modelos sintéticos e (5) escrever limitações que digam em que direção cada viés empurra. Ele reúne os capítulos 1–6 e prepara a defesa.

7.1 Mapa do argumento

Use uma estrutura de Toulmin: alegação (a alegação estreitada da §6.3), dados (resultados do Laboratório 3, do Laboratório 5 e da T2), garantia (o balanço de massa liga a vazão e o nível; um atacante que controla apenas um deles não consegue manter os dois coerentes), respaldo (testes de verificação, propriedades do CUSUM de Page), qualificador ("em dois contextos sintéticos"), refutação (classe B, rampas lentas, instrumentos com atraso). Cada elemento aponta para um capítulo e um artefato.

Desenhe o mapa numa página e confira cada seta: os dados citados de fato sustentam a garantia, e a refutação lista todas as fronteiras do capítulo de crítica? Um elemento sem nenhum artefato por trás é uma lacuna a fechar antes da defesa. Mantenha o mapa atualizado à medida que a redação muda, porque os examinadores frequentemente perguntam como uma única frase se liga às evidências.

7.2 Formato

Uma monografia convém a um único argumento integrado; uma tese baseada em publicações convém a artigos independentes com um capítulo de ligação. Em qualquer caso, o arquivo de reprodutibilidade pertence à tese, não a um artigo.

Para o Setpoint Study, uma tese baseada em publicações se encaixa naturalmente nos três artigos planejados, com o capítulo de ligação carregando a alegação estreitada e as condições de fronteira. Uma monografia poria o mesmo material num único argumento contínuo. Escolha com a sua banca cedo, porque a escolha muda quanta repetição é aceitável e como o trabalho em coautoria é creditado.

7.3 Arquivo em camadas

Os artefatos de TO carregam riscos diferentes. O código e o simulador sintético são T0 (públicos). Os traços sintéticos são T1. As configurações das bancadas são T2 (pesquisadores verificados). Os mapas derivados de plantas são T3 e nunca são liberados. Uma liberação precisa falhar de forma fechada: se o hash de qualquer arquivo diferir do manifesto, nada é liberado; os arquivos acima do nível de liberação são excluídos automaticamente. O Laboratório 7 demonstra essa lógica.

# Lab 7: fail-closed reproducibility manifest check (stdlib). Creates synthetic files in ./archive_demo.
import hashlib, json, os
os.makedirs("archive_demo", exist_ok=True)
files = {"lab3.py": "print('model')\n", "traces_T1.csv": "t,level\n0,50.0\n", "plant_map_T3.txt": "RESTRICTED\n"}
for n, c in files.items():
    open(os.path.join("archive_demo", n), "w").write(c)
manifest = [{"path": n, "tier": "T3" if n.startswith("plant_map") else "T1",
             "sha256": hashlib.sha256(c.encode()).hexdigest()} for n, c in files.items()]
manifest[1]["sha256"] = "0"*64          # simulate a stale hash after an edit
def check(release_tier_max="T1"):
    ok = True
    for e in manifest:
        h = hashlib.sha256(open(os.path.join("archive_demo", e["path"]), "rb").read()).hexdigest()
        if e["tier"] > release_tier_max:
            print("EXCLUDE (tier)", e["path"], e["tier"]); continue
        if h != e["sha256"]:
            print("FAIL (hash)   ", e["path"]); ok = False
        else:
            print("OK            ", e["path"])
    return ok
print("release allowed:", check())

Saída esperada:

OK             lab3.py
FAIL (hash)    traces_T1.csv
EXCLUDE (tier) plant_map_T3.txt T3
release allowed: False

O hash desatualizado bloqueia a liberação, e o arquivo T3 nunca é considerado. A comparação e["tier"] > release_tier_max funciona porque os nomes dos níveis se ordenam lexicograficamente T0 < T1 < T2 < T3 — uma conveniência que quebraria com um nível chamado "T10", o que é anotado no README do arquivo.

7.4 Documentando dados e modelos sintéticos

Declare, para cada conjunto de dados sintético, se ele é inventado (parâmetros escolhidos para o ensino) ou calibrado (ajustado às estatísticas de um sistema real). O tanque do Setpoint Study é inventado. Registre os parâmetros, as sementes, a versão do código gerador e o uso pretendido; advirta contra usá-lo para fazer alegações sobre plantas reais.

Escreva essa documentação como uma ficha de dados curta, guardada junto com o código gerador, e inclua o equilíbrio, o coeficiente do orifício de 0,02, os níveis de ruído e os ganhos de ataque. Nomeie os laboratórios que usaram cada configuração. Qualquer pessoa que reutilize os traços deve ver imediatamente que eles descrevem um modelo de ensino, e não medições da Kestrel ou de qualquer outra planta.

7.5 Limitações com direção

Uma tabela de limitações útil declara a direção de cada viés: medidor de vazão sem ruído na simulação (superestima a revocação — confirmado pela T2), modelo de malha única (direção desconhecida para plantas com várias malhas), operadores sintéticos (desconhecida), escala da bancada (provavelmente superestima a relação sinal-ruído), censura em 400 passos (subestima o custo de atraso da Plant B).

A direção importa porque diz ao leitor como ajustar a confiança. Se um viés superestima a revocação, o valor no mundo real provavelmente é menor; se for desconhecido, o leitor não deve pressupor nenhum dos sentidos. Mantenha a tabela ao lado dos resultados, e não no fim, e atualize-a quando uma nova evidência, como a revocação menor da T2, definir uma direção.

7.6 Erros comuns e limites

Arquivos que liberam tudo ou nada; manifestos não verificados; chamar dados inventados de "realistas"; limitações sem direção.

Um arquivo que libera tudo vaza detalhes da planta; um que não libera nada não pode ser verificado. Um manifesto nunca verificado dá um falso conforto, e é por isso que o Laboratório 7 falha de forma fechada. Os dados sintéticos devem ser chamados de inventados ou calibrados, nunca de realistas. E cada limitação deve dizer se empurra os resultados para cima, para baixo ou numa direção desconhecida. Execute a verificação do manifesto na cópia de liberação, nunca apenas no diretório de trabalho.

Exercícios — capítulo 7

Síntese do capítulo

A tese é um argumento em que cada elemento aponta para evidências; o arquivo libera apenas o que é seguro e verificado, falhando de forma fechada; os dados sintéticos são rotulados como inventados ou calibrados; e as limitações dizem para que lado enviesam o resultado.

Respostas comentadas

EX039. Alegação: a alegação estreitada (Cap. 6.3). Dados: Laboratório 3, Laboratório 5, T2 (Caps. 3, 5). Garantia: o balanço de massa liga a vazão e o nível (Cap. 3.2). Respaldo: testes de verificação, teoria do CUSUM (Cap. 4.3). Qualificador: dois contextos sintéticos (Cap. 5). Refutação: classe B, rampas lentas, atraso (Caps. 5–6).

EX040. Armazene os níveis como inteiros (int(e["tier"][1:])) e compare números; uma entrada T10 com nível máximo de liberação T1 passa então a ser excluída, em vez de passar indevidamente como "T10" < "T2".

EX041. Código do simulador T0; traços sintéticos T1; cadernos de laboratório T1; diagrama de fiação da bancada T2 T2; programa do CLP da T2 T2; anotações da revisão por operadores T2; configurações reais no estilo da Plant A T3; vídeos do piloto T2. Limítrofes: o diagrama de fiação (T2 porque revela a fraqueza do CLP compartilhado); as anotações dos operadores (T2 por causa de citações identificáveis).

EX042. Propósito: ensino e demonstração de método. Parâmetros: entrada 1,0±0,05, saída 0,02×nível, ruído de nível σ = 0,3, ruído de vazão σ = 0,02, ganho do ataque 0,05 no passo 300. Situação: inventado, não calibrado. Usos proibidos: alegações sobre plantas reais, benchmarking de produtos.

EX043. Início do ataque fixo no passo 300 (desconhecida; pode favorecer detectores com aquecimento). Objetivo único do atacante (superestima a generalidade).

EX044. O formato baseado em publicações convém: três contribuições separáveis (métricas, comparação, estudo com operadores) com um capítulo de ligação; uma monografia é defensável se a instituição preferir um único argumento integrado.