Skip to contentScholarGate
LibraryBookshelfDeskReview StudioAssistant
Sign in
On this page
IntuitionHow it worksWhen to use itStrengths & limitationsCommon pitfallsApplicationsFrequently asked🔒 Read the full methodSourcesRelated methods
Cite this pageSpotted an issue on this page? Report or suggest a fix →
Home›Software Engineering›Architecture Smell Detection
Process / pipelineArchitecture assessment

Architecture Smell Detection

Architectural Anti-pattern and Smell Identification · Also known as: design smell detection, architectural debt analysis, system quality assessment

Architecture smells are recurring patterns in system structure that indicate potential design problems. Introduced by García et al. (2009), these patterns signal violations of architectural principles (modularity, independence, abstraction) at system scale. Detection combines code metrics, dependency analysis, and pattern recognition to identify smells early, guiding refactoring and architectural improvements.

ScholarGate
  1. Process / pipeline
  2. v1
  3. 3 Sources
  4. PUBLISHED
Cite this page →
Tools & resources
Download slides
Learn & explore

Read the full method

Members only

Sign in with a free account to read this section.

Sign in

Method map

The neighbourhood of related methods — select a node to explore.

Architecture Smell Detection
Defect Prediction ModelSoftware Complexity Metr…Static Code AnalysisTechnical Debt Measureme…

When to use it

Apply architecture smell detection during periodic architecture reviews, before major refactoring, or when troubleshooting development velocity degradation. Use to identify components whose growing complexity justifies extraction or modularization. Particularly valuable when transitioning from monolithic to microservice architectures, identifying natural service boundaries.

Strengths & limitations

Strengths
  • Detects system-level design issues often invisible to code-level analysis
  • Identifies components eligible for modularization or service extraction
  • Automated analysis scales to large systems; detects patterns across millions of lines
  • Guides architectural discussions with objective, quantifiable evidence
Limitations
  • Architecture smell detection lacks the maturity and tool support of code smell analysis
  • Context-dependent: some smells are false positives (intentional designs); judgement required
  • Dependency extraction from code is imperfect; language-specific conventions affect detection accuracy
  • No universally agreed-upon catalog of architectural smells; definitions vary across literature

Frequently asked

What are the most common architecture smells?

Common smells include: Hub-like Dependency (one component with excessive fan-in/fan-out), Cyclic Dependencies (circular imports between modules), Broken Encapsulation (internal details exposed), and Dense Structure (tightly-coupled clusters). Other examples: Scattered Responsibility (concern spread across many modules), Feature Envy (component depending heavily on internals of others).

How do I distinguish architecture smells from legitimate design patterns?

Context matters enormously. A pattern in one system is a smell in another. Use patterns when they serve a clear purpose and provide benefits (e.g., facade pattern hiding complexity). Smells arise when design creates coupling or complexity without corresponding benefit. If you cannot articulate why a pattern exists, suspect a smell.

How can I remove architecture smells without disrupting ongoing development?

Prioritize high-impact smells. Plan refactoring incrementally: 1) introduce abstraction layer, 2) gradually migrate dependencies, 3) remove old dependency after migration complete. Pair architectural improvements with feature development: assign new features to refactored modules. Use branch-by-abstraction pattern to refactor behind feature flags.

Are all architecture smells harmful?

No. Some smells are intentional trade-offs for performance, simplicity, or business constraints. For example, tight coupling between performance-critical modules may be justified. Evaluate smells in context: does the smell enable legitimate requirements? If yes, document the rationale. If no, fix it.

Sources

  1. Fowler, M. (2018). Code smell. Martin Fowler's Website. link ↗
  2. Garcia, J., Popescu, D., Edwards, G., & Medvidovic, N. (2009). Identifying architectural bad smells. In Proceedings of the 2009 IEEE/IFIP Conference on Software Architecture (pp. 141–150). DOI: 10.1109/csmr.2009.59 ↗
  3. Lanza, M., & Marinescu, R. (2005). Object-Oriented Metrics in Practice. Springer. link ↗

How to cite this page

ScholarGate. (2026, June 3). Architectural Anti-pattern and Smell Identification. ScholarGate. https://scholargate.app/en/software-engineering/architecture-smell-detection

Related methods

Defect Prediction ModelSoftware Complexity MetricsStatic Code AnalysisTechnical Debt Measurement

Which method?

Set this method beside its closest kin and read them side by side — the library lays the books on the table; the choice is yours.

  • Defect Prediction ModelSoftware Engineering↔ compare
  • Software Complexity MetricsSoftware Engineering↔ compare
  • Static Code AnalysisSoftware Engineering↔ compare
  • Technical Debt MeasurementSoftware Engineering↔ compare
Compare side by side →

Similar methods

Technical Debt MeasurementSoftware Complexity MetricsStatic Code AnalysisTechnical Debt QuantificationATAMDefect Prediction ModelCode Coverage AnalysisCyclomatic Complexity

Related reference concepts

Code Quality and RefactoringSoftware Design and ArchitectureTechnical DebtSoftware ReengineeringSoftware Design PatternsSoftware Architecture Styles

Spotted an issue on this page? Report or suggest a fix →

ScholarGate — Architecture Smell Detection (Architectural Anti-pattern and Smell Identification). Retrieved 2026-07-21 from https://scholargate.app/en/software-engineering/architecture-smell-detection · Dataset: https://doi.org/10.5281/zenodo.20539026
Quick facts
Originator
Martin Fowler and García et al.
Subfamily
Architecture assessment
Year
2009
Type
pattern-based analysis
Related methods
Defect Prediction ModelSoftware Complexity MetricsStatic Code AnalysisTechnical Debt Measurement
ScholarGate

A content-first reference library for research methods — what each one is, how it works, and where it comes from.

Open data (CC-BY)

Explore

  • Library
  • Search the library…
  • Browse by field
  • Fields
  • Journey
  • Compare
  • Which method?

Reference

  • Subjects
  • Atlas
  • Glossary
  • Methodology
  • Philosophy

Your tools

  • Bookshelf
  • Desk
  • Chat

Company

  • About
  • Pricing
  • Contact
  • Suggest a method

Entries are compiled from published sources for reference. Verifying the accuracy and suitability of any information for your own use remains your responsibility.

© 2026 ScholarGate · A research-method reference library
  • Privacy
  • Cookies
  • Terms
  • Delete account