Abstraction Flashcards
(15 cards)
Why is “simplification” not enough when viewing a raw dependency graph?
Simpler layouts remove clutter but keep low-level detail; true abstraction groups, summarizes, or ranks elements so higher-level architectural intent emerges. :contentReference[oaicite:16]{index=16}
Define abstraction in the context of architecture reconstruction.
Condensing low-level source facts into higher-level architectural information that people can reason about. :contentReference[oaicite:17]{index=17}
List the four complementary approaches to abstraction in the slides.
(1) Aggregating entities & relationships, (2) Metrics-based summarisation, (3) Network-analysis ranking, (4) Automatic clustering. :contentReference[oaicite:18]{index=18}
What is a Reflexion Model?
A technique where engineers sketch an “as-expected” subsystem diagram, map code elements to it, then overlay real dependencies to show convergences, divergences, and absences. :contentReference[oaicite:19]{index=19}
How does aggregation by folder hierarchy work?
Each file rolls up into its parent package; packages roll up into higher namespaces, producing package-level nodes instead of file-level noise. :contentReference[oaicite:20]{index=20}
Give one metric that can be overlaid on an abstracted graph.
Cyclomatic complexity summed per package, highlighting code hot-spots. :contentReference[oaicite:21]{index=21}
What does PageRank reveal in a dependency graph?
Nodes that sit on many shortest paths (high centrality) and thus act as architectural hubs. :contentReference[oaicite:22]{index=22}
Why is human oversight required when using automatic clustering?
Unsupervised algorithms can create meaningless splits; analysts must rename clusters and discard nonsense groupings. :contentReference[oaicite:23]{index=23}
Explain the “hair-ball” symptom.
A dense, unreadable graph of thousands of low-level nodes—evidence that no abstraction has been applied yet. :contentReference[oaicite:24]{index=24}
What is the benefit of combining multiple abstraction methods?
Different methods expose different insights; mixing aggregation, metrics, and centrality produces a richer, more accurate module view. :contentReference[oaicite:25]{index=25}
How can abstraction help detect architectural erosion?
By comparing the abstracted target view to the hypothetical (intended) architecture and highlighting unexpected dependencies. :contentReference[oaicite:26]{index=26}
What is an example of “design concepts” chosen during concept determination?
Label files under controllers/
as “API Controller” and files under dao/
as “Data Access Object.” :contentReference[oaicite:27]{index=27}
Which tool lets analysts zoom at different depths for different packages?
ArchLens (interactive aggregation with variable depth). :contentReference[oaicite:28]{index=28}
When might text-similarity clustering be useful?
Grouping classes that share domain terminology when structural links alone miss conceptual cohesion. :contentReference[oaicite:29]{index=29}
Give a concise exam definition of abstraction in AR.
The step that transforms a raw source view into comprehensible architectural views by grouping, summarising, or ranking code elements. :contentReference[oaicite:30]{index=30}