本篇博客将从如何设计编码实现六种质量属性战术,为什么这样设计,解决什么问题,实现的过程,难度是什么等方面具体解析阐述《信息领域热词分析系统》。
(1)可用性:
在实现可用性方面,在代码中要尽可能的使用try/catch,出现异常时要及时的捕获并给出提示,避免程序在运行过程中出现一些不友好的界面,给用户一种不愉快的体验。设计代码时,尽可能多的应用自己熟知的技术方法,这样能够提高系统的稳定性,减少故障发生的概率。在这个方面遇到的主要难题是如何将自己掌握的技术拼接应用到该系统,过程中会有一些实现不了的功能,需要借助网络资源,学习一些新的方法,将自己的方法完整且适合的衔接起来,组成一个功能模块。
(2)可修改性:
在实现这个属性的问题上,需要考虑两点:可以修改什么:可以修改系统的任何方面 ,最常见的就是系统计算的功能、系统存在平台、系统运行的环境、系统所展示的质量属性以及其容量。何时以及由谁进行修改:最常见的就是修改源代码。也就是说,开发人员必须修改代码,对修改后的代码进行测试,然后将其部署在新版中。
在代码设计时,要保证可能会修改的地方和其他部分独立,即使不独立,相连接部分也要保持不变。把变化封装到一个模块内,提高内聚性,并且把模块粒度控制在一个合理的范围内。在这个过程中,如何划分模块,模块内需要的内容,以及模块大小的设计是一个难题,需要根据实际情况和自身经验进行判断,得到一个适合的情况。
(3)性能:
性能是指系统的响应能力----即对外部刺激(事件)做出反应时所需要的时间或在某段时间内所处理的事件个数。
在这个方面,目前以我的能力能实现的情况下,我觉得要尽可能运用时间复杂度低的算法,但是要兼顾好时间复杂度和空间复杂度的关系,不要一边倒。运用自己熟悉的技术,尽量使用高效率的方法,不要在设计编写时贪图省事。例如系统数据库中没有的热词需要实时从网络资源上进行爬取这个功能,如果让用户等待时间超过1-2秒,用户就会明显的感觉系统响应时间太慢,留下不好的印象,所以需要在用户关注点多下功夫研究,把这些地方的性能做到最优。
(4)安全性:
安全性是衡量系统在向合法用户正常提供服务的情况下,阻止非授权使用的能力。
这方面本人技术不足,所以参考了一下网上的资料,对这方面写一下自己的理解。首先,用户注册的密码可以采用MD5加密,这是一种安全性非常高的加密算法,由于这种加密的不可逆性,在使用10位以上字母加数字组成的随机密码时,几乎没有破解的可能性。系统权限也要进行控制,不同用户设置不同的使用权限,例如普通用户只能查看热词解释,但是管理员发现词解释不准确时,可以对内容进行修改。 此外,系统可以全站生成HTML静态文件,使网站的执行程序不暴露在WEB服务中,HTML页不和服务器端程序交互,黑客很难对HTML页进行攻击,很难找到攻击目标。
(5)可测试性:
在测试程序时,首先使用了单元测试方法,测试的时候是对每个方法的功能进行输入测试。这就要求在编写时要尽可能的让函数完成单一职责,不要赋予一个函数过多的内容,最后连自己都分不清这个函数方法到底是为了解决什么问题写的。当这方面出现了问题,可以不用设置断点,快速的确定是哪个方法出了问题,然后解决。接下来是集成测试,当系统整合完成时,要对系统各个功能进行测试,例如搜索功能,可视化界面的显示等等。当这方面出现问题时,可以选择设置断点的方式对问题点进行查找,查找起来比较麻烦。所以在设计这方面的代码时,要把每个功能分模块实现,当系统报出哪个模块的异常错误,直接找到模块进行测试就方便了。
(6)易用性:
考虑这方面时,主要有以下几个方面:
呈现的风格:网页平铺显示,方便简约,用户可以明确的看到想要的功能;
呈现信息方式:表结构显示,分页可以节省页面空间,用来显示其他功能模块;
使用操作方面:提供快捷进入按钮,直接点击就会跳转,不用用户一点一点找到该模块;