关于软件规模代码行(LOC, Line of Code)度量的一些想法
2006-04-10 15:38
579 查看
下面是我想到的关于软件规模代码行(LOC, Line of Code)度量的一些要点,请大家批评指正!
1 原则
客观真实,不考虑度量结果对分析评估的影响关系。
2 内容
2.1 度量文件类型
项目类型:.NET, Java, PHP, VB, C(C++), Delphi...
文件分类和类型:静态页面(.htm, .html),CSS文件(.css),js脚本(.js),sql脚本(.sql),asp动态页面(.asp),asp.net动态页面(.aspx, .ascx),jsp动态页面(.jsp),php动态页面(.php),java代码(.java),vb代码(.frm, .bas, .cls),vb.net代码(.aspx.vb, .ascx.vb, .asax.vb, .vb),C#代码(.aspx.cs, .ascx.cs, .asax.cs, .cs),C或C++代码(.c, .cpp, .h),Dephi代码(.pas, .dfm),图片文件(.gif, .jpg, .jpeg, .jpe, .png), 多媒体文件(.ra, .rm, .rmvb, .mov, .wma, .mp3, .avi, .mpg, ...), Flash(.swf), ...
2.2 度量指标
对于图片、Flash等非文本文件统计文件数量、文件大小;
对于文本文件统计文件数量、文本行数、字符数;
3 工具
3.1 现有工具
优点:节约成本,无需开发。
缺点:功能大多无法满足需求(支持文件种类有限制)。无法与MIS集成。
3.2 自开发工具的概要设计(建议采用本方式)
* 与MIS中的项目关联集成。
* 操作权限控制。
* 度量结果可以人工编辑,也可以自动统计。
* 自动统计方式:上载包含项目有效文件的压缩文件包,服务器解压缩、统计、存入数据表。
* 自动统计方法:
行:以Cr|Lf|CrLf为结束符的文本;
空行:由l个tab、m个半角、n个全角空格混合组成的行(l,m,n>=0);
对于静态页面、动态页面中的|js脚本|css样式|代码|、所有文件中的|注释|自动生成代码|,考虑到工作量可以不作特殊考虑。
* 数据存储:
文件类型字典:编码,文件后缀名,是否文本文件;
文件分类表(用于统计报表展示):编码,节点名称,是否Leaf(分类即非Leaf节点,例如静态页面、js脚本等),文件类型编码(用于Leaf节点);
项目统计结果表1:项目编码,文件名称,文件类型编码,代码行数,空行数,文件大小,字符数(考虑到文件大小受字符编码的影响,增加本属性,可以更客观地反映软件规模);
项目统计结果表2:项目编码,文件类型编码,文件数量,代码行数总计,空行数总计,文件大小总计,字符数总计;
1 原则
客观真实,不考虑度量结果对分析评估的影响关系。
2 内容
2.1 度量文件类型
项目类型:.NET, Java, PHP, VB, C(C++), Delphi...
文件分类和类型:静态页面(.htm, .html),CSS文件(.css),js脚本(.js),sql脚本(.sql),asp动态页面(.asp),asp.net动态页面(.aspx, .ascx),jsp动态页面(.jsp),php动态页面(.php),java代码(.java),vb代码(.frm, .bas, .cls),vb.net代码(.aspx.vb, .ascx.vb, .asax.vb, .vb),C#代码(.aspx.cs, .ascx.cs, .asax.cs, .cs),C或C++代码(.c, .cpp, .h),Dephi代码(.pas, .dfm),图片文件(.gif, .jpg, .jpeg, .jpe, .png), 多媒体文件(.ra, .rm, .rmvb, .mov, .wma, .mp3, .avi, .mpg, ...), Flash(.swf), ...
2.2 度量指标
对于图片、Flash等非文本文件统计文件数量、文件大小;
对于文本文件统计文件数量、文本行数、字符数;
3 工具
3.1 现有工具
优点:节约成本,无需开发。
缺点:功能大多无法满足需求(支持文件种类有限制)。无法与MIS集成。
3.2 自开发工具的概要设计(建议采用本方式)
* 与MIS中的项目关联集成。
* 操作权限控制。
* 度量结果可以人工编辑,也可以自动统计。
* 自动统计方式:上载包含项目有效文件的压缩文件包,服务器解压缩、统计、存入数据表。
* 自动统计方法:
行:以Cr|Lf|CrLf为结束符的文本;
空行:由l个tab、m个半角、n个全角空格混合组成的行(l,m,n>=0);
对于静态页面、动态页面中的|js脚本|css样式|代码|、所有文件中的|注释|自动生成代码|,考虑到工作量可以不作特殊考虑。
* 数据存储:
文件类型字典:编码,文件后缀名,是否文本文件;
文件分类表(用于统计报表展示):编码,节点名称,是否Leaf(分类即非Leaf节点,例如静态页面、js脚本等),文件类型编码(用于Leaf节点);
项目统计结果表1:项目编码,文件名称,文件类型编码,代码行数,空行数,文件大小,字符数(考虑到文件大小受字符编码的影响,增加本属性,可以更客观地反映软件规模);
项目统计结果表2:项目编码,文件类型编码,文件数量,代码行数总计,空行数总计,文件大小总计,字符数总计;
相关文章推荐
- 关于软件项目估算、度量的一些想法
- React框架下,关于制作软件的用户帮助手册的一些想法
- 软件规模度量LOC Vs FP
- 一些问题关于代码大全,移山之道,快速软件开发
- 关于软件规模度量的推荐
- 关于代码测试方面的一些想法和感悟
- 关于共享软件网上注册获取KEY的一些想法(更新中)
- 关于软件测试的一些想法
- 关于软件国际化与本地化的一些想法
- 关于软件文档化的一些想法。
- 关于共享软件网上注册获取KEY的一些想法
- 关于软件的一些想法
- 关于代码重构的一些想法
- 关于代码版本管理提升开发效率的一些想法
- 关于大型软件重构的一些想法
- 关于JavaScript代码的运行时暂停(:中断:阻塞) 的一些想法
- 在执行一行代码之前CLR做的68件事[The 68 things the CLR does before executing a single line of your code]
- 关于代码复查的一些笨想法
- 关于写代码的一些想法
- 关于软件评审的一些想法