当前位置:文档之家› 中国软件行业生产力报告(开发效率度量等)

中国软件行业生产力报告(开发效率度量等)

中国软件行业生产力报告 (二零零七年 第一期)Drv_1.0中国软件行业协会系统与过程改进分会 中国软件过程基准用户组2007年6月课题组成员名单总体组成员何新贵 北京大学信息科学技术学院郑人杰 北京软件协会过程改进分会周伯生 赛柏科技王 青 中国科学院软件研究所郑振宜 台湾资策会编制小组成员(以姓氏拼音为序)组长张鹤飞 三星电子中国通信研究院组员 蒋晓舰 独立行业专家刘 旭 同方股份有限公司宋书明 中国软件评测中心吴粤青 北京亿阳信通股份有限公司郑智琴 北京灵图星讯科技有限公司审核小组成员(以姓氏拼音为序)申剑飞 NEC卓越软件科技有限公司汪 浩 西门子中国研究院吴浩刚 北京天融信网络安全技术有限公司王海青 北京联想利泰软件有限公司目 录1 概述 (1)1.1 背景 (1)1.2 目的 (1)1.3 范围 (2)1.4 读者 (2)1.5 报告结构 (2)2 数据描述 (2)3 生产力描述 (7)4 数据分析方法 (8)4.1 各参数的基本数据 (9)4.2 参数间关系 (10)5 数据分析 (12)5.1 生产率的比对 (12)5.1.1 国际比对 (12)5.1.2 国内比对 (12)5.2 质量(缺陷密度)的比对 (15)5.2.1 国际比对 (15)5.2.2 国内比对 (16)5.3 质量与生产率的组合分析 (18)5.4 过程成熟度进阶分析 (19)6 结论 (19)7 对中国软件产业的意见和建议 (19)8 致谢 (20)中国(2007年)软件行业生产力报告 更改记录日期 修改章节 修改类型*修改描述 修改人 版本2007-06-22 1、4、5、6、7M将郑智琴、刘旭、宋书明老师的修改意见和建议进行整合、修改张平 0.912007-06-25 3 M 根据蒋晓舰老师提供的生产力描述,将第3章节修改。

张平 0.922007-06-26 4 M 根据张鹤飞老师的建议,将第4章节中的斜体字改为正体字张平 0.932007-07-08 M 增加扉页,将正文字号改为小四号,根据组长评审意见进行修改,添加页眉张平 0.942007-07-11 M 根据主任意见意见修改封面及扉页内容,对版面做出调整张平 0.95*修改类型分为A-增加M-修改D-删除1 概述1.1 背景CSBSG 成立于2006年1月12日,它是按照国际惯例建立的专业性用户组织,在中国软件行业协会系统与软件过程改进分会以及有关行业促进组织的指导下开展工作。

CSBSG的使命是:倡导和建立以基于度量数据的“基准比对”为主要驱动力的深度过程改进方法论,改变当前过分依赖模型评估和政府奖励来驱动过程改进的方法,使软件过程改进走向可持续发展的轨道;另外,通过对中国软件行业生产力的相关数据进行分析以及比对国际软件行业的生产力数据,为中国软件行业的高层领导和软件企业的高层制定行业和企业的发展战略服务。

1.2 目的本报告对来自于CSBSG的国内软件项目数据进行分析,为基于国内真实有效数据的中国软件行业生产力报告。

本报告量化地表述了中国软件行业在不同地区、不同行业应用领域的生产力和质据;软件企业的高层能更加清晰地定位本企业在业界的位置,通过基准对比和模型一起来驱动企业进行有针对性的过程改进,有效解决单纯依靠模型来驱动过程改进中存在的问题,为软件企业的过程改进提供更明确的指导方向。

本报告收集了国际知名机构的数据库中各国软件行业生产力数据,并将国内软件行业相关数据与之进行了对比,可以使中国软件行业的高层领导对国内软件行业的相对水平有一个清醒的定量的认识,能有针对性地制定软件行业发展的方针和政策,使中国的软件企业参与国际软件市场的竞争时能扬长避短,体现出中国软件行业整体的差异化竞争优势。

而国内软件企业的高层通过比对国际软件行业的生产力数据,能始终以业界最佳为目标,改进不足,从而处于不败之地。

1.3 范围本报告主要关注中国和国际软件行业生产力及相关方面,不涉及具体的软件企业的信息。

另外,关于国际和国内的软件行业的市场和竞争格局的内容不在本报告范围之内。

1.4 读者本报告的读者主要是软件行业的高层领导和软件企业高层。

当然,对软件咨询和监理机构、软件企业的项目经理及过程改进人员、软件发包商(甲方)以及软件工具提供商也有一定的借鉴和参考价值。

1.5 报告结构本报告分为8个部分,第1部分为概述,第2部分为软件行业相关数据的描述,第3部分为软件生产力描述。

第4部分给出本报告进行数据分析的方法,第5部分为CSBSG数据中的项目生产力数据的分析以及国际国内生产力数据进行比对和分析。

第6部分给出相关的结论。

第7部分为对中国软件产业的意见和建议。

最后的第8部分为致谢。

2 数据描述本报告中所参考的数据来源于中国软件过程基准用户(CSBSG)的数据库,该数据库中的项目数据均由软件企业提供。

本次分析的数据为到5月20日之前数据库中所有项目评级数据为A/B/C 类的数据,共237个。

开发项目数据的属性影响着各个参数的特性,这些属性有:z 项目类型:新开发、二次开发、增强开发。

z 业务领域:电信、金融 (银行,保险,证券)、政府、公共管理(税务)、制造、卫生、邮政、交通(航空、铁路、汽车)、运输、流通 (批发与零售、仓储)、科研、能源 (石油、电力、燃气、自来水、采矿等)、家庭 (社区服务等)、建筑、媒体、教育、通用、其它。

z 地区分布:指开发团队所在的省市。

z 编程语言:软件项目源代码所采用的语言,如C 、C++、VB 、Java 以及C #等。

z 团队规模:指团队内人数。

下面主要对本报告中使用的237个CSBSG 数据库中的项目数据的属性分布进行说明:1.开发类型:本报告所涉及的项目,以新开发为主,其次是增强开发,只有少量的二次开发项目。

具体开发类型分布如下:开发类型分布178471250100150200新开发增强开发二次开发图1 开发类型分布图2.业务领域:本报告所涉及数据,主要面向政府、电信、制造、流通、金融等行业,同时也有一些是面向多行业的通用产品开发。

具体的业务领域分布如下:项目业务领域分布38671283210118223421191020304电信建筑交通教育金融流通媒体能源卫生制造政府通用其它0图2 项目业务领域分布图3.项目数据点的开发地区分布:地区分布380192016185211219117602040608010安徽北京广东江苏辽宁山东陕西上海四川天津新疆浙江重庆0图3 地区分布图4.主要编程语言分布如下:主要编程语言分布22519812343020406080100120CC++JavaVBC#其它图4 主要编程语言分布图5.最大团队规模:本报告所涉及的项目,其最大团队规模主要为不少于5人的项目,其具体分布如下:最大团队规模分布48106830204060801001200-4人5-9人10人或更多图5 最大团队规模分布图为确保所收集到的数据可信,并对数据的来源保密,CSBSG 采用如下流程来收集处理项目数据:1) CSBSG 将数据调查问卷发放到企业单位。

2) 企业单位收集本公司项目数据填写入相应调查问卷中(分A/B/C 三类)。

3) 企业单位以书面或电子方式提交调查问卷数据到CSBSG 数据库管理员。

4) 数据库管理员进行数据的匿名化处理,分配项目数据唯一标识号(ID),向数据提交会员单位反馈回执和ID。

5) 数据库管理员将匿名处理后的数据整理之后交由CSBSG专家组进行审核,检查数据中是否存在明显的错填漏填或疑问项。

如果有,则交由数据库管理员与提交数据会员单位再次确认数据直至专家组确认所有问题得到解决(特别说明:如果调查问卷填写与确认过程中发现较复杂问题,导致通过数据库管理员沟通效率很低时,数据库管理员将征询提交数据的会员单位相关负责人意见,是否允许CSBSG专家和会员单位直接沟通,在得到书面的肯定答复后,数据库管理员会向相关专家告知提交数据的会员单位联系方式,由CSBSG专家直接与数据提交人员沟通,以提高沟通效率)。

6) 数据库管理员将经过审核的数据录入CSBSG。

7) CSBSG组织专家组对项目数据进行评价,形成基准比对报告。

(对于数据的可信度,CSBSG的专家有一套流程及方法来判断企业提交数据的可信程度)。

8) 数据库管理员将相关报告发送给填报会员单位(会员单位也可在CSBSG网站上直接访问数据报告)。

图6 数据处理流程图3 生产力描述《资本论》第一卷中有这样描述:“劳动生产力,即由于生产条件发展程度不同,等量的劳动在同样时间内会提供较多或较少的产品量。

” 这个定义强调生产率的含义;而在以服务为主要产品形态的软件产业,表征软件生产力即软件生产的能力的重要指标,除了生产率外,还需要考虑另外一个重要指标,即质量。

本报告认为软件生产力应是对质量和生产率的一种综合评价。

例如,在相同的质量标准的前提下,生产效率越高,也即生产率越高,说明软件生产力越强,反之就是越弱。

同理,在相同的生产率条件下,软件质量水平越高则说明软件生产力水平越强,反之越弱。

软件生产率是指,在一定的输入或资源(人员、资金、设施、工具等)条件下,单位时间组织产出的能力,包括软件系统等。

一般来说,软件生产率使用规模与工作量的比率描述。

软件规模可以采用代码行、功能点等方式度量。

在本报告中,除特殊说明,规模采用代码行度量。

因此,软件生产率的度量单位为:LOC/人月。

其中LOC 为代码行的英文缩写,具体指源程序中非空非注释的物理代码行,同时考虑语言类型将其折算成标准C的对应代码行; 考虑中国软件企业工作人员作息现状,每人月应为1人×22工作日×8小时,即176人时。

软件质量 (software quality) 是与软件产品满足明确或隐含需求的能力有关的特征和特性的总和。

其中,是否满足需求通常从:功能性、可靠性、易用性、效率、维护性、可移植性6个方面进行描述,具体质量需求要素可参见ISO/IEC9126:1991。

狭义的软件质量可以定义为软件满足提供期望功能需求的能力。

在度量操作中,通常采用两种方式表示:缺陷率(如百万行代码的缺陷数,每个功能点的缺陷数)和可靠性(如每n小时操作的故障数,平均失败时间或特定时间内无故障操作的概率)。

在本报告中,由于软件的交付后的遗留缺陷很难收集到,因而本报告采用的软件质量度量为上面提到的第一种,而且是交付前软件项目全生命周期中软件的缺陷密度,单位为: 缺陷数/KLOC,KLOC为千代码行的英文缩写。

综上所述,软件生产力使用软件生产率和软件质量综合描述和评价。

在本报告中,除特殊指出外,软件生产率和质量采用LOC/人月和缺陷数/KLOC表示。

值得一提的是,这两种反应软件生产力的重要指标间往往存在相互的影响关系,具体分析参见随后章节。

相关主题