Dependency Facade: The Coupling and Conflicts between Android Framework and Its Customization
Mobile device vendors develop their customized Android OS (termed downstream), such as MiUI and LineageOS, 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 their development branches, keeping in sync with the upstream. Due to a large number of commits to be merged, heavy code conflicts (named textual conflicts would be reported if auto-merge operations failed. Prior work has studied conflicts due to such merge commits. 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 reveal and characterize them, 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 due to direct modifications made by the downstream to the upstream, 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 several interesting observations and suggests earlier mitigation of merge conflicts through a well-managed dependency facade, such as monitoring dependency changes and detecting the violations of dependency constraints. Industrial experts responsible for the studied industrial project have confirmed our observations and taken our suggestions. Our study will benefit the research about the coupling between upstream and downstream as well as the downstream maintenance practice.
Thu 18 MayDisplayed time zone: Hobart change
13:45 - 15:15 | Software EvolutionTechnical Track / SEIP - Software Engineering in Practice / Journal-First Papers at Meeting Room 109 Chair(s): Sebastiano Panichella Zurich University of Applied Sciences | ||
13:45 15mTalk | Dependency Facade: The Coupling and Conflicts between Android Framework and Its Customization Technical Track Wuxia Jin Xi'an Jiaotong University, Yitong Dai Xi'an Jiaotong University, Jianguo Zheng Xi'an Jiaotong University, Yu Qu UC Riverside, Ming Fan Xi'an Jiaotong University, Zhenyu Huang Honor Device Co., Ltd., Dezhi Huang Honor Device Co., Ltd., Ting Liu Xi'an Jiaotong University | ||
14:00 15mTalk | SEIP: Investigating a NASA Cyclomatic Complexity Policy on Maintenance Risk of a Critical System SEIP - Software Engineering in Practice Daniel Port University of Hawai‘i at Mānoa, Bill Taber , LiGuo Huang Dept. of Computer Science, Southern Methodist University, Dallas, TX, 75205 | ||
14:15 15mTalk | Aegis: Attribution of Control Plane Change Impact across Layers and Components for Cloud Systems SEIP - Software Engineering in Practice Xiaohan Yan Microsoft Azure, Ken Hsieh , Yasitha Liyanage , Minghua Ma Microsoft Research, Murali Chintalapati Microsoft Azure, Qingwei Lin Microsoft Research, Yingnong Dang Microsoft Azure, Dongmei Zhang Microsoft Research | ||
14:30 15mTalk | An Empirical Study on Change-induced Incidents at Ant Group SEIP - Software Engineering in Practice Yifan Wu Peking University, Bingxu Chai , Ying Li School of Software and Microelectronics, Peking University, Beijing, China, Bingchang Liu Key Laboratory of Network Assessment Technology, Institute of Information Engineering, Chinese Academy of Sciences, China; School of CyberSpace Security at University of Chinese Academy of Sciences, China, Jianguo Li Ant Group, Yong Yang , Wei Jiang | ||
14:45 15mTalk | Fulfilling Industrial Needs for Consistency Among Engineering Artifacts SEIP - Software Engineering in Practice Luciano Marchezan Johannes Kepler University Linz, Wesley Assunção Johannes Kepler University Linz, Austria & Pontifical Catholic University of Rio de Janeiro, Brazil, Edvin Herac , Felix Keplinger Johannes Kepler University, Linz, Alexander Egyed Johannes Kepler University Linz, Christophe Lauwerys | ||
15:00 7mTalk | The Co-evolution of the WordPress Platform and its Plugins Journal-First Papers Jiahuei Lin Queen’s University Software Analysis and Intelligence Lab (SAIL), Canada, Mohammed Sayagh ETS Montreal, University of Quebec, Ahmed E. Hassan Queen’s University | ||
15:07 7mTalk | Client-Specific Upgrade Compatibility Checking via Knowledge-Guided Discovery Journal-First Papers Chenguang Zhu Meta, Mengshi Zhang Meta, Xiuheng Wu Nanyang Technological University, Singapore, Xiufeng Xu Nanyang Technological University, Yi Li Nanyang Technological University Link to publication DOI Pre-print |