播放软件(精选12篇)
播放软件 篇1
0 引言
随着科学技术的发展,视频数据在各种数据中占据了不可替代的作用,而目前视频数据产生的数据量也是越来越大,如何在有限的资源下更好地利用这些数据,成为了大家研究的重点[1]。其中视频压缩算法占据了决定性的作用,不同的压缩算法会产生不同格式的数据[2],所以单一的视频播放器已经无法满足日益多变的视频格式的播放需求,而在各种各样格式文件中,H.264格式的文件具有更好的压缩率,更友好的网络适应性以及抗干扰性能[3],同时H.264具有低码率[4],高质量的图像[5],容错能力强,网络适应性强[6]的特点。因此在某些环境下被广泛使用。
但是针对H.264格式文件进行播放的软件并不常见,很多时候需要进行转码才能进行观看,极大地浪费了时间,在此专门设计了一款针对H.264格式文件进行播放的播放器。
1 H.264和FFmpeg介绍
FFmpeg是一款用于记录、转换数字音频和视频,并能将其转化为流的开源工具,这款工具功能非常强大,能够完成视频转换、抓图、视频采集等功能。可以根据具体需求定制相应的功能。
大家常看到的视频文件可以统称为容器,在容器中将视频流、音频流以及字幕等融合在一起形成了视频文件[7],为了完成这些工作FFmpeg工具包含有编解码模块。该模块位于libavcodec中,根据需要,可以将不同格式的视频流转换成为需要格式的文件,一般的工作流程为先解码然后再进行相应的编码形成对应格式的文件。Muxer模块实现将视频文件、音频文件和字幕文件合并为某一种格式,该模块位于libavformat中,而在libavutil中则包含公共的工具函数。
2 软件设计及实现
2.1 软件设计
软件主要实现了两个功能:编解码模块和显示播放模块。其中编解码模块的工作流程如图1所示。
在某些情况下视频需要对现有格式文件进行转码以后才能进行播放,这时就需要进行转码工作,它的工作流程是首先将原来的文件进行解码,然后再次进行编码,最后再合并到文件容器中,得到所需要的视频文件。转码工作流程图如图2所示。
图2中write_frame()函数是用于将编码后的数据包中的帧写入输出视频容器文件中,avpacket是写入容器文件的基本单元。通过上述两个流程基本完成了视频格式的解码工作。完成了解码工作后需要进行的就是视频的显示输出工作,在这里使用VFW数字视频开发包及DrawDib函数组来完成相应的功能。
2.2 软件实现
处理视频流首先需要打开视频流,从视频流中读取包到帧中,如果这个帧不完整,则继续从视频流中读取包到帧中,然后对帧进行一些操作,该过程不断的重复,部分代码如下所示:
3 结语
使用FFmpeg开源工具研制的这款软件经过试验,能够正常地播放多种格式的视频文件,提供了极高的便利性。目前视频格式越来越多样化,对于播放的要求也越来越高,如何对各种形式的数据进行解码复用就非常值得研究。同时也发现FFmpeg功能非常强大,涉及的内容非常多,是值得深入了解和学习的一款工具。因此在视频解码及播放显示方面,还有更多的工作需要进行深入的研究。
参考文献
[1]李蔷.H.264视频编码码率控制技术研究[D].上海:上海交通大学,2005.
[2]徐传书.H.264中的快速运动估计算法研究[D].太原:太原理工大学,2011.
[3]裴世保.H.264/AVC中预测模式选择算法研究[D].合肥:中国科学技术大学,2005.
[4]秦秀贵.H.264快速帧内预测算法研究[D].济南:山东大学,2008.
[5]王纲.H.264视频压缩标准的研究与实现[D].成都:电子科技大学,2006.
[6]朱珍伟.基于H.264标准视频流的错误隐藏技术研究[D].上海:复旦大学,2006.
[7]刘合.音视频编辑库的设计与实现[D].武汉:华中科技大学,2011.
播放软件 篇2
Beta版(外部测试版):软件开发公司为对外宣传,将非正式产品免费发送给具有典型性的用户,让用户测试该软件的不足之处及存在问题,以便在正式发行前进一步改进和完善
。一般可通过Internet免费下载,也可以向软件公司索取。
Demo版(演示版):主要是演示正式软件的部分功能,用户可以从中得知软件的基本操作,为正式产品的发售扩大影响。如果是游戏的话,则只有一两个关卡可以玩。该版本也可以从Internet上免费下载。
Enhace版(增强版或加强版):如果是一般软件,一般称作“增强版”,会加入一些实用的新功能。如果是游戏,一般称作“加强版”,会加入一些新的游戏场景和游戏情节等。这是正式发售的版本。
Free版(自由版):这一般是个人或自由软件联盟组织的成员制作的软件,希望免费给大家使用,没有版权,一般也是通过Internet免费下载。
Full Version版(完全版):也就是正式版,是最终正式发售的版本。
Shareware版(共享版):有些公司为了吸引客户,对于他们制作的某些软件,可以让用户通过Internet免费下载的方式获取。不过,此版本软件多会带有一些使用时间或次数的限制,但可以利用在线注册或电子注册成为正式版用户。
Release版(发行版):不是正式版,带有时间限制,也是为扩大影响所做的宣传策略之一,
比如Windows Me的发行版就限制了只能使用几个月,可从Internet上免费下载或由公司免费奉送。
Uprgade版(升级版):当你有某个软件以前的正式版本时,可以购买升级版,将你的软件升级为最新版。升级后的软件与正式版在功能上相同,但价格会低些,这主要是为了给原有的正版用户提供优惠。
OEM 版:OEM 是 Original Equipment Manufacturer 原始O渲圃焐痰目s。各大XS商和件公司之g往往建立一N合作P系,在各公司N售自己的a品r,可以附他的件,所附У乃人的件即是 OEM 版。
注园妫狠^特殊的件版本,件可以囊蛱鼐W上下d,但必M行注裕脑件的研制者那里取得注源a后,才能使用件的全部功能,否t件的很多功能⒉荒苁褂谩.然,注源a的取得通常不是免M的。
Lite:精简版,也可称迷你版。
Final:正式版,通过Alpha和Beta两个测试版本后推出的,修正了软件中存在的Bug。
Pro:专业版,需用户获得注册码后才可以使用。
Plus:加强版,在功能上有所提升。
Delux:豪华版,和Plus没有太多的区别,也只是多了一些附加功能。
Build:为内部标号,也就是同一版本可以有多个标号,如发V1.0 Build 203等,一般情况下Build后面的数字越大,其版本越新。
远光软件:电力软件专家 篇3
专注于电力行业财务集团的信息管理,也能成就一家上市公司。《投资者报》“隐形冠军”中的远光软件(002063.SZ)就是靠专业成功的。这家位于广东的软件开发和服务企业,以极其少见的专业精神,在电力行业财务软件占据了极大的市场份额。未来,随着电力信息化建设的进行,公司业绩在2010年有望继续大幅增长。
专注于电力业财务软件
远光软件是一家面向电力行业的软件提供商,主要提供通用基础财务软件和集团财务信息管理软件,公司最大优势在于专注于电力行业,对行业理解程度较为深入,同时积累了较好的客户资源,这些优势使得远光软件在国内的电力市场的占有率超过了80%。
过去三年内,公司业绩保持了强劲的上升势头。2006年~2008年净利润分别为0.39亿元、0.56亿元和0.74亿元,同比增长率分别为46%、44%和33%。
2009年,截至三季度,公司已经实现净利润0.31亿元,根据软件业务的季节性特征,以及过去公司的各季度收入和成本费用分布,预计2009年四季度的净利润为0.66亿元,全年净利润为0.99亿元,同比增幅会达到34%。
2010年业绩有望爆发
由于电力信息化等积极因素,使得公司业绩增长前景确定。
首先,就电力信息化而言,高潮刚刚开始,公司擅长的财务软件需求势必增加。除此之外,行业ERP、电网调度、商业智能等需求也在兴起,为适应这一需求,公司凭借着强大的研发能力,正在向电力行业全面解决方案迈进,分得电力信息化和智能电网一块蛋糕。
其次,电力行业壁垒高,公司致力于电力软件业20余年,积累了良好的政府、电网公司、发电集团关系,行业地位和优势决非競争者可以轻易撼动。加之自身深厚的行业知识,未来的客户资源将不断扩大,确保公司享有高成长、高利润。
基于上述理由,公司在2009年四季度推出的股权激励计划有可能超额完成。
根据股权激励的要求,2009年~2012年的净利润应比2007年至少增长75%、90%和120%,对应的EPS分别为0.49元、0.53元和0.61元。对于这一要求,公司管理层都表示出信心。
软件水印实现软件版权保护 篇4
关键词:软件水印,版权声明,PE文件格式,加密
目前主要的软件保护技术有:序列号保护,警告(NAG)窗口,时间限制,Key File保护,限制功能保护等等。基于硬件的方法有加密狗、加密锁保护,光盘保护等等。然而,随着互联网应用的普及,软件破解技术不断发展并广泛传播。与此同时,各种软件调试破解工具不断升级。传统的保护手段对于破解者来说是相当脆弱的。以致软件盗版、软件非法拷贝等问题日益严峻,也因此软件产品知识产权的保护变得尤为重要。一般来说,如果软件产品能够被专利、版权等方式合法的保护,然而发现攻击软件知识产权的行为难以界定。因此通过技术手段来保护软件开发商的知识产权成为必要的选择。从技术层面来说,我们需要足够的证据来证明软件的开发者对软件的所有权。如果软件版权受到侵害,则可以抽取信息来证明作者对其作品的所有权。软件水印技术[1]就是在这一背景下提出来的,并成为一种很有前景的软件保护技术,有待进一步的研究。
美国在软件水印研究方面的成果最为显著,有多篇介绍动态水印算法[2,3,4]。微软申请了一项专利[5],描述了一种水印技术,以此来防止盗版。1998年,美国版权保护技术组织成立了数据隐藏小组[6],着手制定版权保护水印的技术标准。尽管至今还没有形成数字水印的最终技术标准,但已经明确了用于版权保护的数字水印必须满足的一些基本条件。我国在软件水印的算法研究领域我国已经有不少论文发表[7,8],同时在软件水印应用方面也有探索。
软件水印是密码学、软件工程、算法设计、程序设计等学科的交叉研究领域。软件水印是近年来出现的一种新型的软件版权保护方法。它在软件产品中嵌入版权保护信息和身份认证信息,并通过检测出版权保护信息和身份认证信息来确认对产品的版权拥有,防止软件盗版和非法拷贝。本文根据PE(Portable Executable)文件格式的特点,提出了一种较好的嵌入版权信息的策略,并且对版权信息进行加密处理,增强了信息的安全性。
1 软件水印保护版权原理
水印是信息隐藏的有效手段。软件水印也继承了水印的这一特点,具有信息隐藏的功能,只是信息隐藏的场所不是媒体而是软件。软件水印保护软件版权的问题就是利用了水印的信息隐藏功能,其过程可以描述为:水印信息设计加密、嵌入、检测。作为版权保护的水印应该包含软件的作者,公司等版权信息。当然可以将其他的一些重点信息也合并到水印中。在设计水印信息时对其加密,可以防止水印信息遭到破坏或者修改。
根据软件水印的分类,对软件版权进行保护,可以采用动态软件水印,也可以采用静态软件水印的方法。如果选择前者,那么程序开发过程中,选择一种动态水印算法,和正常的软件模块一起编写、编译。完成后的软件程序执行过程中,就可以验证水印的存在。
对于静态软件水印一般软件版权信息都是保存在源代码中,而版权信息一般是在软件设计好后确定下来的,如果采用源代码方式把版权信息嵌入不便推广为一般方法。因此那种在源代码中保存水印信息的方式需要改进。这里改进水印的嵌入载体为PE文件,即在编译成功后的可执行文件中。水印的检测过程与水印的嵌入是可逆的,如果嵌入中采用了加密处理,则在检测时还要有解密过程。通过检测水印有无及水印内容可知该软件的版权归属。具体步骤如下:
1)生成软件水印信息W。
2)将软件水印信息W加密处理生成W′。
3)确定软件水印信息的嵌入位置,按照一定的策略写入PE文件的空余存储位置。
4)提取PE文件中的水印密文W′。
5)解密W′,验证PE文件的版权信息。
在软件水印保护版权的过程中最关键部分应该是两个方面:一方面是是水印信息在PE文件中的嵌入位置;另一方面水印信息的设计与嵌入策略的设计。下面将对这两方面作详细讨论。
2 PE格式及水印嵌入位置分析
PE文件是目前微软Windows操作系统的可执行文件。代码编写、编译、链接后的可执行文件都以PE文件格式存储。与PE文件相关的变量和数据结构定义在WINNT.h中[9]。水印信息嵌入PE文件中有一个基本要求,就是不能影响软件的执行。基于这一原则,水印信息只能嵌入PE文件中非程序数据区,这里有两种方案:一是利用现有的PE文件中的空余区域,二是在PE文件末尾添加新节。
2.1 PE文件现有的空余位置
PE文件在磁盘当中是根据File Alignmet对齐之后存储的。File Alignment值为0x200,因此PE文件节间的空余空间(R)范围是:0≤R<0x200。实际情况是PE文件.text,.data,.rsrc等节都存在大小不等的空间空余。需要指出的是在IMAGE_SECTION_HEADER结构中,有三个域:Virtual Size,Size Of Raw Data,Pointer To Raw Data[10]。
1)其中Virtual Size:标识该节的实际大小,没有经过Section Alignment或者File Alignment对齐的大小。
2)Size Of Raw Data:标识该节在文件中占据的大小。通常情况下Size Of Raw Data大于Virtual Size。
3)Pointer To Raw Data:标识该节在文件中的偏移位置。
综上分析:对于每一节,从Pointer To Raw Data位置到Pointer To Raw Data+Size Of Raw Data–Virtual Size就是该节在磁盘存储中空余的部分。
为了增强隐蔽性,防止探测程序清除隐藏在PE文件中的信息,软件水印信息在被嵌入PE文件之后可以把Virtual Size的值修改为Virtual Size与水印的长度之和。
2.2 构造空余位置
在PE文件末尾添加一个新节构造空余空间:包括节的PE文件头信息,节内容。最后修改PE头部信息。
2.2.1 构造IMAGE_SECTION_HEADER信息
1)Name:任意少于8个字节的字符串。可以为空。
2)Virtual Size:即节内容的实际大小,节的内容是根据具体应用而来
3)Virtual Address:原PE文件最后一节的Virtual Address加上最后一节(Virtual Size%Section Alignment+1)*Section Alignment。
4)Size Of Raw Data:新节的(Virtual Size%File Alignment+1)*File Alignment。
5)Pointer To Raw Data:原PE文件最后一节Pointer To Raw Data+Size Of Raw Data。
6)根据需要设置新节的Characteristics。
2.2.2 修改PE文件IMAGE_FILE_HEADER结构
1)Number Of Sections加1。
2)Size Of Image加上新节的大小。
3 版权保护水印设计与实现
3.1 软件水印信息的生成
由于PE文件的空余存储空间并非连续分布,所以软件水印信息可能大于每一个空余存储空间,而又小于它们的总和。所以软件水印信息需要被切分。当软件水印信息大于空余存储空间之和时,嵌入软件水印的办法只有在PE文件末尾添加一个新节了。
综上分析,软件水印信息可能被切分,可以设计软件水印信息由两个部分组成:软件水印信息主体(body)与软件水印信息尾部(rear)。信息的rear部分不会被切分,并且会被嵌入到每个空余存储区,备份rear部分便于水印信息的提取。
3.1.1 软件水印信息主体
本文是通过软件水印技术来实现软件版权保护,所以按设想水印信息主要应当包括软件的作者、版权所有、版本号、日期等等。水印的body部分根据需求,也可以设计为其他内容,大小任意。本文将水印body部分定义为结构体:
3.1.2 软件水印信息尾部
由于PE文件的空余存储空间分布于每个节的尾部,所以在提取水印信息时,先读取水印尾部比较方便。水印尾部大小固定,这样如果某个空余存储空间小于尾部大小,那么该空余空间不嵌入软件水印信息。
水印尾部具体内容包括:水印信息固定标识为“SW�”。SW为Software Watermarking的缩写。水印信息分割后存放的位置信息,即存放的水印数据片段的文件偏移地址及其大小。结构体定义为:
3.2 水印嵌入及其提取
3.2.1 水印的嵌入过程
嵌入水印的过程如图一所示,需要说明的是:
1)水印body部分进行加密处理,加密算法可以选择任意一种,本文以DES对称加密算法为例。加密生成的密钥写入文件保存。
2)无论水印的body部分是否被切分,水印的rear部分都应当写入每个具有足够大空余的节。这样起到备份水印嵌入位置信息的作用。
3)水印body部分的切分是根据各节的空余存储空间来定。所以大小不固定,各部分嵌入的位置被记录在水印的rear部分。
3.2.2 水印提取过程
首先从各个节的末尾读取水印rear大小的数据块。验证数据是否为水印的rear部分。水印rear部分由标识为“SW�”。
然后读取rear部分记录的每个节被嵌入的水印片段的位置及其大小。继而读取加密后的水印。将body部分拼接起来。
对body部分的数据进行解密,验证版权所有。
3.3 实验结果
算法实现平台:Microsoft Windows Xp Sp2,512MRAM.Microsoft Visual C++7.0。而此处水印body内容设计为COPYRIGHT_OWNERSHIP结构体。autor Name为:“XXX”;company Name为:“版权所有:Powered By XXX company”;date为:“2009-2015”;Version为:“Version 1.0”。COPYRIGHT_OWNERSHIP结构体大小为0x0055。通过DES加密后大小为:0x0058。
实验1以Windows任务管理器为例进行分析和水印的嵌入,taskmgr.exe版本号为5.1.2600.2180。
taskmgr.exe共3个节,其中.rsrc节Pointer To Raw Data是0x00014a00,Size Of Raw Data是0x00009600,Virtual Size是0x00009454,其空余存储空间最大为:0x01ac。.text节的空余存储空间为0x0112。水印body嵌入的位置是.rsrc节Pointer To Raw Data+Virtual Size=0x0001de54。水印的rear部分同时也备份到.text节中。提取解密后验证有效。
实验2是以金山词霸2007为例,进行分析并嵌入水印。本机的金山词霸2007被加UPX壳,节头信息被修改,Size Of Raw Data显示比Virtual Size小。所以根据算法流程,只有添加一个新节实现水印的嵌入。
通过分析,本机的金山词霸2007经加壳之后有三个节:UPX0,UPX1,与.rsrc三个节。.rsrc节Size Of Raw Data:0x00013600,PointerTo Raw Data:0x000ac800,所以我们添加的新节的文件偏移位置Pointer To Raw Data是:0x000bfe00。水印嵌入信息与提取验证一致。
4 总结
实验表明,将水印信息嵌入节的空余存储空间之后,再修改节头的Virtual Size以及Size Of Raw Data等信息。水印能够实现很好的隐蔽性。如果水印信息是嵌入到一个新建节当中,最好把所有的节的节名修改。或者修改掉节头信息,实现较好的隐蔽性。
本文利用PE文件自身固有的空余存储空间或者构造空余空间实现对水印信息的嵌入,同时水印信息得到加密保护,不容易被攻击者发现。需要说明的是本文提供的方法只能确认软件版本的拥有权,不能防止个人用户非法使用。
参考文献
[1]张立和,杨义先,钮心忻.软件水印综述[J].软件学报,2003,14(2):268-277.
[2]Palsberg J,Krishnaswamy S,Kwon M,et al.Experience with software Watermarking[C]//Proc.Of ACSAC'00.New York:ACM Press,2000:308-316.
[3]Cousot P,Cousot R.An Abstract interpretation-based Framework for Software Watermarking[C]//Proc.Of POPL'98.New York:ACM press,2004:173-185.
[4]Nagra J,Thomborson C.Threading Software Watermarks[C]//Proc.Of IH'04.Toronto,Canada.2004:208-233.
[5]Burns.Method for watermarking computer programs[P].American Pat7231524.2007.
[6]王贤德,王伟超.软件版权保护技术研究[J].软件导刊,2008,7(7)30-31.
[7]殷柯,杨旭光.基于Shamir门限和分支结构的动态水印方案[J].吉林大学学报(增刊),2008:221-225.
[8]罗养霞,马君,等.基于门限方案的动态图软件水印算法[J].计算机工程,2009,35(1):153-155.
[9]吴振强,冯绍东.PE文件的信息隐藏方案实现[J].计算机工程与应用,2005(27):148-163.
免费加密软件横向测评软件测评 篇5
最简单的加密方法就是用WinRAR打包并且设定解压密码。当你需要使用的时候,就把这个加密包解压,完成之后再重新加密打包。这个办法是最可靠的加密方法,没有密码,连WinRAR的开发者也没有办法重新获得你已经加密的数据。可靠性高是WinRAR加密的最大优点。
但是用WinRAR加密数据也有很大的弱点。那就是加密速度极慢,加密数据量稍微大一点就会使加密过程漫长的无法让人忍受,极大地影响了这种加密方式的实用性。这种蜗牛式的加密速度是WinRAR为了保证加密的绝对可靠性而付出的时间代价。对于极其重要的商业资料,这种时间代价的支付是完全应该的,也是完全值得的。但是,对于绝大多数用户而言,他们的秘密资料并不需要这么高强度的加密效果,他们更关心的是加密速度快,使用起来方便。只要能够阻止一般电脑用户对敏感数据的访问就可以了。
网上有很多软件宣称可以快速加密一个文件夹,无论这个文件夹的数据量有多大,加密都可以在1秒钟之内完成。稍微有一点密码学知识的人都会知道,凡是真正意义上的数据加密,其加密时间总是和加密数据量成正比的。如果加密时间和加密数据量完全不相关,那么可以断定这不是真正意义上的加密,而是对文件夹进行某种特殊方式的隐藏。
目前,这种用隐藏代替加密的加密软件可以在网络上找到很多。但是软件质量实在无法让人恭维,很多软件在加密后,经常无缘无故地无法解密,
很多时候,只要把加密文件夹所在驱动器回收站的名字换一下就无法解密了。这些加密软件居然还统统要收费!我想这些软件作者想钱真是快想疯了。
幸好,前几天我在华军软件园偶尔发现了一款完全免费的公益软件:《文件夹加密大师》2.1版。这一款软件的最大特点就是:免费 + 功能稳定。这款软件没有捆绑任何流氓插件或者广告。可以说是一款完全意义上的公益软件。这款软件很轻量级,文件大小只有254KB,比一张普通图片的大小还要小。没有任何花里胡哨的东西。
为了测试这款免费软件的稳定性和安全性,我试过更改回收站的名字,发现这款软件依然可以正常解密,这是目前那些收费软件都没有做到的。在整个使用过程中,还没有出现过解密失败的情况。总而言之,我个人认为,这款软件不但完全免费,而且在功能和稳定性方面比那些收费的文件夹加密软件做得还要好。
个人的加密心得:如果需要对单个文件加密,最好用WinRAR加密。如果需要对特别重要的文件夹加密,也建议使用WinRAR加密。如果只是简单地对付一般计算机用户在短时间内无法接触你的秘密文件夹,那么使用《文件夹加密大师》2.1版是最简单,最方便的。
最关键的是:《文件夹加密大师》2.1版在同类软件中不但是最优秀的,而且还是免费的。完全免费的文件夹加密软件目前只有《文件夹加密大师》2.1版。
软件正版化,消除盗版软件风险 篇6
商业软件联盟中国区总监兼首席代表姚欣表示:“软件作为信息化的核心,对于提升企业竞争力具有不可低估的作用。了解到盗版软件所导致的风险,企业应该通过严格的IT系统管理,增加正版软件的投入,实施风险分析和审计,来支持正版软件的使用,消除盗版软件风险。此外,‘软件即服务’(SaaS)模式也为企业用户提供了更大的灵活性,使其可以根据自身需要和预算来使用正版软件,没有任何使用盗版软件的借口。”
这项题为《中国企业推进软件正版化进程,消除盗版软件安全风险》的白皮书,是IDC在一项对中国600多家企业的在线和面访调查的基础上完成的。该调查涵盖了金融服务、政府、制造业和公共事业等主要行业。调查受访对象均为公司参与软件采购、安装和维护工作的IT经理或高级管理人员。调查围绕盗版软件的使用、风险,对业务运营的影响,以及企业采取了哪些措施来减少盗版软件的使用等方面提供了直接的、第一手的观点。
调查表明,84%的受访企业表示盗版软件可能缺少正版软件的某些关键功能;76%的受访企业表示盗版软件中植入的病毒或木马,可致使企业数据或信息泄露;当系统出现漏洞导致数据丢失或系统崩溃时,数名IT员工需要至少1到2天的工作才能还原数据,由此所导致的经济损失可能高达65万;企业会经常低估因违反版权法所导致的官司和法律风险,这会给企业带来经济损失,造成客户流失、公司蒙羞,以及对公司的品牌和声誉造成损害。这些潜在的安全风险以及成本损失,远远大于购买盗版软件所节省的费用。
调查还显示了受访企业对于正版软件和盗版软件的不同看法。在被问到正版和盗版软件对于业界公司的表现如何时,除了价格因素以外,受访企业对于正版软件在售后服务、故障技术处理、技术支持、软件升级、IT培训、安装便捷性和功能丰富性的评分都远远高于盗版软件。
IDC大中华区总裁郭昕表示,“对大多数国家而言,电脑软件市场往往与硬件市场保持同步的增长态势。预计到2015年,中国软件市场规模有望达到715亿元,2011到2015年的年复合增长率(GAGR)将超过13.6%,而中国硬件市场2011至2015年的复合增长率将达到18.1%,软件市场的增幅远远低于硬件市场,主要是由于软件价格低、软件更新速度慢。此外,盗版软件是阻碍正版软件市场发展的一个重要原因,它在某种程度上限制了中国软件市场的增长速度。”
“我们建议企业建立和执行正版软件使用方针,在公司守则中加入只购买和使用正版软件的条款,建立软件资产管理和风险评估机制,并探索其它的软件使用支付模式。”郭昕补充道。
软件缺陷度量与软件过程管理 篇7
软件产品的生产过程是软件质量的形成过程, 所以只有在过程中实现良好的管理和质量控制, 才能得到一个质量合格的软件产品。软件缺陷就是其中的软件质量的负面影响因素。虽然所有的软件系统都不是尽善尽美的, 但是严重的质量问题会危及用户的使用, 从而危及企业的软件生产。
软件的开发阶段的缺陷管理和预防是非常重要的, 因为一旦制定了有问题的软件的设计方案, 会直接导致软件的质量隐患, 所以, 我们在研发阶段要尽可能的防止这种情况的发生, 将隐患扼杀在初始阶段。一般的做法是, 在软件研发的过程中要形成一个严谨的缺陷分析报告, 将关于软件的性能的各个方面的具体数据和资料综合整理出来, 对于存在安全隐患和易出现问题的环节做好一定的预防措施和预防方案。
2 问题描述
缺陷度量的技术的一个重要的指标和重要的作用就是对于软件系统中存在的问题的显示, 也就是对具体问题的描述。一般情况下, 软件的缺陷会分为大致的几种常见类型, 我们也可以根据这些类型, 做出不同的缺陷显示方法。正交分类方法ODC (Orthogonal Defects Classification) 作为一种常见的问题显示方法, 能够准确的显示问题, 一直被业内广泛的使用, 但是它也存在着技术上的缺陷, 就是解读方式比较复杂。另一种常见的方式是Thayer, 有点是比上一种方式的结果更精确, 但是解读起来也更加复杂。这两种方式的共同点在于都忽略了对于软件的过程的监控和分析, 这是一个非常严重的技术问题, 因为软件的研发过程才是质量问题的形成的重要阶段, 要控制质量问题, 就必须控制软件的研发过程, 所以, 我们想要找出新的监管和缺陷度量方法, 就要从控制过程的角度来分析。现在市场上的已经开发了几种缺陷管理系统工具, 例如Mercury公司的Quality Center, IBM公司的Rational系列管理工具, 微软公司的VSTS等。上述的几种技术都没有解决缺陷的分类问题, 导致了在软件过程的管理中的缺陷分类的薄弱。也直接导致了现有的缺陷管理工具在实用性和综合性方面的不完善, 上述的两种管理工具只是提供一些缺陷属性数量的简单统计结果, 要想得到一些更精确和更综合全面的分析结果, 用户不得不借助其他的统计方式。基于该目前市面上的工具的这样一种缺陷, 和软件过程管理的实际需要的不协调, 笔者制定了一种新的管理模型, 如图1。该模型可根据需要设计缺陷属性度量分类标准。在软件开发过程中通过缺陷管理系统采集缺陷数据, 运用缺陷分析方法实施缺陷分析, 把握缺陷发展趋势, 对软件项目开发过程进行综合评价。实施缺陷预防方案, 提高软件产品的开发质量。通过缺陷分析结果的反馈, 改进缺陷度量分类标准和分析目标, 提高缺陷分析结果的准确性。本文重点研究了缺陷分类方法和缺陷数据的分析方法, 并结合某项目中的缺陷数据实例进行了分析。
3 缺陷分类方法研究
3.1 缺陷分类的目的和原则
将软件的缺陷问题分类, 可以更好的管理和击破软件的缺陷问题。并且有益于分析缺陷产生的原因, 可以早到有计划的预防。缺陷分类方法应满足以下要求:准确地对发现的缺陷类型进行分类;缺陷分类类型之间应无重叠, 并尽可能多的覆盖开发过程中出现的分类;分类要与软件生命周期有机结合, 从软件过程的角度对软件缺陷进行分类。
3.2 缺陷度量属性分类
实施度量分析的最终目的是为了服务软件的研发和试验的各个阶段的顺利进行, 一旦发现问题可以及时纠正, 以免影响软件的研发和生产。在引言中曾提到, 软件缺陷的范围很广, 它贯穿于整个软件研发和生产试验的各个阶段, 是一种伴随着软件的整个过程的始终的应用, 所以它的重要程度也可想而知。一个缺陷需要记录许多相关的度量属性, 如何划分这些度量属性也是缺陷分类研究领域的一个热点。传统的分类方法主要目标是消除软件缺陷, 而不是对缺陷出现的原因进行一个正确的评估和解决方案的分析, 这样的分类方法是不利于软件的完善和发展的。所以, 一个全方位多角度的缺陷度量方式就应运而生。下面本文中将从缺陷度量属性设计的三个方面, 即描述属性、统计属性和控制属性来进行具体阐述。a.缺陷描述属性。缺陷描述属性是指:缺陷信息描述, 对于缺陷的各个方面和各个角度的描述, 既包括缺陷的时间, 产生原因也包括具体的解决方案的策划。b.缺陷统计属性。缺陷统计属性是指:缺陷生命周期状态, 缺陷流出的开发阶段, 缺陷流出的部门, 缺陷流出的功能模块, 缺陷表现类型, 缺陷的严重等级等基于缺陷数量统计其分布的属性。并且缺陷统计属性参考正交缺陷分类方法划分, 属性间没有相关性。c.缺陷控制属性缺陷控制属性是指:处理缺陷的角色, 缺陷的分配, 处理缺陷的时间, 缺陷数据之间的关联关系等基于缺陷分配流程管理的属性。
4 缺陷度量过程管理
4.1 处理缺陷的角色
在软件开发过程中处理缺陷的四个负责人和所负责的任务的具体情况:报告人:将发现的缺陷登录到缺陷管理系统, 描述缺陷的表现形式和再现方法, 对缺陷进行简单分类, 由项目经理、组长对缺陷进行再分配, 缺陷修正完成后, 对其进行回归测试审核。负责人:负责缺陷的调查和修正工作, 分析缺陷引入的原因。组长:分配缺陷到负责人, 并对负责人已修正缺陷进行复查, 确保不会因为修正而引入新的缺陷产生, 分析缺陷流出原因。项目经理:分配缺陷到项目组, 定期总结缺陷分析报告, 把握缺陷发展趋势, 采取应对措施保证项目的进度及开发质量, 根据缺陷分析结果改进缺陷度量属性分类。
4.2 缺陷生命周期
缺陷生命周期是指缺陷从被报出之后, 到开始修正, 再测试直到该缺陷被完全消除的时间段。缺陷生命周期是影响软件研发的一个重要的指标和因素, 定期对缺陷各种状态信息的变化趋势进行总结, 是项目经理计划开发周期, 调整开发进度的重要依据。
4.3 缺陷分配管理流程
整个的缺陷的周期主要是指从发现到完全消灭的时间, 在这个时间内, 缺陷的分配管理流程主要包括:a.报告人登陆缺陷;b.管理人员分配缺陷给相关责任人;c.责任人调查并修正缺陷, 分析缺陷引入的原因;d.管理人员对修正结果进行复查, 分析缺陷流出的原因;e.报告人验证缺陷是否被正确。
结束语
软件的研发是一项非常复杂和严谨的工程, 所以在这个阶段要对软件的质量作出各个方面的监测和试验, 这样才能最大程度上减少软件的质量问题的发生概率, 而软件缺陷度量作为软件质量监测的一个重要方式, 应该引起我们有关的工程人员的足够重视, 不断在缺陷度量的技术上提升, 这样才更好的服务于我们的软件研发工作。
参考文献
[1]何荣勤.CRM原理.设计.实践[M].北京:电子工业出版社, 2006.
播放软件 篇8
软件工程监理是指依法设立且具备相应资质的工程监理单位, 它受业主单位的委托, 依据国家的有关法律法规、技术标准和信息系统工程监理合同, 对信息系统工程项目实施监督管理。目前, 我国软件工程监理处还处在刚刚起步的阶段, 相关的标准和规范还比较缺乏。在软件工程监理关系中, 业主 (建设单位) 授予监理方对项目的管理和控制权力, 监理单位代表业主从事项目管理活动。一些监理公司依据有关的信息技术规范和软件工程项目合同规定, 凭借着自己的行业经验进行监理工作, 但对软件项目监理的操作比较零散, 难以形成1个系统的监理评估体系。本文, 笔者在仔细的研究分析软件工程特点的基础上, 论证了业主和软件工程承包商之间增加监理的必要性, 建立了软件工程监理量化评估模型。
二、软件工程监理在软件工程生命周期中各个阶段的作用
1. 软件工程的全生命期。
根据ISO的相关定义, 软件工程的全生命期分为实施阶段、使用阶段和维护阶段, 其中实施阶段又可进一步地细分为准备、设计和施工。结合我国的实际情况, 软件工程的生命周期有4个阶段。第1个阶段是“诞生”阶段。第2个阶段系统进入决策阶段, 一旦系统通过决策, 系统就进入第2个阶段。第2阶段即设计阶段, 在该阶段抽象出系统模型。第3个阶段是实施阶段, 即系统投入开发和施工阶段。第4个阶段是运营维护阶段, 即系统投入运行的阶段。
2. 软件工程监理在软件工程的全生命期中的作用。
软件工程监理是软件工程领域的一种质量管控方式, 是独立于甲、乙双方的第三方机构。它为软件工程提供的规划与组织、协调与沟通、控制与管理、监督与评价等方面的服务, 其目的是利用监理单位的经验和专业技术保证软件工程的成功。软件工程监理应该在软件工程的设计阶段之后所有的阶段进行相应的监理, 以反映软件工程在过程中的实际情况。软件工程的全生命期监理如图1所示。
三、软件工程监理评估模型
1. 软件工程监理评估维度模型的建立。
信息化工程监理的目标是实现利益。在软件工程监理评估过程中, 业主和软件工程承包商签订合同后, 就形成了二元关系。监理的作用是可以减缓双方当事人的不对称压力。因此, 第三方监理的出现是必然的。监理方、业主和开发方形成了三元组织关系。软件工程监理虽然增加了项目的成本, 但是从长远的角度来看, 监理的存在提高了项目成功的几率, 降低了社会净资产的流失。监理规范的管理方法、手段和流程, 保证了项目的质量, 降低了项目维护费用。软件工程监理的目标是:在一定的时间和成本范围内, 软件项目达到了质量规定的要求。软件工程监理评估维度模型如图2所示。
2. 软件工程监理评估。
在软件工程监理过程中, 需要进行不断的评估, 因此, 需要通过数据分析的方式, 量化最终的结果。软件工程监理是典型的外包工程, 其评估模型公式如下:
其中, SSE代表软件工程监理评估质量。C1代表在第1个里程碑时, 费用花费了多少。CD1代表在第1个里程碑时, 预算花费了多少。CD2代表在第2个里程碑时, 费用花费了多少。C2代表在第2个里程碑时, 预算花费的数值。根据项目的里程碑数量一直累加到的第i个里程碑时的情况, 表示当前计算到的里程碑。在软件工程项目中, 呈现的趋势是越来越多的项目需要有工程中的权重因子, 也就是说在不同的里程碑中, 其关心对象的重要程度是不同的。软件工程项目中权重影响因素如图3所示。
下面, 给出软件工程监理评估模型的第2个量化计算公式:
目前, 我国的软件工程项目建设风险较大, 建设市场还需要进一步地规范。为了减少软件工程建设的风险, 规范软件工程建设市场, 保证业主和承建单位双方的利益, 对软件工程建设进行有组织、规范化的监理评估就显得尤为迫切和重要。
四、软件工程监理的必要性和发展趋势
软件工程技术在最近10年取得了飞速的发展, 如今在各行各业纷纷投入了大量的资金进行信息化建设, 工业自动化控制系统、企业ERP系统、数字化校园系统等软件工程项目在不断地涌现, 但是, 由于软件工程监理的起源、发展以及相关的法规制度还不是很完备, 对于软件工程的监理远远不能和成熟的建筑工程监理相比, 所以, 今后软件工程监理的发展还有很大的空间, 在软件工程项目中, 软件工程监理将会起到越来越重要的作用。软件工程监理的发展趋势如图4所示。
1. 规范有序的竞争机制。
目前, 国内的软件工程监理市场比较混乱, 企业间的竞争在很大程度上是依靠关系的竞争和价格的竞争, 大量监管单位为了承揽业务而竞相压价, 甚至采取给回扣和好处费等不正当手段来争取客户, 这是由于国内软件工程监管市场还不是很规范, 有关部门应该规范监理企业间的竞争, 逐步改善不规范竞争的情况, 形成规范有序的竞争机制。
2. 行业技术创新能力差。
信息项目监理虽然经过近10年的努力, 至今仍然面临着实践方面的困难, 还不能很好地将国内外先进的经验和中国的具体情况相结合, 与欧美国家的大型监理企业相比, 在监理整体思想和基础理论等方面都存在相当大的差距。
3. 信息监理企业规范化。
很多信息项目监理单位本身的制度都不健全, 管理松散, 只关心利润, 不重视技术和服务, 使得项目的监理质量低下, 监理企业规范化程度参差不齐, 监理企业规模偏小, 资本不够雄厚, 很难和国内外大企业直接竞争, 所以, 监理企业规范化程度不高的现状必须进行改进。
4. 信息项目监理企业规模扩大。
当前的软件监理单位, 其规模都不大, 从业人员的经验和水平相对较低, 很多监理公司为了降低成本, 往往是接到项目之后, 才进行监理人员的聘用, 这就造成了监理项目质量的不稳定, 因此, 需要扩大软件信息项目监理企业的规模, 以促进整个行业水平的提高。
5. 信息项目监理费用偏低。
软件版本与医疗器械软件监管 篇9
在软件工程中,软件版本用于标识软件状态,控制软件变更,在保证软件质量方面发挥着不可替代的重要作用。不过,当前业内对于软件版本在医疗器械软件监管中的作用认识不足,甚至还存在着误区,这将不利于我国医疗器械软件监管工作的开展。
1 软件版本在软件监管中的作用
软件是无形的,没有物理实体,无法直接进行质量控制,只能通过状态管理来保证软件质量。而软件版本是软件状态管理的工具,软件版本与软件是表里的关系,也是相互对应的关系,即软件发生变更软件版本也随之变化,而且软件发生不同类型和程度的变更,软件版本的不同字段也随之变化,反之亦然。这样通过软件版本就可以识别软件状态,从而在软件整个生存周期过程中进行质量控制以保证软件质量。
国际医疗器械监管者论坛(IMDRF)近期发布的有关文件明确医疗器械唯一标识(UDI)由器械标识(DI)和生产标识(PI)组成,DI的改变需要提交新的上市申请。对于普通医疗器械,产品标签采用DI即可,无需体现PI。而对于独立软件,产品标签需要同时采用DI和PI,软件版本即为PI或PI的组成部分[4],这表明软件版本是独立软件产品标签不可或缺的组成部分。而软件组件不能单独上市,需要随医疗器械产品共同上市,虽然不涉及产品标签的问题,但同样需要软件版本进行质量控制,故此时软件版本是制造商的内部标识。
由此可知,软件版本不仅是医疗器械软件质量控制的工具,是制造商质量管理体系的组成部分,而且是医疗器械软件的产品标识或内部标识,是实现医疗器械软件可追溯性的重要工具。因此,软件版本在医疗器械软件的监管中发挥着重要的作用。
2 软件版本认识误区及监管必要性
2.1 认识误区解析
欧美医疗器械软件上市批书并未强制要求体现软件版本,即便是独立软件也是如此,业内对此现象的常见解释是:一方面软件变更频繁且迅速,上市批书如体现软件版本就会导致软件需要不断进行上市申报,另一方面软件版本已在制造商质量管理体系中进行要求,上市前审批无需重复要求,故欧美医疗器械软件上市批书无需体现软件版本,进而认为中国也应如此。下面简单分析一下欧美对于医疗器械软件的监管要求,探寻上述现象的内在原因。
首先,欧美监管机构规范了软件质量管理体系的考核要求,如欧盟制定了软件生存周期、软件风险管理等标准或技术报告[1,5],美国FDA制定了软件确认、设计控制等指南[3,6]。其次,欧美监管机构建立了软件变更(即版本变更)的监管机制,如欧盟要求制造商每年向认证机构提交软件变更的情况说明,由认证机构来判定是否需要提交新的上市申请;而美国FDA的PMA方式与欧盟要求相同,510k方式有变更申报指南[7],制造商据此可判断软件变更是否需要提交新的上市申请,如无法判断可直接提交上市申请由美国FDA判定,而美国FDA会在后续质量管理体系考核予以确认。最后,欧美监管机构要求在上市申报资料(如说明书)中体现软件版本,如美国FDA软件申报指南明确要求制造商在修订历史中描述软件发布版本[8]。
因此,欧美监管机构从多个角度建立了软件版本确认的相关机制,故无需在上市批书中体现软件版本。同时,欧美监管机构也可在上市批书等官方证明材料中明确软件版本,这也佐证了欧美监管机构已在前期软件监管工作中对软件版本进行了确认。
2.2 监管必要性
我国目前由于监管资源和监管条件的限制,尚未建立起与欧美类似的医疗器械软件监管机制,同时我国的国情和监管体制也与欧美不同,所以不能简单盲目照搬照抄欧美软件版本的监管方法,否则可能会出现医疗器械软件在中国违法上市的情况,特别是境外的医疗器械软件。
我国监管法规明确要求境外医疗器械只有在原产国获准上市后方能在中国进行上市申报,但我国对境外医疗器械制造商未开展质量管理体系考核工作,故未对软件版本进行确认,上市前审批如对软件版本不做要求就存在着监管漏洞。举例而言,某境外独立软件1.0版已在原产国获批上市,经过重大变更后升级至2.0版,但产品名称保持不变,因不在原产国销售故未进行上市申报,即该软件2.0版在原产国未获准上市,如果原产国上市批书等官方证明材料未体现软件版本,那么该软件2.0版就可以在中国进行上市申报并获准上市,这就违反了我国监管法规的要求。
同理,境内医疗器械软件也会出现类似情况,例如,软件发生影响到安全性和有效性的重大变更,本应提交新的上市申请获批后才能上市销售,但如果质量管理体系考核、上市前审批和上市后市场监督不能有效配合,就会出现该软件未获批就上市销售的情况。
因此,当前我国医疗器械软件的监管工作必须要结合软件版本,而且需要从质量管理体系考核、上市前审批和上市后市场监督各个环节对软件版本进行监管,方能实现医疗器械软件的有效监管。
3 思考与建议
软件具有特殊性,变更频繁且迅速,轻微变更也可能导致严重后果。从监管的角度出发,不仅要考虑软件自身特点以及软件变更对医疗器械安全性与有效性的影响,而且要考虑监管资源的有限性以及软件频繁变更导致的注册申报负担。在保证软件版本真实准确反映软件状态的前提下,可以基于软件版本来实现医疗器械软件的有效监管。
3.1 软件版本命名规则设定
医疗器械软件虽然是软件工程在医疗器械行业的延伸,但软件工程所用的版本命名规则不一定符合医疗器械的监管要求,如采用软件发布日期和软件发布顺序编号作为软件版本的情况,所以医疗器械软件的版本命名规则需要考虑监管要求,特别是对软件变更的监管要求。
例如,如果监管要求明确医疗器械软件发生增强类变更需要提交新的上市申请,而发生纠正类变更和内部构建通过质量管理体系进行控制,无需提交新的上市申请[9],那么软件版本命名规则就需要区分软件变更类型。此时,软件完整版本用于描述软件所有类型的变更,而软件标识所用版本仅体现增强类变更即可,当软件标识所用版本发生改变则需要提交新的上市申请。例如,软件版本命名规则为X.Y.Z.B,其中X表示重大的增强类变更,Y表示轻微的增强类变更,Z表示纠正类变更,B表示内部构建,则软件标识所用版本可省略为X.Y,此时如X和Y发生变化则需提交新的上市申请,而Z和B如发生变化则无需提交新的上市申请。
同时,对于独立软件而言,软件标识所用版本可作为DI或DI的组成部分,软件完整版本则作为PI或PI的组成部分,这样也符合IMDRF关于独立软件UDI的要求,即独立软件发生重大变更时DI和PI均会随之改变,而发生轻微变更时DI保持不变而PI会随之改变。另外,如果软件版本不能区分软件变更类型,那么从风险角度考虑只能按照增强类变更的要求进行监管。
3.2 软件组件版本监管
软件组件和独立软件从设计和生产角度而言差异较大,但从监管角度而言差异并不明显,如欧盟软件生存周期标准、软件风险管理技术报告均适用于全部医疗器械软件,并不限于独立软件[1,5],而美国FDA软件确认指南、设计控制指南、软件申报指南和产品变更申报指南也不区分独立软件和软件组件,同样适用于全部医疗器械软件[3,6,7,8]。
尽管软件组件无需外部标识,其版本仅用于内部标识,但独立软件的版本监管原则同样适用于软件组件,原因在于软件版本是软件质量控制和实现可追溯性的工具,无论独立软件还是软件组件均适用。同时,软件组件如发生重大变更同样需要提交新的上市申请,如不对软件组件的版本进行监管也会出现医疗器械产品违法上市的情况。因此,软件组件和独立软件关于版本的监管要求是相同的,差别仅在于软件组件无需外部产品标签,但仍需在上市申报材料、产品说明书和产品注册证中体现版本。
3.3 软件版本监管方案建议
结合我国医疗器械软件的监管现状,可以基于软件版本建立一个医疗器械软件的监管方案,其前提是软件变更监管的法规要求,其核心是软件版本命名规则,其关键是软件版本命名规则真实性核查。
首先,衡量监管风险明确软件变更监管的法规要求。这是医疗器械软件监管的前提和基础,不必追求一步到位与国际全面接轨,可以结合我国监管体制和监管资源分阶段开展相应工作,积累监管经验逐步完善监管要求。软件变更类型及其监管要求可以参考3.1节举例所述内容,以后待时机成熟时可将轻微的增强类软件变更豁免上市申报。另外,与召回有关的软件变更需要依据相应的法规进行处理。
其次,制造商需结合软件特点和监管要求来规范软件版本命名规则,明确软件版本的全部字段和字段含义,并确定软件标识所用版本。制造商需要在产品说明书体现软件标识所用版本,同时还需在开机或登录界面显示软件标识所用版本,而在“帮助”或“关于”界面显示软件的完整版本,无论独立软件还是软件组件均适用。
最后,质量管理体系考核、上市前审批和上市后市场监督均需对软件版本命名规则进行真实性核查。境内质量管理体系考核可通过软件配置管理文件或项目开发文件来确认软件是否依据版本命名规则进行设计、开发和维护。制造商在上市申报材料中需出具软件版本命名规则真实性声明,明确版本命名规则和标识所用版本,承诺承担相应的法律责任;同时境外医疗器械软件的上市批书等官方证明材料需明确软件标识所用版本。软件检测报告提供软件开机或登录界面以及“帮助”或“关于”界面的照片。技术审评基于检测报告照片、制造商真实性声明和软件申报技术资料来确认软件的完整版本和标识所用版本。产品注册证体现软件标识所用版本和软件版本命名规则等信息。上市后市场监督依据产品注册证关于软件版本的相应信息进行上市后监管。
这样一方面基于软件变更监管的法规要求,可以减轻制造商的注册负担,节省监管资源,另一方面通过各个监管环节的多管齐下,可以增加制造商的违法成本,强化监管效果,在促进医疗器械行业技术进步与创新的同时有利于实现医疗器械软件的有效监管。
播放软件 篇10
工信部自2002年开始每年举办该活动, 入围门槛逐年提高。由于收入增长及企业重组等原因, 本届百强企业较2011年相比, 更新率达22%, 11家企业首次入选。本届入选的中国软件百强企业发展呈现出四大特点:企业实力继续提升, 但增长趋向稳定;企业竞争日趋激烈, 服务型企业增加较多;企业研发投入增加, 创新能力提高;企业转型与融合步伐加快, 结构调整不断深化。会上, 有专家指出:“2011年以来, 在国家4号文等产业扶持政策的推动下, 我国软件产业步入新的快速发展阶段, 产业规模超过1.88万亿元, 增长38.7%。2011年, 软件业利润增速比‘十一五’期间平均增速下调20多个百分点, 伴随着软件业竞争日趋激烈, 企业市场开拓费用明显增加, 影响企业利润增加, 咨询和运营服务收入增势突出, 软件产品和系统集成等传统业务增速放缓。”
此次以年销售额6.4亿元登上软件业务收入百强的远光软件, 是电力行业企业管理软件及服务的主流供应商, 在电力行业企业管理软件领域占有80%以上的市场份额, 稳居企业管理软件第一品牌阵营。公司一直以技术创新作为发展战略, 营业规模持续高速增长。近年来, 远光软件针对大型集团企业集约化、精细化管理要求及电力行业的变革特点, 研发推出远光GRIS集团资源集约化管理系统, 在电力行业大型集团企业得到深入应用, 成为国家电网公司“SG186优秀合作伙伴”;2012年, 远光协助国电集团在国资委基建内控体系试点项目中, 建设成为中国基建财务内控典范工程。远光软件承担的“电力企业集团集约化管理信息系统”项目, 已获批入选“十二五”国家科技支撑计划, 彰显了企业持续的科技创新能力和深度融合业务的特性。
软件菜鸟必学:软件版本知识合集 篇11
版本号划分
V(Version):即版本,通常用数字表示版本号。(如:EVEREST Ultimate V4.20.1188beta)
Build:用数字或日期表示版本号的异种方式。(如:VeryCD eMule V0.48a Build 071112)
SP:Service Pack,升级包。(如:Windows XP SP 2/Vista SP 1)
授权和功能划分
Trial:试用版,通常都有时间限制,有些试用版软件还在功能上做了一定的限制。可注册或购买成为正式版。
Unregistered:未注册版,通常没有时间限制,在功能上相对于正式版做了一定的限制。可注册或购买成为正式版。
Demo:演示版,仅仅集成了正式版中的几个功能,不能升级成正式版。
Lite:精简版
Full:完整版
开发阶段划分
α(Alpha)版:内测版,内部交流或者专业测试人员测试用。Bug较多,普通用户最好不要安装。
β(Beta)版:公测版,专业爱好者大规模测试用,存在一些缺陷,该版本也不适合一般用户安装。
γ(Gamma)版:相当成熟的测试版,与即将发行的正式版相差无几。
RC版:Release Candidate,候选版本,处于Gamma阶段。从Alpha到Beta再到Gamma是改进的先后关系,但RC1、RC2往往是取舍关系。
Final:正式版
语言划分
SC:Simplified Chinese,简体中文版。
GBK:简体中文汉字内码扩展规范版。
TC:Traditional Chinese,繁体中文版。
BIG5:繁体中文大五码版。
UTF8:Unicode Transformation Format 8 bit,对现有的中文系统不是好的解决方案。
其他不太常见的版本号
Enhance 增强版或者加强版,属于正式版
Free 自由版
Full version 完全版,属于正式版
shareware 共享版
Release 发行版,有时间限制
Upgrade 升级版
Retail 零售版
Cardware 属共享软件的一种,只要给作者回复一封电邮或明信片即可(有的作者并由此提供注册码等),目前这种形式已不多见。
Plus 属增强版,不过这种大部分是在程序界面及多媒体功能上增强。
Preview 预览版
Corporation & Enterprise 企业版
Standard 标准版
Mini 迷你版也叫精简版,只有最基本的功能
Premium贵价版
Professional专业版
Express特别版
Deluxe豪华版
Regged已注册版
CN简体中文版
CHT繁体中文版
EN英文版
Multilanguage多语言版
Rip 是指从原版文件(一般是指光盘或光盘镜像文件)直接将有用的内容(核心内容)分离出来,剔除无用的文档,例如:PDF说明文件,视频演示之类的东西,也可以算做是精简版吧……但主要内容功能是一点也不能缺少的!另:DVDrip是指将视频和音频直接从DVD光盘里以文件方式分离出来。
trail 试用版(含有某些限制,如时间、功能,注册后也有可能变为正式版)
RC是 Release Candidate 的缩写,意思是发布倒计时,该版本已经完成全部功能并清除大部分的BUG。到了这个阶段只会除BUG,不会对软件做任何大的更改。
RTM这基本就是最终的版本,英文是 Release To Manufactur,意思是发布到生产商。
Original Equipment Manufacturer (OEM)OEM软件是给电脑生产厂的版本
Full Packaged Product (FPP)Retail
FPP就是零售版(盒装软件),这种产品的光盘的卷标都带有“FPP”字样,比如英文WXP Pro的FPP版本的光盘卷标就是WXPFPP_EN,其中WX表示是Windows XP,P是Professional(H是Home),FPP表明是零售版本,EN表明是英语。获得途径除了在商店购买之外,某些MSDN用户也可以得到。
模块化软件的软件凝聚度度量 篇12
1 软件系统的网络观
从结构上看,任何网络都可以概括成结点和边的集合,不管是构造出的规则网络,随机网络,还是复杂网络。因此,软件系统可以表示为一个二元组G(类/函数集,关系集),模型所反映的层次结构可以用有向非循环的关系依赖图表示。图中每个结点代表一个元素,每条有向弧表示元素间的层次关系,如is-a,has a,part a关系等。当元素和关系数量不断增加时,软件系统则呈现出复杂的网络结构,即扩张性及不断演化的特性。
在工程领域中,软件系统往往表现出无标度网络的特性。如软件内聚程度过高时,若某一个类内部出现异常,在最坏的情况下,会影响到很多与之相关的其它类。这恰恰与无标度网络特有的无标度性和脆弱性所对应;“在当前版本中出错的模块在下一版本中仍可能存在其它错误”[1]这一经验说明易出故障的模块在系统中的比重虽然很小,但是它可能蕴含很多关联错误.这正是对幂律度分布特性——“大量结点有少数连线,少数结点有大量连线”的例证。近年来,已经有人经实验仿真验证软件系统是一个具有幂律分布的无标度网络[2]。
2 模块化软件系统凝聚度
模块化软件系统与汇编语言软件系统相比较而言,有很好可读性和结构性。依据复杂网络理论将模块化软件系统软件系统抽象为一个二元组G(类/函数集,关系集),其中关系集是类/函数集之间的依赖关系。具体地说,包含以下依赖关系:
2.1 类/函数调用中的参数传递依赖
类/函数参数传递依赖在本质上是由调用类/函数(过程)和被调用类/函数(过程)在调用发生时进行通信而引起的。基本的参数传递依赖有两种:值传递依赖和引用传递依赖。在引用传递过程中,被调类/函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调类/函数中的实参变量。所以,被调类/函数对形参做的任何操作都影响了主调类/函数中的实参变量,主调类/函数与被调类/函数之间的依赖关系是双向的。另外对于调用关系的依赖又有三种特殊情况:1)被调用类/函数并没有实际使用传入的参数;2)被调类/函数的返回值没有得到调用者的使用;3)指针类型的参数并没有起到双向传递数据的作用,被调用类/函数中虽然包括对指针的定义性操作,但操作的结果并没有返回调用者。
2.2 各类/函数通过共享全局变量形成的全局数据依赖
使用全局变量的优点是:可以减少变量的个数,减少由于实际参数和形式参数的数据传递带来的时间消耗。但是,使用全局变量也有众多缺点,最重要的是全局变量破坏了类/函数的封装性能。类/函数中若使用了全局变量,那么类/函数体内的语句就可以绕过类/函数参数和返回值进行存取,这种情况破坏了类/函数的独立性,使类/函数对全局变量产生严重的依赖关系。同时,也降低了该类/函数的可移植性。而且,全局变量使类/函数的代码可读性降低。因为多个类/函数都可能使用全局变量,类/函数执行时全局变量的值可能随时发生变化,对于程序的查错和调试都极其不利。从复杂网络的角度来说,全局变量是个具有很大度的关键结点,关联结点很多,这种结点一旦被破坏,整个网络的抗毁性则遭受到严重打击。
根据这些特点,本文建立模块化软件系统模型:
定义模块化软件系统的关系依赖图:一个模块化软件系统的关系依赖图G定义为G(V,W)。其中,V是结点集,W是带权的有向边集。
结点集:结点集V={V1,V2,V3,…,Vi,…,Vn},其中0
带权有向边集:带权有向边集W={W11,W12,W13,…,Wij,…,Wnn},其中0
调用关系
1)标注为结点Vi的类/函数与标注为结点Vj的被调用类/函数之间存在参数传递且被调用类/函数实际使用了传入的参数。特殊地,标注为结点Vi的类/函数与标注为结点Vj的被调用类/函数之间存在引用传递依赖且引用传递的值在标注为结点Vj的被调用类/函数中得到改变,则称存在调用关系
2)标注为结点Vi的类/函数修改全局变量,且被标注为结点Vj的类/函数读取了同一全局变量。
软件凝聚度:
为模块化软件系统G的凝聚度。其中,n代表软件系统G的结点个数,且n≥1;l代表软件系统G中,每两结点之间的平均路径长度;dij代表结点i和结点j之间的最短距离。当结点i和结点j之间没有路径可达时,dij=∞。当n=1时,软件凝聚度为0,即只有一个结点时,不存在与其它结点的交互。
具体算法如下:
1)找到结点Vi的调用关系
2)重复步骤1,直到包含所有模块或函数。
3)将步骤1和2所处理的图记作关系依赖图G(V,W)。
4)对关系依赖图G(V,W)分别求取每个结点到其它结点的最短路径。
5)根据公式计算软件凝聚度。
3 实例分析
本文对程序设计语言JAVA的类库进行分析。其中,JAVA选用的是SUN公司的JDK。对应用程序员来说,最常用的是开发桌面应用程序。因此,本文以JAVA中对话框框架的源码作为研究对象,分别建立各自的结点集V和边权集W。其中,V代表框架中出现的类,W说明框架中存在调用关系,调用关系分以下三种,如表1。
我们用复杂网络分析软件Netdraw画出的网络图如图1所示。
在软件凝聚度度量的各种参数中,使用最广泛是MOOD度量的耦合因子CF(Coupling Factor)。所以我们选取耦合因子CF,并与软件凝聚度比较。比较结果如表2所示。
表2通过对耦合因子CF和软件凝聚度比较,我们发现凝聚度高的软件其耦合度低。所以,我们建议使用JDK开发软件。从理论的角度讲JAVA是基于面向对象的语言,模块在抽象性和封装性上都强于传统的面向过程语言。从业界的角度进行统计也是如此,JDK开发的软件无论在开发还是维护阶段,都比传统的面向过程语言开发和维护要容易。这与我们计算所得到的结论是相似的,凝聚度高的软件其耦合度低。
4 结束语
研究软件凝聚度的度量方法,对“计算型”软件工程有重要意义。借鉴复杂网络思想的软件模型更容易考察软件系统的整体性质,且能动态的反映出这些性质,这为我们掌握软件系统的规律提供无可比拟的优势。但是目前基于复杂网络研究在建模、分析、验证,以及探索合理的内外属性度量对应关系等方面才刚开始,我们软件凝聚度的研究工作也处于探索阶段,软件凝聚度能不能找到一个阈值去度量大多数软件质量,有待于大家的继续研究与探讨。
参考文献
[1]Musa J D.Software Reliability Engineering[M].北京:机械工业出版社,2003:60-151,355-434.
[2]Albert R,Jeong H,Bambasi A L.Error and attack tolerance of complex net-works[J].Nature406,2000:378-382.
[3]韩明畅,李德毅,刘常昱,等.软件中的网络化特征及其对软件质量的贡献[J].计算机工程与应用,2006(20):9.