Intent defines the starting semantic.
Trajectory defines the behavioral evolution.
Destination defines the expected terminal state.
Trajectory-Driven Development (T-DD) é uma proposta de método de desenvolvimento de software no qual a unidade central de especificação deixa de ser exclusivamente o código, o teste, a API, o requisito isolado ou o estado final do sistema e passa a ser a trajetória comportamental que conduz uma intenção a um destino verificável.
A implementação é tratada como uma projeção técnica dessa especificação.
O repositório que atualmente contém a implementação experimental deste conceito ainda utiliza o nome histórico Intent-Trajectory-Driven-Development. A documentação atual já apresenta a formulação Trajectory-Driven Development (T-DD) e a cadeia:
DESTINY
↓
INTENT
↓
BEHAVIOR
↓
EVIDENCE
↓
CONTRACT
↓
STATE
↓
ACTOR
↓
SKILL
↓
TRAJECTORY
↓
DSL
↓
IMPLEMENTATION
Fonte canônica atual: suissa/Intent-Trajectory-Driven-Development
O objetivo deste documento é formalizar semanticamente essa proposta, relacioná-la às disciplinas existentes e estabelecer quais partes constituem síntese de conhecimentos existentes e quais partes constituem a contribuição específica do T-DD.
1. O problema que o T-DD tenta resolver
Grande parte das práticas tradicionais de desenvolvimento começa em algum artefato técnico intermediário:
API
↓
schema
↓
database
↓
route
↓
service
↓
UI
↓
test
ou:
requirement
↓
implementation
↓
test
ou ainda:
user story
↓
BDD scenario
↓
implementation
↓
acceptance test
Essas abordagens são extremamente úteis, mas existe uma questão anterior:
Qual é exatamente o comportamento que estamos tentando realizar, por qual trajetória, sob quais condições, com quais atores, produzindo quais evidências e chegando a qual estado terminal?
Essa pergunta torna-se particularmente importante em sistemas:
- distribuídos;
- orientados a eventos;
- conversacionais;
- multiagente;
- autônomos;
- reativos;
- baseados em workflows;
- que possuem múltiplos atores;
- que precisam explicar decisões;
- que precisam reconstruir historicamente o comportamento;
- ou nos quais o estado final não é suficiente para determinar se o comportamento foi correto.
O T-DD propõe que a especificação seja construída progressivamente até que a implementação possa ser considerada uma projeção verificável da trajetória declarada.
2. O que é e o que não é T-DD
T-DD não é simplesmente:
- TDD com outro nome;
- BDD;
- workflow engine;
- state machine;
- process mining;
- event sourcing;
- requirements engineering;
- model-driven development;
- formal verification;
- agent orchestration.
Ele utiliza ideias dessas áreas e procura integrá-las em torno de uma abstração comum:
trajetória semântica
A distinção fundamental é:
TDD tradicional:
teste → implementação → refatoração
BDD:
comportamento → cenário → implementação → verificação
T-DD:
destino → intenção → comportamento → evidência
→ contrato → estado → autoridade → capacidade
→ trajetória → implementação → observação
→ comparação → conformidade
O teste continua existindo.
O contrato continua existindo.
A máquina de estados continua existindo.
Os eventos continuam existindo.
A diferença é que eles deixam de ser artefatos independentes e passam a ser diferentes projeções da mesma especificação semântica.
3. Definição semântica
Uma definição compacta pode ser dada por:
T-DD := Development(Declaration, Refinement, Execution, Observation, Conformance)
onde:
Declaration
= especificação semântica desejada
Refinement
= aumento monotônico de especificidade
Execution
= realização da especificação
Observation
= evidência produzida pela execução
Conformance
= relação entre trajetória declarada e trajetória observada
Uma especificação T-DD pode ser representada como:
Σ = ⟨D, I, B, E, C, S, A, K, T, X⟩
onde:
| Símbolo | Conceito | Significado |
|---|---|---|
D |
Destiny | estado/destino de negócio desejado |
I |
Intent | intenção semântica |
B |
Behavior | comportamento necessário |
E |
Evidence | evidência observável |
C |
Contract | restrições e invariantes |
S |
State | estados e transições legais |
A |
Actor | atores e autoridade |
K |
Skill | capacidades executáveis |
T |
Trajectory | sequência temporal de realização |
X |
Exclusion | comportamentos proibidos |
A implementação:
P
é considerada conforme quando:
P ⊨ T
e a trajetória satisfaz as relações de refinamento:
T ⊨ B
B ⊨ I
I ⊨ D
Portanto:
P ⊨ T ⊨ B ⊨ I ⊨ D
Essa expressão é uma das formulações centrais do T-DD.
Ela não significa que uma intenção humana possa ser matematicamente provada em sua totalidade. Significa que, depois de semanticamente operacionalizada, cada camada deve satisfazer as restrições declaradas pela camada anterior.
4. A distinção entre Destiny, Intent e Trajectory
Uma das razões para separar esses conceitos é que eles respondem a perguntas diferentes.
Destiny
Responde:
Onde precisamos chegar?
Exemplo:
cliente solicita entrega
→ entrega executada
→ motoboy remunerado
Formalmente:
D = {requested, paid, assigned, tracked, delivered, settled}
O destino não é necessariamente uma única variável de estado. Ele pode ser uma conjunção de condições terminais.
Intent
Responde:
O que alguém está tentando realizar?
Exemplo:
customer wants delivery
ou:
customer → deliver package from A to B
A teoria do comportamento planejado de Ajzen fornece uma fundamentação importante para separar intenção de comportamento: intenções são antecedentes importantes do comportamento, embora não sejam equivalentes ao comportamento realizado. A literatura também enfatiza o papel do controle percebido e de outros fatores na passagem da intenção para a ação.
O T-DD aproveita essa distinção, mas a transforma em uma questão de engenharia:
Intent ≠ Behavior
Uma intenção pode ser:
"quero fazer uma entrega"
sem conter:
origem
destino
preço
pagamento
motoboy
código de entrega
Portanto:
intent valid
≠
execution ready
Essa distinção é essencial em sistemas conversacionais.
Trajectory
Responde:
Como a intenção se transforma em comportamento observável ao longo do tempo?
Exemplo:
Intent
↓
collect addresses
↓
discover couriers
↓
select courier
↓
request payment
↓
confirm payment
↓
release delivery
↓
track
↓
validate delivery
↓
settle courier
Portanto:
Intent = semantic starting point
Destination = desired terminal condition
Trajectory = evolution between them
5. Trajetória como objeto matemático
Em sistemas dinâmicos, uma trajetória pode ser entendida como a evolução de um estado ao longo de um domínio temporal.
Uma abstração simples:
τ : T → S
onde:
T = domínio temporal
S = espaço de estados
τ(t) = estado observado no instante t
Para software, podemos enriquecer essa definição:
τ = ⟨(s₀,a₀,e₀,t₀),
(s₁,a₁,e₁,t₁),
...
(sₙ,aₙ,eₙ,tₙ)⟩
onde:
s = estado
a = ação
e = evidência
t = tempo
Uma trajetória deixa então de ser simplesmente:
A → B → C
e passa a ser:
(state, actor, action, evidence, time)
Essa estrutura é muito mais próxima daquilo que sistemas distribuídos realmente precisam registrar.
6. Relação com máquinas de estados
O componente State do T-DD possui relação direta com máquinas de estados e, particularmente, com Statecharts.
Harel mostrou que statecharts podem representar sistemas discretos complexos incorporando hierarquia, concorrência e comunicação, tornando a especificação comportamental mais compacta e expressiva.
Um modelo T-DD pode ser:
STATE delivery {
requested
collecting
searching
assigned
awaiting_payment
paid
active
arriving
delivered
settled
failed
}
E:
FLOW delivery {
requested → collecting
collecting → searching
searching → assigned
assigned → awaiting_payment
awaiting_payment → paid
paid → active
active → arriving
arriving → delivered
delivered → settled
}
Isso permite expressar:
awaiting_payment → paid
somente quando:
payment.confirmed = true
O T-DD, portanto, não substitui máquinas de estados.
Ele as incorpora como uma dimensão da trajetória.
7. Relação com lógica temporal
Uma trajetória introduz naturalmente uma dimensão temporal.
Considere:
payment.requested
e:
payment.confirmed
Não basta que ambos sejam verdadeiros.
Precisamos estabelecer:
payment.requested
precedes
payment.confirmed
E:
delivery.released
não pode ocorrer antes de:
payment.confirmed
Essas relações são próximas da lógica temporal.
A lógica temporal linear e model checking fornecem métodos formais para verificar propriedades sobre sequências de estados e computações. Trabalhos de Pnueli, Clarke, Emerson e Sifakis estabeleceram bases fundamentais dessa área.
O T-DD pode, portanto, transformar:
X: ¬release(payment≠confirmed)
em uma propriedade temporal verificável.
Por exemplo, conceitualmente:
G(release → previously(payment_confirmed))
onde G pode representar uma propriedade que deve ser verdadeira globalmente ao longo da trajetória.
A implementação futura de um verificador T-DD pode transformar essas propriedades em fórmulas temporais formais.
8. Relação com lógica de Hoare
A lógica de Hoare introduziu uma maneira formal de raciocinar sobre propriedades de programas utilizando pré-condições, comandos e pós-condições. O trabalho seminal de Hoare de 1969 estabeleceu essa base axiomática para raciocinar sobre a corretude de programas.
Uma operação T-DD:
SKILL confirm_payment {
in: payment
inv: payment.valid
out: payment.confirmed
}
pode ser aproximada conceitualmente por:
{ payment.valid }
confirm_payment()
{ payment.confirmed }
Mas T-DD adiciona dimensões que uma tripla de Hoare tradicional não representa diretamente:
actor
evidence
trajectory position
temporal relation
business destiny
semantic intent
Assim:
Hoare Logic
↓
correctness of program state transformation
T-DD
↓
correctness of semantic trajectory
A lógica de Hoare pode ser um mecanismo de verificação de partes do T-DD.
9. Relação com Design by Contract
O componente Contract possui relação direta com Design by Contract.
Meyer formalizou Design by Contract como uma abordagem para construção confiável de software utilizando contratos e asserções para explicitar condições de funcionamento.
Um contrato T-DD pode ser:
CONTRACT delivery.complete {
in: code, location
inv:
code = valid
∧ location = dropoff
}
Isso define:
preconditions
postconditions
invariants
failure conditions
A diferença está no nível de integração.
No T-DD:
Contract
não é um artefato isolado.
Ele pertence à trajetória:
Intent
↓
Behavior
↓
Contract
↓
State
↓
Trajectory
Consequentemente, um contrato pode ser utilizado por:
- runtime;
- agente;
- gerador de código;
- gerador de testes;
- observabilidade;
- verificador;
- simulador;
- process miner.
10. Relação com Requirements Engineering
Requirements Engineering tradicionalmente procura capturar aquilo que o sistema deve realizar e preservar a relação entre requisitos e artefatos técnicos.
O problema de traceability é antigo e bem documentado. Gotel e Finkelstein demonstraram que a rastreabilidade de requisitos envolve tanto o período anterior à especificação quanto o posterior à especificação, e que problemas importantes surgem quando a rastreabilidade inicial é perdida.
O T-DD pode ser interpretado como uma tentativa de tornar essa rastreabilidade estrutural:
DESTINY
↕
INTENT
↕
BEHAVIOR
↕
EVIDENCE
↕
CONTRACT
↕
STATE
↕
ACTOR
↕
SKILL
↕
TRAJECTORY
↕
IMPLEMENTATION
Assim, em vez de uma matriz externa:
Requirement → Design → Code → Test
temos uma cadeia semântica na qual cada camada possui identidade própria.
Isso permite perguntar:
Qual código implementa esta Skill?
ou:
Qual Skill realiza este Behavior?
ou:
Qual Intent originou este Behavior?
ou:
Qual Destiny depende desta Intent?
ou:
Qual evidência prova que essa intenção foi realizada?
Esse encadeamento é uma aplicação direta do princípio de traceability, mas elevado a uma estrutura semântica explícita.
11. Relação com Goal-Oriented Requirements Engineering
A literatura de Goal-Oriented Requirements Engineering trabalha há décadas com a ideia de derivar requisitos a partir de objetivos.
Van Lamsweerde, por exemplo, desenvolveu amplamente a abordagem goal-oriented para requirements engineering. Goal-oriented Requirements Engineering: a guided tour
O T-DD possui uma relação direta:
Goal
↓
Destiny
↓
Intent
↓
Behavior
A diferença proposta está no tratamento da dimensão temporal.
Um goal pode ser:
deliver package
O T-DD pergunta adicionalmente:
como esse objetivo será realizado?
quais estados intermediários existem?
quais atores podem produzir cada transição?
quais evidências comprovam cada passo?
quais trajetórias são permitidas?
quais trajetórias são proibidas?
Isso aproxima T-DD de uma combinação entre:
Goal-oriented RE
+
State-based modeling
+
Process modeling
+
Trace semantics
+
Conformance checking
12. Uma conexão particularmente importante: Intent Mining
Existe uma linha de pesquisa surpreendentemente próxima do conceito.
Pesquisas de intentional process mining procuram descobrir intenções e estratégias a partir de logs de processos.
Khodabandelou et al. apresentaram trabalhos sobre descoberta de modelos intencionais a partir de logs, inclusive utilizando Hidden Markov Models para inferir intenções e estratégias dos participantes. Unsupervised discovery of intentional process models from event logs
Outra revisão sistemática conecta explicitamente:
event logs
→ processes
→ goals
e documenta a relação entre process mining, intention mining e goal-oriented requirements engineering. From event logs to goals: a systematic literature review of goal-oriented process mining
Isso é extremamente relevante para T-DD.
A direção tradicional do process mining é:
OBSERVED TRAJECTORIES
↓
PROCESS MODEL
Enquanto T-DD propõe:
DECLARED TRAJECTORY
↓
IMPLEMENTATION
↓
OBSERVED TRAJECTORY
↓
CONFORMANCE
Temos, portanto, duas operações complementares:
Process Mining:
events → infer model
T-DD:
model → expected events
E futuramente:
T-DD + Process Mining
declared trajectory
↓
executed system
↓
observed trajectory
↓
alignment
↓
conformance / deviation / repair
Esse é um dos fundamentos científicos mais fortes para o conceito.
13. Relação com Process Mining
Process mining trabalha na interseção entre:
process models
+
event data
A literatura de van der Aalst estabelece três grandes atividades:
discovery
conformance
enhancement
e utiliza event logs para descobrir ou analisar processos reais.
No T-DD:
DECLARED TRAJECTORY
é um processo esperado.
O sistema produz:
OBSERVED TRAJECTORY
A comparação:
expected ↔ observed
é um problema de conformidade.
Van der Aalst e colaboradores estudaram justamente o replay de históricos sobre modelos de processos para análise de conformidade e desempenho. Replaying history on process models for conformance checking and performance analysis
Portanto, uma implementação futura do T-DD pode utilizar técnicas de process mining para responder:
A trajetória real corresponde à trajetória declarada?
14. Relação com Event Sourcing
Event Sourcing registra mudanças de estado como uma sequência de eventos, permitindo reconstruir estados anteriores e responder não apenas "onde estamos", mas também "como chegamos aqui". Fowler descreve justamente essa diferença entre consultar o estado atual e preservar a sequência histórica das mudanças.
Isso é extremamente próximo da ideia de trajetória.
Porém:
Event Sourcing
= mecanismo de persistência histórica
T-DD
= método de especificação e desenvolvimento
Event Sourcing pode fornecer a matéria-prima para:
ObservedTrajectory
mas não define sozinho:
Intent
Destiny
Contract
Actor
Skill
ExpectedTrajectory
Portanto:
T-DD
+
Event Sourcing
=
declared semantics + historical execution
15. Estado atual não é trajetória
Essa distinção é fundamental.
Imagine dois sistemas que terminaram assim:
delivery.status = settled
Ambos possuem o mesmo estado final.
Mas:
Trajetória A
requested
→ assigned
→ paid
→ active
→ delivered
→ settled
Trajetória B
requested
→ assigned
→ settled
O estado final é igual:
settled
A semântica é completamente diferente.
O segundo sistema pode ter violado:
payment.confirmed
delivery.completed
delivery.code.validated
Portanto:
State(t_final)
não é suficiente para determinar:
CorrectTrajectory
Essa é uma das razões centrais para tratar a trajetória como artefato de primeira classe.
16. Relação com Behavior-Driven Development
BDD aproxima negócio, desenvolvimento e testes por meio de comportamento executável.
A literatura sobre BDD descreve justamente a intenção de expressar comportamento de forma compreensível para diferentes participantes e associar comportamentos a cenários executáveis. Behaviour-Driven Development of Foundational UML Components
Um cenário BDD típico:
Given payment was confirmed
When delivery is released
Then courier receives delivery data
T-DD pode representar isso como parte de uma trajetória maior:
payment.confirmed
↓
delivery.released
↓
courier.receives
A diferença é de escopo.
BDD
→ comportamento esperado em cenários
T-DD
→ evolução temporal completa de uma intenção até seu destino
BDD pode, portanto, ser uma projeção de uma trajetória T-DD:
Trajectory
↓
BDD Scenarios
Assim como:
Trajectory
↓
Tests
ou:
Trajectory
↓
State Machine
17. Relação com Test-Driven Development
TDD tradicional começa com um teste que expressa uma mudança desejada, implementa-se código para satisfazê-lo e posteriormente refatora-se a implementação.
Esse ciclo é extremamente eficiente para orientar a construção local do software.
T-DD muda o objeto primário:
TDD:
test is primary artifact
T-DD:
trajectory is primary semantic artifact
Um teste pode verificar:
assert payment.confirmed
Mas uma trajetória verifica:
request
→ payment.requested
→ payment.confirmed
→ delivery.released
E também:
¬delivery.released
before payment.confirmed
Portanto:
TDD verifica comportamento local.
T-DD especifica e verifica evolução comportamental.
Os dois podem coexistir:
T-DD
↓
gera/define
↓
TDD tests
18. Relação com Model-Driven Development
Model-driven approaches utilizam modelos como artefatos fundamentais e frequentemente derivam artefatos técnicos desses modelos.
T-DD segue uma ideia semelhante:
semantic model
↓
DSL
↓
generated artifacts
↓
implementation
Mas o objeto central não é simplesmente um modelo estrutural.
É uma trajetória:
semantic model
=
intent + behavior + state + actor + evidence + trajectory
Isso aproxima T-DD de uma forma de trajectory-centered model-driven development.
A DSL torna-se uma representação compacta de um modelo semântico previamente definido.
19. A escada monotônica de especificidade
Uma propriedade importante do T-DD é a ideia de refinamento monotônico.
Definimos:
S₀ = Destiny
S₁ = Intent
S₂ = Behavior
...
Sₙ = Implementation
com:
S₀ ⊆ S₁ ⊆ S₂ ⊆ ... ⊆ Sₙ
O símbolo ⊆ aqui deve ser interpretado semanticamente:
cada estágio adiciona restrições sem invalidar o significado estabelecido anteriormente.
Por exemplo:
Destiny:
"entrega deve ser concluída"
Intent:
"cliente quer entregar pacote de A para B"
Behavior:
"buscar entregador e executar entrega"
Contract:
"pagamento precisa ser confirmado antes da liberação"
State:
"awaiting_payment → paid → active"
Actor:
"somente payment pode confirmar pagamento"
Skill:
"confirm_payment"
Trajectory:
"request → collect → select → pay → release → track → deliver"
Implementation:
"WhatsApp + PostgreSQL + NATS + provider X"
A última camada possui muito mais informação técnica, mas não deveria alterar o significado das anteriores.
20. O princípio de separação semântica
O T-DD estabelece:
technology ≠ semantics
Uma API:
POST /delivery
não é o comportamento.
Uma tabela:
deliveries
não é o comportamento.
Uma função:
createDelivery()
não é o comportamento.
Um agente:
DeliveryAgent
não é o comportamento.
Todos são implementações possíveis de uma semântica anterior.
Portanto:
semantic specification
↓
implementation projection
e não:
implementation
↓
retroactive semantic interpretation
Essa inversão é uma das características mais importantes da proposta.
21. Actor como autoridade semântica
O T-DD introduz explicitamente:
ACTOR
porque comportamento não pode ser separado de autoridade.
Exemplo:
ACTOR customer
ACTOR courier
ACTOR payment
ACTOR system
Então:
ALLOW customer {
request
address
pay
}
e:
ALLOW payment {
confirm
reject
}
Isso permite distinguir:
technically executable
de:
semantically authorized
Uma função poder ser chamada pelo código não significa que o ator atual esteja autorizado a executá-la.
Essa separação é especialmente importante para:
- agentes;
- sistemas multiusuário;
- sistemas distribuídos;
- segurança;
- compliance;
- human-in-the-loop;
- workflows empresariais.
22. Skill como unidade executável
A Skill representa uma capacidade semanticamente delimitada.
Exemplo:
SKILL select_nearest {
in: couriers, origin
rule:
min(distance(courier, origin))
out:
courier
emit:
courier.selected
}
Uma Skill possui:
input
output
rule
invariants
evidence
actor
Ela pode então ser utilizada por:
agent
workflow
test
runtime
simulator
human
Isso permite separar:
what can be done
de:
who orchestrates it
Uma Skill não precisa saber se foi chamada por:
LLM
HTTP
CLI
WhatsApp
workflow
human
A semântica permanece a mesma.
23. Evidence como primeiro cidadão
Um dos pontos mais importantes do T-DD é colocar evidência antes da implementação.
Exemplo:
EVIDENCE delivery {
request.received
intent.recognized
addresses.collected
courier.selected
payment.confirmed
delivery.released
location.received*
code.validated
settlement.completed
}
Isso significa que observabilidade não é:
"vamos adicionar logs depois"
mas:
"quais fatos precisam ser observáveis para provar que o comportamento ocorreu?"
A diferença é arquitetural.
Um log:
"payment succeeded"
não é necessariamente uma evidência confiável.
Uma evidência precisa estar vinculada a uma condição semântica verificável:
payment.confirmed
e, idealmente:
actor
timestamp
correlation_id
state_before
action
state_after
provenance
24. Proveniência
A evidência também pode possuir proveniência:
Evidence =
⟨fact, actor, timestamp, source, provenance⟩
Por exemplo:
payment.confirmed
actor: payment-provider
timestamp: 2026-10-07T10:32:12Z
source: provider-event
Isso permite diferenciar:
claim
de:
observed fact
Essa propriedade torna-se especialmente importante para sistemas de agentes.
Um agente pode dizer:
"o pagamento foi confirmado"
mas o sistema deve conseguir responder:
qual evidência sustenta essa afirmação?
25. T-DD e sistemas de agentes
O modelo torna-se especialmente interessante para agentes porque agentes frequentemente operam em loops:
observe
→ reason
→ act
→ observe
→ reason
→ act
Um agente tradicional pode produzir uma sequência de chamadas de ferramentas sem possuir uma representação formal da trajetória.
T-DD propõe:
Intent
↓
Expected Trajectory
↓
Agent Actions
↓
Observed Evidence
↓
Trajectory Update
↓
Conformance
O agente deixa de ser simplesmente:
LLM + tools
e passa a ser um participante de uma trajetória semanticamente definida.
26. Agente não define a semântica
Essa distinção é essencial.
O agente pode escolher:
qual Skill executar
mas não deveria poder alterar silenciosamente:
qual Destiny está sendo perseguido
nem:
quais invariantes são obrigatórios
Por exemplo:
X:
¬release(payment ≠ confirmed)
O agente pode tentar várias estratégias para conseguir confirmação.
Mas não pode decidir:
"vou liberar mesmo sem pagamento"
sem que a especificação permita essa transição.
Isso produz:
agent autonomy
within semantic boundaries
e não:
agent autonomy
over system meaning
27. Relação com sociologia: ação, intenção e trajetória
A palavra "ação" em sistemas de software possui uma herança conceitual muito maior do que simplesmente chamar uma função.
Em ciências sociais, uma ação pode ser estudada considerando:
ator
intenção
contexto
normas
recursos
ação
consequência
O T-DD possui uma estrutura semelhante:
ACTOR
INTENT
CONTEXT
CONTRACT
ACTION
EVIDENCE
STATE
CONSEQUENCE
Mas isso não significa que T-DD esteja propondo uma teoria sociológica nova.
A contribuição é transportar uma distinção útil para sistemas computacionais:
ação técnica
≠
ação semanticamente situada
Em sistemas multiagente e conversacionais, isso se torna particularmente importante porque o mesmo comando técnico pode possuir significados diferentes dependendo do ator, contexto e estado.
28. Intenção não determina automaticamente ação
A literatura psicológica fornece um alerta importante.
A teoria do comportamento planejado de Ajzen mostra que intenção é um determinante importante, mas não suficiente para garantir comportamento; o controle percebido e outros fatores também importam.
Isso pode ser traduzido arquiteturalmente:
Intent
≠
Guaranteed Execution
Uma intenção pode falhar porque:
missing information
authorization denied
resource unavailable
provider failure
state invalid
contract violation
actor unavailable
timeout
Logo:
Intent
↓
possible trajectories
e não:
Intent
↓
one guaranteed action
Essa observação fundamenta a necessidade de representar falhas e replanejamento como partes legítimas da trajetória.
29. Trajetória pode ramificar
Uma trajetória real não precisa ser linear.
Podemos ter:
request
↓
payment
├── confirmed
│ ↓
│ release
│
└── rejected
↓
retry
Formalmente:
T = graph(S, A, E)
em vez de simplesmente:
T = list(A)
Portanto:
Trajectory
pode ser:
- linear;
- ramificada;
- concorrente;
- iterativa;
- recursiva;
- parcialmente ordenada.
Isso aproxima T-DD de:
- statecharts;
- Petri nets;
- process calculi;
- workflow models;
- temporal logic;
- process mining.
30. Relação com Petri Nets
Petri nets são uma das bases formais mais importantes para modelagem de workflows.
Van der Aalst demonstrou sua aplicação à gestão de workflows, destacando tanto sua capacidade de especificação quanto as possibilidades de análise formal de procedimentos.
Uma trajetória T-DD pode eventualmente ser compilada para uma estrutura semelhante.
Por exemplo:
requested
↓
collecting
↓
searching
↓
assigned
pode ser representada como uma rede.
A vantagem seria permitir analisar:
deadlocks
liveness
reachability
concurrency
soundness
O T-DD não precisa substituir Petri nets.
Uma arquitetura possível é:
T-DD DSL
↓
semantic model
↓
Petri-net projection
↓
formal analysis
Isso seria uma evolução natural da proposta.
31. Conformidade como relação formal
Definimos:
T_expected
como a trajetória declarada.
E:
T_observed
como a trajetória observada.
A conformidade pode ser representada por:
Conforms(T_observed, T_expected)
Uma forma simples:
T_observed ⊨ T_expected
Mas a relação real pode ser mais rica.
Podemos definir:
Conformance =
structural
∧ temporal
∧ contractual
∧ authorization
∧ evidential
Então:
Conformance(To, Te)
=
Cstructural
∧ Ctemporal
∧ Ccontract
∧ Cactor
∧ Cevidence
Isso permite classificar desvios:
STRUCTURAL_DEVIATION
TEMPORAL_DEVIATION
CONTRACT_DEVIATION
AUTHORIZATION_DEVIATION
MISSING_EVIDENCE
UNEXPECTED_ACTION
INVALID_STATE_TRANSITION
32. Trajectory Distance
Uma evolução matemática natural é definir uma distância entre trajetórias.
Por exemplo:
d(T_expected, T_observed)
poderia considerar:
missing actions
extra actions
wrong ordering
wrong actor
wrong state
missing evidence
Uma função simplificada:
d(Tₑ,Tₒ)
=
αM
+
βX
+
γO
+
δA
+
εS
+
ζE
onde:
M = missing actions
X = unexpected actions
O = ordering deviations
A = actor deviations
S = state deviations
E = evidence deviations
Os pesos:
α β γ δ ε ζ
podem ser definidos conforme o domínio.
Isso abre espaço para:
trajectory similarity
trajectory clustering
trajectory anomaly detection
trajectory ranking
trajectory repair
33. Conformance não precisa ser binária
Em sistemas complexos:
conforms = true/false
pode ser insuficiente.
Podemos ter:
ConformanceScore ∈ [0,1]
Por exemplo:
0.98
pode significar que a trajetória possui pequena divergência não crítica.
Enquanto:
0.20
pode indicar que o sistema praticamente abandonou a trajetória declarada.
Mas alguns invariantes devem ser absolutos:
payment confirmed before release
não deveria ser transformado simplesmente em:
97% compliant
Portanto, T-DD deve distinguir:
soft constraints
de:
hard invariants
34. Hard e Soft Semantics
Podemos definir:
C = Chard ∪ Csoft
Exemplo:
HARD:
¬release(payment≠confirmed)
SOFT:
select courier with minimal distance
Assim:
payment confirmation
é obrigatório.
Enquanto:
nearest courier
pode admitir:
second nearest
quando o primeiro estiver indisponível.
Isso é particularmente importante para agentes.
O agente pode otimizar:
soft constraints
mas não violar:
hard constraints
35. Replanejamento
Quando uma trajetória falha, o sistema não precisa necessariamente declarar a intenção como impossível.
Exemplo:
Intent:
deliver package
Primeira trajetória:
select courier A
→ courier rejects
Uma segunda trajetória pode ser:
select courier B
→ accept
→ pay
→ release
Portanto:
Intent
↓
Trajectory₁
↓
failure
↓
replanning
↓
Trajectory₂
↓
Destination
A intenção permanece.
A trajetória muda.
Essa distinção é especialmente importante em sistemas agentes.
36. Intenção persistente, trajetória mutável
Uma formulação importante:
Intent = relatively stable semantic objective
Trajectory = mutable realization strategy
Isso significa:
same intent
+
different trajectory
=
valid adaptation
desde que:
trajectory ⊨ intent
Essa propriedade permite que um agente faça planejamento adaptativo sem modificar arbitrariamente o objetivo semântico.
37. A relação com "Situated Action"
A pesquisa de interação humano-computador e ciências sociais também mostrou limitações de tratar ação humana como simples execução de planos predefinidos.
O trabalho de Lucy Suchman sobre Plans and Situated Actions tornou-se uma referência importante para compreender como ações são produzidas em situações concretas, em vez de simplesmente executar planos abstratos.
O paralelo para T-DD é:
declared trajectory
não precisa significar:
fixed deterministic script
Ela pode representar:
semantic constraints
dentro das quais a execução pode adaptar-se ao contexto.
Isso sugere uma distinção:
Trajectory Specification
≠
Execution Script
A primeira define:
what must remain true
A segunda define:
how one execution currently proceeds
Essa distinção é particularmente útil para agentes.
38. T-DD como "semantic constraint system"
Uma maneira mais precisa de definir T-DD é:
T-DD é um sistema de desenvolvimento no qual uma trajetória declarada funciona como uma estrutura de restrições semânticas progressivamente refinadas, contra a qual implementações e execuções podem ser verificadas.
Nesse sentido:
T-DD ≈ semantic constraint refinement
e:
Implementation = realization
Execution = instantiation
Observation = evidence
Conformance = verification
39. A DSL como compressão semântica
A DSL não deve ser o primeiro artefato.
Ela é o resultado da especificação.
Por exemplo:
DESTINY
INTENT
BEHAVIOR
CONTRACT
STATE
ACTOR
EVIDENCE
TRAJECTORY
pode ser comprimido em:
@delivery
D: delivery→requested paid assigned tracked delivered settled
I: customer→deliver
B:
request
→collect
→discover(courier*)
→select(min distance)
→charge
→confirm
→release
→track*
→validate(code)
→settle
S:
requested
→collecting
→searching
→assigned
→awaiting_payment
→paid
→active
→arriving
→delivered
→settled
X:
¬release(payment≠confirmed)
¬settle(code≠valid)
A DSL não inventa esses significados.
Ela os codifica.
Portanto:
Semantic Model
↓
DSL
e não:
DSL
↓
invent semantic meaning
40. Semantic Source of Truth
Uma propriedade desejável é:
DSL = semantic source of truth
enquanto:
TypeScript
Python
Zig
SQL
OpenAPI
routes
schemas
tests
agent tools
são projeções.
Por exemplo:
T-DD DSL
├──→ TypeScript
├──→ Python
├──→ OpenAPI
├──→ JSON Schema
├──→ tests
├──→ state machine
├──→ agent tools
└──→ documentation
Essa arquitetura aproxima T-DD de:
Model-Driven Engineering
+
Schema-Driven Development
+
Code Generation
mas utiliza uma semântica centrada na trajetória.
41. Relação com Design Science Research
O T-DD também pode ser estudado como um artefato de Design Science Research.
A literatura de DSR caracteriza esse tipo de pesquisa pela construção e avaliação de artefatos, acompanhando a transformação de problemas em requisitos, artefatos e evidências de avaliação.
Isso é particularmente relevante para a evolução do T-DD porque permite separar:
claim
de:
implementation
e:
evidence
A pesquisa do método pode então seguir:
Problem
↓
Concept
↓
Formalization
↓
DSL
↓
Implementation
↓
Execution
↓
Evaluation
↓
Conformance
↓
Revision
Isso transforma o próprio desenvolvimento do T-DD em uma instância de T-DD.
42. Autoaplicação
Uma propriedade interessante da metodologia é que ela pode especificar a si mesma.
Exemplo:
DESTINY:
produce a system whose implementation conforms
to declared semantic trajectories
Intent:
define trajectory-driven development
Behavior:
research
→ formalize
→ define vocabulary
→ define grammar
→ implement parser
→ implement validator
→ generate artifacts
→ execute
→ observe
→ compare
Evidence:
specification.valid
grammar.valid
examples.valid
implementation.generated
tests.pass
trajectory.conforms
Assim:
T-DD
pode ser utilizado para desenvolver:
T-DD itself
43. Um exemplo completo
Considere:
"Preciso de uma entrega."
A mensagem é:
"Preciso de uma entrega"
Destiny
delivery.requested
delivery.paid
delivery.assigned
delivery.tracked
delivery.delivered
delivery.settled
Intent
customer → deliver(package, origin, destination)
Missing semantic information
origin
destination
Behavior
request
→ collect
→ discover
→ select
→ charge
→ confirm
→ release
→ track
→ validate
→ settle
Contract
release requires payment.confirmed
State
requested
→ collecting
→ searching
→ assigned
→ awaiting_payment
→ paid
→ active
→ delivered
→ settled
Actor
customer:
request
pay
validate
system:
classify
collect
discover
select
release
route
settle
courier:
accept
locate
deliver
payment:
confirm
reject
Evidence
intent.recognized
addresses.collected
courier.selected
payment.confirmed
delivery.released
location.received
code.validated
settlement.completed
Trajectory
customer.request
→ system.collect
→ system.discover
→ system.select
→ customer.pay
→ payment.confirm
→ system.release
→ courier.locate*
→ system.relay*
→ customer.code
→ system.validate
→ system.settle
Implementation
Somente agora:
WhatsApp
→ classifier
→ orchestrator
→ skill runtime
→ payment provider
→ courier service
→ PostgreSQL
→ event stream
→ observability
A tecnologia é uma realização da trajetória, não sua definição.
44. T-DD e o problema do "happy path"
Uma consequência importante é que a trajetória não deve representar apenas:
happy path
Deve representar:
valid trajectories
+
invalid trajectories
+
recovery trajectories
Por exemplo:
payment rejected
pode produzir:
awaiting_payment
→ payment_rejected
→ retry_payment
→ payment_confirmed
Enquanto:
courier unavailable
pode produzir:
searching
→ no_courier
→ expand_search
→ searching
Portanto:
T-DD specification
deve ser capaz de representar um espaço de trajetórias.
45. Trajectory Space
Podemos definir:
𝒯(I)
como o conjunto de trajetórias admissíveis para uma intenção I.
Então:
τ ∈ 𝒯(I)
significa:
τé uma trajetória semanticamente válida para realizarI.
Uma implementação pode produzir:
τ₁
e outra:
τ₂
sem que ambas sejam idênticas.
O que importa é:
τ₁ ∈ 𝒯(I)
τ₂ ∈ 𝒯(I)
Isso fornece uma fundamentação matemática para não confundir:
semantic equivalence
com:
implementation equality
46. Equivalência de trajetórias
Duas trajetórias podem ser diferentes e semanticamente equivalentes.
Exemplo:
Trajectory A:
discover courier
→ select courier
→ charge
e:
Trajectory B:
discover courier
→ reserve courier
→ charge
→ confirm reservation
Se ambas preservarem as mesmas invariantes e produzirem o mesmo destino:
A ≈ B
podem ser consideradas semanticamente equivalentes sob uma relação de equivalência definida pelo domínio.
Isso abre uma área de pesquisa:
trajectory equivalence
análoga a relações de equivalência em sistemas formais, linguagens e processos concorrentes.
47. Conformance como refinement
Podemos interpretar implementação como refinamento:
Specification
↓
Refinement
↓
Implementation
Uma implementação correta não deveria introduzir comportamentos proibidos.
Portanto:
Allowed(T)
deve conter o comportamento observado:
Observed(T) ⊆ Allowed(T)
com condições adicionais para cobertura:
Required(T) ⊆ Observed(T)
Uma implementação idealmente satisfaz:
Required(T)
⊆
Observed(T)
⊆
Allowed(T)
Essa fórmula resume de maneira compacta uma propriedade importante do T-DD:
a execução deve realizar o que é necessário sem produzir aquilo que é proibido.
48. Required, Allowed e Forbidden
Podemos formalizar:
R = required behavior
A = allowed behavior
F = forbidden behavior
com:
R ⊆ A
F ∩ A = ∅
E:
Observed ⊆ A
e:
R ⊆ Observed
para uma trajetória totalmente conforme.
Quando:
Observed ∩ F ≠ ∅
temos uma violação explícita.
Quando:
R - Observed ≠ ∅
temos comportamento ausente.
Isso fornece uma base formal simples para um futuro T-DD Conformance Engine.
49. O loop completo
A metodologia pode ser representada por:
DESTINY
↓
INTENT
↓
BEHAVIOR
↓
EVIDENCE
↓
CONTRACT
↓
STATE
↓
ACTOR
↓
SKILL
↓
TRAJECTORY
↓
DSL
↓
IMPLEMENT
↓
EXECUTE
↓
OBSERVE
↓
RECONSTRUCT
↓
COMPARE
↓
CONFORMANCE
↓
REPLAN / REPAIR
└───────────────────↺
Ou, de maneira mais abstrata:
declare
↓
refine
↓
project
↓
execute
↓
observe
↓
compare
↓
adapt
50. O que diferencia T-DD das metodologias existentes
| Abordagem | Artefato central | Pergunta principal |
|---|---|---|
| TDD | Teste | O código satisfaz o teste? |
| BDD | Behavior/scenario | O sistema apresenta o comportamento esperado? |
| DDD | Domain model | Qual é o modelo do domínio? |
| MDD | Model | Como gerar/derivar implementação do modelo? |
| Design by Contract | Contract | Quais condições devem ser verdadeiras? |
| Statecharts | State machine | Quais estados/transições são possíveis? |
| Event Sourcing | Event history | Como chegamos ao estado atual? |
| Process Mining | Event log/process model | Como o processo realmente acontece? |
| Goal-oriented RE | Goal | Qual objetivo precisa ser realizado? |
| T-DD | Trajectory | Como uma intenção válida evolui até um destino sob restrições verificáveis? |
Essa tabela não afirma que T-DD substitui as demais.
A proposta é que essas técnicas possam se tornar projeções ou mecanismos auxiliares dentro de uma especificação de trajetória.
51. O papel da trajetória como novo artefato de primeira classe
A proposição central pode ser reduzida a:
Software system
=
implementation
+
semantic trajectory
e não simplesmente:
Software system
=
code
ou:
Software system
=
current state
A trajetória representa:
what was intended
+
what was allowed
+
what was done
+
by whom
+
when
+
under which state
+
with what evidence
+
toward which destination
Essa é uma quantidade de informação que um estado final sozinho não consegue representar.
52. A contribuição conceitual
É importante separar a contribuição do T-DD daquilo que já existe.
Não seria correto afirmar:
"ninguém antes estudou trajetórias, intenções, estados, contratos ou processos".
Isso seria falso.
Existem décadas de pesquisa sobre:
- intenção;
- objetivos;
- processos;
- workflows;
- máquinas de estados;
- lógica temporal;
- contratos;
- traceability;
- process mining;
- intenção em engenharia de software;
- comportamento;
- event sourcing.
Inclusive, trabalhos recentes propõem explicitamente uma visão de intentions in software engineering, argumentando que features, requirements, issues, mudanças e bugs podem ser compreendidos como diferentes abstrações relacionadas às intenções dos stakeholders. A Vision on Intentions in Software Engineering
A contribuição específica do T-DD está na composição:
Destiny
+
Intent
+
Behavior
+
Evidence
+
Contract
+
State
+
Actor
+
Skill
+
Trajectory
+
DSL
+
Conformance
como uma única cadeia metodológica na qual cada camada refina a anterior.
53. Uma relação particularmente importante com pesquisa contemporânea sobre intenções
A pesquisa A Vision on Intentions in Software Engineering é especialmente próxima do T-DD.
Os autores argumentam que diversos artefatos utilizados no desenvolvimento de software carregam implicitamente intenções de stakeholders e propõem mecanismos para declarar, rastrear e verificar essas intenções durante a evolução do software. A Vision on Intentions in Software Engineering
Isso converge fortemente com:
Intent
↓
Specification
↓
Change
↓
Verification
do T-DD.
A diferença é que o T-DD introduz uma dimensão adicional:
Intent
↓
Trajectory
↓
Observed realization
Ou seja, não apenas:
"esta mudança corresponde à intenção?"
mas:
"esta execução realizou a intenção através de uma trajetória semanticamente válida?"
54. T-DD como ponte entre intenção e execução
Podemos finalmente formular:
Intent
↓
semantic constraints
↓
trajectory space
↓
execution
↓
observed trajectory
↓
conformance
Isso fornece uma ponte entre níveis que tradicionalmente ficam separados:
Human meaning
↓
Requirements
↓
Design
↓
Code
↓
Runtime
↓
Telemetry
T-DD tenta transformar essa cadeia em:
Human intention
↓
Semantic trajectory
↓
Executable specification
↓
Runtime execution
↓
Observable trajectory
↓
Formal comparison
55. Princípios normativos do T-DD
Uma implementação que siga T-DD deve observar, idealmente, os seguintes princípios.
55.1 Semântica antes da tecnologia
meaning → implementation
e não:
technology → inferred meaning
55.2 Intenção não é execução
intent ≠ behavior
55.3 Estado final não é histórico
state ≠ trajectory
55.4 Evidência faz parte da especificação
behavior without evidence
é incompleto quando a verificabilidade é necessária.
55.5 Autoridade deve ser explícita
actor → capability
55.6 Contratos são restrições semânticas
contract → legal execution boundary
55.7 Trajetórias podem ser alternativas
one intent
→ multiple valid trajectories
55.8 Falhas são parte do modelo
failure
→ trajectory branch
55.9 Implementação é uma projeção
semantic model → implementation
55.10 Execução deve ser comparável com a declaração
declared trajectory
↔
observed trajectory
56. A definição final
Uma definição formal resumida pode ser:
Trajectory-Driven Development é um método de desenvolvimento de software no qual o sistema é progressivamente refinado a partir de destinos e intenções semânticas em comportamentos, evidências, contratos, estados, autoridades, capacidades e trajetórias declaradas, das quais implementações executáveis são derivadas e contra as quais as trajetórias observadas podem ser verificadas quanto à conformidade.
Em notação:
T-DD =
Semantic Declaration
+
Monotonic Refinement
+
Executable Projection
+
Runtime Observation
+
Trajectory Conformance
E sua propriedade fundamental:
Implementation ⊨ ObservedTrajectory
⊨ DeclaredTrajectory
⊨ Behavior
⊨ Intent
⊨ Destiny
57. A tese central
O T-DD pode ser resumido em uma única afirmação:
Software não deve ser especificado apenas pelo que ele contém ou pelo estado em que termina, mas também pela trajetória semanticamente válida através da qual realiza uma intenção e alcança um destino.
Ou, de forma ainda mais curta:
Don't only specify the state.
Specify the trajectory.
E, para sistemas agentes:
Don't only constrain what the agent can do.
Constrain the trajectory through which
the agent may realize the intent.
58. Relações científicas fundamentais
A fundamentação do T-DD pode ser organizada assim:
PSICOLOGIA
Intentions
↓
Behavior
↓
Goal pursuit
SOCIOLOGIA
Actor
↓
Action
↓
Context
↓
Consequence
REQUIREMENTS ENGINEERING
Goal
↓
Requirement
↓
Traceability
FORMAL METHODS
State
↓
Transition
↓
Contract
↓
Temporal Logic
PROCESS SCIENCE
Process Model
↓
Event Log
↓
Conformance
COMPUTER SCIENCE
Trace
↓
Execution
↓
Verification
T-DD
Destiny
↓
Intent
↓
Behavior
↓
Evidence
↓
Contract
↓
State
↓
Actor
↓
Skill
↓
Trajectory
↓
Implementation
↓
Observed Trajectory
↓
Conformance
A proposta, portanto, não surge isoladamente. Ela funciona como uma síntese arquitetural de linhas de pesquisa que normalmente aparecem separadas.
59. Referências fundamentais
Engenharia de software e métodos formais
Hoare, C. A. R. — An Axiomatic Basis for Computer Programming (1969).
Fundamentação da lógica de Hoare e do raciocínio formal sobre propriedades de programas. ACM / referência bibliográfica
Meyer, Bertrand — Applying "Design by Contract" (1992).
Fundamentação de contratos, invariantes, pré-condições e pós-condições.
Harel, David — Statecharts: A Visual Formalism for Complex Systems (1987).
Fundamentação para especificação de sistemas comportamentais complexos utilizando estados, hierarquia, concorrência e comunicação.
Pnueli / Clarke / Emerson / Sifakis — Temporal Logic and Model Checking.
Base formal para verificar propriedades sobre sequências de estados e comportamentos temporais.
Requirements Engineering
Gotel, O.; Finkelstein, A. — An Analysis of the Requirements Traceability Problem (1994).
Fundamentação do problema de rastreabilidade entre intenção/requisito e artefatos posteriores.
van Lamsweerde, Axel — Goal-Oriented Requirements Engineering.
Fundamentação para derivação orientada a objetivos. Goal-Oriented Requirements Engineering
Horkoff et al. — Goal-oriented requirements engineering: an extended systematic mapping study.
Mapeamento sistemático da área de engenharia de requisitos orientada a objetivos. Requirements Engineering / DOI
Process Mining
van der Aalst, W.; Weijters, T.; Maruster, L. — Workflow Mining: Discovering Process Models from Event Logs (2004).
Fundamentação de descoberta de processos a partir de logs.
van der Aalst, W. — Process Mining: Discovery, Conformance and Enhancement of Business Processes.
Obra fundamental sobre descoberta, conformidade e evolução de processos. Process Mining — Springer
van der Aalst, Adriansyah, van Dongen — Replaying History on Process Models for Conformance Checking and Performance Analysis.
Particularmente relevante para o conceito de comparar trajetória observada contra trajetória declarada. Artigo sobre conformance checking
Ghasemi; Amyot — From Event Logs to Goals: A Systematic Literature Review of Goal-Oriented Process Mining.
Conecta diretamente event logs, objetivos e process mining. Artigo / DOI
Khodabandelou et al. — Unsupervised Discovery of Intentional Process Models from Event Logs.
Particularmente relevante para a relação entre intenções e trajetórias observadas. ACM Digital Library
Psicologia e comportamento
Ajzen, Icek — The Theory of Planned Behavior (1991).
Fundamentação para a distinção entre intenção, comportamento e controle percebido.
Essa referência é importante para o T-DD porque impede uma simplificação perigosa:
intent → guaranteed action
A literatura sustenta uma formulação mais cuidadosa:
intent → propensity toward behavior
O T-DD transforma essa distinção em uma preocupação computacional:
intent
→ admissible behavior
→ executable trajectory
→ observed behavior
Sociologia, interação e ação situada
Suchman, Lucy — Plans and Situated Actions.
A obra é relevante para a distinção entre uma especificação abstrata e a realização situada dessa especificação. Para T-DD, isso reforça:
Trajectory specification
≠
fixed execution script
Uma trajetória pode definir invariantes e condições de realização sem obrigar uma única estratégia operacional.
Event Sourcing
Fowler, Martin — Event Sourcing.
Event Sourcing fornece um mecanismo para preservar a sequência histórica de mudanças e reconstruir estados anteriores.
A relação com T-DD é:
Event Sourcing
→ observed execution history
T-DD
→ semantic expected trajectory
A combinação dos dois permite:
ExpectedTrajectory
↕
ObservedEventHistory
↓
Conformance
60. Fonte canônica da implementação
A implementação experimental e a evolução atual da DSL estão no repositório:
Intent-Trajectory-Driven-Development — GitHub
A documentação atual já contém:
Destiny
Intent
Behavior
Evidence
Contract
State
Actor
Skill
Trajectory
DSL
Execution
além de exemplos .itdsl e áreas de RFC/SRFC. README.md atual
61. Próxima fronteira conceitual
A partir dessa definição, o próximo passo natural não é simplesmente criar mais sintaxe.
É formalizar:
Trajectory Algebra
com operações como:
compose(T₁,T₂)
branch(T₁,T₂)
merge(T₁,T₂)
repeat(T)
optional(T)
alternative(T₁,T₂)
refine(T)
observe(T)
compare(T₁,T₂)
repair(T₁,T₂)
e propriedades:
trajectory equivalence
trajectory refinement
trajectory conformance
trajectory distance
trajectory completeness
trajectory validity
trajectory authorization
trajectory temporal consistency
A partir daí, o T-DD deixa de ser apenas uma metodologia textual e começa a se tornar uma teoria computacional de trajetórias comportamentais.
A arquitetura final pode então ser expressa como:
┌───────────────┐
│ DESTINY │
└───────┬───────┘
↓
┌───────────────┐
│ INTENT │
└───────┬───────┘
↓
┌───────────────┐
│ BEHAVIOR │
└───────┬───────┘
↓
┌───────────────┐
│ CONTRACT │
└───────┬───────┘
↓
┌───────────────┐
│ STATE │
└───────┬───────┘
↓
┌───────────────┐
│ ACTOR │
└───────┬───────┘
↓
┌───────────────┐
│ SKILL │
└───────┬───────┘
↓
┌───────────────┐
│ TRAJECTORY │
└───────┬───────┘
↓
┌───────────────┐
│ DSL │
└───────┬───────┘
↓
┌───────────────┐
│ IMPLEMENTATION│
└───────┬───────┘
↓
┌───────────────┐
│ OBSERVED │
│ TRAJECTORY │
└───────┬───────┘
↓
┌───────────────┐
│ CONFORMANCE │
└───────┬───────┘
│
┌────────┴────────┐
↓ ↓
CONFORM DEVIATE
↓
REPLAN / REPAIR
│
└──────↺
A hipótese central do T-DD pode finalmente ser expressa em uma única fórmula:
Correct Software
=
Implementation
⊨
Observed Trajectory
⊨
Declared Trajectory
⊨
Behavior
⊨
Intent
⊨
Destiny
Ou, em termos de engenharia:
O código é apenas uma realização. A trajetória é o objeto que permite relacionar intenção, comportamento, estado, autoridade, evidência e destino em uma estrutura que pode ser executada, observada, comparada e formalmente verificada.
Top comments (0)