可以在软件产品中测量各种类型的质量,例如适合目的(例如最终使用),可维护性,效率。其中一些是特定于主观或领域的(例如,良好的GUI设计原则在各种文化中可能有所不同,或者依赖于用法上下文,认为军事用途与消费者使用情况)。

我感兴趣的是一种与类型的网络(或图形)及其相关性有关的更深层次的质量形式,即每种类型所指的类型,是否有明确可识别的互连性群集与适当的互连性群分层体系结构,或者相反,有一个大型的类型参考(“单片”代码)。另外,每种类型和/或方法的大小(例如,用Java字节代码的数量测量或.NET IL测量)应给出一些指示,表明在何处将大型复杂算法实现为代码的单片块,而不是分解为更可管理/可维护的代码块大块。

基于此类想法的分析症可能能够计算至少是质量代理的指标。我怀疑高质量和低质量之间的确切阈值/决策点是主观的,例如,通过可维护性,我们是指人类程序员的可维护性,因此功能分解必须与人类思维的工作方式兼容。因此,我想知道在所有可能的情况下,是否可以对软件质量的数学定义进行数学纯粹的定义,从而超越所有可能的软件。

我也想知道这是一个危险的想法,如果客观的质量代理变得流行,那么业务压力将导致开发人员以牺牲整体质量(质量方面未由代理来衡量的质量方面)来追求这些指标。

附录:从熵的角度来看,关于质量的另一种思考方式。熵是系统从有序恢复到无序状态的趋势。任何曾经在现实世界中工作的人,中等大规模软件项目都会赞赏代码基础质量随着时间而趋于降低的程度。业务压力通常会导致着眼于新功能的变化(除非质量本身是原则销售点,例如,在航空电子软件中)以及通过回归问题和“鞋业马匹”功能侵蚀质量的侵蚀,而它不太适合它质量和维护的观点。那么,我们可以测量软件的熵吗?如果是这样,怎么样?

有帮助吗?

解决方案

ndection, ,至少对于.NET代码,将为我们迄今为止必须提供的软件质量提供最佳指标。他们有82个不同的代码 指标. 。这是你想要的?如果您是.NET程序员,则可能会发现 博客文章 关于对一个非常流行/大型开源项目的NDEPESTICTAINS。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top