Abstraction Flashcards

(15 cards)

1
Q

Why is “simplification” not enough when viewing a raw dependency graph?

A

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}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Define abstraction in the context of architecture reconstruction.

A

Condensing low-level source facts into higher-level architectural information that people can reason about. :contentReference[oaicite:17]{index=17}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

List the four complementary approaches to abstraction in the slides.

A

(1) Aggregating entities & relationships, (2) Metrics-based summarisation, (3) Network-analysis ranking, (4) Automatic clustering. :contentReference[oaicite:18]{index=18}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is a Reflexion Model?

A

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 well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

How does aggregation by folder hierarchy work?

A

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}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Give one metric that can be overlaid on an abstracted graph.

A

Cyclomatic complexity summed per package, highlighting code hot-spots. :contentReference[oaicite:21]{index=21}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What does PageRank reveal in a dependency graph?

A

Nodes that sit on many shortest paths (high centrality) and thus act as architectural hubs. :contentReference[oaicite:22]{index=22}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Why is human oversight required when using automatic clustering?

A

Unsupervised algorithms can create meaningless splits; analysts must rename clusters and discard nonsense groupings. :contentReference[oaicite:23]{index=23}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Explain the “hair-ball” symptom.

A

A dense, unreadable graph of thousands of low-level nodes—evidence that no abstraction has been applied yet. :contentReference[oaicite:24]{index=24}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is the benefit of combining multiple abstraction methods?

A

Different methods expose different insights; mixing aggregation, metrics, and centrality produces a richer, more accurate module view. :contentReference[oaicite:25]{index=25}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

How can abstraction help detect architectural erosion?

A

By comparing the abstracted target view to the hypothetical (intended) architecture and highlighting unexpected dependencies. :contentReference[oaicite:26]{index=26}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What is an example of “design concepts” chosen during concept determination?

A

Label files under controllers/ as “API Controller” and files under dao/ as “Data Access Object.” :contentReference[oaicite:27]{index=27}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Which tool lets analysts zoom at different depths for different packages?

A

ArchLens (interactive aggregation with variable depth). :contentReference[oaicite:28]{index=28}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

When might text-similarity clustering be useful?

A

Grouping classes that share domain terminology when structural links alone miss conceptual cohesion. :contentReference[oaicite:29]{index=29}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Give a concise exam definition of abstraction in AR.

A

The step that transforms a raw source view into comprehensible architectural views by grouping, summarising, or ranking code elements. :contentReference[oaicite:30]{index=30}

How well did you know this?
1
Not at all
2
3
4
5
Perfectly