2l世纪信息化能力可以说代表了企业的核心竞争力,计算机技术已经给人类带来了远超以往能够想象的便利。可是同时,电脑技术的不成熟也给企业社会带来的破坏也让人们瞠目结舌,它的破坏力也随着电脑软件的广泛应用而越发严重。2013年10月,为如家、汉庭等酒店提供网络服务的浙江慧达驿站网络有限公司因为系统漏洞,近2000万条酒店客户入住信息被泄露并通过网络传播下载;2014年5月,小米论坛官方数据库泄露,涉及800万使用小米产品的用户,泄露数据包括大量用户资料;2014年8月,多家快递网站因存在漏洞遭黑客入侵,有1400万条个人信息在网络上被层层转卖;2014年12月,铁道部订票网站12306被曝13万条用户个人数据泄露,包括用户账号、明文密码、身份证、邮箱等敏感信息。类似案例的发生,绝大多数根源于软件质量问题,往往微小的漏洞带来巨额的损失。到底是什么原因影响了软件质量?是否有办法消除产生软件质量问题的因素,避免因为软件质量问题而造成的各种损失?
1软件质量问题的影响因素
什么是软件质量?可以从两个方面进行考虑:1)从用户角度,主要是对软件的功能、安全性、易于学习使用以及软件带来的工作效率的提升;2)从软件制作者角度,主要考虑的是软件的可修改维护性能(升级性能)、可广泛移植于不同操作平台性能和可重复利用性能。影响软件质量的因素,是多方面的。
1.1管理方面的因素
随着国际近几十年来对软件质量问题的越来越重视,对软件从业人员的素质要求也日渐提高,国内、国际的软件开发企业中,超过50%的软件开发人员都拥有硕士以上学历,随着软件开发技术的发展、软件开发人员的素质的提高,仍然在很长一段时间内无法很好的保证软件质量,软件产品在完成交付使用后仍然经常发生各种问题。这样的情况,让从业者意识到,技术的发展,并没有对软件质量的提高提供足够的保障,软件质量问题的提升,不能单纯依靠从业人员素质的提高。软件开发管理方面的影响因素也至关重要。管理因素可以概括分为组织机构与职责分工、项目管理和过程管理以及产品管理(配置管理)等,但所有的质量管理因素都离不开一个核心问题——软件质量标准的建立。标准即尺度,是衡量产片质量、工作质量的决定因素,每一个行业的发展壮大,都不可避免的伴随着标准的建立,软件质量标准的建立代表了产业的标准化——可以促进软件开发行业的发展,可以推动软件资源的共享,减少资源的浪费,同时,软件质量标准的建立,也有利于软件质量检测,影响着软件的整个开发、测试、维护和后期使用的全过程。用产品化的思路和方法对软件开发进行管理是提高软件质量的必经过程。
1.2技术方面的影响因素
首先,是人才素质的影响因素,我国的计算机软件开发技术虽然经过多年的发展,已经形成了一批批专业软件开发团队人才,但面对日益广泛的需求和日益发展的科技需要,高素质高端软件开发人员的缺失,仍然是限制软件开发质量的一个重要因素。另一方面,技术手段的应用,包括软件分析、设计、实现的技术方法。采用不同的技术方法也会明显影响软件产品的质量。技术因素分为软件开发技术以及应用领域技术两方面。软件开发技术方面,如软件的编程语言,常见的开发语言就有数十种之多,不同的软件领域需要采用不同的开发语言来实现,Fortran语言更多得应用于科学计算,汇编语言和C语言常常被应用于驱动系统设计和嵌入式设计,所谓的四代语言则被用于开发商务流程软件,Java语言更倾向应用于网络设计。所以,针对不同的软件开发项目,选择相应的实现语言才能更好的保证软件质量。而软件开发平台方面,我们常用的平台是Unix平台和Win/Intel平台,针对不同平台的软件项目也需要不同的软件开发特征和质量控制措施。随着更多领域的应用,不同的开发工具和标准也在不断出现,例如传统企业为了企业信息化改造,而出现的ERP和CRM系统,在一些特定行业和企业也越发收到欢迎。选择适当的技术开发手段,对软件质量的控制具有不可忽视的决定性作用。
1.3辅助开发工具
辅助开发工具也分为很多方面,包括CASE、测试、软件配置管理工具等。想要有效地提高开发效率,降低失误几率,保障质量,必然需要一组合适的开发工具;相反,如果开发过程中没有采用合理的辅助开发手段,将软件质量决定于人为因素,所开发出的软件必然缺乏可管理性(维护和移植性)和可靠性。
2该如何避免出现软件质量问题
2.1首先,要明确用户的真实需求
一个软件的开发,必须有明确的功能需求,也就是目的性要明确。是否能够明确用户的真正需求是软件开能否真正成功的决定性因素。需求过多,会抓不住软件开发的重点,影响软件质量和效率;需求不明确,不明白用户真正需要的是什么或者用户的需求变化太快,会让软件开发无所适从,资源造成极大浪费。造成这种情况的原因,往往由于软件开发方与软件用户的沟通没有达成一致,或者软件开发方以自己的标准来判断软件开发是否成功。所以,为了避免出现这类质量问题,明确用户的真实需求是至关重要的。
2.2各司其责有机组合
软件开发项目的实际参与人员,可以划分为软件开发人员(分析员、程序员和测试员等)、系统运行维护人员、内容编辑人员、市场人员和用户等五个角色。软件开发人员需要负责软件的扩展能力、代码的可读能力和后续的可维护能力;系统维护人员负责软件质量的稳定、可扩展、高并发和高访问量;而内容编辑人员负责软件易用性能和易操作性能;市场人员负责面向销售的统计分析;而作为最后阶段的用户阶段,会关心软件能否提供的安全性和稳定性。项目组编制需要分别针对这些需要制定质量规划,并严格控制。
2.3实行代码走查
软件的质量很大程度上取决于代码的质量。一般的软件开发项目,要进行完整的代码评审是很困难的,所以,要求程序员对软件进行交叉代码走查重点功能模块。这样的措施能够起到很大影响:首先能够促使程序员重视代码质量;其次程序员在走查过程中可以得到别人的意见,有利于改善代码质量;另外,组内成员可以通过这一过程交流软件开发遇到问题的解决的思路及方法,加深理解,有利于进一步协作。代码走查,可以令项目组成员更加重视软件的质量问题,有利于大幅度提高软件质量。
2.4严格软件测试
严格的软件测试才能有效保证软件质量。在软件测试环包括单元测试、功能测试和性能测试、安全性测试以及压力测试等。测试覆盖了项目的各个阶段,通过测试,有利于提前发现软件存在的不足。在软件上线前,进行压力测试非常必要的。压力测试,可以通过软件来模拟多量用户同时使用软件的情况,根据模拟结果预测系统正式运行后的情况,有利于改进软件质量只有所有软件开发参与人员严格要求自身,提高软件管理标准,明确软件功能需求,建立质量管理标准以及选用正确的开发工具及平台,才能有效提高软件开发质量。
3结论
提高软件质量是开发人员和用户的金融经济期刊共同需求。而提高软件质量并不是一个静态过程,只有软件开发中参与的每个人都提高了软件质量管理的重视程度、自觉遵行软件质量管理要求,才能起到好的效果。
作者:王斌 单位:吉林财经学校