Inevitability of Change in Complex Systems
University of Liverpool - Masters in Software Engineering
These are articles from my masters in software engineering classes.
Elad Shalom,
CTO at ITweetLive.com
Discuss why change is inevitable in complex
systems and give examples of software process activities that help
predict changes and build software to be more resilient to change.
Complex systems are comprised of interconnected parts, which
as a whole exhibit one or more properties, not evident from the specific
properties of the individual parts (Rocha, 1999). However, as complex systems are studied by
quite an impressive number of fields, including ecology, cybernetics, business,
and economy, their definition is subject to the particular context in which
they are used (Collier, 2005).
Although the definition and interpretation of a complex
system is subject to many variables and to the field that is studying it, there
is one aspect regarding this matter which most experts tend to agree with; that
change is innate to any complex system. Complex systems are dynamic and thus,
they are prone to transformation from their very inception.
A complex system is subject to change for a number of
reasons. Firstly, these types of systems are installed in an environment which
instantly adapts to the complex system and starts generating new requirements
from the very moment it starts using it. These new requirements may occur
because only after a process of trial and error can one truly see what
functions with a system and what does not; and these things may not have been
evident before the installment of the complex system.
As a part of evolution, the user’s own requirements will
also change and, in a way, become more demanding. As business policies and
goals evolve and transform, new requirements will be generated for complex
systems as well. It is this evolution and demand that will prompt the changes
that also have to affect the complex system for it to match with what is being
asked and expected of it.
Change is essential for a complex system to preserve its
usefulness. As long as a system is in accordance with the definition of
“complex”, change will occur naturally and automatically in order to increase
efficiency and effectiveness (Kirshbaum,
2002). Although change is accepted as a natural occurrence in complex systems,
there are certain ways in which this change can be predicted.
Software process
activities that help predict change and that build software to be more
resilient to it include: design modeling that documents the software’s structure;
recording requirements rationale in order to know why a certain requirement is
present; tracing requirements to demonstrate the dependent relationship between
one requirement and another, and between requirements and the software’s
design.
Another process
activity useful for the prediction of changes is requirements-driven impact
analysis or RIDA, for short. This analysis is used to pinpoint which software
entities need to be altered in order to be able to implement a certain
requirement (Lindvall, 1998). RIDA, which is conducted during the release
planning phase, takes two variables into consideration. Firstly, there is the
input, which refers to the existing complex system and the set of requirements.
Secondly, there is the output, which represents the specific software entities
that have to be changed to meet each requirement.
The main idea one has to understand is that change is not an
exception, but rather, the only constant in life (Brooks, 1975). To some
extent, changes in complex systems can be predicted and the system can be
altered in such a way that it becomes resilient to these transformations.
Nonetheless, change in complex systems has to be accepted as an invariable
constant and a natural component in evolution.
References
·
Brooks, F (1995). The Mythical Man-Month:
Essays on Software Engineering. 2nd ed. US: Addison-Wesley Pub. Co. 15
·
Cumming, G. S., and J. Collier. 2005. Change and
identity in complex systems. Ecology and Society. Available: http://www.ecologyandsociety.org/vol10/iss1/art29/ [Accessed on 13th January
2013]
·
Kirshbaum, D. (2002). Introduction to Complex
Systems. Available: http://www.calresco.org/intro.htm [Accessed on 12th January 2013]
Lindvall, M. and Sandahl, K., "How Well do
Experienced Software Developers Predict Software Change?," Journal of Systems and Software, vol. 43, no. 1,
pp. 19-27, 1998.
·
Rocha, L.M. (1999). Complex Systems Modeling:
Using Metaphors From Nature in Simulation and Scientific Models. Los Alamos
: Los Alamos National Laboratory . 70
These are articles from my masters in software engineering classes.
Elad Shalom,
CTO at ITweetLive.com
Applying for almost any loan assistance program with those of a poor credit history is
ReplyDeletepractically an uphill task jeuj.eu in addition,
approximately only half all potential car buyers stand to learn from extremely low financing zero-percent financing.
My webpage - jeuj.eu