21.07.2013 Views

Qualitative Simulation of Software Evolution Processes - Faculty of ...

Qualitative Simulation of Software Evolution Processes - Faculty of ...

Qualitative Simulation of Software Evolution Processes - Faculty of ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Qualitative</strong> <strong>Simulation</strong> <strong>of</strong> S<strong>of</strong>tware <strong>Evolution</strong> <strong>Processes</strong><br />

WESS'02 Eighth Workshop on Empirical Studies <strong>of</strong> S<strong>of</strong>tware Maintenance, Montreal, 2 nd Oct 2002<br />

Neil Smith Juan F. Ramil<br />

Computing Department<br />

<strong>Faculty</strong> <strong>of</strong> Maths and Computing<br />

The Open University<br />

Walton Hall, Milton Keynes MK7 6AA, U.K.<br />

http://mcs.open.ac.uk/ns938 http://mcs.open.ac.uk/jfr46<br />

n.smith@open.ac.uk j.f.ramil@open.ac.uk<br />

Introduction<br />

Lehman's studies identified the s<strong>of</strong>tware evolution phenomenon and led to a set <strong>of</strong> statements termed laws <strong>of</strong><br />

s<strong>of</strong>tware evolution [Leh85,Som92,Mdh02]. The term laws was used to highlight that they reflect forces<br />

largely independent <strong>of</strong> the technology used and outside the immediate control <strong>of</strong> the those implementing the<br />

evolution <strong>of</strong> a system. Over the years the laws have been the basis <strong>of</strong> a number <strong>of</strong> process models<br />

[Rio77,Leh02a]. The purpose <strong>of</strong> these models ranges from manpower allocation, such as in [Rio77,Leh02a],<br />

to testing the empirical support for the laws, as suggested in [Ram02].<br />

The building <strong>of</strong> a simulation model from the laws [Rio77, Leh02a] involves refinement <strong>of</strong> an informal<br />

statement into a precisely defined, executable, model. The model builder must determine or assume rigorous<br />

relationships. Since the laws only express relationships informally, one needs to consult sources other than the<br />

laws (such as local process knowledge) or introduce assumptions to achieve a formal executable model.<br />

Moreover, the validation <strong>of</strong> the quantitative model will require the existence <strong>of</strong> data at the required level <strong>of</strong><br />

detail/accuracy. If the focus is on long-term evolution, spanning several years or decades, the availability <strong>of</strong><br />

precise quantitative behavioural detail cannot be taken for granted. In this regard, the empirical study <strong>of</strong> longlived<br />

applications bears some resemblance to palaeontology [Ant01].<br />

<strong>Qualitative</strong> simulation [Kui95] is one <strong>of</strong> a series <strong>of</strong> techniques that have been developed in order to enable<br />

behavioural modelling at a higher level <strong>of</strong> abstraction than that <strong>of</strong> quantitative simulation [For61,Kel99]. In<br />

this paper we report initial results <strong>of</strong> the use <strong>of</strong> qualitative simulation to execute a simple model derived from<br />

a sub-set <strong>of</strong> the laws. Some preliminary conclusions are derived. We argue that qualitative simulation can be a<br />

useful technique for performing empirical studies <strong>of</strong> the s<strong>of</strong>tware process and building process simulation<br />

models. <strong>Qualitative</strong> simulation has started to be applied to development projects [Sua02]. We believe that this<br />

paper reflects the first use <strong>of</strong> the technique in the context <strong>of</strong> long term evolution processes.<br />

<strong>Qualitative</strong> simulation<br />

<strong>Qualitative</strong> reasoning (QR) is motivated by the need to exploit imprecise a priori knowledge about the<br />

domain being modelled. QR is useful when relationships that govern behaviour are imprecise, fragmented and<br />

incomplete. This is the case in many medical, biological, and design situations and similarly applies to<br />

modelling the s<strong>of</strong>tware evolution process. QR models reflect the real world at an abstract level and require<br />

many fewer assumptions during model building than with conventional techniques.<br />

<strong>Qualitative</strong> simulation [Kui95] is one qualitative reasoning technique. Instead <strong>of</strong> modelling a system as a set<br />

<strong>of</strong> ordinary differential equations (ODEs), the system is represented as a set <strong>of</strong> qualitative differential<br />

equations (QDEs). Each QDE represents a large set <strong>of</strong> possible ODEs as each M + function represents the set<br />

<strong>of</strong> all monotonically increasing functions.<br />

In order to introduce the basics <strong>of</strong> qualitative simulation we present a simple simulation model <strong>of</strong> a bathtub.<br />

For instance, consider the bathtub model shown in figure 1. Its behaviour, in terms <strong>of</strong> the flow <strong>of</strong> water into<br />

and out <strong>of</strong> the bathtub, can be represented as by the ODEs in figure 2a. However, before a tool such as an<br />

ODE solver can be used to find the behaviour, the ODEs must be instantiated with particular values for each<br />

<strong>of</strong> the parameters and functions. In contrast, the QDEs in figure 2b can be used as-is by a qualitative<br />

simulation engine such as QSIM [Kui95].


Figure 1: A bathtub<br />

amount = f (level)<br />

amount = M<br />

pressure = ρ.g.level<br />

outflow = h (pressure)<br />

netflow = inflow – outflow<br />

d/dt amount = netflow<br />

inflow = k<br />

+ (level)<br />

pressure = M + (level)<br />

outflow = M + (pressure)<br />

netflow = inflow - outflow<br />

d/dt amount = netflow<br />

inflow = constant<br />

Figure 2a: ODEs for a bathtub Figure 2b: QDEs for a bathtub<br />

QSIM represents each variable in a qualitative manner. It records each variable's magnitude relative to a fixed<br />

set <strong>of</strong> landmark values and the sign <strong>of</strong> each variable's first time derivative. In the bathtub, the landmark values<br />

for the water level are ZERO and TOP. The initial water level is between these two values, denoted as<br />

. Given some initial values, QSIM finds all possible variable assignments that are consistent<br />

with the specified QDEs. Each <strong>of</strong> these sets <strong>of</strong> assignments is termed a state. For each state, QSIM then finds<br />

all possible (consistent) successor states. As each M + constraint represents a large family <strong>of</strong> functions, there<br />

will normally be more than one successor for each state. Again, for each new state, all its successors are<br />

found, and the process continues until either the model becomes quiescent or an earlier state is repeated. Each<br />

sequence <strong>of</strong> states is termed a behaviour.<br />

When QSIM is applied to the bathtub model, it finds three initial states, depending on whether the part-full<br />

bath is emptying, filling or in equilibrium. It goes on to find five distinct qualitative behaviours: a filling bath<br />

can overflow, reach equilibrium before it overflows, overflow, or reach equilibrium just as the water reaches<br />

the brim. The five behaviours are illustrated by the behaviour tree in figure 3a. The five possible behaviours<br />

<strong>of</strong> the water level over time are shown in figure 3b to 3d.<br />

Figure 3a: Behaviour tree<br />

for bathtub<br />

Figure 3b: Behaviour 1:<br />

emptying bath<br />

Figure 3c: Behaviour 2: constant<br />

level<br />

Figure 3d: Behaviour 3:<br />

Figure 3e: Behaviour 4:<br />

Figure 3f: Behaviour 5:<br />

overflow<br />

equilibrium below overflow point equilibrium as water reaches brim<br />

The amount <strong>of</strong> water in the bath is shown relative to the landmarks and the values are annotated with arrows<br />

that show whether the variable is increasing, decreasing, or static at that time. The dotted lines connecting the


points are simply visual aids and have no significance. Note that QSIM automatically inserts landmark values<br />

corresponding to the initial and final amounts <strong>of</strong> water. For example, figure 3b shows that the water level<br />

decreases until reaching a steady value, but it makes no claims to the precise, quantitative behaviour <strong>of</strong> the<br />

water level.<br />

By generating all qualitatively possible behaviours, QSIM guarantees to find behaviours that encompass all<br />

physically realisable behaviours. However, the lack <strong>of</strong> detail in the qualitative model can induce some<br />

ambiguity in the results, and some behaviours generated by QSIM may not exist in the referent system. These<br />

are termed spurious behaviours.<br />

A qualitative model based on the laws<br />

Although the laws <strong>of</strong> s<strong>of</strong>tware evolution are stated in text form (listed in the appendix), ODEs and QDEs can<br />

be derived from them. As a first step in exploring the use <strong>of</strong> qualitative simulation in modelling the functional<br />

growth <strong>of</strong> s<strong>of</strong>tware, we have restricted ourselves to a subset <strong>of</strong> the laws: the second, fourth and sixth that<br />

relate to s<strong>of</strong>tware complexity, work-rate and functional growth, respectively. Even when using QDEs, there<br />

are numerous possible representations <strong>of</strong> the laws. Here we select one that has a particular appeal due to its<br />

simplicity. Figure 4 shows a QDE representation <strong>of</strong> this subset <strong>of</strong> the laws. In a fuller paper we hope to be<br />

able to discuss the implications <strong>of</strong> one particular representation over alternatives. In the rest <strong>of</strong> this paper we<br />

consider the representation shown figure 4 only. This representation essentially states that as the functional<br />

size <strong>of</strong> a system increases, there is a need to perform complexity control work, termed anti-regressive<br />

[Leh85,02a; Rio77]. This concept has been explained in other models [Rio77,Leh02a].<br />

A key concept in the representation in figure 4 is that <strong>of</strong> cumulative anti-regressive deficit. As successive<br />

versions <strong>of</strong> a s<strong>of</strong>tware system are generated, the increase in s<strong>of</strong>tware size and the superposition <strong>of</strong> change<br />

upon change upon change is likely to increase system complexity. This may bring with it decreasing<br />

evolvability and maintainability, a decline in the growth rate, even stagnation. In order to ensure that the<br />

s<strong>of</strong>tware remains evolvable one needs anti-regressive work [Leh85], which includes activities such as restructuring,<br />

refactoring and documentation. However, the anti-regressive work competes with the progressive<br />

work to obtain sufficient priority and resources. Given marketplace pressures anti-regressive work is not<br />

regarded, in general, as <strong>of</strong> high priority. When resource applied to anti-regressive work is less than certain<br />

level, the neglected anti-regressive accumulates, becoming a deficit, eventually impacting productivity. Only<br />

restoration to an adequate level can reverse the growth trend and restore productivity. The QDEs in figure 4<br />

are intended to reflect in a very simplified way the above observations that as functional growth takes place, a<br />

minimal amount <strong>of</strong> anti-regressive work is needed in order to maintain the growth rate. This concept is <strong>of</strong><br />

remarkable simplicity and avoids the need for complexity metrics involving measurable program attributes. It<br />

is intended to support management <strong>of</strong> evolution at the total system level [Leh02a].<br />

The QDEs in figure 4 postulate relationships between the cumulative anti-regressive deficit, C, and the rest <strong>of</strong><br />

the attributes, whose name appears on the right hand side <strong>of</strong> the figure.<br />

Expression Source Attributes<br />

dS/dt = Es – Hc<br />

Law II and VI<br />

Hc = M + (C)<br />

dC/dt = M<br />

Law II<br />

+ (Es) - M + C: Cumulative anti-regressive deficit<br />

(Ec) Law II<br />

Es: Effort applied to increase functional size<br />

Ec: Effort applied to control complexity<br />

d(Es+Ec)/dt = 0 Law IV Hc: Hindrance imposed by cumulative anti-regressive deficit<br />

S: Functional Size<br />

Figure 4: A QDE model <strong>of</strong> a sub-set <strong>of</strong> Lehman's laws <strong>of</strong> s<strong>of</strong>tware evolution<br />

In the rest <strong>of</strong> this paper, "C" should be read "Cumulative anti-regressive deficit".<br />

Figure 5 shows the results <strong>of</strong> QSIM simulations performed with the model <strong>of</strong> figure 4. QSIM finds three<br />

qualitatively distinct behaviours, in term <strong>of</strong> how C and the size <strong>of</strong> the s<strong>of</strong>tware evolve over time. In the one <strong>of</strong><br />

these, presented in figure 5, size increases, as does C. As a consequence <strong>of</strong> the increasing C, the rate <strong>of</strong><br />

growth decreases, eventually becoming practically zero and the evolution process stagnates. In the second<br />

behaviour (not shown due to space limitation), the effort applied to complexity control activity is exactly what<br />

is needed to keep C constant. In this behaviour, the complexity remains constant and size increases without<br />

bound. In the third behaviour (also not shown), sufficient effort is applied to actually reduce C. In this<br />

situation, the s<strong>of</strong>tware would grow at a constant rate and the C is kept equal to zero. These behaviours support


the conclusion that a certain level <strong>of</strong> complexity control work is required to prevent evolution stagnation, as<br />

suggested in other simulation models [Rio77,Leh02a].<br />

Figures 5: One <strong>of</strong> the simulated behaviours for the model shown in figure 4.<br />

"Complexity" should be read "Cumulative anti-regressive deficit"<br />

The model in figure 4 is inadequate to represent feedback in the s<strong>of</strong>tware process, as expressed in the eighth<br />

law and taking the form <strong>of</strong> management control. If a s<strong>of</strong>tware system approaches stagnation, as illustrated in<br />

the first behaviour found by QSIM, management is likely to introduce a "consolidation" phase by moving<br />

resources away from normal work towards anti-regressive work. This situation can be modelled in QSIM by<br />

introducing state transitions [Kui95] into a model. Results are shown in fig. 6.<br />

Figure 6: Behaviour with state transitions. "Complexity" should be read "Cumulative anti-regressive deficit"


In figure 6, the initial growth stage, effort is directed towards increasing the s<strong>of</strong>tware's size. When the<br />

s<strong>of</strong>tware growth rate falls to some value below a trigger level, the model switches to a consolidation state<br />

where the effort is redirected towards anti-regressive work. When C falls to some sufficiently low level, the<br />

system reverts to the normal growth phase. Some simplifying assumptions in the model have been necessary<br />

in order to implement a simulation <strong>of</strong> this situation and to eliminate spurious behaviours that otherwise would<br />

have been generated by QSIM. The simplifications are that the effort is wholly directed to either increasing<br />

size or decreasing C, and the state transitions occur when either the growth rate, dS/dt, or C are reduced to<br />

zero. This behaviour is shown in figure 6. It suggests the existence <strong>of</strong> periods <strong>of</strong> growth followed by periods<br />

<strong>of</strong> consolidation and clean-up.<br />

To aid the comparison <strong>of</strong> the qualitative results with empirical observations, figure 7 shows one possible<br />

quantitative instantiation <strong>of</strong> the evolving size shown in figure 6. Note that the decreasing time derivative <strong>of</strong><br />

the size indicates some form <strong>of</strong> growth curve that approaches an asymptotic value.<br />

Figure 8 shows the growth trends over releases <strong>of</strong> four s<strong>of</strong>tware systems. Some <strong>of</strong> their characteristics are<br />

presented in [Leh02b]. The size is measured in number <strong>of</strong> modules, an indicator <strong>of</strong> functional power that has<br />

been useful in previous studies [Leh85] and shown relative to size <strong>of</strong> first release with sufficient data to be<br />

considered in a previous study [Leh02b]. As can be appreciated, three <strong>of</strong> the patterns in figure 8 – that is, with<br />

exception <strong>of</strong> system “+” - resemble that <strong>of</strong> figure 7. System “+” would present a smaller growth rate and<br />

hence a pattern closer to that <strong>of</strong> figure 7 when only the size <strong>of</strong> the core <strong>of</strong> the system is being considered – see<br />

plot in [Leh02a]. The growth pattern <strong>of</strong> IBM OS/360 – 370, not presented in figure 8, is another exception to<br />

figure 7. Its growth pattern over releases was linear, with a superimposed ripple, up to releases 19-20. After<br />

that the growth pattern became oscillatory. This was due probably to excessive pressures for functional<br />

growth – positive feedback- that eventually led to its fission [Leh85]. The exponential growth trend <strong>of</strong> the<br />

Linux open source operating system is another exception that may be explained in terms <strong>of</strong> the proliferation<br />

<strong>of</strong> clones [Gdf00]. In these and possibly other anomalies observations suggest [Leh02b] that growth patterns<br />

with features <strong>of</strong> the pattern in figure 7 are more common than other patterns particularly in commercial,<br />

successfully evolving, systems.<br />

Size<br />

Time, Releases...<br />

Figure 7: One possible “quantitative”<br />

instantiation <strong>of</strong> "Size" as suggested in the<br />

“qualitative” simulation results <strong>of</strong> fig. 6<br />

5<br />

4<br />

3<br />

2<br />

1<br />

0<br />

s(i)/s(1)<br />

Relative Size over Releases<br />

rsn i<br />

1 5 9 13 17 21<br />

Figure 8: Growth patterns over releases for four systems.<br />

System “+” growth pattern is displayed over years<br />

instead <strong>of</strong> releases due to lack <strong>of</strong> release-based data<br />

[Leh02b].<br />

Inflexion points are not reflected in the simple behaviours shown in figure 5. This suggests that a simple<br />

model, without transitions, is not fully adequate to describe the observations. In contrast, the behaviour


derived from the model with transitions, as shown in figures 6 and 7, more closely matches some <strong>of</strong> the<br />

empirical observations. In three <strong>of</strong> the growth trends displayed in figure 8, rapid growth <strong>of</strong> the s<strong>of</strong>tware soon<br />

reaches a plateau where little progress is made. After some time – or releases - at this plateau stage, the<br />

growth curve bends upwards before reaching a new, higher plateau. In the QSIM model, this behaviour is<br />

simulated by the state transitions between growth and consolidation phases.<br />

Further work<br />

These preliminary results suggest that one possible explanation for the behavioral transition is a feedbacktriggered<br />

change in the predominant type <strong>of</strong> work, from growth dominated to complexity-control dominated<br />

and viceversa, over subsequent phases. Additional data is required to further validate this hypothesis and to<br />

compare it with alternative explanations for the observed rejuvenation transitions that have been proposed<br />

[Aoy02,Raj00,Tur02]. Additional empirical data and modelling work is required in order to compare the<br />

empirical support for the various hypotheses.<br />

The exploration <strong>of</strong> qualitative simulation, <strong>of</strong> which preliminary results have been presented here, can be<br />

extended by building QDE models that include attributes implied by laws in addition to those in figure 4.<br />

Initial efforts in this direction show that QSIM generates a number <strong>of</strong> behaviours that do not appear to have<br />

been empirically observed. Some <strong>of</strong> these behaviours may be spurious, and will either not emerge in a more<br />

refined model or may suggest refinements to the laws <strong>of</strong> s<strong>of</strong>tware evolution. Other behaviours may be feasible<br />

but unlikely to occur in practice. Understanding why these behaviours do not frequently occur may give<br />

insight into how the s<strong>of</strong>tware development process is managed in industry. In order to validate the QDE<br />

models one would wish to systematically compare the empirical data to the simulation outputs. This will be<br />

facilitated by techniques that extract the qualitative features <strong>of</strong> the data such as the ones discussed in [Tes98].<br />

Conclusions<br />

QDEs provide facilitate simulation <strong>of</strong> behaviour implied by high level empirical generalizations such as the<br />

laws <strong>of</strong> s<strong>of</strong>tware evolution. In this paper a preliminary QDE model, a possible instantiation <strong>of</strong> a sub-set <strong>of</strong> the<br />

laws <strong>of</strong> s<strong>of</strong>tware evolution, has been used to simulate growth patterns <strong>of</strong> long lived s<strong>of</strong>tware. The results are<br />

reasonably in line with some <strong>of</strong> the discontinuous growth patterns observed, providing an alternative<br />

hypothesis for them in terms <strong>of</strong> transitions between growth dominated and complexity-control dominated<br />

phases.<br />

More generally, the research surrounding Lehman's laws can be seen as falling into one <strong>of</strong> two groups. The<br />

first line <strong>of</strong> research starts in empirical data and seeks to identify models and behavioural invariance that can<br />

be generalised. For example, one may ask how the empirical data can be systematically abstracted into<br />

generalisations or what is the degree <strong>of</strong> empirical support to any generalizations across different domains.<br />

This line <strong>of</strong> research includes testing the degree <strong>of</strong> empirical support for the laws [Ram02]. Another line <strong>of</strong><br />

research takes the generalisations as starting point and seeks to derive practical results such as guidelines for<br />

management [Leh01]. Additional outcomes are simulation models aimed at increasing the understanding <strong>of</strong><br />

the process and <strong>of</strong> its system dynamics and at exploring the impact <strong>of</strong> various process improvements<br />

[For61,Kel99,Leh02a]. QDEs can be <strong>of</strong> help in both lines <strong>of</strong> investigation by providing an intermediate level<br />

between high-level empirical generalisations such as the laws and conventional quantitative simulation.<br />

More generally, simulation <strong>of</strong> s<strong>of</strong>tware processes based on quantitative techniques [Kel99] poses challenges<br />

when our knowledge <strong>of</strong> the process drivers is less than satisfactory and when the datasets are either too small<br />

or incomplete. Techniques such as qualitative simulation have the potential to provide meaningful results in<br />

thes s<strong>of</strong>tware process domain. We believe that qualitative simulation has potential in the s<strong>of</strong>tware process<br />

domain and is able to produce useful outputs as it has in other fields.<br />

References<br />

[Ant01] Anton A and Potts C, Functional Paleontology: System <strong>Evolution</strong> as the User Sees It, Proc. ICSE 23, Toronto, 12-19<br />

May 2001, pp. 421-430<br />

[Aoy02] Aoyama M. Metrics and Analysis <strong>of</strong> S<strong>of</strong>tware Architecture <strong>Evolution</strong> with Discontinuity. In Aoyama M et al (eds.), Proc.<br />

5 th Intl. Workshop on Principles <strong>of</strong> S<strong>of</strong>tware <strong>Evolution</strong>, IWPSE 2002, May 19 – 20, Orlando, FL., pp. 103 - 107<br />

[For61] Forrester JW, Industrial Dynamics, Productivity Press, Cambridge, MA, 1961<br />

[Gdf01] Godfrey MW and Tu Q, <strong>Evolution</strong> in Open Source S<strong>of</strong>tware: A Case Study, Proc. Intl. Conf. on S<strong>of</strong>tware Maintenance,<br />

ICSM 2000, 11-14 Oct. 2000, San Jose, CA, pp. 131-142<br />

[Kel99] Kellner MI, Madachy RJ and Raffo DM, S<strong>of</strong>tware Process <strong>Simulation</strong> Modelling: Why? What? How?, Journal <strong>of</strong><br />

Systems and S<strong>of</strong>tware, Vol. 46, No. 2/3, April 1999, pp 91 -106<br />

[Kui95] Kuipers B, <strong>Qualitative</strong> Reasoning - Modeling and <strong>Simulation</strong> with Incomplete Knowledge, MIT Press, 1995<br />

[Leh85] Lehman MM and Belady L, S<strong>of</strong>tware <strong>Evolution</strong> - <strong>Processes</strong> <strong>of</strong> S<strong>of</strong>tware Change, Academic Press, 1985


[Leh01] Lehman MM and Ramil JF, Rules and Tools for S<strong>of</strong>tware <strong>Evolution</strong> Planning and Management, Annals <strong>of</strong> S<strong>of</strong>tware<br />

Eng., spec. iss. on S<strong>of</strong>tw. Manag., vol. 11, issue 1, 2001, pp. 15-44<br />

[Leh02a] Lehman MM, et al, Behavioural Modelling <strong>of</strong> Long-lived <strong>Evolution</strong> <strong>Processes</strong>-Some Issues and an Example, J. <strong>of</strong><br />

S<strong>of</strong>tware Maintenance and <strong>Evolution</strong>: Research and Practice, Sp. Issue on Separation <strong>of</strong> Concerns, forthcoming<br />

[Leh02b] id, An Overview <strong>of</strong> Some Lessons Learnt in FEAST, this proceedings<br />

[Mdh02] Madhavji NH, Introduction to the Panel Session: Lehman’s Laws <strong>of</strong> S<strong>of</strong>tware <strong>Evolution</strong>, in Context. Proc. ICSM 2002,<br />

3-7 October, Montreal, forthcoming<br />

[Raj00] Rajlich VT, Bennett KH, A Staged Model for the S<strong>of</strong>tware Life Cycle, Computer, July 2000, pp. 66 – 71<br />

[Ram02] Ramil JF, Laws <strong>of</strong> S<strong>of</strong>tware <strong>Evolution</strong> and Their Empirical Support, panel statement, Proc. ICSM 2002, 3-7 Oct.,<br />

Montreal, forthcoming<br />

[Rio77] Riordan JS, An <strong>Evolution</strong> Dynamics Model <strong>of</strong> S<strong>of</strong>tware Systems Development, in S<strong>of</strong>tware Phenomenology - Working<br />

Papers <strong>of</strong> the (First) SLCM Workshop, Airlie, Virginia, Aug 1977. Pub ISRAD/AIRMICS, Comp. Sys. Comm. US<br />

Army, Fort Belvoir VI, Dec 1977, pp 339 - 360<br />

[Som92] Sommerville I, S<strong>of</strong>tware Engineering, 4th Edition, Addison-Wesley, Wokingham, UK, 1992, pp. 536 - 538<br />

[Sua02] Suarez AJ et al, <strong>Qualitative</strong> <strong>Simulation</strong> <strong>of</strong> Human Resources Subsystem in S<strong>of</strong>tware Development Projects, QR2002 6 th<br />

Intl. Workshop on <strong>Qualitative</strong> Reasoning, Sitges, Spain, June 10-12, 2002, pp. 169 – 176<br />

[Tes98] Tesoreiro R and Zelkowitz MA, Model <strong>of</strong> Noisy S<strong>of</strong>tware Engineering Data, 20th ICSE, Kyoto, Japan, April 19-25,<br />

1998, pp. 461 - 476<br />

[Tur02] Turski WM, A Simple Model <strong>of</strong> S<strong>of</strong>tware System <strong>Evolution</strong>ary Growth, in Madhavji NH, Lehman MM, Ramil JF and<br />

Perry D (eds.), S<strong>of</strong>tware <strong>Evolution</strong> and Feedback: Observations, Theory and Practice, forthcoming.<br />

Appendix<br />

No. Brief Name<br />

Lehman's Laws <strong>of</strong> S<strong>of</strong>tware <strong>Evolution</strong> as stated in [Leh01].<br />

Law<br />

I Continuing Change An E-type system must be continually adapted else it becomes progressively<br />

1974<br />

less satisfactory in use<br />

II Increasing Complexity As an E-type system is evolved its complexity increases unless work is done<br />

1974<br />

to maintain or reduce it<br />

III<br />

1974<br />

Self Regulation Global E-type system evolution processes are self-regulating<br />

IV Conservation <strong>of</strong> Average activity rate in an E-type process tends to remain constant over<br />

1978 Organisational Stability system lifetime or segments <strong>of</strong> that lifetime<br />

V Conservation <strong>of</strong> In general, the average incremental growth (growth rate trend) <strong>of</strong> E-type<br />

1978 Familiarity<br />

systems tends to decline<br />

VI Continuing Growth The functional capability <strong>of</strong> E-type systems must be continually increased to<br />

1991<br />

maintain user satisfaction over the system lifetime<br />

VII Declining Quality Unless rigorously adapted to take into account changes in the operational<br />

1996<br />

environment, the quality <strong>of</strong> an E-type system will appear to decline as it is<br />

evolved<br />

VIII Feedback System E-type evolution processes are multi-level, multi-loop, multi-agent feedback<br />

1996 (Recognised 1971,<br />

formulated 1996)<br />

systems

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!