-1- Position Paper Grand Challenges Workshop Area G6 Dependable by etssetcf


More Info
									                                             Position Paper
                                       Grand Challenges Workshop
                                  Area G6: Dependable Systems Evolution

                                  The Phenomenon of Software Evolution
                                           29 – 31 March 2004

Introduction: As the use of computers and the purposes for which they are applied, increases, computer
systems, more general systems that include computers and their software are becoming ever more tightly
interwoven and interdependent. Implicit reliance is placed on the correctness, operational reliability,
availability and repeatability of system behaviour and results and, therefore, on their timely adaptation to
the changing nature and needs of a real world that is dynamic, always changing. Such systems often
involve entities over widespread geographical and national areas. Yet, whenever and wherever executed
they must reflect with appropriate precision the relevant properties and needs of the environments in
which they operate and the operations addressed. Satisfactory operation requires, therefore, reliable
system adaptation as the operational environment and stakeholders needs, expectations and ambitions
change, as, inevitably, assumptions embedded in the system during, for example, abstraction processes,
become invalid. In view of the growing ubiquity of the computer, the welfare of society as we know it
may well depend on understanding, managing, implementing and controlling the adaptation of the
software, its evolution, to a changing world. From the point of view of stakeholders, satisfactory
operation and results, timely adaptation to a changing world and needs, predictable and economical
evolution require the maximum possible degree of dependability. The need for dependable systems is
ever more apparent, demands widespread and concentrated attention.
In a dynamic world, evolution adapts systems in which software plays a significant, possibly controlling,
role to changing environments, needs and desires. It extends their functionality and performance, even
the detail of that functionality. For the system to consistently produce satisfactory results, evolution must
be dependable and timely. It must ensure that the system continually and adequately reflects the needs
and attributes of its purpose; that it satisfies the requirements of the operational and usage environments
whenever used. Active worldwide interest in and concern about the evolution of computer application
and its realisation through the evolution of software is, therefore, of growing importance.
Two Approaches: The term software evolution addresses two distinct, but interdependent, aspects of a
consistently observed phenomenon1. Insight, knowledge and understanding acquired in the study of
either can and must be applied to the other. For balanced studies as required in response to the Grand
Challenge, both must be considered. Progress in and benefits gained from their associated study will
certainly yield more than the sum of that gained by considering only one or them separately.
Most studies of software evolution address the practical challenge of how to improve the process through
conception, development and introduction of new or improved methods, tools and processes. These are
conceived and developed to yield more timely, reliable, predictable and, hopefully, economical
evolution, to increase dependability and effectiveness, to satisfy the need for appropriate, safe and
reliable application and maintenance of computing power. This approach to the study of software
evolution addresses the verbal aspect of evolution, its how. It is the one primarily reflected in the current,
Dependable Software Evolution - Grand Challenge (G6) proposal.
A second, nounal approach, the what, seeks understanding of the phenomenon, its causes, nature,
patterns, characteristics, implications, wider consequences and so on. Pursued for many years, most
recently in the EPSRC FEAST projects2, it also involves issues of practical exploitation, identification of
rules to be followed for effective adaptation and evolution and identification of tools that could help
towards that goal3. As summarised in an earlier Grand Challenges position paper, the studies have now
reached the point where the ubiquity of the phenomenon has been demonstrated, basic characteristics
identified and foundations of an empirical theory of software evolution established. These are based on
empirical evidence derived from industrial experience and data. To achieve a wider, scientific, theory
based on the insights and understanding of theoreticians, empiricists and practitioners demands multi-
disciplinary collaboration, contributions from all aspects of computing science, software engineering,
technical and process management, organisational studies and so on.

  Lehman MM, Ramil JF and Kahen G, Evolution as a Noun and Evolution as a Verb, SOCE 2000 Workshop on Software and
Organisation Co-evolution, Imp. Col., London, 12-13 Jul. 2000
  See http://www.cs.mdx.ac.uk/staffpages/mml/
  Rules and Tools for Software Evolution Planning and Management, Lehman MM and Ramil JF, Annals of Software Eng.,
spec. iss. on Softw. Managm., vol. 11, 2001, pp. 16 – 44
12-Feb-04, 5:21 pm                                     -1-                              mml716[papers- mml]
Links between the Approaches: The verbal approach is essentially ad hoc. It is driven by individual and
organisational insights that indicate potential for benefit. This may be achieved by development of new
approaches to system evolution planning, control and implementation, process changes, development of
new methods, techniques and support tools, addition of activities or procedures to the overall evolution
process and by improvement to existing ones. Over the years, the approach has made major contributions
to the effectiveness and dependability of the software process and its improvement. It has led to
important advances in programming and system development methodology, in the improvement of
implementation methods and provided tools to support them at all levels of process activities. But
empirical studies of programming, in general and software evolution, in particular are, also, required for
objective evidence of progress. Of equal importance is the fact they can yield understanding of the
software evolution phenomenon, its causes, techniques for its control and, hence, to the systemisation of
process improvement based on a theory model of the phenomenon, a theory of software evolution.
It should be noted that, after appropriate adjustment for different domains such a model would have
wider implications. It may be expected to be relevant to systems evolution in general and to that of
artificial systems4 in particular. As has, long been suggested, software may be regarded as the Drosophila
Melanogaster (common fruit fly) of evolution studies. Thus advances in understanding of the
phenomenon should, eventually, have wider significance, find wider application.
The Role of Empiricism The scientific method is rooted in observation, measurement, empirical data
and behaviour analysis. Abstraction of these produces models, hypotheses and principles whose
integration leads to a theory. This phenomenological approach has been followed over the years in
empirical studies of software evolution2. More than a dozen industrially developed and commercially
distributed systems have been observed. The systems studied extended over a range of applications, with
differing levels of functional complexity, development and usage organisations. The periods over which
they evolved and those for which data was available, the processes used to implement them, the degree of
development and evolution tool support and so on, also differed widely. Correlation of these differences
with those in behaviour remain to be established. If achieved, they may be incorporated into the theory
derived from established similarities in evolutionary patterns and behaviours that indicate a common
underlying phenomenology and provide inputs to the development of a theory of software evolution.
Potential for development of such a theory now exists. Indeed, as recently described5 a theory has already
emerged from the results of the nounal studies of software evolution and is reflected in many results
published over the last 30 years. What is needed is their collection, refinement and organisation into a
coherent whole; to determine domains of applicability and limitation. Foundations have been established.
The search for further insight, clarification and wider appreciation can make an important additional
contribution to the proposed study of Dependable Systems Evolution.
The development paradigms for the systems studied so far were industrial derivatives of waterfall-like
models. The evolution characteristics of paradigms such as object oriented, open source, extreme and
agile programming remain to be determined though preliminary observations for open source software
have been published6,7. In any event, use of such approaches also gives rise to issues of dependability,
and is likely to be a significant factor in assessing their areas of applicability and long-term viability.
How they relate to current and future observations is part of the G6 challenge. Present understanding
suggests that a common theory may be expected to span all approaches since evolution characteristics are
only weakly related to paradigmal factors, relate primarily to societal factors. Current theory must be
extended to make it available for the foreseeable future as a general framework, guiding and driving
method and tool development wherever and whenever dependability is an issue.
It must be noted that the economics of different evolution paradigms need also be better understood,
since a key element in ensuring sustained dependability lies in correct assignment of resources to
activities such as refactoring, restructuring and system documentation; that is to complexity control8.
Note also that if patterns of software evolution were primarily determined by key personalities and
organisations, scientific analysis and development of a theory would, at best, be difficult; achievement of
a useful theory unlikely. Commercial software is, however, evolved by teams. Evolution is the visible
expression of complex multi-level, multi-loop multi-agent feedback system behaviour, the aggregation

  Simon HA, The Sciences of the Artificial, M.I.T. Press, Cambridge, MA. 1969, 2nd ed, 1981
  Fiadeiro J, Second RELEASE – ESF Workshop, Strasbourg, 5 – 6 February, 2004
  Godfrey M.W. & Tu Q. (2000); "Evolution in Open Source Software: A Case Study", Proc. ICSM 2000, 11-14 Oct., San Jose,
CA: 131 - 142
  Bauer A and Pizka M. The Contribution of Free Software to Software Evolution. In Proc. Int. Worksh on Princ. of Softw.
Evolution (IWPSE), IEEE Computer Society, Helsinki., Finland, Sep. 2003
  Lehman MM, Kahen G and Ramil JF, Behavioural Modelling of Long lived Evolution Processes– Some Issues and an
Example, J. of Software Maintenance and Evolution, spec. issue on Separation of Concerns, vol. 14, 2002, pp. 335 - 351
12-Feb-04, 5:21 pm                                        -2-                               mml716[papers- mml]
of individual activities This is confirmed by observed commonalties which contravene widespread belief
that individuals drive software evolution. As also, for example, in economic theory, aggregation,
feedback and other performance-constraining forces attenuate variability and productivity. More work is
needed to understand the bounds, limits and correlations that arise as a result but the projected software
evolution theory clearly involves statistical variations.
Additional Activities to be Added to the G6 Proposal: As already observed, apart from its intrinsic
interest and value, empirical studies spread over a wide spectrum of evolving systems and seeking to
establish correlations of evolution characteristics and behavioural features with the evolution
environment of specific systems, can make a significant contribution to meeting the challenge posed by
the current proposal. Though demanding a relatively small effort, the addition of data collection and
analysis to confirm and adjust earlier findings and their extension into new areas will make a vital overall
contribution. It would collect, organise, extend and package the emerging theory and relate it to the main
activity; convey developing understanding to those in the main effort to support application of the
findings to method and tool identification, planning and development. Conversely, feedback from those
engaged in those activities can provide valuable inputs to theory development.
Extension of the proposal: Preparation of proposed revisions to the current proposal must await the
discussions at the forthcoming (March 2004) workshop and conference. Illustrations of how the views
expressed in this position paper might be incorporated in the current proposal will, therefore, be limited
to its existing opening section. What follows is intended to exemplify how the case for a wider G6 scope
to fully address the challenge of dependable software evolution might be addressed. It is, however, worth
adding that it appears unnecessary to elaborate explicitly in the final proposal on the complementary
interpretations of software evolution. That will be implicit. In the proposed context they must be accepted
as aspects of the same challenge.
Examples of Modifications to the Current G6 Proposal
    Definition section:
Third paragraph, last line to read: “… not the scale of the system. To satisfy those needs more effectively
we must also further develop understanding of the software evolution phenomenon itself, its causes,
nature, impact.”
“Over fifteen years we will:
     • Acquire, analyse and model software evolution data from industrial sources to provide deeper
insight into the nature and impact of the phenomenon, implication on its control, timely and dependable
     • Maintain and extend the existing base of knowledge and understanding of the evolution
phenomenon on the basis of insights obtained from the empirical studies to produce and update a theory
of software evolution that is relevant across the full spectrum of application and development
environments, software development processes and so on.
     • Apply the theory to support and guide the planned activities as summarised in the bullet points that
     • Provide …“.
Final paragraph:
In summary, we propose to solve the dependability problem for evolving systems once and for all by
providing the needed knowledge, understanding and appropriate means: that is a Grand challenge.
Scientific significance
first paragraph to read:
“The correctness of programs is the fundamental concern of the theory of programming. The principle
concern of software engineering on the other hand is, ultimately, how to ensure and maintain the
integrity, dependability, results and behaviour of systems of such programs to ensure user, and more
generally stakeholder, satisfaction from system execution in the real world, despite the inescapable fact
that applications, stakeholder needs and desires and operational domains, themselves continually change.
Much … etc.”
Finally: The position expressed outlines the observations that indicate changes required to obtain a
broader and more complete G6 proposal than the present version. The significance and potential impact
of the proposed extension on the real world, its benefit to society at large as well as to Computer Science
and Software Engineering will be self evident. It certainly is a major challenge, presents a Grand
Challenge. The changes proposed must be integrated with the remainder of the proposal to achieve a
coherent whole. This can be achieved once an underlying motivation and approach is agreed.

12-Feb-04, 5:21 pm                                 -3-                            mml716[papers- mml]

To top