Dynamic Analysis Flashcards
(21 cards)
What is dynamic analysis in the context of architecture reconstruction?
Capturing and interpreting run-time behaviour (traces, messages, telemetry) to enrich architectural views with real execution facts. :contentReference[oaicite:22]{index=22}
Why do static graphs alone give an incomplete picture?
They show declared structure but miss run-time wiring such as reflection, configuration, hidden back-channels, and thread interactions. :contentReference[oaicite:23]{index=23}
List four kinds of dynamic data an architect might collect.
Execution traces, inter-process messages, resource telemetry (CPU, memory), live deployment topology (container replicas). :contentReference[oaicite:24]{index=24}
Which Symphony view does dynamic analysis primarily extend?
The execution viewpoint, later cross-checked against component-and-connector and deployment views. :contentReference[oaicite:25]{index=25}
Give two common methods for collecting traces.
Language-level instrumentation (OpenTelemetry spans) and external packet sniffing / eBPF probes. :contentReference[oaicite:26]{index=26}
What hidden dependency type often surfaces only at run-time?
Back-channels—e.g., UI layer calling database directly during error handling. :contentReference[oaicite:27]{index=27}
How can dynamic analysis validate availability tactics?
By simulating faults (chaos testing) and measuring real fail-over times under load. :contentReference[oaicite:28]{index=28}
Define an execution view in one sentence.
A grouped representation of runtime traces showing how responsibilities flow across components during specific scenarios. :contentReference[oaicite:29]{index=29}
Why must instrumentation overhead be considered?
Heavy tracing can distort performance results or destabilise production systems; sampling mitigates the risk. :contentReference[oaicite:30]{index=30}
List two runtime patterns dynamic analysis can reveal.
Chatty neighbours (excessive small calls) and emergent hubs (unexpected concurrency choke points). :contentReference[oaicite:31]{index=31}
What tool classifies dependencies by observed message frequency?
Service-mesh telemetry dashboards (Envoy, Istio) aggregate call counts and latency. :contentReference[oaicite:32]{index=32}
How did the Zeeguu API prototype benefit from dynamic traces?
It showed redundant language-stats queries on every page load, leading to a service split and 35 % faster responses. :contentReference[oaicite:33]{index=33}
Give an example of mapping trace data onto a deployment view.
Colour nodes by average CPU % and draw dashed arrows for frequent runtime calls discovered in tracing. :contentReference[oaicite:34]{index=34}
Why combine dynamic with evolution analysis?
Evolution flags churn hotspots; dynamic traces identify whether those hotspots also dominate runtime latency or faults. :contentReference[oaicite:35]{index=35}
What is the first step before instrumenting production?
Formulate a concrete hypothesis or question to avoid collecting “everything” with no goal. :contentReference[oaicite:36]{index=36}
Name two external observation techniques that need no code change.
Network packet capture and service-mesh side-car tapping. :contentReference[oaicite:37]{index=37}
How can dynamic analysis uncover security gaps?
By inspecting live traffic for unexpected plaintext credentials or unauthorised connector paths. :contentReference[oaicite:38]{index=38}
Explain the term “live topology drift.”
When the running deployment graph diverges from intended allocation—for example, an emergency hot-fix adds extra replicas in one zone only. :contentReference[oaicite:39]{index=39}
Which two diagrams are updated most by dynamic findings?
Component-and-Connector (adds observed connectors) and Deployment (adds runtime scaling details). :contentReference[oaicite:40]{index=40}
Give one reason to discard a runtime connector after analysis.
It may be a temporary debug call path that should be removed to restore layered discipline. :contentReference[oaicite:41]{index=41}
State a concise exam definition of dynamic analysis.
Watching a live system’s execution to enrich architectural reconstruction with behavioural facts, exposing hidden dependencies, runtime hotspots, and validation of quality attributes. :contentReference[oaicite:42]{index=42}