时间:2022-05-09 04:10:29
序论:在您撰写软件质量管理论文时,参考他人的优秀作品可以开阔视野,小编为您整理的7篇范文,希望这些建议能够激发您的创作热情,引导您走向新的创作高度。
近年来,HTML5为代表的Web技术得到长足发展,可以在操作系统上构建应用平台所有的要素,实现跨平台、跨屏,提供统一的用户体验,为国内厂商利用Web作为应用平台、打造独立的生态系统提供了机会。HTML5是技术变革,推动web应用达到Flash应用那样的互动性和媒体能力,同时保证web应用在集成到设备和集成用户数据方面和移动应用一样。HTML5推动移动互联网水平化演进,给产业轴心和发展模式转变带来新机遇,推动Web应用环境替代移动智能终端操作系统成为移动应用的承载平台,打破移动智能终端操作系统和应用之间紧耦合的绑定关系,促进其由垂直一体化向水平化方向演进,颠覆现有移动互联网的产业格局和发展模式。“Web平台和互联网渠道”将取代“移动智能终端操作系统和应用程序商店”成为产业新的核心,产业轴心和模式的转换带来新的发展机遇。因此,Web是国内厂商在移动平台方面重点发展的方向。运营商可以推动WebKit朝着更好的带宽管理、更紧密集成硬件多媒体加速器的方向开发。此外,运营商可资助开发更好的跨平台开发工具,使HTML,JavaScript开发者能面向更多的原生平台和大众市场浏览器。目前,运营商也积极研发并推出自主知识产权的操作系统,如联通沃PhoneOS、移动OPhoneOS。目前,以FirefoxOS、ChromeOS等为代表的WebOS也成为当前移动互联网领域的热门话题,内核支持原生应用和Web应用运行框架的混合型操作系统也有长足发展,支持HTML5框架和Java应用框架,应用开发者可以选择其中之一开发其应用;整合通信服务、多媒体处理、定位地图服务、日历、邮件等日常使用的基础应用。目前,市面上比较典型的混合型操作系统是“阿里手机操作系统”,其采用了自有的虚拟机,在Linux开源内核上开发了阿里云操作系统,并叠加了阿里云自行研发的“云应用引擎”(CloudAppEngine),用于支持HTML5Web应用。阿里手机操作系统能够兼容Andriod系统,可以支持基于Andriod平台开发的应用,兼容程度可达90%以上[1]。
伴随着终端智能化及网络宽带化的趋势,移动互联网业务层出不穷,日益繁荣。但与此同时,移动终端越来越多的涉及商业秘密和个人隐私等敏感信息。移动终端也面临各种安全威胁,如恶意订购、自动联网等,造成用户的话费及流量损失;木马软件可以控制用户的移动终端,盗取账户、监听通话、发送本地信息等。移动终端作为移动互联网时代最主要的载体,面临着严峻的安全挑战。智能移动终端恶意软件危害根据2012年中国计算机网络安全年会上国家互联网应急中心副总工程师、国家网络信息安全技术研究所所长杜跃进先生的报告,移动智能终端软件安全检测显示,针对采集的48万多个应用软件,经扫描发现超过200多个已经明确是病毒的软件。从中随机选择一万余款应用软件,利用国家网络信息安全技术研究所自主研发的工具进行深度代码分析,发现很多软件存在恶意行为或可疑行为。其中,存在敏感行为的超过5000个,当中未经用户许可自动访问网站的3185个,自动向外发送短信或彩信的13个,另有4个明显存在恶意行为(照比例计算,在48万个应用软件里至少有160个是尚未被防病毒产品检出的恶意软件。因此,移动互联网相关应用软件的整体安全现状堪忧。而根据网秦云安全监测平台统计,2013年全球共查杀到智能移动终端恶意软件134790款,同比2012年增长106.6%;2013年感染终端共计5656万部,同比2012年增长76.8%。
目前恶意软件的传播方式主要有五种:网络下载传播、蓝牙(Bluetooth)传播、USB传播、闪存卡传播、彩信(MMS)传播等。据《2013年上半年中国手机安全状况报告》指出,在手机恶意软件的主要危害中,资费消耗、隐私窃取和恶意扣费位列前三。恶意软件主要危害类型如下:《2013年上半年中国手机安全状况报告》显示,今年上半年国内新增手机木马、恶意软件及恶意广告插件共计45万余款,感染总量超过4.8亿人次,接近2012全年感染量。其中,安卓新增木马占总量的97%,九成以上含有隐私窃取行为。2013年上半年Android新增恶意软件月度统计情况如图1所示。下面结合实例简单介绍恶意软件的危害。著名窃密软件“X卧底”由泰国的Vervata公司开发,引进中国后改名“X卧底”。该软件能够监听话音、发送本地信息,个人隐私数据都被发送到第三方服务器上。其原理如图2所示。“X卧底”在短信监控环节能显示出对方的号码、收发短信的时间以及短信的详细内容;电话监控方面破坏性较强,能够显示被监控方通话的号码、通话时间和时长,并且能同时将通话录音保存为一个AMR格式的音频文件发送到监控方的指定邮箱;环境监听方面,当主控号码拨打安装了X卧底的被监控手机时,被监控手机会自动将电话接通,主控号码方能够听到对方周围声音,但在被监控手机上无任何显示;一些“X卧底”变种(如Android版)还具备扣费功能。可见,加强移动终端相关应用软件质量的管理已迫在眉睫。智能移动终端软件质量管理目前的主要操作系统平台有Android、iPhone、WindowsPhone等。虽然恶意软件在各个平台都存在,但由于各个平台的安全机制差异甚大,不同厂商的智能终端面临的安全风险也截然不同,甚至同样的操作系统,由于不同OEM对其安全加固程度不同,也呈现出不同的安全特性。
2.1软件自动化测试工具的应用软件质量因素主要包括十点,功能性质量因素:正确性,健壮性,可靠性;非功能性质量因素:性能,易用性,清晰性,安全性,可扩展性,兼容性,可移植性。软件自动化测试对于提高软件的测试效率和质量有着至关重要的作用。自动化测试使用机器执行测试案例,能够节省大量人力,测试效率也更高。自动化测试通常采用脚本技术实现,便于测试经验的积累和复用。软件自动化测试工具除了传统的黑、白盒测试工具,还包括对数据生成进行检测的工具、对管理进行测试的工具。测试数据生成工具主要应用在测试的前端,为测试过程准备大量数据,目前典型的测试数据生成工具有:Bender&Associates公司提供的功能测试数据生成工具SoftTest和InternationalSoftwareAutomation公司提供的PanoramaC/C++测试数据生成工具;测试管理工具是指用工具对软件的整个测试输入、执行过程和测试结果进行管理的过程,主要有MercuryInteractive公司的TestDirector、IBM-Rational公司的ClearQuest。目前自动化测试工具的种类非常多,我们在选择自动化测试工具时,要综合考虑各方面的因素,使软件自动化测试工具得到准确使用,只有这样才能不断提高测试的质量和效率,降低测试所需要的成本,从而促进软件开发工作的快速发展。
2.2智能终端统一管理平台智能终端作为行业终端,安全应和行业应用结合。可通过搭建终端安全统一管理平台,实现信息收集、检索、分析,对智能移动终端软件质量问题实行系统化、网络化和动态化的跟踪。不定期提供质量信息综合分析报告,其中包括软件测试过程的结果,得出的结论,缺陷分析及其限制因素,测试资源的消耗,提供统一的安全策略,最大程度确保企业终端的安全。统一管理平台的组成架构如图3、4所示。国外运营商如AT&T已经为其企业客户提供类似的终端安全统一管理平台。企业管理人员登录到管理平台之后,可以看到自己企业管理的所有手机,选择想要管理的手机,点击“管理手机”按钮,就可对手机进行“删除短信”、“删除联系人”、“删除通讯记录”、“重启手机”等操作。如某员工离职后,企业就能即时删除其手机上的所有信息,以保证企业客户数据的安全,该员工归还的手机把信息清空后,仍可被下一名新员工使用。假如某员工手机被盗,不法分子常常会将旧卡丢弃,并换入新卡销赃。此时手机端软件会自动发送信息给后端管理平台,管理人员可以立即删除手机内的所有信息。
标准的制定应当建立在先进的科学技术与丰富的实践经验之上,这一点光靠凭空捏造是不行的。制定标准的根本目的是:对社会生产秩序加以改善,并且在一定范畴内推动产品的流通,进而实现整个社会资源的优化配置,从而最终实现经济效益与社会效益的最大化。从某种层面上而言,与人类的语言相同,"标准"是衡量人类劳动产品的一项重要标准,且随着人类文明和知识水平的不断进步和发展。在进入工业时代后,产品的生产过程开始呈现工业化、综合化以及现代化的趋势,在此过程中,常常需要多家企业与多个行业参与其中,并且需要对多项技术进行融合,才能将产品完美地呈现。伴随着全球经济一体化的推进,各国之间的贸易活动愈发频繁,这势必会影响各个国家的国家标准,在某种程度上这其实也促进了国际标准的形成。一般情况下,国际标准通常是经由国际电信联盟、国际标准化组织以及国际电工委员会共同制定,并且通过国际标准化组织的进一步明确的标准。
2软件工程质量管理的有效措施
(1)不断强化软件工程质量。软件工程质量保证工作所指的就是开发出现的新软件进行检验,来确保这些软件达到有关规定的标准。该项工作的主要内容有对软件产品进行审查、对一些工具、设备进行审查,以及对软件开发技术的审查评审,最后根据审查所得出的数据做成报告。具本人多年的研究经验,软件工程质量保证工作的开展主要包括以下几个流程:
①成立软件工程质量审查小组;
②合理规划小组审查活动;
③不断优化小组工作内容,避免小组在审查过程中出现漏洞。
(2)不断强化软件工程质量的管理程序工作的开展。我们知道,通过有效的软件管理,可以有效的实现软件工程的工业化、软件开发、生产的规模化,所以可以说科学、完善软件工程质量管理程序是软件工程发展的强有力后盾。本文经过研究,其具体包括以下几方面内容。
①对软件工程产品的质量需求加以构建。其中产品的质量需求应当满足全部客户的不同要求与条件,且将这些要求与条件转变成实际的标准,并加以介绍;与此同时,还必须对客户的要求进行密切的观察,一旦这些要求发生改变,那么就必须在第一时间内对软件工程加以补充,进而使软件设计更加的完善。
②制定一套软件产品开发与维护的有效方式。
(3)不断加强对软件开发队伍的建设与管理。人是软件工程开发、管理等一系列活动开展的主体,所以不断加强软件开发队伍、软件工程质量管理队伍建设对于提高软件工程质量标准至关重要。其具体包括以下几方面内容,第一,聘请优秀的软件工程质量管理方面的人才,积极学习国内外高效的管理经验,降低甚至是避免软件管理问题的发生。第二,定期组织有关软件开发知识与技术方面的培训,并积极号召广大管理人员与技术人员参与其中,以便使其能够掌握最先进、最前沿的软件工程开发技术与管理知识,且进行考核,以保证培训的效果与质量,进而真正实现提升员工素质与技能的目的。
3结语
1.1测试设计重点偏离使用QC软件测试发现bug统计,如表1所示。根据表1工作量统计,25人/日为5个中级测试工程师一周的工作量,但是根据测试用例发现的bug数量仅占bug总量的44.18%,该比例显示测试用例的设计重点严重出现偏离。需要在测试用例设计的方向上进行调整。
1.2测试过程不可控QC软件测试计划中测试执行阶段为2013.3.8-2013.3.27,执行三轮测试;实际测试时间为2013.3.23-2013.4.20,执行测试三轮,计划完成时间严重偏离,表2为原计划与实际计划的对比。表2显示测试计划进行了较大调整,计划截止时间比原计划延迟23天。延迟原因经分析主要为开发提交测试时间延迟,开发提交版本问题较多,测试计划安排不合理,在两轮测试间为安排开发修改bug时间等。想要解决该问题,不仅需要对测试过程进行管理,同时也需要对开发提交的测试版本质量进行管理。
2软件质量管理改进对策
2.1需求工程管理软件开发过程中,需求不明确会带来需求的频繁变更,浪费了很多时间。针对此项问题,可对需求相关的活动进行统一管理,其需求管理结构图如图2所示。加强需求开发和需求管理的有机结合,不仅减少了需求的变更次数,还解决了工程师对需求不能理解到位的问题。需求开发和需求管理同样重要,只有两者互相配合才能做出用户满意的产品。
2.2立项管理为了使有限的资源发挥更高的价值,公司可通过立项管理流程进行立项管理,立项管理流程分为立项建议、立项评审和立项筹备三个阶段,其具体流程图3所示。
2.3测试流程管理针对测试流程中发现的问题,可对整体的测试流程做如下的改变:(1)测试部门可进行需求学习及需求讨论,对理解不清楚及有疑问的需求,由研发设计部门进行解答,研发设计部门不能解答的由其联系用户确认后作出解答;(2)需求确认后,针对系统功能和性能等指标,由测试工程师进行测试测用例的设计,设计从两个方面进行,一方面测试工程师根据需求进行测试用例的编写,另一方面测试工程师可根据用户反馈问题进行分析汇总;(3)使用QC功能测试工具对应用软件兼容性、操作系统兼容性进行测试,以便于使用测试工具完成多种环境下的功能和兼容性测试;(4)进行自由测试以便于对系统测试用例进行补充,分析测试用例未覆盖问题的原因;(5)定期分析缺陷库中的问题,分析问题产生的原因,进行测试用例的修改。
3结论
在实际的项目质量管理中,质量管理总是围绕着质量保证(QualityAssurance)过程和质量控制(QualityControl)过程两方面。这两个过程相互作用,在实际应用中还可能会发生交叉。正如引言所述,关于软件的质量,很难下一个非常明确的定义。本文主要针对软件工程中的质量管理来进行讨论。
做软件“大餐”的工序
软件质量保证(SoftwareQualityAssurance,以下简称SQA)的目的是验证在软件开发过程中是否遵循了合适的过程和标准。软件质量保证过程一般包含以下几项活动:
首先是建立SQA组;其次是选择和确定SQA活动,即选择SQA组所要进行的质量保证活动,这些SQA活动将作为SQA计划的输入;然后是制定和维护SQA计划,这个计划明确了SQA活动与整个软件开发生命周期中各个阶段的关系;还有执行SQA计划、对相关人员进行培训、选择与整个软件工程环境相适应的质量保证工具;最后是不断完善质量保证过程活动中存在的不足,改进项目的质量保证过程。
独立的SQA组是衡量软件开发活动优劣与否的尺度之一。SQA组的这一独立性,使其享有一项关键权利??“越级上报”。当SQA组发现产品质量出现危机时,它有权向项目组的上级机构直接报告这一危机。这无疑对项目组起到相当的“威慑”作用,也可以看成是促使项目组重视软件开发质量的一种激励。这一形式使许多问题在组内得以解决,提高了软件开发的质量和效率。
选择和确定SQA活动这一过程的目的是策划在整个项目开发过程中所需要进行的质量保证活动。质量保证活动应与整个项目的开发计划和配置管理计划相一致。一般把该活动分为以下五类:
1)评审软件产品、工具与设施
软件产品常被称为“无形”的产品。评审时难度更大。在此要注意的一点是:在评审时不能只对最终的软件代码进行评审,还要对软件开发计划、标准、过程、软件需求、软件设计、数据库、手册以及测试信息等进行评审。评估软件工具主要是为了保证项目组采用合适的技术和工具。评估项目设施的目的是保证项目组有充足设备和资源进行软件开发工作。这也为规划今后软件项目的设备购置、资源扩充、资源共享等提供依据。
2)SQA活动审查的软件开发过程
SQA活动审查的软件开发过程主要有:软件产品的评审过程、项目的计划和跟踪过程、软件需求分析过程、软件设计过程、软件实现和单元测试过程、集成和系统测试过程、项目交付过程、子承包商控制过程、配置管理过程。特别要强调的是,为保证软件质量,应赋予SQA阻止交付某些不符合项目需求和标准产品的权利。
3)参与技术和管理评审
参与技术和管理评审的目的是为了保证此类评审满足项目要求,便于监督问题的解决。
4)做SQA报告
SQA活动的一个重要内容就是报告对软件产品或软件过程评估的结果,并提出改进建议。SQA应将其评估的结果文档化
5)做SQA度量
SQA度量是记录花费在SQA活动上时间、人力等数据。通过大量数据的积累、分析,可以使企业领导对质量管理的重要性有定量的认识,利于质量管理活动的进一步开展。
要说明的是,并不是每个项目的质量保证过程都必须包含上述这些活动或仅限于这些活动,要根据项目的具体情况来定。
SQA计划中必须明确定义在软件开发的各个阶段是如何进行质量保证活动的。它通常包含以下内容:质量目标;定义每个开发阶段的开始和结束边界;详细策划要进行的质量保证活动;明确质量活动的职责;SQA组的职责和权限;SQA组的资源需求,包括人员、工具和设施;定义由SQA组执行的评估;定义由SQA组负责组织的评审;SQA组进行评审和检查时所参见的项目标准和过程;需由SQA组产生的文档。
选择合适的SQA工具并不是试图通过选择SQA工具来保证软件产品的质量,而是用以支持SQA的活动。选定SQA工具时,首先需要明确质量保证目标。根据目标制定选择SQA工具的需求并文档化,包括对平台、操作系统以及SQA工具与软件工程平台接口的要求等。
如何使白壁“无瑕”
按工序去做也不一定能得到一盘完美的“大餐”,因为火侯等因素实在很难掌握。万一掌握不好怎么办?软件质量控制主要就是发现和消除软件产品的缺陷。对于高质量的软件来讲,最终产品应该尽可能达到零缺陷。而软件开发是一个以人为中心的活动,所以出现缺陷是不可避免的。因此,要想交付一个高质量的软件,消除缺陷的活动就变得很重要。缺陷消除是通过“评审”和“测试”这类质量控制活动来实现的。
缺陷在软件开发的任何阶段都可能会被引入。项目质量管理过程包含了许多可以识别缺陷、消除缺陷的过程。“识别缺陷”和“消除缺陷”本来是两个不同的过程,但在这里为了简便统一用“消除”来代表它们。潜在的缺陷越大,用来消除它所花的费用越高。因此成熟的软件开发过程在每一个可能会引入潜在缺陷的阶段完成之后都会开展质量控制活动。这些为了消除缺陷的活动包括:需求评审、设计评审、代码走查、单元测试、集成测试、系统测试以及验收测试等。
论文关键词:软件项目管理软件产品质量因素
论文摘要:软件项目管理的核心是全面客户满意。其管理体系包括:战略管理、范围管理、成本管理、时间管理、人力资源管理、沟通管理、风险管理和质量管理。
在软件和信息科技行业,项目管理经常决定了一个产品或者企业能否成功。项目管理得到越来越多的企业和政府部门的重视,例如中国于2002年4月召开了有关项目管理的首次国际研讨会。具体操作与项目最根本的不同在于具体操作是具有连续性和重复性的,而项目则是有时限性和唯一性的。项目是一项为了创造某一唯一的产品或服务的时限性工作。所谓时限性是指每一个项目都具有明确的开端和明确的结束;所谓唯一是指该项产品或服务与同类产品或服务相比在某些方面具有显著的不同。各种层次的组织都可以承担项目工作。项目有时只涉及一个组织的某一部分,有时则可能需要跨越好几个组织。项目是执行组织商业战略的关键。
一、软件产品项目管理的重要性
20世纪80--90年代,许多大型企业管理信息系统MIS的开发都以失败而告终。这是为什么?一个重要原因是软件项目管理水平上不去,尤其是需求分析管理水平上不去,使得项目快要验收或交付时,却出了大问题:要么发现用户需求获取不准确,要么发现用户需求变了,致使做好的系统不能用或不好用。20世纪90年代初,上海一家公司在青岛做一个港口MIS项目,北京有一个单位在天津做一个港口MIS项目,都是因为甲乙双方软件工程基本知识不具备,使得项目管理不到位,导致2个大型项目不成功。现在软件应用领域空前广阔,深人到社会和科学研究等领域的各个方面。软件的需求也比以往更加多,软件系统设计也空前复杂。软件的项目管理问题也就因此而产生了。90年代中期,软件项目管理不善的问题仍然严重。据美国软件工程状况调查,只有10%的项目能够在预定的费用和进度下交付。于是软件项目管理成为软件项目发展中最重要的核心问题。为了使软件项目开发获得成功,必须对软件开发项目的工作范围、可能遇到的风险、需要的资源(人、硬件、软件)、要实现的任务、经历的里程碑、花费的工作量(成本),以及进度安排等做到心中有数。软件项目管理的目的就是提供这些信息,分析信息,并根据分析结果对项目做出调整。软件项目管理开始于技术工作之前,在软件开发的整个过程中持续进行,最后中止于软件过程结束。
二、软件项目管理体系
随着软、硬件技术以及通信技术的日益成熟,软件技术可以与所有的传统产业相结合,促进产品的更新换代,大幅度提高产品的附加值,提高劳动生产率,推动产业结构与产品结构的调整。因此,软件的开发以及应用不仅仅是软件开发机构的任务,更深地涉及软件使用者的切身利益,尤其像管理信息系统MIS(ManagcmentInformationSystem)、计算机集成制造系统CIMS(ComputerIntegrationManufacturingSystem)、企业资源计划ERP(EnterpriseResourcePlanning)及商业智能BI(BusinessIntelligence)等大型的复杂软件更是综合了管理科学、计算机科学、通信技术以及数学等各方面的知识,需要各类人员的协调工作才能完成。因此也就有必要从项目管理的角度去管理软件的开发和运行。从用户的角度来看,软件项目的生命周期应该包括项目前期的论证工作、项目计划、软件开发、运行、维护以及项目后评价。由此可见软件项目管理的范围不仅包括传统的软件开发过程,还应该包括开发之前的准备工作以及运行中的维护工作和对项目的总结工作。同时,在软件项目生命周期中存在着许多活动。根据活动之间的相关性,可以将软件项目的各种活动分为九大类。
(1)战略管理。根据用户的经营目标制定软件项目的策略,以便为其他各方面的活动提供指导。在制定项目策略的时候应该充分考虑用户和其他利益相关者的实际需求和市场因素。另外创造和谐的项目环境和连续改进也是战略管理的重要任务
(2)范围管理。其目的是控制软件项目的全部活动过程都在需求范围内,以确保项目各种资源的高效利用。成功的项目管理离不开用户、软件开发队伍和项目经理的一致理解和协调配合
(3)成本管理。软件项目的成本不仅包括开发成本,也包括开发之前立项阶段以及软件在运行中的费用。操作者的培训费用和项所使用的各种硬件设施费用也都是整个项目成本的一部分。这些成本都需要很好地计划和控制。
(4)时间管理。其内容有确定各项活动之间的时间相关性;估计各项活动的持续时间,跟踪各项活动的进展情况,动态调筷各项活动之间在时间上的协调。
(5)人力资源管理。在软件项目中应该为软件开发人员和管理人员等各类项目人员创造一个和谐良好的工作氛围。使他们能感到项目成功的把握和积极的工作心态,确保项目队伍的稳定性和连续性。
(6)沟通管理。沟通管理是一个收集、存储、配置和项目生命周期内所形成的各种信息的过程为了让每个项目相关人员及时得到所需的信息,需要很好地解决“什么时候、向什么人礼报什么的”的问题,此外软件开发队伍和用户之间的沟通也是沟通管理中的一项重要工作。
(7)风险管理。由于软件项目中存在着很多的不确定因索,也就必然存在着各种风险而且风险有可能造成不良的结果,对风险进行分析和监控贯穿于整个软件项目生命周期。
(8)质量管理。目前软件的质量还是一个模糊的概念并且难以衡量由于软件质量主要是在开发阶段形成的,因此软件项目质量管理的重点应放在系统分析、系统设计和编码阶段,走查、评审、调试和测试是保证软件质量的重要手段软件工程能力成熟度模型CMM(CapabilityMaturityModel)较好地解决了软件开发过程中的质量管理问题。
综合管理。综合管理的任务是对前面讨论的各类管理活动进行协调和控制,使这些活动相互配合。其核心任务是对各种方案进行评价,协调各方面的利益冲突确保项目总体标的最终实现。
三、软件项目管理的核心是全面客户满意
当前,不少软件业管理人上认为,软件开发的问题主要在软件开发的工程化、规范化和软件开发管理体制。他们按照CMM(CapabilityMaturityModel),IS09002的标准来建立他们的管理体系。这里有商业竞争的因素在起作用。但是,他们忽略了商业竞争中取胜最重要的因素—客户满意。他们没有考虑到他们的管理方法能否满足客户不断变化的需求。从长远来看,软件项目真正的成功是客户的全面满意。以客户满意为中心的质量是必需的。漠视质量或只关心产品/服务是否符合需要的方法再也不足以留住和获得客户。因此,软件开发项目组织必须先确定什么产品/服务可以让顾客满意,然后再努力满足客户的需求和期望。要实现此目标,组织必须识别对软件产品的各种特性中哪些是对客户的满意起决定作用的要素。例如,服务器操作系统软件,需要长时间稳定连续工作。稳定性则是该软件产品的关键要素。因此系统的开发管理围绕着这一关键要素来展开。尽管不少的组织明白没有客户一个组织就不能生存和发展,或者说没有客户就没有组织,但在项目实施过程中,仍然存在着客户满意的障碍:
(1)项目管理组织没有发展和完善对客户不断变化的需求和期望作出快速响应的能力。
(2)项目管理组织没有听取客户意见和建议的能力。
(3)项目管理组织努力倾听客户对项目的要求,却没有确认客户的需要和期望。
在软件开发质量管理中,软件企业面临最大的问题就是管理系统的不可持续发展,基于CMMI的软件开发质量管理针对这一问题提出了解决方案,但是由于现阶段该体系还不够完善,开发项目不能够在独立的平台中得以有效实施,这给质量管理的有序执行带来了一定的风险。为此,需要对该体系中的CMMI过程域进行改进,主要包括以下四项内容:是需求管理过程域,需求分析的质量取决于进度和外界约束条件,需求描述过于粗略,就会使维护需求双向追朔环节出现问题;是验证过程域,主要包括验证准备、执行审查和验证产品三个环节,解决的是信度问题;是确认过程域,与验证过程域的环节相对应,解决的是效度问题;是项目定量管理过程域,即以量化的方式对已定义的项目流程进行管理,从而保证流程及流程绩效和项目质量[2]。
2基于CMMI的软件开发质量管理体系的构建
2.1各过程域的完善
软件过程成熟度直接影响到软件开发质量,基于CMMI的软件开发质量管理体系的构建,其首要环节就是要对各过程域进行改进和完善,针对需求管理过程域存在的需求分析难以实现双向追朔而引发的缺陷难以显露的问题,应对需求的记录方式做出改进,设定改进的幅度和目标,通过建立多层分级的需求体系,使所有的需求都使用一个编号,使用专门的需求管理工具来实现,提高需求满意度,使质量开发风险得到有效控制;针对过程域存在的评审质量不高、文档缺陷密度较低的问题,应保证缺陷密度能够在基线控制范围内正常波动,不应低于中值,可在正式评审前增设预审流程,再有就是通过邮件讨论或直接使用工具,在此推荐使用DOORS工具的CPS功能,有助于保证信息数据的完整性,提高文档评审质量;针对确认过程域存在的UT不充分的CR所占比例过高、缺陷排除率较低的问题,应通过可持续集成将零散的测试用例整合起来,改进用例编写,对产品代码实施持续测试,提高用例覆盖率和检查标准的可靠性;此外,还应将定量管理过程域引入质量管理体系中,建立组织级度量模式,对所有过程建立相应的度量方式,明确度量指标,确保整个体系处于一个循环改进的过程中[3]。
2.2体系的实施策略
基于CMMI的软件开发质量管理体系,将活动及相关资源作为过程进行管理,能够有效实现预期效果,该体系主要包括三项内容,即以客户为中心、领导作用、全员参与、管理系统方法、过程处理方法、决策方法、持续改进和供方互利。在实施过程中,软件开发能力成熟度集中体现在软件项目开发和执行人员的整体能力上,除了团队能力外,软件开发过程中的控制能力和改进能力,软件开发质量管理的核心内容就是对这些能力进行改善,任一阶段、任一环节的优化都是在既有目标基础上做出的改进,进而使绩效得以提高,因此应对目标进行有效管理,具体来讲,可通过领导的决策支持、确认质量改进目的、选择最佳执行方案和重视员工培训等四个方面来保证质量管理体系的有效实施。
3结语
关键词:软件需求;领域分析;质量属性
中图分类号:TP311文献标识码:A文章编号:1009-3044(2010)16-4424-02
Research and Application of Software Quality Improved Based on Software Requirement
WANG Yan-xing, YE Jing-fa
(College of Computer, Beijing University of Technology, Beijing 100124, China)
Abstract: Software is applied in more and more domain with the quickly development and application of the computer technology. At the same time, scale and complexity of software requirement is increasing day by day. Requirements analysis is a key activity in software life cycle,quality of software requirement can affect quality software directly. It selected an effective approach with the use of objected domain analysis to verification quality of requirement.
Key words: software requirement; domain analysis; qualityproperty
随着科学技术和社会生产力的不断发展,信息技术最快的发展速度和最强的渗透能力,广泛应用于社会各个领域。软件的规模越来越大,与此相对应软件的需求也越来越复杂。正如“软件危机”(software crisis)所阐述的两方面:如何开发软件以满足不断增长日趋复杂的需求和如何维护数量不断膨胀的软件产品。截至到目前, 如Brooks所言,解决软件危机的“Silver Bullet” 还没有出现[1]。需求分析是软件研发的起始阶段,高质量的需求分析是软件项目迈向成功的第一步。
1 需求是软件质量的根源
ISO9126的信息技术标准[2]中定义软件质量:与软件产品满足明确或隐含需求的能力有关的特征和特征总和,它充分表明软件系统是满足用户需求的实体。在研究中发现软件缺陷产生的原因分布在软件研发的各个阶段,软件产品说明书(需求)占56 %,设计占了27%,编写代码占7%;其他占10%。可见软件缺陷的最大原因是软件产品产品说明书和软件设计。在生命周期中发现缺陷越早,修正问题的成本越低。软件质量的管理不是IT自身的需求,而是业务应用的需求[5]。需求阶段的问题不解决,相当于在错误的方向上不断浪费人力物力[6]。Jones在报告中声称扩展需求对80%的管理信息系统和70%的军事软件造成风险[7],需求的质量将直接影响软件质量[8]。协调统一的高质量需求是软件开发成功的首要条件,需求质量的改进则成为软件开发的首要任务。
软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。需求阶段包括了需求开发和需求管理两个部分。而需求工程是一个不断反复的需求定义、记录和演进的过程。软件需求包括三个不同的层次--业务需求、用户需求和功能需求--也包括非功能需求[9]。需求是软件开发中最复杂的环节,现在软件需求分析中发现需求具有明显不完整性、不确定性及变化性等特点。提高需求质量在于如何改进和克服需求上述特征因素。
2 领域分析对软件需求改进
了解顾客的需求是软件质量管理的第一步。无论是领域工程还是应用工程,领域分析都是至关重要的。在应用工程中,软件开发的首要任务是在特定的范围内,针对一组特定的需求产生一组特定的设计和实现。因此在设计之前,必须正确获得和理解软件需求,而正确获得和理解软件需求的前提是对应用系统的工作领域有充分的认识和理解。
2.1 领域和领域分析方法
领域是指一组具有相似或相近软件需求的应用系统所覆盖的功能、问题、问题解决方案或知识区域[10]。领域工程则为一组相似或相近系统的应用工程建立基本能力和必备基础的过程,它覆盖了建立可复用软件构件的所有活动[11]。领域工程包括三个主要的阶段:领域分析、领域设计、领域实现。
领域分析(Domain Analysis)是Neighous1981 年在他的博士论文“使用部件的软件构筑”中首次提出的[12],它的含义是指“识别、捕获和组织特定领域中一类相似系统内对象、操作等可复用信息的过程”。领域分析是基于已经存在的系统和它们的发展开发历史、基于从领域专家获得的知识、背景理论、领域中新技术的基础上,识别、收集、组织以及表示领域中相关信息的过程。领域分析进行识别领域边界,通过分析领域需求,提取出某领域内系统的共性及可变部分从而建立领域模型。
2.2 面向领域方法的需求分析
提高软件需求质量的最有效方法是准确获取用户的真实需求(功能和性能)。领域分析方法中涉及到广泛的涉众:如最终用户、领域专家、领域分析员、系统投资人、需求分析员等等。领域专家对行业信息化有丰富经验。最终用户则能反应系统应用的典型业务需求,系统投资人则更多关注领域的发展和运营。以最终用户中心,面向领域的需求分析方法有效捕获从应用专业领域别是直接从最终用户的需求,并完整、准确地予以描述与分析。软件的需求从用户中来,软件的使用又到用户中去。Harwell强调今天的用户和开发者必须协同工作,以成功完成开发过程[13]。领域分析中参与涉众的广泛性和代表性解决需求的不完整性、使用领域语言对问题阐述保证问题的一致性。对领域问题分析的深度和广度,防止了需求的频繁变化和变更。而且即使变化也会在预先可控范围内的调整和扩展,减少对领域模型的冲击。领域分析立足于满足现有业务的需求同时它还代表系统的一种发展方向和系统对未来业务发展的适应能力。保证应用工程需求的稳定性和系统性。通过分析领域需求的共性和可变性有利软件产品线形成和演化。
领域工程是建立系统家族及支持系统演化的基础和前提。面向领域的需求分析从需求问题的分布可以将领域为纵向(垂直)领域和横向(水平)领域,其中垂直领域是指具有相似业务需求的一组相似应用系统所覆盖的业务区域。水平领域是指根据应用系统内部模块的功能性分类而得到的相似问题空间。领域分析方法从问题域出发将问题逐步深入逐步求精,通过横向拓展和纵向拓展对需求进行挖掘。借鉴和学习国内外同行业和相近行业的经验,并在此的基础上不断提出创新方向引导需求和发展需求。领域分析在一定程度上预测未来需求的发展趋势,使软件的需求能方便、快速适应市场的变化。
软件的功能需求满足了业务需求和用户需求,而非功能需求则是软件质量的内在体现。非功能需求是保证业务流程正常运转的前提和保障。是衡量软件能否良好运行的定性指标。质量属性是软件质量的综合体现。质量属性是客户希望的特征,属性并不是单独存在的,而是一个或多个功能的附属特征。软件的整体质量是各种质量属性之间的权衡和优化。为了达到产品特性的最佳平衡,在需求获取阶段识别和确定相关的质量属性,领域涉众需要确定质量属性之间的优先级,已达到系统整体质量的合理优化。
3 领域分析方法的应用案例分析
随着经济全球化和新技术革命发展,数字化、融合化、全球化发展和媒介竞争是世界文化传媒业的发展大势。广电传媒业要打造核心竞争力,实现可持续发展,就必须通过体制改革,强化管理,整合企业流程,创新服务模式。数字电视业务的逐步深入,原来的业务系统正成为制约广播电视发展的瓶颈,主要表现为以下几个方面:广播电视各业务系统各自独立运行,数据和业务管理分散。无法实现客户资料的统一管理,无法实现业务统一规划运营。无法从业务数据中挖掘有价值的信息,更不能为企业管理层提供决策支持,企业很难推出快速响应市场的高效运营方案。因此广电需要一个功能完善的、面向未来的综合业务运营支撑系统(BOSS系统)来整合替代原来各个分散的系统。对广电领域的分析成为建设多业务综合运营支撑系统的首要问题。应用面向领域分析方法对广电行业进行需求探索和研究,提出了广电综合业务支撑系统的业务模型如图1。
领域分析方法为业务模型建立提供有效的思路。领域纵向分析中充分参考了电信行业,电信行业与广电行业有很多相似之处而且有很多成熟的运营经验,也充分借鉴了国际电信管理论坛(Tele Management Forum)。领域横向分析全面整合广电企业目前的系统,建立“以客户为中心”的模拟、数字、增值多业务广电运营支撑平台。以多种接入方式满足现有业务、未来数字整体转换和增值业务的需求。以客户为中心为客户提供个性化、社会化、信息化的产品营销模式。调整企业内部组织结构和整合企业内部资源,同时加强企业产品提供商的合作产业链。在新的业务平台和市场竞争中寻求企业运营的商业模式。随着运营商区域并购联盟、广电业务和用户规模将剧增,业务系统数据量将更加庞大,为能满足不断发展的用户需求和提高服务质量。系统运行的安全可靠性和事务的高性能处理成为系统整体质量的体现。
通过领域分析方法提出的模型满足运营商的组织结构管理、业务需求和业务管理模式,完成企业信息化建设实现资源和信息的共享。实现业务规范、责权明确、各部门间的协同的管理。基于此需求分析的系统能全面降低企业运作成本,提高公司的整体运作效率,大幅拓展业务,进一步提高企业的核心竞争力。
4 总结
软件需求的质量将直接影响软件产品的质量,改善需求的质量是非常必要和有效的环节。本分探讨了领域分析方法对软件需求的改进,并在广电业务支撑系统需求分析中进行了应用和探索。
参考文献:
[1] BROOKS F P.THE MYTHICAL MAN-MONTH[M].北京:清华大学出版社,2002:42-43.
[2] International Organization for Standardization.International Electro-technical Commission ISO/IEC9126:Information Technology--Software Product Evaluation:Quality Characteristicd and Guidelines for Their Use[S].Chicago:Thomson,1991.
[3] Little wood B.Software Reliability Achievement and Assessment[M].Henley-on-Thames,England:Alfred Waller,Ltd,1987.
[4] Mizuno O,Kikuno T,Inagaki K,et al.Analyzing effects of cost estimation accuracy on quality and productivity[C]//Proceedings of the 1998 20th International Conference on Software Engineering.Kyoto,Japan:IEEE Comp Soc,1998:410-419.
[5] 张郁.软件质量源自应用需求[N].每周电脑报,2005-11-21:90.
[6] 杰拉尔德・温伯格.探索需求-设计前的质量[M].章柏幸,王媛媛,谢攀,译.北京:清华大学出版社,2004:175-176.
[7] Jones C.Estimating Software Costs[M].Boston:Addison-Wesley,2000.
[8] BERKI E,GEORGIADOU E,HOLCOMBE M.Requirements Engineering and Process Modeling in Software Quality Management―Towards a Generic Process Metamodel[J].Software Quality Journal,2004(12):265-283.
[9] 陆丽娜.软件需求[M].北京:机械工业出版社,2002:35-39.
[10] Tracz W.Domain-specific software architecture (DSSA) frequently asked questions (FAQ)[J].Software Engineering Notes,1994,19(2):52-56.
[11] Tracz W.Confessions of a UsedProgram Salesman Institutionalizing Software Reuse[M].New York:Addison Wesley Publishing Co.,1995.