软件质量模型

2024-07-16

软件质量模型(精选十篇)

软件质量模型 篇1

随着信息技术的发展以及管理软件在企业管理过程中应用的日益普及,人们对管理软件质量问题的关注也日益增强,尤其是在一些重要场合,软件失效会给企业带来巨大的经济损失。因此,对于企业管理者而言,他们迫切需要知道企业管理软件在使用中的质量水平。如何评价管理软件的质量就成了软件质量研究领域的一项重要课题。在国际标准ANSI/IEEE Std 729-1983中,软件质量被定义为:“与软件产品满足规定的和隐含的需求能力有关的全部特征和特性,包括软件产品质量满足用户要求的程度、软件各种属性的组合程度、用户对软件产品的综合反映程度、软件在使用过程中满足用户要求的程度。”[1,2]从产品角度来看,软件质量依赖于软件内部属性及其组合。因此,为了对软件产品质量进行度量,首先必须对影响软件产品质量的各种因素进行度量,并建立实用的软件质量度量体系或模型。Rubey和Hartwich(1968)提出了软件某些属性的度量方法。Boehm(1976)提出了定量评价软件质量的概念,给出了60个软件质量度量公式和度量层次模型。Walters和McCal(1978)提出了包括度量要素、准则和度量在内的三层次软件质量度量模型。G.Murine(1983)又提出了软件质量度量技术,用于定量评价软件质量。国际标准化组织也在1985年提出了软件质量度量工作报告。国内学者在软件质量评价方面的研究起步较晚。侯炳辉教授等人(1997)在对35个国家级信息系统进行评价时,从信息系统主体、信息系统客体和信息系统外部社会等三个角度出发建立评价指标体系。遗憾的是,该指标体系是针对于国家级大型信息系统而建立的,总共含有26项指标,该指标体系对于企业管理过程中的软件系统的质量评价并不适用。刘鲁教授(1995)从系统建设评价、系统性能评价和系统应用评价三个方面建立了信息系统的综合评价指标体系。不足之处在于没有给出相应的评价方法,所以在实际应用中缺乏一定的可操作性。文献[3]中,王胜芝(2002)参考相关软件质量评价模型提出了一套包含21个指标的两层式软件质量模糊评价体系。但是该指标体系分类不够精细,具体应用在软件评价的哪个阶段也不够明确。所以在管理软件质量评价中难以把握和应用。文献[4]中,韩润萍(2002)提出了一套软件质量评价体系,但是该体系的评价对象是针对教学质量评价软件,对于企业管理软件质量评价是不适用的。综上所述,可以看出,目前学术界专门针对企业管理软件在使用过程中的质量评价问题研究还几乎处于空白状态。所以本文的研究对于企业管理软件使用过程质量评价问题具有良好的指导意义。

1 企业管理软件质量灰色评价模型

采用灰色理论作为管理软件质量评价的基础理由是,部分信息已知,部分信息未知的小样本、贫信息、不确定系统。企业管理软件的使用过程中的质量评价结果受到经济效益、社会效益、管理科学性、用户满意度和系统功能的应用程度等内在因素的影响。而这些因素的变化和评价具有小样本、贫信息的特征,属于灰色系统的研究范畴。因此,建立基于灰色系统理论的评价模型,更有助于对问题本质的准确描述和分析,使评价结果更加客观合理。

1.1 管理软件质量评价指标体系

企业在生产经营过程中,由于业务发展的实际需要,往往会对现有的管理软件系统提出新的功能需求,所以管理软件的可扩充性和可移植性等指标显的尤其重要,对于软件质量的高低起到了决定性作用。本文综合分析了现有的文献,从软件使用阶段和软件维护阶段两个方面提出一套含有二级指标的管理软件质量评价体系,如表1所示。

1.2 评价指标权重的确定

权重是多层次综合评价中的一个关键因素,科学性和合理性决定评价的准确性,计算的方便性则影响评价的效率。本文采用相对比率法[5],计算过程如下。

设fi为一级指标的权重,i=1,2,…,m-1;fi,j为二级指标的权重,j=1,2,…,ni;则

在一级指标中,首先按照各个评价指标的重要程度从高到低依次排列,然后确定两相邻指标的相对重要系数:ri(i=1,2,…,m-1)令排位最后一个指标的绝对重要系数为1,即rm′=1,可以计算其他各指标的绝对重要度系数。即

同理,二级指标的绝对重要度系数为ri′,j=ri′,j+1·ri,j,ri′,ni=1;权重系数为。由此可获得两级评价指标的权重向量F=[fi,j],如表1所示

1.3 评价样本矩阵的确定

设有5个专家组成评价小组,采用四级评分制,4分表示质量很高;3分表示质量较高;2分表示质量低;1分表示质量较低。根据专家评分,可以构造软件质量的评价样本矩阵A=[aijk]。

1.4 评价灰类和灰色评价系数

按照四级评分构造四类灰类及白化权函数(如表2所示)[6,7],则评价指标(i,j)属于第h个灰类的评价系数为

灰色评价权矩阵的确定。

根据式(2)和表2中的白化权函数,可计算出该样本的灰色评价权矩阵:

加权评价系数矩阵和软件质量综合评价值。加权评价系数矩阵为

根据表1、式(3)和(4)可以算出样本的加权评价系数矩阵

软件质量综合灰评价系数为R=Rij[4,3,2,1]T=2.75

所以管理软件质量综合灰评价系数R近似于平均值2.5,表明该管理软件质量为中等。

2 结论

通过构造灰类以及白化权函数,将各个指标隶属各个灰类的程度进行了量化根据评价模型,得到了管理软件的质量隶属与优、良、中、差的程度。最终得到了软件质量的灰色评价系数。该评价体系和数学方法在企业管理软件质量评价工作中具有良好的指导意义和应用价值。对评价指标体系进行完善是未来进一步研究的课题。

摘要:管理软件的质量评价是企业软件管理工作中重要的活动之一。从软件使用阶段和软件维护阶段构建了一套管理软件质量评价指标体系,采用灰色建模方法将该评价体系结合实例进行分析和验证。研究结果表明该方法的有效性。

关键词:管理软件,质量评价,灰色系统,数学模型

参考文献

[1]刘鲁.信息系统设计原理与应用[M].北京:北京航空航天大学出版社,1995.132-140.

[2]陈禹.信息经济学教程[M].北京:清华大学出版社,1998:184-201.

[3]王胜芝等.软件质量综合评价方法研究[J].计算机工程与设计,2002,(4):16-18.

[4]韩润萍等.教师教学质量评价信息系统[J].北京服装学院学报,2002,(2):41-46.

[5]李南.工程经济学[M].北京:科学出版社,2000:105-130.

[6]刘思峰,郭天榜,党耀国.灰色系统理论及应用[M].北京:科学出版社,1999:89-97.

高质高效软件开发能力模型 篇2

至今,我在Motorola网络部工作超过了5年,所在的产品线也是采用统一软件开发过程和敏捷思想(但不是SCRUM)来组织软件开发活动的,但这5年多的工作经历从未引起我象微博上对于SCRUM话题的激烈讨论这样的思考,原因之一可能是,公司的流程已经很成熟了且形成了一种文化,不论怎样的新人进入公司,都只需按照流程按步就班的工作就行了。另外,公司的开发流程并不包含象SCRUM所要求的形式化内容,使得我在工作中没有机会体会和思考各种行为的利与弊。

与周围的同事相比,我自认为自己的工作质量和效率都很突出,这归功于我所掌握的知识、工具、方法和形成的思想。这四大块内容也是将要出版的《专业嵌入式软件开发 — 全面走向高质高效编程》一书的骨架。然而,最近微博上对于SCRUM的讨论使我意识到,我的焦点更多地放在了工程师身上,而忽视了从组织的角度思考如何高质高效地从事软件开发工作。即使这样,我仍持这样一种观点:不论是怎样的开发方法,一定要最终从基层工程师身上找到着力点,因为软件产品的最终质量是他们“码”出来的。一个方法论是否真的有效,得看方法论能多大程度地帮助工程师高效地开发出高质代码,且该方法论被工程师所接受。注意,是“帮助”他们而不是“规范”他们。

对于SCRUM我还是一个门外汉(注:Motorola网络部被NSN收购后也要求使用SCRUM,希望到时能写些文章与大家分享所得与体会),但这并不妨碍我思考从事高质高效软件开发我们到底需要什么。

SCRUM是银弹吗?绝对不是,因为她只是一个很粗的开发流程框架,仍无法消除开发活动中的人为因素(但可以减缓)。如果SCRUM不是银弹,那将SCRUM引入到团队中时我们应如何本地化呢?

模型

纵观软件行业开发方法论的发展,大多关注于开发过程。这一点从瀑布模型、统一软件开发过程、CMMI和现在的敏捷软件开发方法无一例外。开发工程化的思想深深地影响着软件行业对开发方法论的探讨,但业内也以意识到了软件开发不只是工程,它更包含个体心理、行为等难以工程化的内容。在这里,我想抛砖引玉地提出自己的一个能力模型,来帮助思考我们到底需要什么、走向哪,

该模型存在抽象与具体两大层次。让我们先从抽象模型开始,如图1所示。

图1

从面象对象的角度来看,抽象模型是基类,而具体模型则是其派生类。高质高效的软件开发工作需要涉及多个部门的各种岗位,各岗位的能力模型应在抽象模型的基础上进行具体化。为了便于理解,图2所示了我所认为的软件开发工程师的能力模型。

图2

意义

引入这一能力模型的意义在于:

1) 让我始终牢记实现高质高效的软件开发是所有活动的根本目的。

2) 帮助我们在探索软件开发方法论的道路上时刻关注我们需要什么,并以此了解软件开发方法论解决了什么问题,哪些问题又是开发方法论不能解决的。

3)为人力资源管理提供一定的框架。引导组织思考:我们需要招聘什么样的人?人员培养的着力点是什么?

结束语

这个模型是我花了不到一天的时间想出来的,所以一定很粗糙。个人认为,这个模型不应只是一种文字游戏的玩法,更应包含一定的实证研究。比如,模型中的关键要素又是什么?各要素的比重是多少?但无论如何,我希望这样的模型不会让我们在诸如SCRUM这样的探讨中迷失软件开发活动的本原,这是我写这篇文章的根本出发点。

最后,欢迎读者提出自己的见解和参与讨论。我的微博是@杭州李云(新浪)或@杭州李云(51CTO)。

Q&A

1. 软件设计是质量之本,为什么在软件开发工程师模型中没有体现?

答:设计能力应体现在工程师的抽象与概括能力上,这两者在模型中已涵盖。

2. 在软件开发工程师模型中为什么没有体现建模的重要性?

软件质量保证模型探析 篇3

【关键词】能力成熟度模型;软件生命周期;软件质量保证

目前,软件企业面临的最大的问题是顾客对产品不满意,究其原因,软件质量保证技术的不完善是主要原因之一。就整体而言,我国的软件质量管理和质量保证工作仍处于创建阶段,国外的软件质量管理和质量保证工作也不尽完善,现有的软件质量保证是在软件开发过程中的每一步都进行“保护性活动”。主要内容包括对方法和工具应用的规程、技术复审、测试策略、保证与标准符合的规程,以及度量和报告机制。在技术上的主要手段是测试和复审,在管理上的主要手段是ISO9001的认证[1]。ISO9001是一种“静态”的质量保证标准,只规范了质量体系的最低可接受水平,并不描述一个组织如何实现这些系统质量要素来满足顾客的需求;CMM是一个致力于组织过程改进的框架,问题是并未提供有关实现关键过程域所需要的具体知识和技能[2],在一定程度上造成了开发过程的僵化,对于当前软件业来说也是很难实现的。

一、ISO9001与CMM的联系

CMM和ISO9001都涉及质量管理和过程管理,并且都受到类似的利害关系驱动,两者之间的相似之处总结为以下四点:

(1)它们的精神一致,都有一个基本思想:“言所行,行所言”;

(2)二者都强调管理、过程、規范化和文档化;

(3)ISO9001与CMM的出发点都是通过对生产过程进行管理来确保产品的质量;

(4)都源自以戴明为首的管理专家的制度管理思想。

首先,不管是CMM还是ISO9001都强调对产生应用软件之过程的管理,提高软件产品的生产效率和软件的质量,同时,软件工程理论的广泛运用也推动了软件产业由小规模生产到集成自动化生产迈进。这也充分说明,软件产品的质量不仅表现在最终产品的质量,还应该包含软件产生过程的质量,只有这样,才能使软件组织连续不断地生产出高质量的软件产品。

此外,CMM和ISO9001并不是孤立或彼此矛盾的。它们的核心思想都来源于埃华茨·丹明和约瑟夫·佐兰提出的全面质量管理思想,这种质量管理思想强调预防,而不是检修缺陷与错误改正。因此,它们之间的结合在理论上是可能的。ISO9001的每一个质量要素都可以对应到CMM2-3级中关键过程区域的特征上。而CMM在生产过程中的管理重点,又弥补了ISO9001在微观管理上的不足。另外ISO9001:2000版中增加的度量正好是CMM第四级强调的重点。

二、ISO9001与CMM的区别

(一)保证质量的方式不同

ISO9001作为质量保证标准,只论述了质量体系的最小需求,即合格质量体系的最低可接受水平。它是一种“静态”标准,企业只要符合它要求的条件并通过权威机构的审核,就可以通过认证,证明企业的内部管理已经达到一定水平,符合该标准规范的要求。而CMM则强调过程控制、过程管理、持续的过程改进。CMM不仅仅是对产品质量的认证,更是一种改善软件过程的模型,它以一种结构化的成熟度框架描述了软件管理和工程实践,指出了软件过程不断改进的科学途径[3]。它所定义的5个级别就像5个台阶,企业必须一步一步地“攀登”。每一个成熟度级别,既是企业发展的阶段性目标,又是评价企业能力水平的一个标准。当通过某一级CMM评估后,企业还必须持续不断地改进过程,其目标是要达到可持续发展、可优化的程度,以此来实现高质量、高效率、低成本的生产软件。因此,可以认为CMM是一个“动态”模型。

需要强调的是,ISO9001着重于考核产品的质量和产品过程的受控状态,给企业提供一种PASS/FAIL的检查体系,即企业的过程能力只有两种状态,虽然在缺陷预防和内审管理中涉及到了过程改进,但是并没有对改进的目标和方法进行指导和控制。CMM则重点考核软件组织的工程能力,而且突出不断改进、升级的要求。显然过程不断的改进、能力不断的增强,新技术的应用就会收到更好与更快的成效,产品的质量就会不断的得到提高和保障。

(二)认证审核过程不同

ISO的认证过程分为两个情况——机构或者通过了ISO认证,或者没有。如果机构通过了ISO认证,其过程已满足ISO9000的标准要求。与此不同的是,CMM给出的是过程改进的体系。CMM将软件过程划分成5个成熟度级别——从原始级(第一级)到优化级(第五级)。软件机构可处在其中的任何一个级别,它的每一级对所要实现的关键过程域都有详细的要求,并且强制企业能自我更新和持续改进,以实现缺陷预防[4]。这对于提高软件企业自身质量管理素质是非常有利的。

但CMM毕竟是一个在学术报告基础上建立起来的一套评估体系,它的认证结果是由SEI授权的首席评估员寄一封带有本人签名的信给被评估者,并在SEI备案,没有任何证书,终生受用,中间不再审查。而通过ISO9000认证的企业,要在中国技术监督局备案,并且发证给企业,并要求每年审查,所有参加多边认可协议的国家必须认可,适用性强。

(三)适用范围不同

ISO9001标准是一个适用于提供各种产品/服务企业的通用型的企业标准,而且主要是针对制造业制定的[5]。正是由于ISO9001的通用性,使得它无法满足软件企业更深层次的专业化管理需求。而CMM是专门针对软件开发企业设计的,可以帮助软件企业有效地管理软件过程。

ISO是通用的,并且是从客户和外部审计者的角度来写的,它提出的是最基本的要求,所以不是十分具体。而CMM是面向软件的,即面向软件开发人员的,它提供了机构内部过程改进的指南,而且CMM对每个级别的关键过程域都有很详细的说明,光CMM的关键实现的说明就有500页之多。

(四)管理层次不同

从管理层次上看,ISO要比CMM所处的级别高,ISO只是提出了一个质量管理框架,是属于指导性的框架,而CMM提出的框架是一个操作性很强的框架,其KPA过程非常明确地提出了过程目标和过程注意事项。

三、相关建议

在软件组织中,可以将ISO和CMM结合起来应用,即:把ISO作为软件质量管理的指导性框架,把CMM作为具体实施层的应用,这样就可以充分利用二者的优势来共同完成对软件开发过程的质量控制,从而达到既提高软件开发效率又保证所开发的软件具有较高的质量。我国中小软件企业在建立软件质量保证模型时,应该考虑以下几个方面的因素:

(1)某种程度上市场目标决定质量目标,只有能满足客户需求的软件才可以称为好的软件。

(2)在考虑最终软件成品的同时,要考虑软件过程的质量保证。

(3)全面质量管理及CMM思想的集成,要关注软件过程控制能力以及过程持续改进能力。

参考文献

[1]李娟.基于QFD的软件质量保证模型研究[D].西北工业大学,2006.

[2]李娟.CMM实施过程模型及实例化方法研究[D].中国科学院软件研究所,2005.

软件质量度量过程及模型研究 篇4

社会经济的高速发展, 世界经济的一体化, 信息技术产业链的不断加强, 信息作为现今社会进行生产建设的最主要生产力, 对于社会环境的经济建设起到了决定性影响。软件作为信息技术的主要依托体, 已经成为世界各国在进行综合国力的重要判断指标。

一、产品周期软件质量研究

根据我国对于软件质量相关性文件中规定, 质量是对于产品整体能力运行的保证。软件作为现今社会中最为特殊的一种产品, 软件产品的质量就更改为使用者对于软件使用程度的满意度。信息在社会中被广泛地适用到, 人们对于产品的质量的关注度也在逐步提升[1]。

软件管理制度是对于软件质量的确保, 在让使用者进行无不满意度的前提下进行软件管理。软件管理体系是对于软件公司与消费者共同利益的总体保障, 进而保障软件公司其他款软件的开发。软件度量是对于软件整体开发规程后期检测过程的总结性表述, 并对于软件进行相对应的理解, 让软件更加符合使用者的需求。在软件进行投入市场使用那一天开始, 软件管理制度就一直成为软件设计中的重要组成, 软件在进行设计初期就应该对于产品的使用人群与使用人群的要求进行全方位了解。在进行软件过程中, 将软件在设计中产生的错误进行发现解决。在软件质量管理理论不断完善的今天, 人们已经对于软件质量对于经济的影响已有严重性认识, 对于软件不进行周期性的管理, 将是对于使用者经济利益的不负责任。

软件产品在面对周期性的考核过程中, 将对于使用过程中的问题进行更加详细的了解, 进而将产品的质量进行了保证[2]。

二、软件质量管理体系改进方向

面对软件产品质量这样严峻性的问题, 建立相对应的检验体系是软件公司对于软件产品质量的一个保证, 全面性质的对软件进行监控, 将软件改进后产品的质量与快速的解决方案进行解决是软件管理系统进行全面建设的主要质量[3]。作为时下社会依赖最为强烈的行业, 在进行相关性建设所需要的经济与人力都将进行重点投入, 在进行项目设立设立过程中一顶要注意对于产品风险的预测。社会对于信息技术的依赖程度正在加大, 若出现因为软件质量造成的损失将是十分严重的。从软件的根本上价钱信息资源的安全性, 在软件设计过程中对于产品的质量进行保证, 加强软件公司在对于软件质量方面的监控, 软件质量的保证是目前软件公司的工作重点。

在进行软件管理质量体系的建立初期就应该对于体系的基本思想的确定。将软件公司的管理层工作进行完整性的协调过程中, 将软件管理质量的标准进行确定是对于软件质量的基本需求, 软件公司设计生产的任何一款软件都应该满足软件管理质量体系对于软件的要求, 将软件的产品质量进行明文、明确的规定, 标准的软件管理质量将成为软件质量的精神支撑。相对于完善的技术运行方案是对于软件管理质量体系正常运行的实际操作要求, 软件在进行运行过程中需要存储大量的信息, 信息范围十分广泛, 软件需要对于这些错中复杂的信息进行科学性的编写, 让信息更加具有条理。软件管理质量体系在进行设计中需要根据软件公司的实际运营情况进行设计, 设计出最符合软件公司进行软件质量管理的体系[4]。软件质量管理体系需要不同方面的整体协调才可以进行。

三、结论

随着社会环境, 信息技术正在进行快速发展中, 相关方面的软件公司对于竞争激烈的市场的适应能力充满了挑战。在软件公司进行软件开发过程中, 所设计的软件与公司的实际使用存在着明显性偏差, 本文对于目前市面上的软件进行详细的分析, 从软件产品的质量作为研究分析的基础, 对于怎样加强软件市场产品质量进行全面性的分析, 将软件公司的经济利益与产品质量进行紧密结合, 将软件产品的质量进行保证。

软件管理工作是一项需要软件公司长期进行保持的一项工作要求, 在进行软件质量检测过程中, 对于经济与利润等条件进行限制的过程中, 在最大程度上对于软件的质量做到保证。

摘要:二十一世纪作为一个信息高度发展的社会, 各种各样的计算机软件也逐渐从应用到人们的生产生活中, 软件的生产质量越加受到社会个行业人们的重视。在进行软件开发过程中对于产品的质量我国大部分软件公司并不是太关注, 结果造成我国软件公司软件止质量无法得到保证, 软件设计与用户的使用需求存在较大差距。增强我国软件公司对于软件质量进行保证, 是软件公司在今后的市场中占有重大比例的关键, 对于软件质量的保证对于信息技术的长期、可持续发展具有重要作用。

关键词:软件质量,信息系统,度量过程,度量模型

参考文献

[1]杜金环, 金璐璐.软件质量度量过程及模型研究[J].计算机技术与发展, 2014, 04:38-40+44.

[2]范莉莉, 刘天时, 梁党卫, 赵安科.一种软件质量度量模型的研究与应用[J].航空计算技术, 2006, 02:40-43.

[3]兰雨晴, 高静.软件质量度量和软件过程度量[J].计算机系统应用, 2003, 09:69-72.

基于模型的软件测试技术探析论文 篇5

基于模型的`软件测试技术根据被测试应用程序的分析设计模型,自动生成测试模型、产生测试用例和进行测试结果评价。

2.2 软件测试自动化水平及测试效率高

基于模型的软件测试在测试过程中,首先提高了软件测试效率,减少了测试人员的工作量;其次在软件成本降低的同时,软件产品质量提高了;最后,可以随时生成各种统计数据,提高高层监控整个软件测试过程的能力。

2.3 有效解决了测试失效辨识问题

基于模型的软件测试技术是对其他软件测试技术的有效补充,往往能发现其他测试技术难以发现的故障,尤其是对逻辑复杂故障测试效果好,保障了软件质量。

3 模型的软件测试存在的主要问题

模型的软件测试工作是一项具体且全面的工作过程。首先,工作人员方面,不仅需要测试人员具备一定的理论基础,还要掌握相关工具使用方法。其次,在实际应用过程中,我们发现基于模型的软件测试技术存在不少软件质量问题,尚不能取代已有的其他测试技术,还需从事此行业的工作人员进一步研究和实践,更好的补充其他测试技术不足之处。以下简述了存在的几个主要问题并进行了简要分析。

3.1 误报问题

误报问题是系统没有发生故障而报警,误报信息是模型的软件测试技术普遍存在的问题。这是由于一些故障的发生和确定是在动态的信息执行中形成的,而基于模型的软件测试技术大多是静态分析技术,误报问题在静态分析的测试工具工作中是不可避免的。以下以OCL在建模的进程调度系统中的静态模型为例,见图1。 图1 静态模型 上图是对系统的静态描述,虽然可以形成所需模型,但是显然对该系统的描述还是不精确的。我们知道,处在就绪状态的进程和等待进入就绪状态的进程集合之间是不相交的,而系统中始终只能有一个处于活动状态的进程,活动进程与前两个进程也不会发生集合。这样,静态图的生成并不是准确的,误报问题由此产生。现在不少高校和研究所将动态测试与静态测试进行互配测试,以期解决测试中的误报问题。

3.2 漏报问题

即时通讯软件发展模型的实证研究 篇6

摘要:即时通讯到目前为止仍是网络上最为流行的通信方式。本文通过从市场环境的变化,用户需求的改变以及技术的进步等方面对即时通讯软件发展路径进行分析研究;利用关键因素分析法建立即时通讯软件发展模型;根据不同因素的变化对即时通讯软件的影响提出相应的对策。

关键词:即时通讯;发展模型

随着近年来IM软件在我国的快速发展,我国使用IM即时通讯软件的人数俱增,同时即时通讯软件的应用服务也越来越广泛,逐步为人们所接受并广泛应用,如随时发布状态,聊天,视频等,这些功能有着快速、有效的优点,有取代电子邮件和固定电话之势,成为许多Internet用户最喜爱的互联网应用服务之一。

IM整体市场发展总体分为三个阶段:PC端时代、移动端时代、云时代。在1999年时,迎来了即时通讯工具PC端时代,满足了用户的基本需求,用户是用处被动的接受地位,此时的运营商是封闭性-垄断的;2003年时,为了满足用户多样化需求,用户一改被动单方接受到了自发,而运营商也变为了半封闭性的寡头垄断;2014年,到了如今的云时代,为了满足用户个性化需求,用户也开始创造,开启了开放性的百花齐放的时代。

1.IM软件发展路径研究

1.1用户需求进步

(1)生活需求:最早用户只需相互传递文字信息,但随着经济的发展和用户本身日常活动的日渐丰富,开始需要图片信息和相关动态的即时传输和分享。

(2)工作需求:最初个人和企业更多的是寻求与同一工作团队和同事之间的交流和沟通,但随着经济的发展和跨国集团的快速发展,异地团队管理的需求等出现。

1.2技术进步

(1)互联网技术出现和发展:1999年QQ作为中国第一代即时通讯软件的出现,给人们的生活带来了巨大便利和影响。

(2)智能手机技术的出现及其发展:当智能机出现之后,手机可以通过下载安装新的应用,实现新功能的扩展,并使得运营商能够在已经售出的手机上部署新的业务。这使得2003年之后移动端应用的即时通讯软件如QQ、阿里旺旺等手机版APP应运而生,进一步发展。而现今微信的高速发展更是搭了该技术不断发展的顺风车。

(3)云计算技术的出现及其发展:云计算可以说算是继个人电脑、互联网之后的又一革命性技术,这种技术将在未来数年内统领IT行业的发展方向,并改变我们使用信息技术的方式。由此可见,应用于云端的即时通讯软件将影响现有的即时通讯软件及其发展,因此应用于云端的IM软件出现和发展信息时代的大势所趋

2.IM软件发展模型

2.1关键成功因素法

2.2 IM软件用户需求模型

2.3问卷调查及数据分析

2.3.1 问卷调查表

请根据您对即时通讯软件的实际使用情况填写,其中非常不同意选1,一般选3,非常同意选5.

1 2 3 4 5

PEOU1 学习使用即时通讯软件是容易的

PEOU2 记住怎样使用即时通讯软件是容易的

PEOU3 与及时通讯软件的交互是清楚明白并且易懂的

PEOU4 熟练使用即时通讯软件是容易的

PU1 使用即时通讯软件更方便与人进行交流

PU2 使用即时通讯软件与人的交流变得更有效

PU3 使用即时通讯软件能够接触到更多的信息

PU4 使用即时通讯软件能够接触到即时、最新的消息

PU5 使用即时通讯软件能够更快地完成工作(或学习)

PU6 使用即时通讯软件能够改进工作(或学习)业绩

PU7 使用即时通讯软件能够改善工作(或学习)质量

PU8 使用即时通讯软件能够提高工作(或学习)效率

A1 使用即时通讯软件是一个好的主意

A2 使用即时通讯软件是明智的

A3喜欢使用即时通讯软件

A4 使用即时通讯软件令人感到愉快

A5使用即时通讯软件是有价值的

BI1 将会经常使用即时通讯软件

BI2 将会积极推荐其他人使用即时通讯软件

PP1使用即时通讯软件是有趣的

PP2使用即时通讯软件是令人兴奋的

PP3 使用即时通讯软件能够激发想象力

P1 相信即时通讯软件使用的技术能够保护我的隐私

P2 对即时通讯软件的隐私问题并不担心

P3 隐私问题对使用即时通讯软件没有影响

PI1即时通讯软件的创新点很特别

PI2即时通讯软件的创新之处很有用

PI3对即时通讯软件的创新之处很有兴趣

PI4即时通讯软件的创新之处很重要

2.3.2样本基本特征

调查共计发放150份问卷,由于是即时回收,回收率为100%。经过检查,对不合格的问卷进行剔除。问卷剔除的准则是“问卷回答缺项太多”和“所有答案均一样”。剔除无效问卷后,得到有效问卷135份,有效问卷率90%,详细情况见表1所示。

2.3.3模型假设检验

使用SPSS进行信度分析和效度分析,用Amos软件进行模型分析。具体地假设检验结果见表2。结果显示,使用的行为动机受到创新性、态度、隐私三个变量的共同影响,与所提出的假设(H5和H9)相反,感知趣味性和感知有用性对使用的行为动机没有显著的影响。另外,感知创新性、趣味性、易用性通过态度变量对使用的行为动机有着间接的影响。

3.IM软件发展对策

3.1企业角度

就企业而言,现有阶段的即时通讯软件存在以下弊端:大多数企业在最初引进即时通讯软件都需要对其现有内部信息系统进行二次开发以实现二者的兼容;IM软件的运行会占用企业内部网的一部分流量,在网络繁忙期或遇到其他特殊情况时可能会导致信息无法正常传递;IM软件正在迅速成为计算机病毒和其他有害程序传播的途径;员工使用IM工具在上班时间闲聊,降低工作效率;信息安全仍受威胁;现有的IM软件各自为政,不同厂商开发的软件之间难互通,影响企业与客户间的交流;IM软件的发展趋势——统一通信。

我们提出的相应对策如下:

(1)提高即时通讯软件的有用性,将即时通讯软件打造成能融合文本、语音、视频,以及短信、网络传真、视频会议等各种新兴通讯手段的一种既简洁又融合的通讯平台,并且提供第三方API接口实现与其他软件终端的运行和对接,企业若要最大程度地将企业资源转化为商业价值,只需通过简单的操作便能迅速部署。

(2)提高即时通讯软件的易用性,企业即时通讯是一种全新的运营模式,其满足了企业内外协作、架构管理及管控方面的需求,账户由企业管理员同一申请,并按照企业的通讯架构分层级清晰显明,适合任何规模的企业操作。若有员工离职其账号仍由企业收回,从而避免了人脉流失问题。在满足企业内部管理的同时,应降低IM软件的占用内存,避免在网络繁忙期或遇到其他特殊情况时信息传递障碍。

(3)提高即时通讯软件的趣味性,适当增加一些娱乐方面的功能,就可以在不影响员工正常工作的同时缓解员工工作的疲劳。

(4)提高即时通讯软件的隐私性,企业应该为即时通讯软件设置类似防火墙等方面的功能来加强对外界有害程序的抵挡,

(5)提高即时通讯软件的创新性,每个即时通讯软件都要有其自身的创新点,企业即时通讯软件可以开发其特有的功能,提高办事效率。

3.2个人角度

个人用户对于IM软件的功能相对于企业来说是较低的,但我们仍从有用性、易用性、趣味性、隐私性、创新性这五个方面提出相应的对策:

(1)有用性:即时通讯软件对于个人用户而言最基本的功能就是进行人与人之间的沟通交流,因此我们应该进一步加强即时通讯软件的可互动性。

(2)易用性:个人用户的即时通讯软件的易用性主要包括随时随地和不同设备随时查看。

(3)趣味性:IM软件不仅仅是一个交流沟通的软件,它同时也是我们日常生活中消遣娱乐的重要工具,因此增加即时通讯软件趣味方面的功能是十分必要的。

(4)隐私性:除了常规的隐私安全,在IM软件中还涉及用户隐私的另一个问题就是,用户不想让别人知道自己加入了哪些群。

(5)创新性:企业即时通讯软件需要创新,个人用户的IM软件也不例外,创新是一个即时通讯软件能够继续发展的基本动力。

4 总结

本文以IM即时通讯软件的发展为研究对象,以ATM为理论基础,采用问卷调查法,对影响即时通讯使用的用户需求进行实证分析,以此为基础可以研究我国即时通讯软件的发展路径及发展情况,发现问题并提出相应对策,最终的研究结果可以为即时通讯软件的设计人员提供参考。

参考文献:

[1]张守凯,李鑫霞.浅谈中国即时通讯的发展[J].广西大学学报,2010(32):P45-46.

[2]张文茂,张淼,毕军,等.互联网即时消息的研究现状与展望[J].小型微型计算机系统,2007,28(7):P1162-1168.

[3]叶佩珍.国内外IM咨询服务发展现状及趋势分析[J].现代情报,2010,30(7):P83-92.

[4]单文盛.浅谈即时通讯软件业的现状和发展[J].中国高新技术企业,2009(11):P94.

[5]徐春雨,田玥.基于C/S与B/S架构的IM软件的研究与分析[J].黑龙江科技信息,2011(14):P67.

[6] 李锐.浅谈即时通讯工具现状及其发展趋势[J].中国科技信息,2013(16):P86-86.

[7] 霍艳艳,沈靖瑞.即时通信软件的发展及现状研究[J].河南科技,2014(1):P8.

[8]鲁耀斌,徐红梅.即时通讯服务使用行为的影响因素实证研究[J].管理学报,2006(5):P614-621.

[9] 刘伟.浅谈即时通讯软件与电子商务的发展[J].通讯世界,2013(13):P20-22.

[10] 孙涛.现代网络即时通讯软件的发展分析[J].电子制作,2012(10).

[11] 曾文思.智能手机应用软件的感知创新性研究[J].媒体时代,2015(12).

[12] 刘剑丽,陈金鹰,朱军.IM即时通信技术特点及发展趋势[J].通信与信息技术,2012(3):P73-74.

[13] 曹金燕,曹克亮.新媒体即时通讯工具比较研究--以微博、微信为例[J].求知导刊,2015(11):P31-32.

[14] 郭思薇.IM即时通信工具安全管理技术研究与实现[D].北京邮电大学,2012.

[15] 韦雷.浅析即时通讯软件业的现状和发展[J].科学与财富,2014(8):P409-409.

[16] 张珍珍.浅析企业即时通讯工具的弊端及其应对策略[J].知识经济,2010(4):P94-94.

软件质量模型 篇7

关键词:能力成熟度模型集成,软件过程质量度量,软件质量度量模型,软件质量度量实施

度量是根据一定的规则赋予软件过程或产品属性的数值或类别。数值是对软件产品、软件过程的特征的量化计数的结果,类别是特征的定性表示。软件度量[1]是以特定的方式对具体的软件过程进行度量的定义、方法、活动和结果的集合。现存的软件质量度量模型主要分为面向产品的质量度量模型和面向过程的质量度量模型两大类,其中面向产品的质量度量模型主要包括Boehm模型、McCall模型、ISO/IEC9126模型等。面向过程的质量度量模型目前研究较少。

软件过程度量不仅可以有效降低产品的质量风险,而且还可以提前对软件产品缺陷进行规避。这不仅缩短了对缺陷的反馈周期和整个项目的开发周期,而且也大大降低了对软件产品的维护费用,对于软件产品的整个生命周期都有很重大的意义。目前根据CMMI模型提供的软件过程框架对不同级别的个别软件过程进行度量,但仅仅是对极少数软件过程进行分析,且停留于理论上的论证而没有具体实现。

CMMI[2]是目前在业界应用非常广泛的一套与过程改进相关的规范与标准。随着软件规模和复杂度的不断增长,软件开发具有脑力密集型、实现不具唯一性、隐性成本高、细节很容易被放大、质量评估很需专业的高水平等特点。那么随之而来的是软件开发风险增加、软件质量很难得到有效地控制。本文针对以上问题,结合GQM(Goal Question Metric)模型[3]给出了一个基于CMMI的软件质量度量模型及基于此模型的一个小应用。此度量模型对CMMI中关键过程域的目标和软件过程质量度量的度量目标进行了分析,由此确定了软件过程质量的共性度量目标和分别在五个阶段里的个性度量目标,然后根据本文提出的度量模型先确定度量目标并将度量目标分解为度量问题,再由度量问题确定度量元,最后实施软件过程质量的度量。

1软件过程质量度量模型

软件质量度量模型通常是用来描述影响软件质量的特性[4]。下面针对软件企业如何使用CMMI进行软件质量度量进行了研究,并建立一个适合软件企业的软件过程质量度量模型。

按照CMMI的软件过程框架,把软件过程分为五个层次,任何一个软件过程必处于其中某个层次,不同层次的软件过程具有不同的典型特征。在CMMI的过程层次描述中,第四层是量化管理层,该层的过程特点是通过量化信息进行过程管理。但这并不意味只有在第四层或以上层次的过程才能进行过程性能度量。因为这与过程的成熟度没有直接关系,依据软件度量的概念,任何层次的过程都是由数据表现的,如果软件组织中有收集数据的能力,或者已经存在通过数据来计划和实施工作的方式,那么就能够实施过程质量度量,只不过很多软件组织可能由于资源和能力的限制,只能采取粒度较粗的度量。

下面以软件能力成熟度模型集成(CMMI)为基础,并结合GQM模型构建了一个软件过程质量度量模型,如图1所示。在该度量模型中,软件的过程质量决定了软件的过程能力成熟度,反过来又受软件过程能力成熟度的影响。该模型的软件过程质量度量目标与CMMI过程域的映射关系如图2所示,通过该映射关系图我们可以明确知道软件过程质量度量的度量目标为:提高资源和费用利用率、提高产品和服务质量、控制过程依从性、提高技术能力、提高生产率、缺陷管理、加快时间和进度、提高稳定性、提高评审有效性等。该度量模型将软件过程质量分解为各个阶段的过程质量,每个阶段的过程质量主要受过程的共性质量目标(和多个过程活动都相关的质量目标,如:进度、资源和费用、开发性能等)和过程的个性质量目标(只和当前的过程活动相关的质量目标)的影响,每个质量目标又可进一步分解成一个或多个要度量的问题,这为获取最后的度量元提供了基础。

对CMMI的一个单独的过程域而言,它给出了一系列的目标(包含特定目标和共性目标);最后,针对每一个目标,细分实践来实现,而每个实践又可再分为具体的子实践。因此,我们要求软件过程质量目标的每个问题都要参照与同该目标有映射关系的CMMI过程域的目标,度量元的选取则参照相应过程域目标的实践。因此度量元能够反映关键过程域的成熟度。在该度量模型中可以将质量目标的每个问题分解到各个过程活动中,通过对软件过程能力成熟度的评估来推断软件质量,是一个面向过程的软件质量评估方法。

对软件过程度量的改进主要从提高软件质量、提高生产效率和降低软件成本进行,这三方面涉及的共性质量目标就是软件过程质量度量目标。软件质量度量的个性质量目标是指只和当前的开发阶段相关的质量要素,因为其在不同开发阶段所产出的产品不同,其度量方法也不相同,各阶段对应的个性质量目标及与其相关的主要CMMI过程域如表1,个性质量目标的每个问题都要参照与其相关的CMMI过程域的目标。

2 软件度量主要活动

度量软件过程主要包括制定度量计划、将度量集成到过程中、数据收集、度量分析和过程改进五个步骤。度量活动从制定计划开始,制定度量计划的过程分为三个阶段:阐明目标;确定过程管理问题;选择和定义相应的过程度量。确定了度量元之后把最终的度量活动集成到组织的软件过程中,然后依次进行数据采集和度量分析,然后根据分析结果对过程域进行改进。整个度量活动是一个循环迭代的过程。整个度量流程[5]如图3所示。

2.1 度量计划

度量计划活动的每个阶段都是建立在前面阶段的基础上。度量计划包括以下步骤。

2.1.1 确定商业目标

根据公司自身的特点,确定其商业目标,理解它们与软件过程的联系。因为我目前实习的公司的某些软件产品会产生很多bug,所以我们以缺陷管理作为度量的目标,并根据度量结果进行软件过程改进。

2.1.2 确定过程问题

根据提出的模型,缺陷管理与CMMI的工程类、项目管理类和过程管理类过程域具有映射关系,参照这些过程域的目标列出该目标的过程问题如表2所示。

2.1.3 选择、定义度量

对潜在问题进行分组。确定过程问题以后,就开始选择和定义度量元。可以使用目标驱动的过程度量建模方式进行度量定义。最后将已定义的度量过程与软件过程结合起来。

选择和定义度量是度量计划的核心部分,该模型的选择和定义度量根据5个开发阶段先确定一组目标,并将目标分为共性目标和各阶段独有的个性目标;再针对各个目标,提出可能会遇到的问题,来定义这个目标;最后,针对每一个问题再给出一组测量方法,并用这一组测量方法测量出来的数据,就是对这个问题的回答。

管理缺陷在软件开发过程中各阶段都要进行,是一个共性目标,它反映各阶段参与人员的技术水平及管理能力,也在一定程度上可以预测最终产品的质量,通过对缺陷的管理为公司将对哪个方面加强管理有很大的指导意义。需要解决的问题包括:缺陷的个数、缺陷的解决能力。表2是缺陷管理到度量元的映射关系。

2.2 将度量集成到过程中

在确定了度量目标、问题、度量元之后,项目组还要讨论由谁负责收集数据,在什么时间收集数据,包括:确定个人和组织的职责;详细说明在何时何地以及怎样进行度量;定义用于记录和报告结果的规范过程;提供数据采集工具或者标准的填空表格以便于记录数据。当一切安排就序后开始采集数据。

2.3 数据收集

度量数据的采集是软件过程度量中非常重要的活动,对数据的分析以及在分析基础上采取的行动都是以采集的数据为基础。数据采集是一个过程,包括采集数据、验证数据和保存数据等活动。数据采集过程必须与定义的软件过程完整地结合起来。软件组织要对数据采集过程进行监控,确保采集到的数据及时、完整、正确和可靠。如果结果是可靠的,那么采集过程肯定是稳定的和受控制的。

存储数据的格式应该使用一种跨平台的格式,XML是Internet环境中跨平台的,依赖于内容的技术,所以推荐使用这XML格式的文件存储数据。Dreamweaver以及一些数据库等都可以编辑XML文件,网上还有一些word转XML的工具,企业可以根据具体情况选择合适的工具。

在全面实施度量前,最好首先在小范围内试验数据收集和度量计算规程,分析度量要求是否确切,尤其要检查需要主观判断的数据说明和要求是否足够清晰;检查样板度量过程的费用,修改或完善费用分析;检查所收集到的数据的准确性、度量单位的合适性、所收集到的数据之间的一致性,确认数据样本的随机性、最小样本数、相似性等。

对某软件公司开发进销存管理系统的缺陷进行跟踪,通过对公司质量管理部门的项目质量数据表的整理:将该项目在各阶段发现的缺陷数据进行整理汇总,得到表3,表3中给出了该项目在每个阶段注入的缺陷数量和清除的缺陷数量。

2.4 度量分析

在度量数据分析时,应该结合度量目的、过程基线和期望值。分析时可以从支持软件过程活动的设施(方法、人员和实践)、保证软件组织具有执行和支持过程的能力(包括:技术、工具、设施和资金等)两方面展开。度量的结果以何种方式显示出来,直接关系到度量应用。企业可以根据需要生成散布图、趋势图、直方图、条形图、控制图、Parcto图等,通过这些图表可以直观地反映过程的稳定性、变化趋势、影响过程性能的因素之间的关联等。

由于表3中测试阶段产生的错误很多,所以重点研究测试阶段的缺陷数量,图4是测试阶段发现的缺陷分布的直方图。从图4可以看出系统管理模块的缺陷数量明显比其他模块多,并且经分析该模块中由于设计问题引起的错误有20多个,而且在整个测试得出的缺陷中由设计引起的错误也占了30%,但在设计评审中发现的缺陷有两个没有解决,说明设计评审中有很多问题没有发现,所以以后要加强设计阶段的评审,让项目经理在进行设计时要更加详细,尽早发现设计中存在的问题。

2.5 改进过程

根据度量分析的结果制定过程改进方案,在制定方案时要从高层开始,综合各个层次的人的力量,围绕如何解决问题进行,同时要充分考虑方案的可靠性、实施成本和公司效益的平衡。过程改进是一个持续不断的过程,它既是度量的结果也是度量的动力,过程改进后还要通过度量验证它的可行性。在这个不断循环的过程中,使公司的过程能力不断提高、产品质量越来越好、开发进度也越来越快。

3 总结

以上都是我在某公司开始实施CMMI期间针对企业进行软件过程质量度量工作进行的总结,设计了一个软件企业实施软件过程质量度量的模型,在度量模型的设计、各阶段度量目标的选取、问题的设计以及度量元的确定方面都参照了CMMI并充分考虑了软件企业的特点。将质量目标分解到各个阶段,并把质量目标分为共性目标和个性目标,同时结合GQM模型,使软件过程质量度量具有更强的可操作性、更有效。

参考文献

[1]孔垂云.基于CMMI的软件质量度量研究.北京:北京交通大学,2009

[2]何小丽.面向中小企业的CMMI研究及其实现.成都:电子科技大学,2008

[3]李亚红,郝克刚,葛玮.基于GQM模型的软件项目进度的度量过程.计算机应用,2005;25(6):1448—1450

[4]郑人杰,殷人昆,陶永雷.实用软件工程.(第2版),北京:清华大学出版,1997:16—17

软件质量模型 篇8

本文首先对医学影像信息系统(Picture Archiving and Communication Systems,PACS)软件特点进行分析,整理出PACS软件主要的功能、特点以及应用的概况,并针对PACS软件的特点和质量要求,归纳在软件测试过程中应关注的重点及难点。以此为基础,描述产品质量评价时涉及的相关质量特性、子特性的选择依据和方法,依据《GB/T 16260—2006软件工程产品质量》标准,给出较为通用的PACS软件建议质量模型。

1 PACS软件产品特点及概况

PACS最初是在医院的放射科普遍应用,经过多年的发展,PACS已经从简单的几台放射影像设备之间的通信与图像存储,扩展至医院所有影像设备以至于达到不同医院影像之间的互相操作,实现影像资源的共享。医学影像存储与传输系统与放射信息系统、医院管理系统之间的融合程度已成为衡量其功能完善与否的重要指标。

医疗行业软件主要是对医学影像(非DICOM或DICOM信号)进行管理和传输。其特点主要为:(1)功能的正确———软件提供的功能项是否稳定和正确;(2)易浏览性———统计的医疗数据信息应准确、全面及直观;数据链接是否准确、实用;(3)良好的兼容性———可以与指定的数据格式进行数据的交换;(4)安全保密性———权限管理是否明确、适用;(5)规范的依从性———应符医疗行业所对应的规范要求;(6)效率———数据处理时间满足规范要求;(7)数据采集实时性———数据采集应是实时的;(8)安全可靠性———数据传输应完整。

2 PACS软件产品质量测试与评价时的关注点

PACS是一个涉及影像医学、放射医学、计算机与通信、数字图像技术等的多媒体DBMS系统,涉及图形图像、软件工程的综合及后处理技术,是一个实践性较强的高技术复杂系统。其主要应用方向为:(1)设备集群的使用。从数字化设备或多种影像设备中采集图像、拍照与打印等多种输出设备的共享;(2)影像传输与分发。在医院各科室之间快速进行图像数据的传输,完成远程图像的传输以及报告的诊断功能;(3)辅助医疗功能。对医学图像资料的统一处理、变换等基本管理。

由于PACS系统需要与医院内部的所有影像设备相连接,所以系统的输入/输出须支持DICOM3.0标准,中文为“医学数字图像及通信标准”。

对PACS软件产品质量的测试最基础的是要保证其正确的功能性、可靠性,针对其产品自身的特点,除功能性、可靠性方面,尤其应重点关注其易用性和效率的测试。如对于影像工作站软件,其易用性就应特别关注软件的成熟性、软件的共存性、软硬件环境的兼容性、安装简易化等;对于PACS软件,还应着重关注是否支持与HIS,RIS的接口,实现资源共享以及安全性、稳定性、效率、安全保密性等子特性。

3 PACS软件产品质量评价模型的建立

在评价PACS软件时,首先采用GB/T 16260.1—2006《软件工程产品质量第一部分:质量模型》标准,结合被评价软件的特点、质量要求,选择适用于被评价软件的质量特性、子特性及度量属性,针对被评价软件的特点,建立其质量模型;在模型建立的基础上,采用GB/T 16260.2—2006《软件工程产品质量第二部分:外部度量》标准,对被评价软件进行质量评价。在对PACS软件产品进行度量属性的选择和调整时,需做如下考虑:

(1)功能性。

PACS软件的功能性是其基本要求,尤其重要的是准确性、适合性、依从性等子特性。功能性中包括的安全保密性、互操作性等子特性,可根据PACS软件的需求有特定要求时间,可进行选择评价。PACS软件功能严格按照医疗行业的《医疗器械产品技术要求》中的要求来执行,这体现软件功能的依从性的重要性。

(2)可靠性。

PACS软件的可靠性也是其重要方面之一,其不同于一些管理类软件,对PACS系统的可靠性要求比较高,它不仅要有意外断电保护、系统故障保护,还要确保在网络环境下系统不应因某个工作站出故障而影响整个系统,系统框架设计要合理等。在评价其可靠性指标时,对其中的容错性、成熟性、易恢复性等子特性应着重评价。

(3)效率。

PACS软件的效率也是较为重要的一项指标。通常,影像工作站软件,在规定时间内能调用出本机图像和视频,就认为满足其效率要求,软件能正常使用,在无特定要求指标的情况下,在评价时可不选择效率子特性。而对于PACS系统软件,由于医院影像科室传输图像的量大,而且每个影像文件占用硬盘空间较多,需涉及网络通信的差异、用户进行并发访问等因素,就需要进行软件效率的评价。在对效率特性进行评价时,最基本的应包括间特性、资源特性等,采用压力测试、疲劳强度测试等测试方法进行。

(4)易用性。

PACS软件的易用性也是重要质量要求之一,其中易学习性、易操作性、易理解性、吸引性等子特性的要求在医学影像类软件中尤为重要。对于PACS软件的适用者应是受过专门培训的医疗专业人员,对于易理解性和易学习性可通过培训来体现,那么着重应关注软件的易操作性,软件操作简单明了,提供专业术语字库,定制诊断报告,这些都易于提高医生的工作效率。

(5)维护性。

PACS软件的维护性体现了其交付后是否可维护的能力。在PACS系统软件中,由于系统涉及不同类型的影像工作站之间的操作与数据传输,情况较为复杂,通常在易于分析、易于改变等方面具有一定的要求。

(6)可移植性。

PACS软件的可移植性主要对其可应用于不同环境的能力的体现。一般情况下,共存性、软硬件环境等在所有医学影像类软件中均有一定的要求。对于影像工作站软件,易安装性方面比较重要,而在PACS系统软件,对组织环境的适应性、数据结构的适应性等具有一定的要求。

根据GB/T 16260.2—2006《软件工程产品质量第2部分:外部度量》标准,通过对PACS软件特点的分析,对标准中的112个度量元进行合理的选择,对评价模型进行适当的裁减,规定度量模型中质量特性的权重,便于对PACS软件质量进行评价(见表1—3)。

4 PACS软件产品质量评价说明

在实际测试中,应根据软件的使用文档或软件需求规格说明书中所规定的质量需求,结合软件的特点、应用环境、适用人群及技术架构等方面来确定软件的质量模型,选取合适的度量元。

对于PACS软件产品,目前尚无国家标准和行业标准,由企业根据相关条例及管理办法自行制定本企业的《医疗器械产品技术要求》,开发符合该标准的软件。对于此类软件的测试,应根据其注册标准中规定的特性要求确定测试的质量需求,选取合适的度量元,建立满足测试需求的质量模型。文中根据PACS软件的特点,结合相关标准,整理出了PACS软件质量评价的参考模型。测试人员在对该类软件进行测试时,应根据其相关特点和质量需求,定义出适合被评价软件的质量模型,同时可参考文中的质量模型确定其模型的度量项及相应特性的权重。根据所选择的度量项,对各度量项目的权重进行调整。

软件质量模型 篇9

持续演化是软件系统的重要特性,软件的演化性在软件工程当中不断地得到体现。构建软件演化的过程模型有利于更好地对软件演化过程进行管理、控制、规划、分析和度量,从而提高演化后软件的质量,降低演化的成本。软件演化是一个动态的过程,这一过程的实施结果是发生演化前的软件转化成为了发生演化后的软件。本文用工作模型来刻画软件的工作过程,把演化前后软件的工作模型作为软件进行演化的开始和结束状态,试图通过对这两种状态进行横向的比较和分析推导出软件在演化过程中执行的各种活动。软件的演化活动图描述了这些活动之间的逻辑关系,可以进一步转换为Petri网形式的演化过程模型。

1相关工作

软件演化的研究正越来越被人们所重视,尤其在对软件演化过程的研究领域许多专家学者已取得了一些成果。Lehman等人对软件演化过程作了大量研究,把演化过程模型看作是一个多层次多循环的反馈系统[1],并提出了一些建模方法,如E类型软件演化的动态建模方法[2];提出“软件过程也是软件”的Osterweil等人[3]也在过程研究和建模语言等领域有大量成果; Fuggetta等人也对软件过程的研究与发展进行了很多探讨[4];本文作者的导师李彤教授等人在软件演化过程的研究领域中对软件演化过程的建模方法以及建模语言作了大量研究,也取得了很多研究成果[5]。在前人的研究基础上本文提出了一种新的构建软件演化过程模型的方法。

2软件的工作模型

软件的工作模型描述了软件是如何实现具体的功能,可以把工作模型理解为用某种形式体现的软件系统的功能流程图,本文是用经过了扩展的C/E系统来描述软件工作模型的。软件的不断演化形成了软件的不同版本,与此同时也产生对应于不同版本的工作模型。工作模型就是软件在演化过程中的一个静止的状态,或者称其为软件演化过程的一个刻面。

定义2.1[6] C/E系统 ∑=(S,T,F,C)称为一个条件/事件系统,或简称C/E系统,如果:

1) (S,T,F)是一个网。 2)C是一个标记集合,若M1,M2为C中的任意两个标记,则定有一序列g1,g2,…,gn,使得M1能够经由g1,g2,…,gn到达M2。 3)对T中任一事件e,必存在C中的一个标记,使e在标记下能点火。

定义2.2 软件工作模型 一个工作模型是一个经过了扩展的C/E系统,它是一个六元组 W=<V,L,C,A,F,M>。V为版本号,用来标识处于演化中的工作模型。L为模型的层次标识,表示该模型对应于第L层的工作模型。 C,A,F分别为条件集、活动集和弧集。M⊆C为标记。

定义2.3[5] 软件演化过程模型 一个演化过程模型是一个四元组P=<C,A,F,M>。C为一个有限条件集合。A为一个有限活动集合,CA=ϕ。F⊆(C×A)∪(A×C)称为流关系。MC为初始标记。

构造软件系统的工作模型是一个自顶向下,逐步求精的过程。模型中的活动可以细化为一个子模型,因而所构建的工作模型也具有这种分层的特性(如图1所示)。把系统发生演化前的工作模型称为源模型,则对应于源模型的每一层,都可以构造出演化后的新的工作模型(称之为目标模型)。按照“软件过程也是软件”的观点,软件的一次演化就是其演化过程模型的一次执行,同样软件的一次执行也可看作是其工作模型的一次执行。

Petri网是描述过程、组织和设备的规则特别是信息流的一个模型,是为了一致、准确地描述尽可能大量的与信息传递和信息转换相关的现象而设计的一种概念和理论[7]。用Petri网作为软件系统的工作模型和演化过程模型的描述工具,能够准确有效地反映出软件在执行以及演化过程当中的并行和矛盾等特征。

3演化活动和演化活动图

软件系统的变化是由软件演化所引起的,可以用演化活动来描述软件的演化。活动是任务的集合,演化任务体现了演化活动的具体内容。通过一系列演化活动的执行软件从旧的工作模型变成了新的工作模型。

定义3.1 演化任务 一个演化任务是一个二元组t=<id,op>。id是t所属演化活动的标识,一个演化任务属于唯一的一个演化活动。op为一个集合运算表达式,用于描述t任务在工作模型上所做的操作。

定义3.2 演化活动 一个演化活动是一组顺序执行的演化任务的集合,用一个二元组a=<id,T>来表示。id是演化活动的标识, T是i中演化任务的集合。

定义3.3 顺序关系 设E为一个演化活动集,把E上的二元关系Rs称为顺序关系。对任意的e1,e2∈E,有<e1,e2>∈Rs当且仅当演化活动e1在e2之前执行。

定义3.4 控制关系 设E为一个演化活动集,把E上的二元关系Rc称为控制关系。对任意的e1,e2∈E,有<e1,e2>∈Rc当且仅当e2的执行由e1的执行结果所决定。

定义3.5 演化活动图 演化活动图是一个三元组G=<V,S,C>。V是顶点集,S⊆V×V称为顺序弧集, C⊆V×V称为控制弧集。弧(vi,vj)∈S⇔(vi,vj)∈Rs, 弧(vi,vj)∈C⇔(vi,vj)∈Rc(vi,vj∈V)。

图2是一个演化活动图,V={v1,v2,v3,v4,v5,v6,v7, v8}, S={(v1,v2),(v2,v3),(v2,v4),(v5,v7),(v6,v7), (v7,v8)}, C={(v3,v5),(v4,v6)}。可以看出,通过构造出软件的演化活动图能够很容易地表现出这些演化活动之间的关系,那些没有顺序关系和控制关系的演化活动能够被并行地执行,从而可以提升软件演化过程的效率。在图2中v3和v4,v5和v6可以被并行地执行。

4模型比较

进行模型比较的目标是要获得演化活动集合E,E中的演化活动被执行完后软件的工作模型就发生了改变,软件系统也就完成了演化。目标模型相对于源模型的变动可以从模型的活动、条件以及弧的变化体现出来。由于软件工作模型具有分层的特性,因此只对同一层次的源模型和目标模型进行比较。

定义4.1 设p=<C, A, F, M0>是一个软件过程模型。对于活动aA,Inflow(a)={(x, a)| (x, a)∈F, xC}称为a的输入流,Outflow(a)={(a, y)| (a, yF, yC)称为a的输出流。

定义4.2 设p=<C, A, F, M0>是一个软件过程模型。对于活动c∈C,Inflow(c)= {(x, c)| (x, c)∈F, xA}称为c的输入流,Outflow(c)={(c, y)| (c, yF, yA)称为c的输出流。

算法4.1~算法4.4比较源模型和目标模型以获得演化活动集合E。

算法4.1 模型比较算法(Evolute_Model)

输入:源模型P,目标模型P′

输出:从P转换为P′的演化活动集合E

算法4.2 活动比较算法(Evolute_Activity)

输入:源模型P,目标模型P′

输出:从P.A转换为P′,A′形成的演化活动集合E

算法4.3 条件比较算法(Evolute_Condition)

输入:源模型P,目标模型P′

输出:从P.C转换为P′.C′的演化活动集合E

算法4.4 弧比较算法(Evolute_Flow)

输入:源模型P,目标模型P′

输出:从P.F转换为P′.F′形成的演化活动集合E

5活动映射

软件演化导致的变化包括文档、程序代码以及数据的变动,模型的变化也是最终通过文档、程序和数据的变化而反映出来。把模型的每一次变化(即每一个演化活动的执行)都“投影”(或者称为映射)到文档、代码和数据的变化上来,这样就使得抽象的演化活动有了实际的意义,通过进一步分析能够得到相关演化活动之间的顺序和控制关系,就可以构造出演化活动图。

定义5.1 设a是一个演化活动,a的映射为一个三元组p=<id,entities,discription>。id为a的标识,entities是执行a所需要变动的实体集合(根据映射的种类分为文档实体、代码实体和数据实体),discription是对实体进行何种操作的描述信息。映射分为三类:

Doc_projection(a)称为a的文档映射,表示执行a需要在软件文档上做的相关操作。

Code_projection(a)称为a的代码映射, 表示执行a需要在软件代码上做的相关操作。

Data_projection(a)称为a的数据映射, 表示执行a需要在软件数据上做的相关操作。

定义5.2 设G=<V,S,C>为一个演化活动图,则Entry(G)={v|v∈V∧ v的入度为0}称为G的入口,Exit(G)={v|v∈V∧v的出度为0}称为G的出口。

通过分析可以得到演化活动集合上的顺序关系Rs和控制关系Rc:

对于任何两个映射有交集的演化活动Ei和Ej,分析Ei和Ej中的discription描述:

若 Ei需要在Ej前执行,则Rs:=Rs∪{(Ei,Ej)};

若 Ej需要在Ei前执行,则Rs:=Rs∪{(Ej,Ei)};

若 Ej需要由Ei控制执行,则Rc:=Rc∪{(Ei,Ej)};

得到了演化活动集合上的顺序关系后,就可以构造出演化活动图。需要注意的是,演化活动图必须是单入口单出口的,即有且仅有一个入度为0的顶点和一个出度为0的顶点。如果没有这样的顶点则可以加入虚拟顶点并分别用顺序弧连接那些入度为0的顶点和出度为0的顶点作为活动图新的出入口(如图3所示)。演化活动图也具有分层特性。源模型的演化在每一层上都对应着一个相应的演化活动图。

6转换活动图

获得的演化活动图还必须经过转换成为Petri网形式的演化过程模型EPM[5],才是本文最终想要得到的结果。算法6.1把演化活动图转化成为Petri网模型。活动图中的每个活动被转换为Petri网中的一个活动。

算法6.1 活动图转化为演化过程模型

输入:演化活动图G=〈V,S,C〉

输出:演化过程模型P=〈C,A,F,M〉

7结论

软件工作模型的变化能够在大部分的软件演化实践中得到体现,尤其是在软件工作流程发生改变这样的演化中最为明显。建模者只需要构建出演化后理想的工作模型作为目标,使得软件的演化参照这个目标来进行。本文提出的通过模型对比来获得软件演化过程模型的方法,使建模者不必为繁琐的演化细节耗费过多精力,而把注意力集中到对需求的分析以及对系统功能的理解上,这样能够更好地确保演化之后的软件质量。分层的模型结构为模型的建立和转换带来了一定的复杂性,所以选择适当的粒度对模型进行分层是很重要的。

摘要:为了得到软件系统的演化过程模型,引入了工作模型的概念用以描述软件的工作过程。通过建立起软件演化前后的工作模型并对其进行比较,可以得到由旧的工作模型向新的工作模型转化需要执行的各种活动,这样的活动通过在软件的代码、数据和文档三个层面的映射便具有了实际意义,以此为基础所构造的演化活动图能够最终转换为Petri网形式的演化过程模型。

关键词:软件演化过程模型,软件演化,工作模型,模型比较

参考文献

[1]Lehman M M,Ramil J F.Software Evolution and Software EvolutionProcesses.Annals of Software Engineering,2002,14(1-4):275-309.

[2]Ramil J F,Lehman MM,Kahen G.The FEASTApproach to Quantita-tive Process Modelling of Software Evolution Processes.Proc.PROFES2'000 2nd International Conference.

[3]Osterweil L J.Software Processes are Software Too.Proceedings of the9th International Conference on Software Engineering,Monterey,CA,March,1987:2-13.

[4]Proceedings of the conference on The future of Software engineering.May 2000:25-34 Limerick Ireland.

[5]Li Tong,Yang Hongji.ALanguage and Approach to Modelling SoftwareProcess for Software evolution.

[6]Bernardinello L,De Cindio F.Asurvey of Basic Net Models and Modu-lar Net Classes.LNCS vol.609,Springer Verlag,1992.

软件故障排查模型 篇10

1软件输入故障排查

1.1输入非法数据。一些软件在进行输入处理的过程中, 会出现非法数据入侵的情况。针对这一情况, 相关的软件开发人员会采用相应的方法, 来阻止非法的数据进入到软件中。同时利用过滤装置来对一部分的非法数据进行过滤处理, 保障输入数据的合法性。另外, 就是在非法数据进入到软件中后, 再利用调整手段来对非法数据进行调节处理, 设定错误信息提醒功能, 在发现非法数据的过程中, 就对非法数据进行调整。

就上述的这些处理方法可以看出, 相关的软件开发人员不仅需要掌握扎实的功能代码编写技术, 还需要具备对非法数据检查代码编写能力, 但是这些代码很难记忆, 软件开发人员有时候也会出现记忆模糊的情况, 而且在编写完成相关的代码后, 软件开发人员也不进行二次检查, 这样就会使得一些非法数据被留存在软件中, 导致软件出现故障问题。

1.2输入默认值。一旦在软件中使用了变量, 就必须赋予初始值, 如果在赋值之前就使用了这些变量, 软件就会失效。通常会因为以下两个原因使变量的默认值不正确: (1) 给变量赋值这一步经常会被开发人员不经意地略过; (2) 开发人员有时不确定到底要赋什么初始值, 就随便给了一个值, 但用户并不认可该值。在第2种情况下, 软件并不一定会失效, 但对用户的使用会带来很多不便。

确定应用软件中所使用的数据有以下一些基本原则:查找选项按钮、配置面板、安装屏幕等。这种屏幕上显示的数据常常在应用程序的许多地方被用到, 可查阅源代码的数据声明部分。

1.3输入特殊字符集。若应用程序接受字符串输入、但程序没有针对特殊输入进行特殊编程, 那么就有可能导致程序挂起, 主要包括以下2种情况: (1) 字符集包括普通字符和特殊字符。应用程序有时只能处理普通字符, 当输入特殊字符时就会出现错误。 (2) 实现应用程序的程序设计语言有特定的处理某些字符和字符串的方法。根据被测软件所处的操作系统、字符集等信息列出表格, 标明应用表格中的哪些字符和数据类型作为输入测试。

2输出故障排查

2.1输出不符合业务规则的无效输出。一些软件开发人员并不了解业务的相关流程, 对于业务中出现的问题也无法进行有效的解决, 对于业务相关内容更是了解不全面, 这样就使得其在进行代码编写的过程中, 受到自身因素的限制, 所编写出的代码并不具备逻辑性。

另外, 在绝大多数情况下开发人员会忽略处理没有遵循一般规则的输入, 如果不对这些特殊情况进行编程处理, 软件就会产生错误的结果。这时测试人员必须先要确定哪些输入与输出有关, 然后用产生意外结果的输入组合进行测试, 测试过程中要注意输入执行顺序, 用不同的顺序得到不同的结果。

2.2输出属性修改后的结果。输出常常具奋可修改的属性。在这种情况下开发人员必须编码、设立初始或默认属性值, 然后允许用户编辑相关属性。当用户改变一些属性后, 内部的相应变量值也随着变化, 再次进行处理时, 这些属性没有被重新恢复为默认慎, 输出的属性就会被强制改变。解决时, 测试人员首先要仔细了解能够产生的输出, 特别要注意具有可编制属性的输出。

3数据故障排查

3.1数据结构溢出。所有数据结构的大小都有上限。—些数据结构会逐步增加长度立到充满机器内存容量或磁盘空间, 在其他数据结构具有一定的上限。开发人员经常对有关数据结构的内容进行编码, 忘记结构本身的界限。确定数据结构的界限, 尝试将过多的他输入数据结构。对于下溢的测试, 可以尝试多删除一个数据。

3.2数据结构不符合约束。对数据进行编辑的时候, 往往数据结构会受到极大的限制, 数据的大小、类型以及形状都有着特殊的规定, 针对数据故障进行排查的时候, 重点就是要排查用户所需要的数据属性, 而这些数据属性需要有专门的参数来进行约束和限制。建构专门的数据项, 在这些数据项被修改之后, 就需要进行一遍全面的审查, 尤其是要对数据属性的约束进行有效的审查。在数据的初始代码被更改后, 代码会出现一定的错乱情况, 针对这一情况往往只是对原始的数据进行修改, 而没有进行深入的改进, 这样就使得数据修复并不全面和彻底。

而最佳的修正方法就是要列出需要修改的数据的候选项, 针对数据的原始属性进行有效的改正。在数据正确是数据有效性范围内, 合理对相关的条件进行约束, 采取有效的方式来对数据属性进行修正, 从而保障数据属性与数据结构相符合。很多用户会对数据进行初始化处理, 这样的处理方式, 会使得数据的属性在一定程度上被改变, 破坏了数据的约束渠道。这样就会使得数据无法有效的为系统运行提供支持, 从而就会使得系统出现运行上的延缓, 严重的会导致系统出现崩溃的危险。

4操作故障排查

软件中运算符与在操作上都有其一定的规律, 相关的操作指令对应着相关的操作符, 这些操作符是在相关的软件开发人员对软件进行开发的过程中制定出的, 为了能够使得这些操纵符能够在出现错误操作的时候, 得到有效的纠正, 就需要进行错误检查代码的编写。在程序中, 针对数据的计算以及图形的操作, 应该编写出相对应的代码。

在操作的过程中, 如果平行的操作过多, 也会使得操作中很容易出现失误现象。比如, 在进行字符和数字同时操作的时候, 如果同时应用到+, 但是两者表达的意思却不相同, 如果操作不规范, 那么就会出现代码错误的情况, 会使得字符和数字之间形成相加的关系, 或者是使得数字和字符出现连接顺应的关系, 系统无法清楚的识别所录入的+这一符号具体的应用作用, 从而使得操作出现了矛盾行为, 这样就会使得软件的作用就无法有效的发挥出来。

结束语

针对软件在运行的过程中, 可能出现的一些故障问题进行有效的排查, 从而防患于未然, 针对可能出现的软件故障问题进行合理的解决, 以保障软件运行的质量和效果, 在保障了软件运行质量的基础上, 就可以有效的满足用户对软件应用的需求, 从而保障人们的正常工作和生活。

参考文献

[1]易锦, 罗峋, 凹建勋.基于马尔科夫链的软件故障分类预测模型[J].中国科学院大学学报, 2013 (4) .

[2]高晓燕, 霍永华.软件可靠性衡量体系介绍[J].科技风, 2009 (8) .

[3]李合平, 尚朝轩, 薛周成, 黄允华.新型电子装备软件故障诊断方法研究[J].微计算机信息, 2012 (3) .

上一篇:标准化高速公路管理下一篇:秸秆生物学处理技术