`
jinjiankang
  • 浏览: 112933 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

代码行统计规程

阅读更多

前言

 

因工作需要,要起草一个代码行统计规程。因此,给出我的思路,请大家多提意见。本文暂不考虑使用功能点进行规模度量,也不想讨论功能点与代码行孰优孰劣。唯一一点理由是,本人赞同Steven McConnell在《软件估算》第199页中的说法,“代码行是度量软件规模的糟糕方法,不过所有其它的规模度量方法都更糟”。当然,李帜在《功能点分析方法与实践》第32页也把代码行说的一无是处。

 

1    目的
(1)    当项目结束后,统计出该版本新增的代码行。作为过程资产,该数据可以为今后的项目类比估计提供参考。
(2)    当项目结束后,统计出单个需求对应的代码行。作为过程资产,该数据可以为规模估计专家提供参考。

 

2    假设条件
(1)    代码是指使用各种编程语言编写的计算机指令,包括配置文件中的字符。
(2)    代码行是指非空非注释物理代码行。
(3)    不包括为测试目的而编写的代码。
(4)    不统计第三方代码库。
(5)    无论逐字重用、少量修改或是大量修改后重用,均按新增代码统计。
(6)    所有项目组均使用公司统一的编码风格。按编程语言分类,每类语言都有一套编码风格。编码风格包括但不限于:每行代码的最大宽度。
(7)    如果一个项目群中使用了两种或两种以上的主编程语言,那么,按主编程语言将项目群划分成子项目,分别做代码行统计。

 

3    新增代码行统计步骤
(1)    按编程语言或文件类型分别统计
使用统计工具分别统计项目涉及的所有编程语言代码行。根据表1计算当前版本新增代码行。

表1
编程语言 上一版本代码行 当前版本代码行

当前版本新增代码行

(当前版本-上一版本)

Java 1200 2500 1300
XML 250 400 150
JSP 1800 3600 1800
... ... ... ...

 

(2)    确定项目的主编程语言
结合公司的软件开发现状,主编程语言包括:

  • C/C++
  • Java
  • PHP
  • C#

(3)    规模折算

(根据公司内所有项目涉及的所有编程语言情况,分别给出非主编程语言相对主编程语言的折算系数。这要参考一些资料,根据经验给出。待积累一定历史数据后再适当调整)举例:

基于Java/JSP的Web应用系统规模折算系数
Java Java 折算系数(值为1)
JSP Java 折算系数1
HTML Java 折算系数2
XML Java 折算系数3
Javascript Java 折算系数4
CSS Java 折算系数5
properties Java 折算系数6

 

通过公式计算项目新增规模:Loc = L1*f1 + L2*f2 + ...

其中,LoC:项目新增规模  Li:新增代码行  fi:折算系数

 

4    单个需求对应的代码行统计步骤
(1)    选择有代表性的需求。这里的“有代表性”可以定性描述为:

  • 所选需求的实现代码行数要涵盖:较少、中等、较多
  • 所选需求的实现难度要涵盖:容易、中等、较难
  • 所选择需求的个数推荐为项目总需求数的10%,但最少不低于3个

(2)    由最熟悉这些需求实现的人手工计数需求涉及的代码行数,并计算折算后的总行数。但要保留折算前的数据。

需求描述 编程语言 代码行数 折算系数 合计

 

注:考虑到需求与代码对应时的复杂性和不准确性,填写合计值时,将求和后的数值根据ceiling原则,去掉个位和十位,精确到百位。例如:计算结果为1234,则填1300;计算结果为749,则填800。

 

5    推荐的统计工具

SourceCounter(http://code.google.com/p/boomworks/)
LineCount(http://liangs.autodebug.com/index.htm)

 

 

1
0
分享到:
评论
1 楼 bobquain 2009-12-03  
感谢博主从Steven McConnell的书中摘出来的那句话,既权威又很有道理,坚定了我做这种工具的信心。

相关推荐

    设备编码管理规程.pdf

    通过规范的编码,企业可以更方便地统计和分析设备的构成和性能,从而进行分级管理和重点维修,提高设备利用率和运行效率。 在责任分配上,设备工程部承担规程的起草、审核、修订、培训、执行及监督工作,文件管理员...

    设备编码管理规程完整.pdf

    - **设备分类**:设备分类是管理的基础,通过统计和分析设备的构成和性能,有助于实施有效的管理和维护。 - **编码唯一性**:设备编码一旦确定,不得更改,设备报废、变卖或转出时,相应编码随之作废。 - **编码...

    河北省企业基本养老保险经办机构业务规程.docx

    规程明确了业务范围,涵盖了参保登记、申报核定、基金征集、账户管理、关系转移、待遇计发、待遇支付、欠费核销、基金财务管理、信息与统计管理、稽核与内控监督、退休社会化管理服务、网上经办与服务等多个方面。...

    《地籍调查规程》.docx

    地籍编号是每个地籍单元的唯一标识,由行政区划代码、地籍区号、地籍子区号和宗地号组成,便于检索和管理。 4.5 坐标系统 地籍调查采用国家统一的坐标系统,如中国大地2000坐标系或WGS84坐标系,确保地籍数据的空间...

    设备管道及阀门编号管理规程.pdf

    此外,还提供了各类代码表(如设备类别代号表、区域/生产线代号表等)供参考,确保编码的标准化和统一性。 通过这份规程,公司可以实现对设备设施的精细化管理,提高工作效率,同时减少因标识不清导致的误操作和...

    北电PASSPORT维护规程及报表

    这包括监控设备状态指示灯,识别异常行为,如频繁重启、性能下降等,并根据北电提供的故障代码手册进行问题定位。在确定故障部件后,按照规程更换损坏的硬件,确保设备恢复正常工作。 定期检查是对设备进行全面体检...

    发电设备可靠性评价规程

    3. **信息管理系统**:为了统一管理全国电力可靠性信息,规程规定采用“电力可靠性管理中心”(简称“中心”)组织编制的“发电设备可靠性信息管理系统”程序、事件编码和单位代码。 4. **行业管理**:无论发电厂...

    全国职业院校技能大赛高职组移动互联网应用软件开发赛项规程.docx

    在程序排错环节,选手需要依据提供的智能农业项目代码和缺陷报告单,找出并修复代码错误。系统设计环节则要求选手根据完整的需求说明书进行系统设计,输出设计文档。功能模块编码环节,选手需要参考文档完成指定功能...

    测试缺陷跟踪处理规程-9.06.pdf

    修复可能涉及修改代码、调整配置或者更新文档。修复完成后,需要提交更改并通知测试团队进行验证。 5. **缺陷验证与关闭**:测试团队接收到修复后的版本,会重新执行之前的测试步骤,确认缺陷是否已得到解决。如果...

    LY/T 1955-2022林地保护利用规划林地落界技术规程

    规程还包括多个附录,如林地落界属性因子及代码、林地质量等级评定方法、数字正射影像DOM的主要技术要求、林地落界检查表和统计表,这些都是实际操作中必不可少的工具和参考。 总的来说,LY/T 1955-2022规程的修订...

    夹具毕业设计题目_低速级斜齿轮零件的机械加工工艺规程.rar

    设计者需要利用这些工具绘制零件图,模拟加工过程,并生成数控机床的加工代码。 8. **质量管理和安全生产**:设计中还需考虑生产安全和质量管理,包括设备的安全操作规程、人员培训、环境因素以及质量保证体系的...

    DL-T-518.2-1993 电力生产人身事故原因分类与代码.pdf

    编码方法采用数字代码进行分类,既方便了信息的存储和检索,也利于进行事故统计和分析。 标准中提及的“防护保险信号装置缺乏或有缺陷”是指在电力生产过程中,安全防护设施和信号装置的不完善可能导致人身事故。...

    汽车贷款保证保险实务规程.pptx

    保险公司将进行资质审核,签订合作协议,并通过代码管理来规范合作流程。 **第二部分:承保** 1. **承保流程**:包括我司的贷款保证保险流程和其他担保流程,涉及投保申请、资信审查、核保、签订各类合同、办理...

    电力科技成果分类与代码.doc

    * 手册、定额、统计与其它各类文献(397190000) * 根底科学与应用科学(398210000) * 水力发电(400300000) * 火力发电(405400000) * 电气技术(414500000) * 电力工程材料(426700000) * 环境保护与劳动保护...

    计算机操作规程分享.pdf

    因业务需要在电脑上使用QQ 或其他网络通讯程序时,不要点击对方发送的网站链接以及文件和程序,以防止电脑遭受恶意代码或病毒的攻击。 7. 如果你的鼠标和键盘不灵活,不反应,不要敲打它们。如果它一点不反应,请...

    气体分析操作规程

    6. **数据处理与报告**:分析数据需经过适当的统计处理,如平均值、标准偏差计算,以评估数据的可靠性和稳定性。最后,结果需清晰、准确地报告,包括分析日期、操作者、样品信息以及分析结果。 7. **设备维护**:...

    DLT517-93电力科技成果分类与代码(共1页).doc

    * 手册、定额、统计及其它各类文献(170000) * 其它(190000) 2. 基础科学与应用科学、水文、地质与勘测(200000) * 基础科学与应用科学(210000) * 水文(220000) * 地质与勘测(230000) 3. 水力发电...

    电气代码:087 概率类潮流.zip

    087号电气代码可能是指一个特定的规程或标准,它可能详细规定了在进行概率类潮流计算时应遵循的步骤和要求。在这个压缩包中,我们可以期待找到关于如何执行概率类潮流分析的相关资料,包括但不限于理论介绍、计算...

Global site tag (gtag.js) - Google Analytics