Laws of software evolution and their empirical support

J. F. Ramil
{"title":"Laws of software evolution and their empirical support","authors":"J. F. Ramil","doi":"10.1109/ICSM.2002.1167752","DOIUrl":null,"url":null,"abstract":"Empirical support for the laws of software evolution cannot be rigorously tested as long as they are stated in natural language [1, 2]. Let’s consider the laws that directly relate to measurable phenomena (law 1 to 7) the eighth law “feedback system” is for the moment excluded of this discussion. Let’s assume that sufficient empirical data is available. One approach that has been used to assess the empirical support for the first seven laws uses quantitative models that are consistent with the laws. One fits such models to the empirical data and assesses the magnitude of the residuals. If these are small, the law will be supported by the data. If not, the law will remain unsupported. To illustrate this approach, let’s consider the 6th law “continuing growth”, which states that “the functional capability of E-type systems must be continually increased to maintain user satisfaction over the system lifetime”. Possible formal models of the law include the following: S(i) = a.i+b Eq. 1 S(i) = S(i-1)+e/[S(i-1)] Eq. 2 S(t) = t Eq. 3 where S represents the size of a system measured, for example, in number of modules, t is the age of the system, and i is the release sequence number. a, b, g, and e are parameters suitably chosen to minimise the fitting error. Eqs. 1-3 provide models of system growth. In fact, Eq. 1 replicates the linear growth pattern of OS 360 (rsn 1-19). Eqs. 2 and 3 replicate within segments the growth of systems studied in FEAST [3, 4]. However, Eqs. 1-3 imply additional detail than that in the statement of the 6 law. Each model prescribes a particular type of growth trajectory. The law prescribes none. For this reason none of the models in isolation will be sufficient if used with the sole purpose of testing the 6th law. Data suggesting a trajectory, different than that of Eqs. 1-3, as for example in [5], is still supportive of the law. Models such as those of Eqs. 1-3 in isolation are not proper tests. A workaround to this problem uses a formalism that considers the phenomenon at a higher level of abstraction than that implied by conventional quantitative modelling, such as qualitative differential equations (QDE) [6]. For example, the 6th law can be expressed in QDE form as: dS/dt = M(t) Eq. 4 M represents any monotonically increasing function. A simple test based on Eq. 4 evaluates S(t) – S(t-1) over the whole data set and checks whether they are greater than zero. If so, the data supports the law. Since a superimposed ripple have been observed in growth patterns [1], data smoothing techniques may have to be applied before the test. However, the fuller potential of the qualitative simulation techniques becomes apparent if one considers that the laws are interrelated. The combined action of the forces implied by the laws may lead to more complex behaviours than monotonic increase or decrease. In order to address this, one can write several QDEs formalising several “measurable” laws. The resulting system of QDEs can be simulated [6, 7] and the outputs compared with that implied by empirical observations. This qualitative simulation approach accounts in a natural way for the fact that the laws are interrelated. Eq. 2 and 3 illustrate interrelationship to some extent. They imply positive but decreasing growth rate and in doing so are consistent with both the 2nd law “increasing complexity” and the 6th law. In applying the conventional quantitative approach, one requires the ingenuity of the model builders for identification of models that acknowledge more than one law. This is not simple. The use of qualitative simulation techniques, a topic for further research [7], are likely to facilitate assessment of joint support in a systematic way and at a higher level of abstraction. The eighth law has been justified based on several observations [1, 2]. Unfortunately, a direct rigorous test of its empirical support is difficult to achieve since the behaviours of even simple feedback systems have not been fully codified [8]. The first seven laws can be rationalised in terms of feedback loop structures in the total E-type evolution process [2]. Hence, positive support to any of the first seven laws provides a degree of support to the eighth law.","PeriodicalId":385190,"journal":{"name":"International Conference on Software Maintenance, 2002. Proceedings.","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2002-10-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"4","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"International Conference on Software Maintenance, 2002. Proceedings.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICSM.2002.1167752","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 4

Abstract

Empirical support for the laws of software evolution cannot be rigorously tested as long as they are stated in natural language [1, 2]. Let’s consider the laws that directly relate to measurable phenomena (law 1 to 7) the eighth law “feedback system” is for the moment excluded of this discussion. Let’s assume that sufficient empirical data is available. One approach that has been used to assess the empirical support for the first seven laws uses quantitative models that are consistent with the laws. One fits such models to the empirical data and assesses the magnitude of the residuals. If these are small, the law will be supported by the data. If not, the law will remain unsupported. To illustrate this approach, let’s consider the 6th law “continuing growth”, which states that “the functional capability of E-type systems must be continually increased to maintain user satisfaction over the system lifetime”. Possible formal models of the law include the following: S(i) = a.i+b Eq. 1 S(i) = S(i-1)+e/[S(i-1)] Eq. 2 S(t) = t Eq. 3 where S represents the size of a system measured, for example, in number of modules, t is the age of the system, and i is the release sequence number. a, b, g, and e are parameters suitably chosen to minimise the fitting error. Eqs. 1-3 provide models of system growth. In fact, Eq. 1 replicates the linear growth pattern of OS 360 (rsn 1-19). Eqs. 2 and 3 replicate within segments the growth of systems studied in FEAST [3, 4]. However, Eqs. 1-3 imply additional detail than that in the statement of the 6 law. Each model prescribes a particular type of growth trajectory. The law prescribes none. For this reason none of the models in isolation will be sufficient if used with the sole purpose of testing the 6th law. Data suggesting a trajectory, different than that of Eqs. 1-3, as for example in [5], is still supportive of the law. Models such as those of Eqs. 1-3 in isolation are not proper tests. A workaround to this problem uses a formalism that considers the phenomenon at a higher level of abstraction than that implied by conventional quantitative modelling, such as qualitative differential equations (QDE) [6]. For example, the 6th law can be expressed in QDE form as: dS/dt = M(t) Eq. 4 M represents any monotonically increasing function. A simple test based on Eq. 4 evaluates S(t) – S(t-1) over the whole data set and checks whether they are greater than zero. If so, the data supports the law. Since a superimposed ripple have been observed in growth patterns [1], data smoothing techniques may have to be applied before the test. However, the fuller potential of the qualitative simulation techniques becomes apparent if one considers that the laws are interrelated. The combined action of the forces implied by the laws may lead to more complex behaviours than monotonic increase or decrease. In order to address this, one can write several QDEs formalising several “measurable” laws. The resulting system of QDEs can be simulated [6, 7] and the outputs compared with that implied by empirical observations. This qualitative simulation approach accounts in a natural way for the fact that the laws are interrelated. Eq. 2 and 3 illustrate interrelationship to some extent. They imply positive but decreasing growth rate and in doing so are consistent with both the 2nd law “increasing complexity” and the 6th law. In applying the conventional quantitative approach, one requires the ingenuity of the model builders for identification of models that acknowledge more than one law. This is not simple. The use of qualitative simulation techniques, a topic for further research [7], are likely to facilitate assessment of joint support in a systematic way and at a higher level of abstraction. The eighth law has been justified based on several observations [1, 2]. Unfortunately, a direct rigorous test of its empirical support is difficult to achieve since the behaviours of even simple feedback systems have not been fully codified [8]. The first seven laws can be rationalised in terms of feedback loop structures in the total E-type evolution process [2]. Hence, positive support to any of the first seven laws provides a degree of support to the eighth law.
软件进化规律及其经验支持
只要是用自然语言表述的,软件进化规律的经验支持就不能得到严格的测试[1,2]。让我们考虑与可测量现象直接相关的定律(定律1至定律7),第八定律“反馈系统”暂时不在讨论范围之内。让我们假设有足够的经验数据。一种用于评估前七条定律的实证支持的方法使用了与定律一致的定量模型。人们将这些模型拟合到经验数据中,并评估残差的大小。如果这些数字很小,该法律将得到数据的支持。否则,该法案将继续得不到支持。为了说明这种方法,让我们考虑第6定律“持续增长”,它指出“e型系统的功能能力必须不断增加,以在系统生命周期内保持用户满意度”。该定律可能的形式模型包括:S(i) = a.i+b Eq. 1 S(i) = S(i-1)+e/[S(i-1)] Eq. 2 S(t) = t Eq. 3其中S表示所测量系统的大小,例如,以模块数为单位,t是系统的年龄,i是发布序列号。A, b, g和e是为了最小化拟合误差而选择的参数。公式1-3提供了系统增长的模型。实际上,Eq. 1复制了OS 360的线性增长模式(rsn 1-19)。方程2和3在节段内重复了FEAST中研究的系统的生长[3,4]。然而,公式1-3暗示了比6定律陈述中更多的细节。每个模型都规定了一种特定类型的增长轨迹。法律没有规定。由于这个原因,如果仅用于测试第六定律,单独的模型都是不够的。数据显示的轨迹与公式1-3不同,例如[5],仍然支持该定律。如式1-3所示的模型孤立地不是适当的测试。解决这个问题的一个方法是使用一种形式化的方法,这种方法比传统的定量建模(如定性微分方程(QDE))所隐含的更高的抽象层次来考虑这种现象[6]。例如,第六定律可以用QDE形式表示为:dS/dt = M(t) Eq. 4 M表示任意单调递增函数。基于Eq. 4的简单测试评估整个数据集上的S(t) - S(t-1),并检查它们是否大于零。如果是这样,数据就支持这一定律。由于在生长模式中已经观察到叠加纹波[1],因此可能必须在测试之前应用数据平滑技术。然而,如果考虑到这些规律是相互关联的,则定性模拟技术的更充分潜力就会变得明显。这些规律所隐含的力的共同作用可能导致比单调的增减更为复杂的行为。为了解决这个问题,我们可以编写几个qde来形式化几个“可测量的”定律。可以模拟得到的qde系统[6,7],并将输出与经验观测结果进行比较。这种定性模拟方法以一种自然的方式解释了这些定律是相互关联的这一事实。公式2和3在某种程度上说明了相互关系。它们暗示着正但递减的增长率,这样做与第二定律“增加复杂性”和第六定律一致。在应用传统的定量方法时,需要模型构建者的聪明才智来识别承认不止一个规律的模型。这并不简单。定性模拟技术的使用是一个有待进一步研究的课题[7],它可能有助于以系统的方式在更高的抽象层次上对联合支持进行评估。第八定律已经根据几个观察得到了证明[1,2]。不幸的是,很难对其经验支持进行直接严格的测试,因为即使是简单的反馈系统的行为也没有被完全编纂[8]。根据整个e型演化过程中的反馈回路结构,可以对前七条规律进行合理化[2]。因此,对前七条定律中的任何一条的积极支持都会在一定程度上支持第八条定律。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
文献相关原料
公司名称 产品信息 采购帮参考价格
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信