Detection of presentation-layer code smells in declarative android architectures
| dc.contributor.advisor | Buzluca, Feza | |
| dc.contributor.author | Batmaz, Arda Gökalp | |
| dc.contributor.authorID | 504241525 | |
| dc.contributor.department | Computer Engineering | |
| dc.date.accessioned | 2026-09-28T07:52:40Z | |
| dc.date.issued | 2026-06-15 | |
| dc.description | Thesis (M.Sc.) -- Istanbul Technical University, Graduate School, 2026 | |
| dc.description.abstract | This thesis investigates presentation-layer code smells in declarative Android applications developed with Jetpack Compose. Existing Android smell taxonomies and static analysis tools were largely designed for imperative Java and XML architectures and therefore do not adequately model declarative concepts such as state-driven rendering, recomposition, composable functions, and explicit side-effect APIs. To address this gap, the study proposes a declarative-aware taxonomy containing fourteen presentation-layer smells organized into five categories. Each smell is operationalized through the Goal-Question-Metric approach using pattern-based rules, structural metrics, and calibrated thresholds. The taxonomy is implemented in DeSmell, an Android Lint-based static analysis tool that analyzes Kotlin UAST structures and symbol-level information. DeSmell was evaluated on ten open-source Jetpack Compose applications and compared with Android Lint Compose checks, Slack Compose Lints, and Compose Stability Analyzer. When the baseline tools were considered together, at least partial conceptual alignment was observed for 42.86% of the taxonomy, while 57.14% had no direct or partial counterpart. A developer survey provided moderate face-validity evidence. The results indicate that declarative user interface quality assessment requires architecture-aware static analysis combining semantic patterns with metric-based detection. DeSmell complements tools by exposing maintainability risks related to logic concentration, responsibility leakage, composable complexity, reactive-state fragmentation, and side-effect dominance. | |
| dc.description.degree | M.Sc. | |
| dc.identifier.uri | https://hdl.handle.net/11527/81172 | |
| dc.language.iso | en | |
| dc.publisher | Graduate School | |
| dc.sdg.type | none | |
| dc.subject | Computer softwares | |
| dc.subject | Bilgisayar yazılımları | |
| dc.subject | Object oriented software | |
| dc.subject | Nesneye dayalı yazılım | |
| dc.subject | Application software | |
| dc.subject | Uygulama yazılımı | |
| dc.title | Detection of presentation-layer code smells in declarative android architectures | |
| dc.title.alternative | Deklaratif android mimarilerinde sunum katmanı kod kokularının tespiti | |
| dc.type | Master Thesis |