英语原文共 57 页
图 11.删除新闻序列图
MVC。MVC 架构的耦合级别总结在表 4。
从连接模型到查看和控制器都在数据结构化级别。图 3 显示了模型将通过发送更改消息来更新视图和控制器。在该示例中,模型将删除结果 (成功或失败) 发送回控制器。在最复杂的情况下,此消息可能采用结构化数据格式。
从视图到模型的连接在数据结构化水平。可能会在视图中更改一些数据,然后在模型中更新。可能是简单数据或结构化数据的编辑消息将传递给模型。
从控制器到模型和从控制器到视图的连接都在控制水平。控制器组件捕获事件,调用 delete 命令并发送更新 UI 命令。它维护数据流。
31
表 4.MVC 耦合级别
源 |
目的地 |
连接 |
耦合水平 |
|
模型 |
查看 |
模型将数据发送到视图。 |
数据结构化 |
|
模型 |
控制器 |
模型向控制器发送数据 |
数据结构化 |
|
查看 |
模型 |
视图向模型发送数据 |
数据结构化 |
|
控制器 |
模型 |
控制器维护数据流。 |
控制 |
|
控制器 |
查看 |
控制器维护数据流 |
控制 |
|
MVP。如图 7 所示,视图和模型之间没有连接。视图和演示者组件耦合在消息水平,意味着通信是通过接口。Presenter 组件将参数传递给模型以执行任务。完成任务后,模型将返回可能包含数据或错误消息的响应。因此,模型和演示者之间的连接在数据结构化水平。组件交互总结在表 5 中。MVP 架构中的耦合级别在低水平。
表 5.MVP 耦合级别
源 |
目的地 |
相互作用 |
耦合水平 |
|
查看 |
主持人 |
接口 |
消息级别 |
|
主持人 |
查看 |
接口 |
消息级别 |
|
主持人 |
模型 |
参数: 原始数据/ |
数据结构化 |
|
对象 |
||||
模型 |
主持人 |
响应: 原始数据/对象 |
数据结构化 |
|
32
MVVM。表 6 显示了 MVVM 架构中的耦合级别类似于 MVP 架构。两耦合水平是不同的。首先,由于数据库的使用,视图和模型组件之间还有一个连接。视图从模型中提取数据并在小部件中显示。其次,视图 xml 文件将直接调用 ViewModel 中的方法。也就是说,视图布局 xml 文件管理事件。单击按钮时,应用程序将调用 ViewModel 组件中定义的不同操作。这是控制耦合。
表 6.MVVM 耦合级别
源 |
目的地 |
相互作用 |
耦合水平 |
|
查看 |
ViewModel |
通过查看传递命令 |
消息级别/ |
|
接口。 |
控制 |
|||
ViewModel |
查看 |
接口 |
消息级别 |
|
ViewModel |
模型 |
参数: 原始数据/ |
数据结构化 |
|
对象 |
||||
模型 |
ViewModel |
响应: 原始数据/对象 |
数据结构化 |
|
模型 |
查看 |
对象 (用户,新闻) 传递给 |
数据结构化 |
|
视图。 |
||||
从表 4-6,MVC 组件有更多的连接比其他。而耦合级别主要是数据结构化级别和控制级别,高于其他两种架构。MVP 架构连接最少,其耦合级别大多位于消息级别和数据结构化级别。MVVM 体系结构类似于 MVP 体系结构,但它有一个更多的连接和更高的耦合级别。
三个架构的耦合级别是: MVCgt; MVVMgt; MVP。对于可修改性,MVC lt;MVVM lt;MVP。
33
6 性能
性能被认为是 “系统或组件在给定约束下完成其指定功能的程度,例如速度、精度或内存使用。”
6.1 标准
性能是应用成功的一个重要因素。典型的性能因素是响应时间,吞吐量,延迟 [11,35]。缓慢的响应时间将使用户不耐烦,减少用户数。一个好的架构可能并不总是创造良好的性能,但设计不良的架构肯定会对性能产生不良影响 [36]。
Schmerl 等人将性能评估方法分为两种类型: 分析性能模型和仿真性能模型 [37]。以往的基于数学模型的方法难以建立,无法很好地捕捉系统的复杂性。基于仿真的方法尝试在实际环境中运行,结果相对准确。
Mattsson [11] 总结了不同的架构评估方法,其中 6 种性能评估方法都是基于仿真的。除分层排队网络模型被广泛应用外,其他 5 种方法仅供作者使用。分层排队网络模型是建立并行和分布式软件系统模型 [35]。由于在服务器/客户端系统中,许多客户端同时需要来自服务器的资源是一种常见的情况。然而,这种方法在 Android 原生应用程序中是不可行的。
ATAM 方法并不适合性能评估,因为性能评估是基于仿真的,而 ATAM 是基于场景的。但考虑到性能是一个重要的质量,这个因素也包括在内。但评价过程有点不同。我们不是基于理论分析,而是用实际应用做实验。然后依据成果对架构停止评价。
34
为了评估 Android 应用程序的性能,考虑了一些因素。Corral 等人 [38] 认为,执行时间,电池消耗或内存使用是 Android 应用程序性能的关键因素。为了评估本地应用程序和 web 应用程序的执行时间,Corral 开发了应用程序来执行不同的任务: 写/读文件、请求数据等。结果表明,本地应用程序的性能优于 web 应用程序。Android 官方网站建议 Android 应用程序的性能因素包括响应时间,电池消耗,内存使用,CPU 使用和 GPU 使用。在这篇论文中,我们关注内存的使用。
6.2 评价
在本节中,测试了具有不同体系结构的应用程序的内存使用情况。我们研究官方架构示例待办应用程序。使用此应用程序,用户可以编写和编辑待办任务。当用户完成任务时,他们可以将其标记为 “完成”。应用中的统计函数将显示完成任务的数量。此应用程序的截图显示在附录 B 中。目前,示例只包含 MVP 和 MVVM 体系结构应用程序。我创建了 MVC 应用程序基于现有的应用程序。
实验是在 Android Nexus 6 模拟器在 API 21。Android Studio 中的 Android 监视器用于检测内存使用情况。
要评估内存使用情况,请将应用程序中的所有功能用作用户: 在不同视图之间添加、删除、更新、刷新和导航。该过程持续 5 分钟。在此期间,内存使用数据记录每分钟 (0,1,2,3,4 和 5)。为了消除可能的错误,对于每个体系结构应用程序,进行了 3 个实验。每个实验的详细结果可以在附录 C 中找到。数据收集后,计算平均值,如表 7 所示。根据统计数据,将创建图 12 中的折线图来强调差异。
35
表 7.应用程序每分钟分配的内存
0 |
1 |
2 |
3 |
4 |
5lt; 资料编号:[5370] |
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。