【delphi开源代码栏目提醒】:网学会员鉴于大家对delphi开源代码十分关注,论文会员在此为大家搜集整理了“【-精品】-基于SLOCCount在大型开源软件度量中的研究与应用 - 技术总结”一文,供大家参考学习
基于SLOCCount在大型开源软件度量中的研究与应用许旻鸿黄柳红广东技术师范学院广东广州510635摘要SLOCCount是一种基于COCOMO模型的软件代码度量软件利用其统计和分析的数据结合回归分析法揭示大型开源软件进化的内因并提出了度量大型开源软件进化的方法。
关键词SLOCCount开源软件回归分析软件进化中图分类号TP311.52文献标识码A文章编号1672-78002010110106021分析工具SLOCount的介绍“SLOC”是指“SourceLinesOfCode”的缩写即源代码行数的意思而“Count”就是“计算”之意。
SLOCCount是一个很好的代码统计工具支持多种开发语言统计程序中源代码的物理行数SLOCS同时还估计开发成本及时间可以接受一套文件集用许多不同的启发式算法对它们的类型进行分类统计。
SLOCCount使用很方便只需指定统计目标目录然后运行该程序经过统计后生成一份该目录以及所有的子目录里面的各个程序的源代码行数相关报告不论这些程序是用什么编程语言写的该统计工具都能自动识别出来该工具自定义的语言包含C、C、Java、Cobol、Delphi、VB、ASP、PHP、Fortran、Haskell、Lisp、Perl、SQL等并生成主要代码所占系统的比例和估算的人均开发代码行数、开发成本价值估算等。
2利用SOount分析内核SLOCCount能深入系统深层子目录采用深度遍历对软件各目录中所包含的程序代码作启发式检测统计。
借助SLOCCount分别对Linux及FreeBSD的各版本内核进行分析统计。
首先利用先前从Linux及FreeBSD的系统安装文件提取内核文件SYS压缩包将SYS压缩包中的文件解压至一指定文件夹然后运行SLOCCount软件进行统计分析。
SLOCCount软件必须在UnixLinux环境下运行如果没有安装Unix或Linux环境可以在Windows环境中安装一个类Linux的软件如cygwin运行该软件后可得一个类Linux操作界面。
运行SLOCCount对FreeBSD70内核SYS文件夹进行分析统计见图1因篇幅部分统计结果省略gunzipcsloccounttargztarxvfcdsloccountmakemakeinstallsloccountusrsrcsysFreeBSD70内核SLOCCount分析结果SLOCDirectorySLOCbyLanguageSorted922719devansic920245yacc1651lex763perl36sh24222527contribansic216391yacc2548pascal1214lex1181awk621asm504sh6897620kernansic97085sh53585531netinetansic8553185166gnuansic8516652401i386ansic49243asm3152sh646559bootansic38725asm7604awk223sh742129netansic4212936533compatansic36297asm23628901pciansic28866perl3528686amd64ansic27171asm151524742sysansic2474222706ia64ansic19411asm329521141netinet6ansic2114119313net80211ansic1931310015cryptoansic6226asm3789软件导刊SoftwareGuid第9卷第11期2010年11月Vol.9No.11Nov.2010基金项目2008年度广东技术师范学院校级科研项目08KJY06作者简介许旻鸿1975男广东潮州人硕士广东技术师范学院讲师研究方向为软件工程黄柳红1980女广东兴宁人广东技术师范学院助理工程师研究方向为计算机应用。
第11期Totalsgroupedbylngugedominntlngugefirstnsic21702319779sm38670174yacc4199019awk2162010lex1944009pscl1214005sh771003perl71000sed4000TotlPhysicalSourceLinesofCodeSLOC2219266DevelopmentEffortEstimtePersonYersPersonMonths65245782945BasicCOCOMOmodelPersonMonths24KSLOC105ScheduleEstimateYearsMonths6297543BasicCOCOMOmodelMonths25personmonths038EstimatedAvergeNumberofDevelopersEffortSchedule10379TotlEstimtedCosttoDevelop88137647vergeslry56286yeroverhed240图1Freebsd70内核各程序代码sloc统计3实验数据分析使用SLOCCount工具软件进行FreeBSD70版本内核代码使用的编程语言和各种语言开发的源代码行数SLOCs的分析获悉FreeBSD70版本使用了9种编程语言9779的源代码使用ansic开发019的代码使用yacc开发174的代码使用汇编语言开发028的代码使用awk、lex、pascal、sh、perl、sed等6种语言开发。
FreeBSD的内核文件数随版本的变化可宏观观察到文件数量进化趋势如图2所示FreeBSD从1993年11月15日的10版本的文件数8264个到2009年1月的70文件数32026个共发行了45个版本平均每个版本增加文件数528个从代码SLOCs进化曲线来看曲线呈上升趋势由此可以认为今后FreeBSD的内核进化趋势为超线性趋势图2文件数量进化软件进化和软件复杂度趋势曲线呈现超线性如图3所示其中FreeBSD10为144514SLOCsFreeBSD70为2219266SLOCs平均每个版本增加源代码行46105图3SLOC进化4回归分析文件数与SLOCs的的进化同样呈现超线性如图4所示将SLOCs的数目和文件的数目通过二次方程和时间建立关系把二次项的系数作为增长速度的度量尺度使用fy0xbx2进行回归分析可得进化计算公式f954902978x001715x2其中x为软件进化天数f为SLOCs相关参数如表1所示今后在新的FreeBSD版本发行时可以根据该进化公式快速估算SLOCs利用SLOCCount对FreeBSD70的内核进行物理代码行的统计结果otlPhysiclSourceLinesofCodeSLOCs2219266利用进化公式得到FreeBSD70的SLOCs为2022321利用SLOCCount软件统计FreeBSD70的SLOCs为2219266经对比误差为196945误差率为8利用回归分析公式fy0xbx2进行新版本内核的计算和推测与后来正式发布的内核统计数据相比较经对比分析证明该公式计算出来的误差在软件千万行级以上的代码中此误差是可以接受的同时证明回归分析公式fy0xbx2的合理和准确性可见SLOCCount和快速估算进化公式可以作为分析软件进化的有力工具图4文件数与源代码行关系表回归分析参数参数值标准偏差变异系数相关性y095490107800112.90.8710967a297897.4832.730.9844318b0.017150.01882109.70.9744703许旻鸿黄柳红基于SLOCCount在大型开源软件度量中的研究与应用107··5结束语将SLOCs和文件数通过二次方程和时间建立关系将二次项的系数作增长速度的度量尺度得到进化曲线归纳回归分析公式fy0axbx2利用此公式在新的版本发行时根据进化天数可快速估算新版本的SCs。
可见SCCount在大型开源软件度量和进化研究中起到重要作用由此有助于开源软件的发展和不断完善。
但SLCCount在CCM模型下对软件的度量中也存在不足如分析“现代”编程习惯如结构化编程、面向对象编程、抽象数据类型等方面的系统存在偏差下一步的研究工作将改善SLCCount在面向现代”编程软件统计中的度量算法使软件的度量更加合理探索新评估技术丰富和完善软件预测和评估方法体系以适应今后快速和准确分析的要求有利于推动软件的技术预测和评估方法的发展。
参考文献1许旻鸿郑巍基于复杂度对开源软件inux和FreeBSD内核的分析J计算机应用与软件20108.2郑巍许旻鸿开源软件inux内核的进化分析J华南理工大学学报200793SLCCountUsersGuideEBO.httpwwwdwheelercomSCCountAugust12004.4郑巍开源软件FreeBSD内核进化研究J计算机应用研究2008115回归分析法EBhttpbaikebaiducomview540285htm20086冯欣代码质量控制与复杂度测量在大型软件项目中的研究及应用D长春东北师范大学2006责任编辑王钊中小企业智能信用评估系统设计与实现付冬同济大学软件学院上海201804摘要在国际金融危机环境下中小企业贷款困难尤其突出有很多企业因为资金链的断裂而被迫破产。
同时从银行方面针对中小企业信用评级方面来看在方法、效率
上一篇:
基于Moodle开源平台的邮政企业培训应用研究
下一篇:
法律专业开题报告范文