Questions tagged «measurement»

13
如何有效衡量可维护性?
上下文:我是全MS商店中的企业开发人员。 谁能推荐一种客观地衡量一段代码或应用程序可维护性的好方法? 为什么要进行可维护性:我对小组中的“质量”度量标准感到厌倦,该度量标准仅围绕bug的数量和代码覆盖率而变化。这两个指标都很容易使用,尤其是当您不评估可维护性时。目光短浅和截止日期导致大量技术债务,这些债务从未真正得到解决。 为什么具有客观衡量的能力:我在一个大型企业集团中工作。如果您不能客观地衡量它,就不能让人们对此负责,也不能使他们变得更好。主观测量要么不会发生,要么不会持续发生。 我正在查看VS2010代码指标,但我想知道是否还有其他建议。

3
Halstead复杂度度量的应用程序是否有任何工作可用来确定软件质量?
1977年,莫里斯·霍华德·霍尔斯特德(Maurice Howard Halstead)推出了他的软件系统复杂性度量标准,其中包括对程序词汇量,程序长度,数量,难度,工作量以及模块中错误数量的估计。根据Wikipedia所说,困难与阅读或编写程序时理解程序的难度有关,可以将精力转化为​​编写应用程序所需的时间,其中Time =(Effort / 18)seconds。 除非数据和计算与软件开发的某些方面有关,否则测量是没有用的。但是,我还没有发现任何能够说明某个值或更高难度的缺陷会导致统计上的缺陷增加或难度与读取代码的时间之间的关系的工作(N的难度平均产生M个小时的花费)理解代码库)或在确定质量有用的事实之后进行任何能够计算时间的分析(尤其是因为应该将写入时间记录为度量)。我对Halstead的错误估计(维基百科上没有提及)特别感兴趣-应用程序中的错误数量可以通过Volume / 3000或Effort ^(2/3)/ 3000进行估计。 我在寻找两件事: 是否有人在实际应用中使用Halstead的软件复杂性度量来评估软件质量?如果是这样,您如何应用它们,结果证明它们是有用,有效和/或可靠的度量? 是否有任何调查,分析或案例研究形式的学术研究,讨论了Halstead复杂性度量应用于软件质量时的有效性(或无效性)? 是否有任何调查,分析或案例研究形式的学术研究证明使用代码源代码行(SLOC)来计算类似于量,难度,工作量,时间和错误的Halstead度量标准?我怀疑“体积”可能仅对应于SLOC计数,“难度”可能对应于圈复杂度(可能还有其他度量)。我也很清楚,在SLOC中衡量工作量,生产率或时间可能会产生误导。

2
如何确定代码审查过程的有效性?
我们已经在组织内部引入了代码审查流程,并且看起来运行良好。但是,我希望能够随着时间的推移来衡量该过程的有效性,即我们是不是因为代码干净而没有发现bug,还是人们只是没有发现bug? 当前,我们没有有效的全自动测试过程。我们主要采用手动测试,因此我们不能依靠现阶段发现的缺陷来确保代码审查过程正常进行。 是否有人之前曾遇到过此问题,或对衡量代码审查的效果如何有任何想法?

3
计算错误代码的成本
我正在寻找能说服管理层投入精力进行重构的论点。 我们使用Jira记录工作,并将每个svn-commit与jira调用相关联。 我的想法是执行以下操作: 手动发现极难实现但经常使用的代码区域:来自User-POV和Developer-POV的区域(错误修复) 获得包含JIRA问题的svn-commits 根据某些条件(问题类型,版本,优先级等)过滤问题 计算在这些错误上花费的时间/精力 估计工作量和重构风险 出示这些数字并寻求解决方法。 你觉得这怎么样?这样的测量是否有用和/或令人信服?优缺点都有什么?

7
分配给项目的人员数量与缺陷数量之间确实存在关系吗?
这是一本关于SLIM和软件评估的培训手册的引文: 还要注意,工作量和缺陷之间存在关联。这意味着,给定规模的项目分配给的人越多,缺陷就会越多。 工作量是项目的人事时间(人年,人月)。缺陷数是在生命周期中任何时候检测到的缺陷数。大小定义为组成项目的用例,功能点或SLOC。 假定过程良好且有能力的工程师,这似乎违反直觉。例如,拥有更多的人意味着更多地关注所有工件(需求规格,设计,代码,测试)。除了拥有更多的眼睛之外,我的直觉还表明,在使用适当质量技术的项目中,努力与缺陷之间几乎没有关系。 除了关于Putnam模型的文件(SLIM使用该文件)之外,我找不到任何文档,这些文档表明缺陷与工作量或缺陷与项目人数之间的任何已知关系。这是已知的关系吗?“更多的人=更多的缺陷”这一说法是否成立?

7
软件质量的客观指标[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 在软件产品中可以测量各种类型的质量,例如,目的(例如最终用途)的适用性,可维护性,效率。其中一些在某种程度上是主观的或特定于领域的(例如,良好的GUI设计原则可能因文化而异,或取决于使用情况,请考虑军事还是消费者使用)。 我感兴趣的是与类型的网络(或图形)及其相互关联性的更深层次的质量形式,也就是说,每种类型所指的是什么类型,是否存在与适当类型有关的清晰可识别的互连性集群。分层体系结构,或者相反,存在大量的类型引用“整体”(“整体”代码)。同样,每种类型和/或方法的大小(例如,以Java字节代码或.Net IL的数量来衡量)也应表明某些大型复杂算法已实现为单片代码块,而不是分解为更易于管理/维护的位置。大块。 基于这种思想的分析可能能够计算至少是质量代理的度量。我怀疑高质量和低质量之间的确切阈值/决策点是主观的,例如,由于可维护性是指人类程序员的可维护性,因此功能分解必须与人的思维方式兼容。因此,我想知道是否存在一个数学上纯净的软件质量定义,可以在所有可能的情况下超越所有可能的软件。 我还想知道这是否是一个危险的想法,即如果客观的质量代理变得流行,那么业务压力将导致开发人员以牺牲整体质量(质量的那些方面未由代理衡量)为代价来追求这些指标。 关于质量的另一种思考方法是从熵的角度。熵是系统从有序状态转变为无序状态的趋势。任何曾经在现实世界中,中型到大型软件项目中工作过的人都将欣赏代码库质量趋于随时间下降的程度。业务压力通常会导致针对新功能的更改(除非质量本身是主要卖点,例如在航空电子软件中),否则质量会因回归问题和“擦鞋”功能而变得不那么适合质量和维护的角度。那么,我们可以衡量软件的熵吗?如果是这样,怎么办?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.