送短信通处理的时间约为10秒,但预计短信通系统处理的时间会小于这个数。因为短信通发送和移动运营商发送是同步进行的,且互不影响,因此从执行发送按钮后2秒后第一个用户收到短信,到第50个用户收到短信,中间为11.8秒。如表5-1所示
表5-1 50条短信连续发送
短信(第几条) 开始发送时间(起点问为0秒) 接收人收到短信时间 1 0 2 2 0.2 2.2 3 0.4 2.4 4 0.6 2.6 5 0.8 2.8 .
. .
. .
. 49 9.6 11.6 50 9.8 11.8 如果用户设定发送间隔为10秒,发送50条短信,需时间为500秒(6分20秒),这时就是一个很长的时间了,需要考虑用户的操作体验了。
§5.2.2 估算数据存储性能
对于数据的存储,使用Android自带的SQLite轻量级数据库,用户的数据就是用户分组的信息和定时短信的信息,设计合理的表结构和执行较高效率的存取操作代码即可。
§5.3 制定复用计划
§5.3.1 库
需要复用的库如表5-2所示,
表5-2 库的复用
Google Android Api 对数据库的链接操作 对数据库的表的增删改查操作 发送短信的操作
§5.3.2 模式
采用工厂模式和匿名内部类的实现方法。
§5.4 将系统分成子系统
子系统是一组相关的类,操作,关联,事件和约束,并有一个与其他子系统服务之间的定义清晰的小型接口。子系统通常由它提供的服务来识别。
将软件划分子系统:单号码连发子系统,号码段群发子系统,清单发送子系统,定时短信子系统,Android主线程。
§5.5 确定并发性
系统设计的一个重要目标就是识别必须是并发的活动的那些对象和具有互斥活动的对象。可以将互斥活动的对象叠加在单线程控制和任务中。
§5.5.1 识别内部的并发性
当Android主线程在执行的过程中,执行发送短信这种比较耗时的操作,为了不影响用户体验,需要再开一个进程,执行耗时的短信发送操作。
§5.5.2 定义并发任务
Android主进程和发送短信的进程应该分开,这样才不会影响用户体验。
Android主进程和单号码连发子系统,号码段群发子系统,清单发送子系统,定时短信子系统的界面显示合并成单项任务。
§5.6 分配子系统
Android主进程和发送短信的进程共用用户Android手机的硬件资源,并受Android的资源回收策略控制。
§5.7 管理数据存储
使用关系型DBMS,它们处理速度快,易于捕获,并且具有好的成本-效益比率。
此处使用Android自带的SQLite轻量级数据库,RDBMS是成熟的产品,有许多功能可以减少开发的工作量。
§5.8 处理全局资源
Android的用户权限,需在总的配置文件中声明和定义。
Android的全局资源如图片信息,界面的配置文件,数组信息,显示的字符串(中文和英文),需在相应的文件中声明和定义,Android会把资源编号放到gen包下的R.java,且具有唯一性,使用时方便调用。
§5.9 软件控制策略
§5.9.1 外部控制
外部控制专注于系统中对象之间的产生的外部可见事件流。此处使用时间驱动型控制,控制存在于JAVA和Android操作系统提供的调度程序或监视中,将短信通软件附加在事件上,当发生了相应的事件,调度程序就会调用过程。
§5.9.2 内部控制
内部控制看成过程的调用,其中调用者发布请求,并等待响应。还应有并行的处理算法,如短信发送,但许多计算都可以很好的按顺序表示,这样就可以很容易的叠加在单线程控制之中。
§5.10 处理边界条件
§5.10.1 初始化
短信通系统必然会从精致的初始状态前进到持续性的稳态。系统必须初始化常量数据,参数,全局变量,任务,监护对象以及类层次结构本身。在初始化过程中,通常只会提供系统功能的一组子集。
§5.10.2 终止
终止比初始化简单,因为许多内部对象都只是简单的丢弃掉。任务必须要释放它的外部资源。
§5.10.3 失效
失效是系统的意外终止。失效可能是来源于用户的错误,系统资源耗尽以及外部故障。软件通需要对有规律的失效做出规划,在出现致命的错误时要合理的退出,让环境中其余部分竟可能的保存完好,并尽可能多的将终止前的大部分有效信息记录下来。
§5.11 设置权衡优先级
短信通软
上一篇:
桥梁毕业设计(任务书+文献综述+开题报告+外文翻译)_-
下一篇:
猪疥癣病的防治