当代移动软件中的软件架构原则:从概念到实践
摘要:我们在过去十年看到的手机软件的迅速崛起与其设计,构建和部署中的模式转变并行不悖。我们认为今天的移动软件及其丰富的应用程序生态系统,如果没有软件体系结构研究在先前的十年中取得先进的进步,将是不可能的。我们描述了将软件架构提升为当代移动软件核心的驱动程序。我们提炼出Android中具有最大市场份额的主流移动平台中的架构原则,并在软件架构文学的世纪之交中根据这些原则追溯到他们的构想。最后,为了更好地理解Android应用程序生态系统采用架构概念的程度,我们挖掘了在几个应用市场中数百款Android应用提供的反向工程架构并报告这些应用结果。
关键字:软件架构,Android,架构方式
1.介绍
移动计算从十年前就已经走过了很长一段路。移动软件的开发曾经是一些精明、经验丰富的开发人员的艺术,它们能够攻击当时的低级C代码——当时移动软件的通用语言。由此产生的软件系统往往是单一的、僵硬的、一次性的程序,很难构建、理解和维护(Picco 等,2014)。虽然软件架构原则在结构化传统桌面软件中得到了广泛的应用(Taylor 等,2009),但移动软件往往缺乏这样的结构(Picco等,2014; Medvidovic等,2003)。
主要的偏见是:为了开发高效的软件,适合在资源受限的移动平台上部署,有必要在灵活性和通过架构原则实现的解耦方面做出妥协,例如将软件系统分解为组件,连接器的形式,(Medvidovic等,2003;Malek等,2007年)。尤其是实现这些架构概念所需的编程语言被认为不适用于移动软件。
然而,与十年前相比,今天的手机软件差别很大(Wasserman,2010)。我们的经验性调查(第5节将详细描述 )表明软件架构在现代移动软件的发展中起着重要作用。在本世纪之初开发的开创性软件架构工作中设计的许多想法已经在当代移动软件中找到了一个家。特别是作为主流移动平台的Android,它实现了软件工程社区以前提倡的许多架构原则。
乍一看,人们可能会猜测软件架构原则日益引人注目是任何计算领域软件工程实践的自然发展。但是当我们考虑其他密切相关的计算领域时,例如嵌入式软件,我们并没有发现类似的软件体系结构。因此,理解移动计算中软件体系结构快速采用的驱动因素,以及所采用的体系结构概念和原理的性质以及它们的使用如何影响移动软件的开发非常重要。
为此,我们首先描述了推动采用现代移动软件开发文献中提倡的许多架构原则的若干要求。我们还将这些原则追溯到开拓性软件架构研究的构想,尤其是在移动环境中基于体系结构的设计和开发的适用性和益处的研究。之后,我们将介绍Android中的一些关键架构概念,这些概念通常都归入其应用程序开发框架中,该框架为基于体系结构的移动软件开发提供了编程语言结构,包括支持实现软件组件、连接器、事件、配置和体系结构样式。
我们认为Android中的软件架构支持在其迅速崛起和成功中发挥了关键作用。我们的经验观察证实了Android平台的编程架构支持Android中的架构构建块,这将大大提高应用程序开发人员的工作效率,并且使开发复杂应用程序变得容易得多,而不需要接受正式的编程教育,编程经验。这反过来又支持即使是新手程序员开发复杂的应用程序,并有可能在应用程序市场上流行起来,例如Google play。使用异步连接器对架构系列进行编码以及将应用程序逻辑与通信分离开来,有助于将第三方代码集成到移动设备中,从而直接产生充满活力的应用程序生态系统。
本文的贡献可以概括如下:
bull;识别在当代移动软件(特别是Android)中迅速采用软件体系结构概念和原则背后的驱动因素。
bull;提炼出Android中的架构原则,并使用流行的移动应用程序对其进行说明。
bull;根据这些原则追溯到软件架构研究中的概念。
bull;通过在几个应用市场中挖掘的数百个Android应用,报告Android应用生态系统中的架构特征。
bull;反映了架构文献中架构概念的规定以及Android实现其中一些概念的方式的偏差,从而得出移动行业以及软件架构研究人员都可能感兴趣的经验结论。
在本文的其余部分安排如下。第2节概述了推动采用软件体系结构的移动计算需求。第3部分描述了一个流行的移动应用程序,我们用它来说明Android中的架构概念。第4部分介绍了Android所遵循的关键架构原则以及它们早于文献的概念。第5部分报告了数百个反向工程应用程序的架构属性。第6节讨论了我们研究的显着成果。最后,本文在第7节总结了相关研究的概况,并概述了我们在第8节的贡献。
2 .移动计算驱动
在描述当代移动软件中的架构概念之前,了解过去十年中移动计算行业必须克服的主要挑战非常重要。克服这些挑战的必要性是当今移动软件采用软件体系结构急剧转变的根本原因。
(1)App生态系统。也许当今移动平台与十年前最显着的区别是应用生态系统的概念。应用程序生态系统是在一个通用计算平台之上的一组独立开发的软件元素(应用程序)的交互,产生了许多软件解决方案或服务(Manikas and Hansen,2013; Bosch,2009)。应用程序商店和应用程序已经改变了移动计算领域:企业家能够进入一个庞大的消费者市场,消费者可以以名义成本从数千个应用程序中进行选择,应用程序广告为开发人员创造了丰厚的收入形式。应用程序扩展了平台上的可用功能,使平台对用户更具吸引力。因此,充满活力的应用生态系统对于移动平台(如Android)的成功至关重要。然而,构建这种平台的一个关键挑战在于编码限制和规则,以便使具有特定结构和行为规范的正常运行的生态系统保持足够的灵活性,以允许开发人员充分利用现代移动设备上可用的功能(Eklund和博世,2014)。
(2)开发人员生产力。如前所述,移动软件的开发以前涉及低级编程,通常针对各种设备驱动程序,类似于嵌入式计算领域仍遵循的实践方式(Malek等,2007)。同时,应用程序生态系统的成功,以及相应的移动平台的成功取决于大量应用程序供最终用户选择。这样的应用程序生态系统需要大量合格的开发人员才能创建应用程序而无需高度专业化的技能。因此,人们越来越意识到移动平台争夺一个充满活力的应用生态系统需要为开发人员提供高层次的实现抽象,以及对如何构建这些抽象的适当执行的规则和限制,以减轻应用程序的构建。
(3)互操作性。构思现代移动计算平台的特殊挑战在于提供丰富的用户体验,其中移动设备的本地功能(例如,电话,相机和GPS)以及第三方应用能够与一个另一个。实现这一目标需要第三方应用程序之间的互操作性,这些应用程序是独立开发的,可能彼此不知道,也可能在众多专有设备上提供软件和硬件服务(Ebert and Jones,2009)。这一挑战要求明确规定应用程序的暴露界面,以及规范应用程序和系统服务交互的标准,规则和架构风格。
(4)安全和隐私。应用程序之间的无缝互操作性以及在现代移动设备上收集的各种私人用户数据突出了安全和隐私问题(La Polla等,2013)。另外,配置应用程序的应用商店模型不仅适用于最终用户,也适用于利用它将恶意代码传递到用户设备中的恶意软件编写者(Zhang等,2013)。为了克服这些威胁,需要在比代码更高的粒度级别上进行适当的抽象,以用于规范,评估和实施安全属性(例如,信息流和访问控制)。
(5)资源限制。最后,随着部署在移动平台上的应用程序的规模和复杂性不断增长,资源限制(如能源和内存)继续面临持续的挑战。具体而言,需要管理和协调第三方应用程序消耗的资源(Nikzad等,2014)。例如,考虑到许多应用程序可能需要访问GPS信息,但对这些信息的不协调访问会迅速耗尽移动设备的电池电量。同样,多个应用程序可能正在移动设备上运行,但在任何时间点,只有这些应用程序的一部分被主动使
全文共21483字,剩余内容已隐藏,支付完成后下载完整资料
英语原文共 14 页,剩余内容已隐藏,支付完成后下载完整资料
资料编号:[13046],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。
您可能感兴趣的文章
- GIS矢量地图的鲁棒水印方案外文翻译资料
- 中国相似地理位置发达地区房价影响因素的差异——以西安高新区和沣渭新区为例外文翻译资料
- 集成数据在城市土地利用变化时空动态监测的应用——以印度金奈都市为例外文翻译资料
- 全球地表水及其长期变化的高分辨率制图外文翻译资料
- 造成沿海大型城市内涝灾害的主要因素识别——以中国广州为例外文翻译资料
- 基于SFPHD框架的中国快速城市化地区城市生态系统健康综合评价方法外文翻译资料
- 基于绿地演变的未来城市地表热岛强度的多情景模拟预测外文翻译资料
- 中国大陆272个城市地面和冠层城市热岛强度的长期趋势外文翻译资料
- 与孟加拉湾热带气旋有关的中国低纬度高原远距离降雨事件外文翻译资料
- 新丰江水库流域GPM IMERG降水产品评价及水文效用研究外文翻译资料