{"title":"软件进化规律及其经验支持","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":"{\"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}","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}
Laws of software evolution and their empirical support
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.