State of the art, per sub-problem

Upper bounds (what has been achieved) are kept apart from lower bounds (what is impossible).

Sub-problem Record holder Measured how
Recover a tree from a dependency graph ARC and ACDC (Garcia 2013); Bunch as the search baseline MoJoFM against expert architectures: 31 to 59 % on average (Garcia 2013, Table II)
Approximate Dasgupta's cost recursive sparsest cut, O(sqrt(log n)); average linkage, constant factor on the dual objective approximation ratio
Find duplicated structure subtree hashing (Baxter 1998), Deckard vectors, CCFinder tokens precision and recall on Bellon 2007 and BigCloneBench
Compress a tree by sharing minimal DAG (Downey 1980); grammar and top-tree compression beyond it size of the compressed representation
Check architecture rules ArchUnit, Lattix, import-linter, dependency-cruiser violations found; no quality score
Pick depth and breadth two levels rather than three (Kiger 1984); up to 32 items on one level (Larson 1998 alone; Miller 1981 for flat menus) search time and errors on menus of 64 targets and sites of 512 items

Upper bounds

  • Automated recovery averages 31 to 59 % MoJoFM (Table II), far from what architects draw (Garcia 2013).
  • Cohesion and coupling alone do not match developer judgment (Candela 2016).

Lower bounds

  • Minimizing Dasgupta's cost is NP-hard (Dasgupta 2016).
  • No constant-factor approximation exists under the Small-Set Expansion hypothesis (Charikar 2017).
  • Exhaustive search for modularization quality works only on small systems (Mitchell 2006).

Most adopted, kept apart from best evidence

The first column is a practice record. The second is a research record. They name different holders.

Sub-question Most adopted Best evidence
Folders by purpose or by type by type at the top: Maven, Cargo, Rails (review.md 8) no controlled study found; Silva 2014 shows declared and actual change diverge
Breadth and findability no figure from practice; Nielsen Norman 2024 gives a tree-test median of 62% Larson 1998: 16 by 32 fastest, 8 by 8 by 8 slowest
Folder boundaries enforced by tools: Go internal/, Bazel visibility argued, not measured
File length ESLint 300 lines, Checkstyle 2,000 lines (ESLint 2026a; Checkstyle 2026) Syer 2015, El Emam 2002: no threshold held
Duplication Rule of Three (Fowler 1999, secondary) Juergens 2009, Kapser 2008
Configuration source environment variables (Wiggins 2011) Xu 2015, Yin 2011; neither compares file with environment
Reserved names Microsoft 2024 list a platform specification, not a study