一句话:提出 DepFCD 从接口级、侵入级与 non-SDK 约束三方面刻画下游定制与上游 Android 的依赖耦合,并实证其与合并冲突的关系。
移动设备厂商基于 Google Android(上游)开发定制系统(下游),在独立开发的同时需周期性将上游新版本的改动合并回自身分支;由于待合并提交数量庞大,自动合并失败会报告大量代码冲突。已有工作研究过该场景下的冲突,但下游与上游之间的耦合(作者称之为 dependency facade)以及合并冲突与该耦合的关系仍不清楚。本文提出 DepFCD,从三个方面揭示依赖门面:指示清晰设计边界的接口级依赖、模糊该边界的侵入级依赖,以及上游 non-SDK 限制施加的依赖约束。作者在四个开源下游项目与一个工业项目、共 15 对下游/上游版本上开展四项实证研究(RQ1–RQ3 考察依赖门面的三个方面,RQ4 考察合并冲突)。研究给出了有趣的观察,并建议通过良好管理的依赖门面提前缓解合并冲突,对上下游耦合研究与下游维护实践均有借鉴意义。
Mobile device vendors develop their customized Android OS (termed downstream) based on Google Android (termed upstream) to support new features. During daily independent development, the downstream also periodically merges changes of a new release from the upstream into its development branches, keeping in sync with the upstream. Due to a large number of commits to be merged, heavy code conflicts would be reported if auto-merge operations failed. Prior work has studied conflicts in this scenario. However, it is still unclear about the coupling between the downstream and the upstream (We term this coupling as the dependency facade), as well as how merge conflicts are related to this coupling. To address this issue, we first propose the DepFCD to reveal the dependency facade from three aspects, including interface-level dependencies that indicate a clear design boundary, intrusion-level dependencies which blur the boundary, and dependency constraints imposed by the upstream non-SDK restrictions. We then empirically investigate these three aspects (RQ1, RQ2, RQ3) and merge conflicts (RQ4) on the dependency facade. To support the study, we collect four open-source downstream projects and one industrial project, with 15 downstream and 15 corresponding upstream versions. Our study reveals interesting observations and suggests earlier mitigation of merge conflicts through a well-managed dependency facade. Our study will benefit the research about the coupling between upstream and downstream as well as the downstream maintenance practice.
@inproceedings{JinDZQFHHL23,
title = {Dependency Facade: The Coupling and Conflicts between Android Framework and Its Customization},
author = {Wuxia Jin and Yitong Dai and Jianguo Zheng and Yu Qu and Ming Fan and Zhenyu Huang and Dezhi Huang and Ting Liu},
booktitle = {ICSE},
year = {2023},
doi = {10.1109/icse48619.2023.00144}
}