You are on page 1of 67

SEMINAR REPORT ON

CYBERNETICS
BY

BHAGYASHREE SHEJWAL T.E.COMPUTER, DIV::A (ROLL NO.: 3356)


2008-2009

GUIDE

(Mrs. Sunita Jahirabadkar)

CUMMINS COLLEGE OF ENGINEERING FOR WOMEN KARVENAGAR, PUNE-400152

This is to certify that Miss. BHAGYASHREE MARUTI SHEJWL Has completed necessary seminar work & prepared the bonafied report on CYBERNETICS In satisfactory manner as the partial fulfillment for the requirement of the degree of T.E. (Computer) Of University of Pune, in the academic year 2008-2009

Date : Place : CCOEW

Prof. Internal Guide. Mrs. Jahirabadkar

Prof H.O.D. Mr.Muchrikar Sir

Dr. Principal, Cummins College of Engineering.

ACKNOWLEDGEMENT
It gives me immense pleasure to present my seminar on CYBERNETICS. The able guidance of my teaching staff department made this study possible. They have been a constant source of encouragement throughout the completion of this seminar. I would sincerely like to thank Mrs. Sunita Jahirabadkar madam for her help & support during the making of this seminar report. This report would not have been successful without the immense guidance from my guide & the valuable time that she has spent with me during my report development stages. I would also like to thank Mr. Muchrikar Sir and Mrs. Tikhe madam, for their immense encouragement and his valuable time while deciding the scope for my seminar.

BHAGYASHREE SHEJWAL T.E. Computer A Roll No.: 3356 CCOEW, Pune.

ABSTRACT
As first defined by Norbert Wiener Cybernetic is the Control and communication in the animal and the machine. The principles of cybernetics have been applied in many fields. The errands of cybernetics application are including the extending of application domain, subdividing the problem, and building of reliability features, dealing of parallel and concurrent computation, handling of error states, and creating of precision requirements. This paper gives the small overview of cybernetics. It also gives brief information about software cybernetics. In particular, we try to formulate the goaloriented requirements analysis process as a feedback control system, in which a classical divide and conquer design philosophy is turned into a continuous augmentation process to existing design towards an optimal one. Software cybernetics is an emerging area that explores the interplay between software and control. The controlled Markov chain (CMC) approach to software testing supports the idea of software cybernetics by treating software testing as a control problem, where the software under test serves as a controlled object modeled by a controlled Markov chain and the software testing strategy serves as the corresponding controller. The software under test and the corresponding software testing strategy form a closed-loop feedback control system. The theory of controlled Markov chains is used to design and optimize the testing strategy in accordance with the testing/reliability goal given explicitly and a priori. Self adaptive software is becoming more and more important and topical. As a new emerging discipline, self-adaptive software has strong background in control theory. This paper also analyses the similarity between software self adaptation technologies and control theory, and shows that self-adaptive software could be studied from software cybernetic perspective. Many research areas have already benefited from the use of the concepts from software cybernetics although their relationship with software cybernetics has not yet been explicitly determined. Some of these contributions are described next.

INDEX
1. Introduction 1.1 Overview 1.2 Why Cybernetics 1.3 Cybernetics & Steersman 1.4 Cybernetic Model 1.5 History 1.6 Definition 2. 3. Various areas of Cybernetics.. Principles of Cybernetics.. 3.1 Principles of Cybernetics 3.1.1 Homeostasis. 3.1.2 External Completion 3.1.3 Requisite variety.. 3.1.4 Feedback.. 3.1.5 Intentionality 3.2 Goal directed system... 4. 5. Feedback A core principal of Cybernetics AI & Cybernetics 5.1 Introduction.. 5.2 Difference between AI and Cybernetics.. 5.3 Approach of Cybernetics to AI 6. Software Cybernetics 6.1 Need 6.2 Concepts and Definition 6.3 Current Software Engineering 6.4 Software as a Control Problem 6.5 CMC Approach 7. 8. 9. Self Adaptive Software... Research Topics.. Future .. 1

10. 11. 12.

Conclusion FAQs Bibliography.

List of Figures
FIG 1.3.2 Steersman giving direction to boat FIG 2.1.1 ASIMO navigating stairs FIG 2.4.1 Complex Adaptive System FIG 2.7.1An artificial heart FIG 3.2.1 A Simple Goal Directed System FIG 4.1.1 A Vehicle System FIG 4.1.2 A Simple Robot System FIG 4.1.3 A Vehicle System FIG 4 FIG 4.2.2 A Temperature Control System FIG 4.2.2 A Temperature Control System FIG 4.3.1 A Learning Process FIG 4.4.1 Brain comprises of Neurons FIG 4.3.2 A Vehicle System FIG 4.4.2 Neurons-connected together in network FIG 4.4.3 Brain System FIG 4.5.1 A Virtual Reality System FIG 4.5.2 Human Computer Interaction FIG 4.6.1Environmental System FIG 4.6.2 Daises grows on the planet as a result of change in the Environment. FIG 5.4.1.Brain Simulation FIG 6.2.1 (Closed loop /Feedback Control) FIG 6.5.1 (Sample Problem Scenario in Software Engineering)

FIG 6.6.1: Software Testing as a Control Problem FIG 7.5.1 (The Structure of PKUAS)

Chapter 1: Introduction
1. OVERVIEW
The term cybernetics stems from the Greek (steersman, governor, pilot, or rudder - the same root as government). Cybernetics is a broad field of study, but the essential goal of cybernetics is to understand and define the functions and processes of systems that have goals, and that participate in circular, causal chains that move from action to sensing to comparison with desired goal, and again to action. Studies in cybernetics provide a means for examining the design and function of any system, including social systems such as business management and organizational learning, including for the purpose of making them more efficient and effective. Chapter 1 gives the introduction of the concept. It tells us why the concept has come into existence & the importance of the concept. It also gives the history behind the concept. It also tries to define the term. Chapter 2 deals with the various areas related to the topic of cybernetics. Chapter 3 gives the principals of the cybernetic. It also gives one example of simple cybernetic model. Chapter 4 tells about the core principle of cybernetic i.e. Feedback. This chapter tells the importance of feedback or how the feedback is used in the various systems. As the concept is very confusing, many of the people think that its like AI only. So Chapter 5 gives the relation of cybernetic and Artificial Intelligence. Chapter 6 consider the area of cybernetics i.e. Software Cybernetics. It covers the details of software cybernetics. Concept Control Markov Chain approach for the Software Testing. Chapter 7 explores the concept of Self Adaptive Software in prospect with the cybernetics, which is emerging area in the cybernetics. Chapter 8 gives various research topics of Software Cybernetics. Various interesting research topics have covered in this chapter. Chapter 9 tells the future of the area cybernetics.

2. Why Cybernetics
In the 1940s a group of academics from different disciplines held a series of meetings, where they discussed their interests. It became apparent that, despite their different subjects, they were interested in similar themes - particularly the use of control and communication - in different systems. To progress their work further they were 'hampered by the lack of unity of the literature' for these themes and by the lack of a 'common terminology' - so they felt the need to have a new subject for this work. On the basis that existing terminology was too biased towards one of the existing subjects, they decide there was a need for a new name for the subject - and they decided to call the field of 'control and communication theory', whether in the machine or in the animal, by the name Cybernetics, derived from the Greek Kubernetes or steersman. As further justification for the name, the equivalent Latin word gives us the word governor, meaning a person in control. An early automatic control system was a speed governor for a steam engine. Also, Ampere used the work cybernetique in 1834 for his science of government (people who think they are in control). Norbert Wiener, an applied mathematician, published a book in 1948, called Cybernetics - or control and communication in the animal and the machine. Other people involved at the time included Arturo Rosenblueth, a physiologist; Warren McCulloch, who with Walter Pitts produced the first model of a neuron (the basic processing element of brains), Margaret Mead, Frank Fremont Smith the medical director of the Josiah Macy Foundation, and John Von Neumann, a pioneer of Computer Science.

3. Cybernetics and the steersman

FIG 1.3.1Cybernetics & Steersman Feedback can be very useful - particularly for control. Consider the case of the steersman (FIG 1.3.1) (which gives the name Cybernetics) responsible for ensuring a boat follows a given course despite the effects of winds and tides. Without feedback, the steersman would perhaps point the boat towards the correct destination and in effect keep his eyes closed and hope that the boat ends up at the right place. However winds or tides would push the boat off course and the steersman would not know - as he can't see. Inevitably the boat will not go where it should.

FIG 1.3.2 Steersman giving direction to boat The solution is feedback (FIG 1.3.2). The course the boat is following is found and that information is fedback to the steersman (achieved by the steersman looking to see where he is going!). If the boat is off course the steersman takes the appropriate action, turning the rudder left or right, to get back on course. Effectively you see what your system (in this case the boat) is doing, and if it is not doing the right thing (here the boat is off course), suitable corrective action is taken (the rudder is turned left or right). It's a nice concept, easily extended to other systems.

4. Cybernetic Models
Cybernetic models are applied prescriptively in design and descriptively as explanatory devices. Their prescriptive use savours of engineering. They are employed in the specification of controllers and regulators for industrial plants, navigation, and so on. The most interesting developments have occurred in the area of predictive, adaptive, and optimizing controllers, usually able to deal with randomly perturbed environments. On the other hand, cybernetic models are widely used in determining the proper relationship between a man and a machine, for example, in the design of vehiclecontrol systems. Another field of application is teaching and training. Here, training is literally interpreted as the control of a human learning process and insofar as an adequate model exists, the training instructor may be partially or wholly replaced by a suitable machine. In operational research, cybernetic models are used to specify stockholding schemes, process and assembly programming, and inventory control. They are also used in a normative fashion; for example the management of a business enterprise is often modeled as a game-like decision and control process. Descriptive applications are legion. At a neuro physiological level, cybernetic models have been used to explain many aspects of the working of a brain. Five areas are of special importance: models for simplified neural networks, chiefly representing perceptual processes; statistical models for the complex oscillations and regulations of real neural activity; models relating algorithms or plans (cited earlier) to the conditioning process; models for the mechanisms responsible for maintaining and directing attention; and models for the detailed changes that occur at the synaptic junctions between neurons. Outside the brain, cybernetic principles are widely used to elucidate the control of bodily functions (autonomic processes, hormone-mediated regulatory systems, muscular

control, and so on).A surprisingly large amount of molecular biology and bio-chemistry also rests upon models depicting the organization of enzyme systems and the hierarchical control of enzyme synthesis. This type of explanation promises to have further utility in relating genetically coded instructions to the cellular economy. Cybernetic models have been used in embryology since the early 1950s, and some of the original schemes have now been formulated in a detailed mathematical fashion. Within psychology, it is possible to explain several classes of behaviour and cognition in terms of hierarchies of control systems. The previously stated notions of planning and learning are pertinent to this field. At a macroscopic level, cybernetic ideas are applied to interpersonal interactions such as conversations, the communicative behaviour of small groups, and the homeostatic processes maintaining the status quo in social systems. Indeed, one of the first essays in this direction took place in the context of social anthropology where cybernetic ideas are becoming of greater importance. Somewhat similar developments have occurred in the animal domain; ethnologists use cybernetics freely, especially in dealing with population density control systems and the regulation of reproduction.

5. History
In the 1940s a group of academics from different disciplines held a series of meetings, later called the Macy Conferences, where they discussed their interests. It became apparent that, despite their different subjects, they were interested in similar themes - particularly the use of control and communication - in different systems. To progress their work further they were 'hampered by the lack of unity of the literature' for these themes and by the lack of a 'common terminology' - so they felt the need to have a new subject for this work. On the basis that existing terminology was too biased towards one of the existing subjects, they decide there was a need for a new name for the subject - and they decided to call the field of 'control and communication theory', whether in the machine or in the animal, by the name Cybernetics, derived from the Greek Kubernetes or steersman. As further justification for the name, the equivalent Latin word gives us the word governor, meaning a person in control. An early automatic control system was a speed governor for a steam engine. Also, Ampere used the work cybernetique in 1834 for his science of government (people who think they are in control). Macy conferences were then devoted to, new cybernetics, and opened with two presentations: the first by von Neumann on the new computing machines, followed by neurobiologist Lorente de No on the electric properties of the nervous system. These circuiting of analogies between behaviour of computers and the nervous system became central to cybernetic imagination and its founding desire to define the essential "unity of a set of problems" organized around "communication, control, and statistical mechanics, whether in the machine or living tissue. In particular, the early cyberneticists are convinced that research on computers and the organization of the human brain are one and the same field, that is, "the subject embracing both the engineering and the neurology aspect is essentially one." Wiener defined cybernetics in 1948 as the study of "control and communication of the animal and the machine". This definition captures the original ambition of cybernetics to appear as a unified theory of behaviour of living organisms and machines, viewed as systems governed by the same physical laws. The initial phase of cybernetics involved disciplines more or less directly related to the study of those systems, like communication and control engineering, biology, psychology, logic, and neurophysiology. Very soon, a number of attempts were made to place the concept of control at the focus of analysis also in other fields, such as economics, sociology, and anthropology. The ambition of "classic" cybernetics thus seemed to involve also several human sciences, as it developed in a highly interdisciplinary approach, aimed at seeking common concepts and methods in rather different disciplines. In classic cybernetics this ambition did not produce the desired results and new approaches had to be attempted in order to achieve them, at least partially.

In the 1970s New cybernetics has emerged in multiple fields, first in biology. Some biologists influenced by cybernetic concepts (Maturana and Varela, 1980); Varela, 1979; Atlan, 1979) realized that the cybernetic metaphors of the program upon which molecular biology had been based rendered a conception of the autonomy of the living being impossible. Consequently, these thinkers were led to invent a new cybernetics, one more suited to the organization of mankind discovers in nature - organizations he has not himself invented. The possibility that this new cybernetics could also account for social forms of organization, remained an object of debate among theoreticians on selforganization in the 1980s. In political science in the 1980s unlike its predecessor, the new cybernetics concerns itself with the interaction of autonomous political actors and subgroups and the practical can reflexive consciousness of the subject who produce and reproduce the structure of political community. A dominant consideration is that of recursiveness, or self-reference of political action both with regards to the expression of political consciousness and with the ways in which systems build upon themselves. Geyer and van der Zouwen in 1978 discuss a number of characteristics of the merging "new cybernetics". One characteristic of new cybernetics is that it views information as construct and reconstructed by an individual interacting with the environment. This provides an epistemological foundation of science, by viewing it as observer-dependent. Another characteristic of the new cybernetics is its contribution towards bridging the "micro-macro gap". That is, it link the individual with the society. Geyer and van derZouten also noted that a transition form classical cybernetics to the new cybernetics involves a transition form classical problems to new problems. These shifts in the thinking involve, among others a change form emphasis on the system being steered to the system doing the steering, and the factor which guide the steering decisions. And new emphasis on communication between several systems which are trying to steer each other. Recent endeavors into the true focus of cybernetics, systems of control and emergent behavior, by such related fields as Game Theory (the analysis of group interaction), systems of feedback in evolution, and Metamaterials (the study of materials with properties beyond the Newtonian properties of their constituent atoms), have led to a revived interest in this increasingly relevant field.

6. Defining the term Cybernetics


There are many definitions of cybernetics and many individuals who have influenced the direction of cybernetics. Cybernetics treats not things but ways of behaving. It does not ask "what is this thing?" but "what does it do?" and "what can it do?" Because numerous systems in the living, social and technological world may be understood in this way, cybernetics cuts across many traditional disciplinary boundaries. The concepts which cyberneticians develop thus form a metadisciplinary language through which we may better understand and modify our world. Cybernetics seeks to develop general theories of communication within complex systems. ... The abstract and often formal mathematical nature of its aim ... makes cybernetics applicable to any empirical domain in which processes of communication and their numerous correlates occur. Applications of cybernetics are widespread, notably In the computer and information sciences, in the natural and social sciences, in politics, education and management." "Cybernetic= the art of governing or the science of government" A.M. Ampere

"The art of steersman ship"


W. Ross Ashby "A branch of mathematics dealing with problems of control, recursiveness, and information" - Gregory Bateson Cybernetics is concerned with scientific investigation of systemic processes of a highly varied nature, including such phenomena as regulation, information processing, information storage, adaptation, self-organization, self-reproduction, and strategic behavior. Within the general cybernetic approach, the following theoretical fields have developed: systems theory (system), communication theory, game theory, and decision theory." - BehaveNet "So a great variety of systems in technology and in living nature follow the feedback scheme, and it is well-known that a new discipline, called Cybernetics, was introduced by Norbert Wiener to deal with these phenomena. The theory tries to show that mechanisms of a feedback nature are the base of teleological or purposeful behavior in man-made machines as well as in living organisms, and in social systems." - Ludwig von Bertalanffy "The science of effective organization" Stafford Beer

"is also sometimes used as an umbrella term for a great variety of related disciplines: general systems theory, information theory, system dynamics, dynamic systems theory, including catastrophe theory, chaos theory, etc." - Bruce Buchanan "the art of securing efficient operation" L. Couffignal

"The single most important property of a cybernetic system is that it is controlled by the relationship between endogenous goals and the external environment." - Peter Corning

"Cybernetics is a science of purposeful behavior. It helps us explain behavior as the continuous action of someone (or thing) inthe process, as we see it, of maintaining certain conditions near a goal state, or purpose." - Jeff Dooley "Cybernetics is the science of unseen processes which energize dynamic entities: man-made, natural, and spiritual. In a narrower technical view, cybernetics are what makes systems function." - Charles A. Fink "Cybernetics studies organization, communication and control in complex systems by focusing on circular (feedback) mechanisms Cybernetics, deriving from the Greek word for steersman (kybernetes), was first introduced by the mathematician Wiener, as the science of communication and control in the animal and the machine (to which we now might add: in society and in individual human beings). It grew out of Shannon's information theory, which was designed to optimize the transmission of information through communication channels, and the feedback concept used in engineering control systems. In its present incarnation of "second-order cybernetics", its emphasis is on how observers construct models of the systems with which they interact." - Fusionanomaly.net "Cybernetics could be thought of as a recently developed science, although to some extent it cuts across existing sciences. If we think of Physics, Chemistry, Biology, etc. as traditional sciences, then Cybernetics is a classification which cuts across them all. ...Cybernetics is formally defined as the science of control and communication in animals, men and machines. It extracts, from whatever context, that which is concerned with information processing and control. ... One major characteristic of Cybernetics is its preoccupation with the construction of models and here it overlaps operational research. Cybernetic models are usually distinguished by being hierarchical, adaptive and making permanent use of feedback loops. ... Cybernetics in some ways is like the science of organisation, with special emphasis on the dynamic nature of the system being organised." - F. H. George "Cybernetics is essentially about circularity." - Ranulph Glanville "Cybernetics, as we all know, can be described in many ways. My cybernetics is neither mathematical nor formalized. The way I would describe it today is this: Cybernetics is the art of creating equilibrium in a world of possibilities and constraints." - Ernst von Glasersfeld "The theory of interconnectedness of possible dynamic self-regulated systems with their subsystems" - G. Klaus "Cybernetics is the science of effective organization, of control and communication in animals and machines. It is the art of steersmanship, of regulation and stability. The concern here is with function, not construction, in providing regular and reproducible behaviour in the presence of disturbances. Here the emphasis is on families of solutions, ways of arranging matters that can apply to all forms of systems, whatever the material or design employed. ... This science concerns the effects of inputs on outputs, but in the sense that the output state is desired to be constant or predictable - we wish the system to maintain an equilibrium state. It is applicable mostly to complex systems and to coupled systems, and uses the concepts of feedback and transformations (mappings from input to output) to effect the desired invariance or stability in the result." - Chris Lucas

"Originally the study of biological and artificial control systems, cybernetics has evolved into many disparate areas of study, with research in many disciplines, including computer science, social philosophy and epistemology. In general, cybernetics is concerned with discovering what mechanisms control systems, and in particular, how systems regulate themselves." - Lycos.com "Cybernetics is simultaneously the most important science of the age and the least recognized and understood. It is neither robotics nor freezing dead people. It is not limited to computer applications and it has as much to say about human interactions as it does about machine intelligence. Today's cybernetics is at the root of major revolutions in biology, artificial intelligence, neural modeling, psychology, education, and mathematics. At last there is a unifying framework that suspends long-held differences between science and art, and between external reality and internal belief." - Paul Pangaro "Cybernetics is the study of systems which can be mapped using loops (or more complicated looping structures) in the network defining the flow of information. Systems of automatic control will of necessity use at least one loop of information flow providing feedback." - Alan Scrivener "Cybernetics is the study of man in relation to his particular job or machine with special reference to mental processes and control mechanisms." Times of London - May 11, 1959

Cybernetics was an experimental epistemology concerned with the communication within an observer and between the observer and his environment. - Warren McCulloch Control and communication in the animal and the machine - Norbert Wiener
"Cybernetics is a coverall word to describe the study of systems - of robots, computers, machines, and the people who use them." - University of Bradford "The name was coined by Norbert Wiener in 1948 as a result of collaborations between Wiener, a mathematician, and colleagues from other disciplines: they noticed that they had similar interests, but where was no name to group together their interests. They chose cybernetics, subtitle control and communication in the animal and the machine, thus reflecting that both technological and biological systems have many common characteristics." - University of Reading "Cybernetics is the study of systems which can be mapped using loops (or more complicated looping structures) in the network defining the flow of information. Systems of automatic control will of necessity use at least one loop of information flow providing feedback." - Alan Scrivener

"a science concerned with the study of systems of any nature which are capable of receiving, storing, and processing information so as to use it for control" - A.N. Kolmogorov

Chapter 2: Various Areas of Cybernetics

Cybernetics is an earlier but still-used generic term for many subject matters. These subjects also extend into many others areas of science, but are united in their study of control of systems. The tendency to adopt a restricted interpretation for the term has been largely reversed but, as a result of its existence for a number of years, much of the American literature on cybernetics (in the general sense) appears in connection with the disciplines to which it was applied, or under specialized headings. Among the most important of these are: General Systems Theory, Bionics (q.v.; Biological Cybernetics, using the organizational principles of living systems in the design of artifacts), the theory of "Self Organizing" or evolutionary systems and "Artificial Intelligence." The last area includes the study of computer programs that are guaranteed to solve problems (namely algorithms) and "heuristic" programs that make "intelligent" (and often very economic) shortcuts in problem solving but that are not necessarily guaranteed to work on all occasions.

1. Pure Cybernetics
Pure cybernetics has an axiomatic and a philosophical aspect. The axiomatic paradigm is to assume certain postulates about a system and to deduce the system properties (such as reproduction, differentiation, learning) that are consequences of these assumptions. The philosophical branch of the science is often concerned with theories; for example, the theory of simplification (how the complex properties of a real system can be reduced to manageable proportions without losing essential information) and the theory of commands. But it is also concerned with the issue of relevance as well as with the proper identification between different types of cybernetic model and real assemblies. Pure cybernetics studies systems of control as a concept, attempting to discover the basic principles underlying such things as

FIG 2.1.1 ASIMO navigating stairs

ASIMO uses sensors and intelligent algorithms to avoid obstacles and navigate stairs. See FIG 2.1.1.

2. Medical cybernetics
Medical cybernetics investigates networks in human biology, medical decision making and the information processing structures in the living organism.

3. Biology
Cybernetics in biology is the study of cybernetic systems present in biological organisms, primarily focusing on how animals adapt to their environment, and how information in the form of genes is passed from generation to generation. There is also a secondary focus on cyborgs. Biological Cybernetics investigates communication and control processes in living organisms and ecosystems. Bio-robotics is a term that loosely covers the fields of cybernetics, bionics and even genetic engineering as a collective study.

4. Complexity Science
Complexity Science attempts to analyze the nature of complex systems, and the reasons behind their unusual properties.

FIG 2.4.1 Complex Adaptive System Cybernetics becomes a way of modeling Complex Adaptive System. See FIG 2.4.1.

5. Computer Science
Computer science directly applies the concepts of cybernetics to the control of devices and the analysis of information. The development of the computer and its intrinsic discipline of mathematical logic has greatly increased the use of cybernetics during the past fifty years because it was now possible to process large amounts of data, better known as information processing.

6. Software Cybernetics
Software cybernetics is an emerging area that explores the interplay between software and control. Software cybernetics treat software testing as a control problem, where the software under test serves as a controlled object and the software testing strategy serves as the corresponding controller.

7. Engineering
Cybernetics in engineering is used to analyze cascading failures and System Accidents, in which the small errors and imperfections in a system can generate disasters. Engineering cybernetics (or Technical cybernetics) deals with the question of control engineering of mechatronic systems. It is used to control or regulate such a system; more often the term control theory encompasses this field and is used instead. See the FIG 2.7.1 of Artificial Heart, which is the example of biomedical engineering object.

FIG 2.7.1An artificial heart

8. Organizational Cybernetics
Organizational Cybernetics (OC) studies organizational design, and the regulation and self-regulation of organizations from a systems theory perspective that also takes the social dimension into consideration. Researchers in economics, public administration and political science focus on the changes in institutions, organisation and mechanisms of social steering at various levels (sub-national, national, European, international) and in different sectors (including the private, semi-private and public sectors; the latter sector is emphasised).

9. Mathematics
Mathematical Cybernetics focuses on the factors of information, interaction of parts in systems, and the structure of systems.

10. Psychology
The word cybernetics comes from a Greek term that means 'a helmsman who steers his ship to port.' Psycho-Cybernetics is a term I coined which means, "Steering your mind to a productive, useful goal .... so you can reach the greatest port in the world

... peace of mind. With it, you're somebody. Without it, you're nothing." - Dr. Maxwell Maltz, author of 30 million copy best-seller Psycho-Cybernetics

11. Sociology
By examining group behavior through the lens of cybernetics, sociology seeks the reasons for such spontaneous events as smart mobs and riots, as well as how communities develop rules, such as etiquette, by consensus without formal discussion. Affect Control Theory explains role behavior, emotions, and labeling theory in terms of homeostatic maintenance of sentiments associated with cultural categories. These and other cybernetic models in sociology are reviewed in a book edited by McClelland and Fararo.

12. Neuro Cybernetics


Neuro cybernetics is a science that covers the integration of machines, and much to the organism of a living being. The intercommunication between the nervous system and artificial appliances is a field on the verge of major breakthroughs...active research is still very much ongoing to make neuro-cybernetics/bio-cybernetics a comprehensive and fundamental science. Cyborg is the cybernetic object.

Chapter 3: Principles of Cybernetics


1. Principles of Cybernetics
In the next are introduced some generally known principles (laws) of cybernetics: the principle of uncertainty, the principle of feedback, the principle of exterior completion, the principle of requisite variety, the principle of reduction, the principle of optimality, the principle of homeostasis.

1.1 The principle of homeostasis


It expresses the fact that the base goal of control is homeostasis. This principle represents (with a certain analogy) the laws of conservation. Like in physics, these laws are tightly connected with the optimality principles (the variation principles). The homeostasis is the ability of system to preserve ultra stability, i.e. the conservation of stability at the changing external conditions. The motion of systems is secured by programmed part of control, and the perturbation from nominal state is compensated by mechanism of feedback. The problems of large-scale systems are not possible to realize only on the base of feedback. In this connection is necessary to stress, that in cybernetics is known, that the ideal control is open-loop control, which but isnt possible wholly realize because of impossibility to create ideal model of controlled system. That is way every cybernetics system is from the viewpoint of control combined - there are exist also programmed part, and feedback only corrects the deviations from the desired state. The complex system stability is substantially dependent on the stability of subsystems. But there is only the necessary, not sufficient condition. By influence of interactions can be the global system consisting of stable subsystems unstable. But there is another type of stability mechanism in complex system. There are socalled discrete events which are arising on the background of natural system dynamics. By influence of these events arise not only slow changes but the abrupt structural ones. There are discontinuous, discrete, far from equilibrium, and emergent behaviours (1982). The system stability depends on bifurcation of seemingly constant (control) parameters. The bifurcations of parameters is manifesting in the abrupt, uncontrolled chaotic, to a certain degree catastrophic situation. The number and character of these events is given by tremendous combinatorial complexity which is given by number of system elements (subsystems), as also their rich qualitative heterogeneity, which is generated by individual particularity of subsystems.

1.2. The principle of external completion


This principle has been formulated by S. Beer (1960). In the accordance with Gdel theorem of incompleteness there is no language of control completely adequate to its mission. The introduced principle can be considered as a methodological base of hierarchical control system. The using of this principle we can find in the optimal control theory, where the criterion of optimality is the external completion of control problem. This drawback is possible to removed if we put the black box into control systems; black box is suitable model of cybernetic system if contains such an amount of information to overcome its variety (the measure of its complexity). The black box is referring to the decision procedures (these are expressed in the language of higher level which cant be formulated in the language of basic level), and in this way compensates its lacks.

1.3. The principle of requisite variety


This principle has been formulated by W. R. Ashby (1956). The principle is connected with Shannons information theory, and expresses the fact, that the regulator power cant be bigger than the capacity of the transmitting channel. One of the most important results of this principle is the assertion, that it is impossible to create the simple control system for the effective control of the complex system. The control system (regulator) must be as complex as the complex system to be controlled. The important conclusion of this principle can be formulated in the so-called principle of adequateness of object and its model (e.g. invariant control systems and adaptive systems with reference model).

1.4. The principle of feedback


The feedback is one of the basic notions of cybernetics. From the philosophical point of view the feedback is the concretisation of the most important type of casual connection, the mutual activity, where the every process behaves as the cause and as the conclusion too.

1.5. The principle of intentionality:


The notion of intentionality is usually understood as a immanent characteristic of subject. The aim (goal) is created as a sure ideal picture to be attained. The expression of this principle is the phenomenon of optimality. The cybernetics is often characterized

as a science of optimal control of the complicated systems. The problem of the optimality but is not wholly scrutinized from the philosophical and methodological point of view. The optimality is always connected with the chosen goal (criterion). From this viewpoint the all what has been occurred is optimal. It is a certain analogy of Hegel statement what is real is rational, and what is rational is real. The indeed meaning the optimality obtain only with regard to the future events. The real control process is not a single act but the permanent activity which necessitate from the possibility to the reality. In this direction is very important the principle of freedom of option which includes the definite sequence of decision processes: in the given moment is necessary to control in such a manner in order to have possibility of option in the next time moment too. The control processes are characterized by integral criterion-the attainment of control goal. The problematic of formulation of goals is the prerogative of a man. The classics of cybernetics consider in universality the homeostasis as the goal of control. But homeostasis is, so saying, the essence of the first order.

2. Goal Directed System


Cybernetics is primarily the science of constructing, manipulating, and applying cybernetic models which represent the organization of physical entities (such as animals, brains, societies, industrial plants, and machines) or symbolic entities (such as information systems, languages, and cognitive processes). A paradigmatic organization, and the building block from which most cybernetic models are fabricated, is a "goal-directed system or "control system". Refer to the FIG 3.2.1. Such a system contains the following four - parts: (1) Sensor (S): an abstractive process whereby the mediate state of the system's environment is described in terms of salient attributes or properties. (2) Goal (G): the specification of a particular state of the system called the goal. (3) Error Detection (E): a method for determining the deviation, if any, between the goal state and the intermediate state. (4) Effectors (E'): a set of operations whereby the system can act upon and modify certain features of the environment which are relevant to or correlated with the descriptive properties. These parts embody the following two rules: (a)A rule asserting well-defined procedure for discovering, which of the possible actions are likely to bring the immediate state nearer to the goal state, and

(b)A rule whereby, given an instruction "Achieve Goal", the system acts upon its environment, guided by the deviation measure (or "difference signal") of the Error Detector, so that the goal state is approximated (the deviation is minimized). Generally, the system replies to this instruction: by a statement "G is achieved", or a statement "So much effort has been expended in pursuit of G, but without success."

FIG 3.2.1 A Simple Goal Directed System In the simplest cases, all parts of this specification are constant -with the possible exception of the instruction cited in (b). If the instruction is also constant, the goaldirected system is called a homeostat and continually seeks state (G). In general, however, some or all aspects of the specification are variable. Such an elementary device as a central heating controller forms to all of these requirements. Here, (1) Is identified - the thermometer of the thermostat that reads room temperature, (T). (2) With the desired room temperature, T', (3) Compares T- and T' and establishes which is the higher, and (4) Is the furnace; (a) Is the simple negative feedback rule: "turn on if room temperature, T, is less than T', otherwise turn off", and

(b) An instruction provided manually or by a timing apparatus. But these conditions are also satisfied by very complex industrial and vehicle controllers and by natural systems at all levels of complexity. On a philosophical plane, the formalization of systems entailing the circular flow of information has resolved many of the dilemmas once engendered by teleology and purposiveness. Nor is the goal-directed system necessarily tangible. A game (a business game or any simulation in the sense of game theory; q.v.) is also of this type. Further, a goaldirected system may be part of a computer program or a symbolic and problem-solving process. Analogy completion is typical in this respect. Given the symbolic objects, A, B, and C, the system seeks the goal (of completing an analogy) by describing the relation of A to B and finding D (or modifying some existing D') so that the statement "A is to B as C is to D" is satisfied. Cybernetic models are structures of mathematically related goal-directed systems, often combined with other elements such as logical operators and information storage media. The systems may be combined by coupling their variables (usually to yield a macro-system with properties in excess of those of its components). They can interact competitively (their goals remaining unchanged) or cooperatively, in which case, communication must take place in a suitable language to arrive at a compromise goal. A system with goal G1, may also be sequentially connected to a system with goal G2 in the sense that attainment of G1 delivers an instruction to achieve G2 (In this case, G1 and G2 are called sub goals of the goal of the conjoint system.) Finally, they can be organized into a hierarchy, in which only the lowest-level systems act upon the environment or have goals that refer to it directly. The higher-level systems sense lower-level properties and organize the lower-level systems. Hierarchical structures comprehend such processes as planning and learning. In planning, a higher-level system Z is instructed to achieve an abstract goal, G. It forms a plan insofar as it can recognize that G entails the sub goals G1, and G2 which are in the repertoire of the available lower-level systems and insofar as it organizes them in sequence to attain G. Learning can be viewed as the system-organizing response of Z to a problem which remains insolvable until Z, has modified the characteristics of the lowerlevel systems in its domain.

Chapter 4: Feedback a Core of Cybernetic


Feedback is a useful principle, which can be applied to a great variety of systems, technological, involving animals and the environment. Feedback is a nice concept, easily extended to many systems. Let us see how feedback is useful in various systems.

1. Vehicle and robot control

FIG 4.1.1 A Vehicle System Feedback has been shown to be useful for allowing a steersman to keep his boat on course - it can also be used, for instance, by a driver to keep a car on course. See the FIG 4.1.1. It can easily be adapted to ensure a car or any other vehicle is traveling at the right speed (particularly important when there is a speed camera!) despite hills or wind which can affect the speed. Here the speed of the vehicle is measured (you look at the speedometer) and that information is fed back to the driver, who puts his foot on the accelerator to speed up, or eases his foot off the accelerator or even puts his foot on the brake if the car is going too fast. You will note that the block diagram used to represent this system is very similar to that used for the steersman.

FIG 4.1.2 A Simple Robot System The concept can also be applied to a manipulator robot, whose gripper is to be used, say, to pick up an object. Refer FIG 4.1.2. Here the current position of the gripper is

measured and this is fed back to the robot's controller. Refer FIG 4.1.3. If the gripper is not in the right place, then the joints of the robot are moved, so that the gripper becomes in the right place. This too can be represented by a similar block diagram.

FIG 4.1.3 A Vehicle System In fact it is slightly more complicated, in that for the gripper to be in the right place, each joint has to be at the right angle, an d that is achieved by having such a feedback control system for each joint. But the concept is the same.

2. Temperature control
We have seen feedback for use in controlling the course followed by a boat, for controlling the speed of a car, and for controlling the position of the end of a robot arm. In each case the systems are represented by almost identical diagrams. The concept can be extended easily for temperature control, both by machine and in humans and other animals - reflecting Wiener's definition - control and communication in the animal and the machine.

FIG 4.2.1 A Temperature Control System First consider a system most have encountered in their house - a central heating system, but extended to have air conditioning as well so as to be able to heat and cool. Here the aim is to control the temperature of a room despite factors likely to change the temperature - such a drafts and windows, the sun coming though the window, people or PCs in the room heating it up, etc. Again the output (room temperature) is measured, say by a thermostat, and that information is feedback to the boiler / air conditioning system, which then either heats or cools the room. Refer FIG 4.2.1

FIG 4.2.2 A Temperature Control System The same concept applies to temperature control of the human body - despite being in a sauna or the Antarctic , if you are well your body temperature is at around 37 degrees - how is that maintained? Again there are actions to heat or cool, as appropriate, and a similar diagram can be used. Your body senses and feeds back the current temperature - and acts accordingly. If you are too hot, you sweat (or perspire) to cool. If you are too cold you shiver to warm up. If you are still too cold, you turn up the central heating.

3. Learning
As we have seen, feedback can be used to control systems, by measuring the output, feeding it back, and producing suitable corrective action if needed. It all sounds simple, but much effort is needed to achieve good control - we have a three year degree Cybernetics & Control Engineering concentrating on this. If a system is complicated, particularly if (as often happens) it changes as it operates, a more sophisticated control mechanism is needed, one which adapts to changes in the system - the system must be able to learn.

FIG 4.3.1 A Learning Process Learning is a feedback process. As shown in the FIG 4.3.1. As typified by the statement 'you learn by your mistakes'. You do something, assess how well it was done, and on that basis you refine and next time you do it differently (hopefully better). Again the usual block diagram can be adapted here. As a test bed for research into how systems learn, we have used our simple mobile robots. See FIG 4.3.2. These can move around and perceive their environment through

simple sensors. Students program the 'rules' to allow the robots to move around either avoiding obstacles, or follow objects - an interesting problem solving experiment.

FIG 4.3.2 A Vehicle System Then we considered how such a device could learn those same rules. This is done by the robot using trial and error. They try an action, see if it was successful. If so, then that action is more likely to be used in that situation. If not the action is less likely to be used.

4. Neural networks

FIG 4.4.1 Brain comprises of Neurons We have seen a need for systems to learn (a process which involves feedback) but how can this be implemented? Can we in fact produce systems that are 'intelligent'? We could use a computer, suitably programmed - which in effect has one (or a few) 'processing' elements. However, even modern computers are not that advanced - perhaps it would be better to develop systems more like the most powerful learning systems brains. A brain comprises simple processing elements, called neurons. See FIG 4.4.1. Those act rather slowly. Typically brain does 1000 operations a second, whereas a computer does many millions. However, the brain has billions of neurons - connected

together in a network, as shown in FIG 4.4.2. The net result of which is much more powerful than a normal computer.

FIG 4.4.2 Neurons-connected together in network Thus we 'borrow' from nature and try to develop artificial neural networks ANNs - being many neurons connected together. There are many ways of implementing these, but one method is to have neurons which multiply each input by its 'weight' being a value associated with the connecting link to the neuron, and the neuron output is the sum of all such weights. The neuron output may well provide the input to other neurons.

FIG 4.4.3 Brain System So that such a network can generate the 'right' results for any system, the correct weights are needed, but finding them is non trivial. So a 'training set' of inputs and correct answers is provided. For each set, the inputs are passed to the network. The outputs are calculated, and any error between this calculated outputs and the expected outputs are used to adjust the weights. It is a feedback process, as shown in FIG 4.4.3.

5. Virtual Reality and Human Computer Interaction


Feedback we have seen for control and for learning. It is also used in the interaction between humans and machines, such as computers: human-computer interaction or HCI. In fact, when you use a mouse to position the cursor you are using feedback - you look at the cursor on the screen and move the mouse until the cursor is correctly placed -

or is it that the computer moves the cursor until you have put the mouse in the right place?

FIG 4.5.1 A Virtual Reality System This is very simple HCI - more sophisticated HCI is Virtual Reality. See FIG 4.5.1. Here a computer generates the necessary information so that the human can seem as if he or she is in an artificial world - i.e. the computer generates what the world looks like, perhaps sounds like, smells like and feels like (for which haptics is needed - a speciality at Reading). But, were the human to turn his/her head, the world should look different - so the computer has to generate a new image of the world.

FIG 4.5.2 Human Computer Interaction This means that the system is a feedback process - with information generated by the computer being communicated to the human, and information (e.g. position of head) about the human being communicated to the computer. See FIG 4.5.2. Note, there are related topics such as tele-operation, where the information passed to the human is that of a real world. Also augmented reality where artificial information is added to real world information: e.g. head-up displays for pilots.

6. Cybernetics and the environment


We have seen that feedback applies in technological systems and systems involving animals - it also applies to the environment - a complex set of interacting systems. There are interactions between different species, for instance, predator - prey systems, but also so called mutualistic systems where two species help each other.

FIG 4.6.1Environmental System In fact, the Earth itself comprises feedback loops. This is illustrated by the Gaia hypothesis, postulated by James Lovelock, a former Visiting Professor to Cybernetics at Reading. At its strongest, the Gaia hypothesis states that the Earth is a self regulating cybernetic system, with feedback loops aimed at controlling temperature, the amount of oxygen, salinity of the sea, etc. Refer FIG 4.6.2. This it does as a result of feedback in which life and the planet work together to their mutual advantage, producing conditions suitable for both Earth and the life on it. This concept was at first dismissed by many biologists who believed that life adapted to its environment. To demonstrate how life and the planet could interact, Lovelock produced a simple model, Daisy world. Daisy world is a grey planet orbiting a sun which is heating up (like our own). In the soil are seeds of daisies which grow between 7 and 37 degrees, but grow best at 22 degrees. Initially the planet is too cold, but once it becomes warm enough, daisies grow and keep the temperature constant for a long period at 22 degrees. This happens due to feedback. Refer FIG 4.6.2.

FIG 4.6.2 Daises grows on the planet as a result of change in the Environment. If the temperature is below the optimum, more black daisies grow, absorbing heat and heating the surrounding area. If the temperature is above the optimum, white daisies thrive which reflect heat away, thereby cooling the surrounding area. Once again, a feedback system, with two opposite control actions, either heating or cooling the planet.

Conclusion:
In these pages we have seen that feedback is a useful principle, which can be applied to a great variety of systems, technological, involving animals and the environment. It can also be applied to economic systems, but at Reading we don't pretend we can control the economy! Feedback is one example of such a principle - Cybernetics demonstrates that you can take a concept developed in one application, and then use it in others. This is a very important ability, and being able to do so is very useful, and makes Cyberneticists very employable. Cyberneticists also tend to take a 'systems approach': meaning they not only appreciate the area in which they work, but they also know how their work fits in well with the rest of the system - again a very employable skill. These pages, of course, can only give a brief feel for the subject. In fact, they concentrate on so called first order Cybernetics, involving basic feedback loops. There also exists second order Cybernetics, in which systems have an observer which monitor and also influence what is happening in the system ... there have also been suggestions of the need for third order Cybernetics.

Chapter 5: Artificial Intelligence and Cybernetics


1. Introduction
The term "cybernetics" has been widely misunderstood, perhaps for two broad reasons. First, its identity and boundary are difficult to grasp. The nature of its concepts and the breadth of its applications, as described above, make it difficult for nonpractitioners to form a clear concept of cybernetics. This holds even for professionals of all sorts, as cybernetics never became a popular discipline in its own right; rather, its concepts and viewpoints seeped into many other disciplines, from sociology and psychology to design methods and post-modern thought. Second, the advent of the prefix "cyb" or "cyber" as a referent to either robots ("cyborgs") or the Internet ("cyberspace") further diluted its meaning, to the point of serious confusion to everyone except the small number of cybernetic experts. However, the concepts and origins of cybernetics have become of greater interest recently, especially since around the year 2000. Lack of success by AI to create intelligent machines has increased curiosity toward alternative views of what a brain does [Ashby 1960] and alternative views of the biology of cognition [Maturana 1970]. There is growing recognition of the value of a "science of subjectivity" that encompasses both objective and subjective interactions, including conversation [Pask 1976]. Designers are rediscovering the influence of cybernetics on the tradition of 20th-century design methods, and the need for rigorous models of goals, interaction, and system limitations for the successful development of complex products and services, such as those delivered via today's software networks. And, as in any social cycle, students of history reach back with minds more open than was possible at the inception of cybernetics, to reinterpret the meaning and contribution of a previous era.

2. Artificial Intelligence and Cybernetics:


Artificial Intelligence and Cybernetics: Aren't they the same thing? Isn't one just about computers and the other about robots? The answer to these questions is emphatically, No.

Artificial Intelligence
1. AI theories are more concerned with general-purpose techniques of problem solving. The underlying feedback mechanism does not play a central role.

Cybernetics
1. A cybernetic normally focuses on a class of controlled objects. The feedback mechanism from a controlled object to the corresponding controller plays a key role in synthesizing 2. Organisms map through an environment back onto themselves. 3. Nervous system reproduces adaptive relationships. 4. Social agreement is primary objectivity. 5. Intelligent resides in observed conversations.

2. Organisms map external objects to internal states. 3. Nervous systems store the information.

4. Truth exists in the world. 5. Intelligence resides in the manipulation of information.

The field of Artificial Intelligence (AI) came into being when concepts of universal computation, the brain as computer, and digital computing were combined. Fundamentally concerned with demonstration and application, AI moved inevitably to assume the challenge of reproducing and/or explaining human mentation, problem solving and language. It stands today as a major influence on the fields of biology, cognitive and computation science, and epistemology. The field of Cybernetics came into being when concepts of information, feedback and control were generalized from specific applications to systems in general, including systems of living organisms, systems of self-reference and systems of language. Fundamentally an applied philosophy, cybernetics has taken on problems of subjectivity

in science while still addressing how to make intelligent artifacts. It stands today as a major influence on biology, cognitive and computation science, and epistemology. Artificial Intelligence (AI) takes for granted that knowledge is a commodity that can be stored inside of a machine, and that the application of such stored knowledge to the real world constitutes intelligence. In contrast, cybernetics uses epistemology (the study of how we know what we know) to understand the workings and limitations of the media and environments (technological, biological, or social) within which we live, to develop useful descriptions leading to effective management. Cybernetic descriptions of psychology, language, arts, performance, or intelligence (to name a few) may be quite different from more conventional, hard "scientific" views. AI's "realist" perspective assumes and accepts the world-as-it-is. The cybernetic perspective is "constructivist", and sees that the world of human civilization is created by an intelligence acting in a social tradition. Ironically but logically, AI and Cybernetics have each gone in and out of fashion and influence. Cybernetics started a bit in advance of AI, but AI has dominated for the last 25 years. Now recent difficulties in AI have led to renewed search for solutions that mirror the past approaches of Cybernetics.

3. Approach of cybernetic to AI:


There is no established unifying theory or paradigm that guides AI research. Researchers disagree about many issues. A few of the most long standing questions that have remained unanswered are these: Can intelligence be reproduced using high-level symbols, similar to words and ideas? Or does it require "sub-symbolic" processing?Should artificial intelligence simulate natural intelligence, by studying human psychology or animal neurobiology? Or is human biology as irrelevant to AI research as bird biology is to aeronautical engineering? Can intelligent behavior be described using simple, elegant principles (such as logic or optimization)? Or does artificial intelligence necessarily require solving many unrelated problems? AI is predicated on the presumption that knowledge is a commodity that can be stored inside of a machine, and that the application of such stored knowledge to the real world constitutes intelligence [Minsky 1968]. Only within such a "realist" view of the world can, for example, semantic networks and rule-based expert systems appear to be a route to intelligent machines. Cybernetics in contrast has evolved from a "constructivist" view of the world [von Glasersfeld 1987] where objectivity derives from shared agreement about meaning, and where information (or intelligence for that matter) is an attribute of an interaction rather than a commodity stored in a computer [Winograd & Flores 1986]. These differences are not merely semantic in character, but rather determine fundamentally the source and direction of research performed from a cybernetic, versus an AI, stance.

Winograd and Flores credit the influence of Humberto Maturana, a biologist who recasts the concepts of "language" and "living system" with a cybernetic eye [Maturana & Varela 1988], in shifting their opinions away from the AI perspective. They quote Maturana: "Learning is not a process of accumulation of representations of the environment; it is a continuous process of transformation of behavior through continuous change in the capacity of the nervous system to synthesize it. Recall does not depend on the indefinite retention of a structural invariant that represents an entity (an idea, image or symbol), but on the functional ability of the system to create, when certain recurrent demands are given, a behavior that satisfies the recurrent demands or that the observer would class as a reenacting of a previous one." [Maturana 1980] Cybernetics has directly affected software for intelligent training, knowledge representation, cognitive modeling, computer-supported coperative work, and neural modeling. Useful results have been demonstrated in all these areas. Like AI, however, cybernetics has not produced recognizable solutions to the machine intelligence problem, not at least for domains considered complex in the metrics of symbolic processing. Many beguiling artifacts have been produced with an appeal more familiar in an entertainment medium or to organic life than a piece of software [Pask 1971]. Meantime, in a repetition of history in the 1950s, the influence of cybernetics is felt throughout the hard and soft sciences, as well as in AI. This time however it is cybernetics' epistemological stance that all human knowing is constrained by our perceptions and our beliefs, and hence is subjective that is its contribution to these fields. We must continue to wait to see if cybernetics leads to breakthroughs in the construction of intelligent artifacts of the complexity of a nervous system, or a brain.

4. Cybernetics and brain simulation

FIG 5.4.1.Brain Simulation The human brain provides inspiration for artificial intelligence researchers, however there is no consensus on how closely it should be simulated. In the 40s and 50s, a number of researchers explored the connection between neurology, information theory, and cybernetics. Some of them built machines that used electronic networks to exhibit rudimentary intelligence, such as W. Grey Walter's turtles and the Johns Hopkins Beast. Many of these researchers gathered for meetings of the Teleological Society at Princeton University and the Ratio Club in England.

Chapter 6: Software Cybernetics

1. Need of Software Cybernetics:


Certainly, the introduction and utilization of the notion of computability and the advent of software technology constitute one of the great achievements of scientific human history. Computing and software technologies significantly impact economical development, the entertainment industry, and scientific activities everywhere. Indeed, the current age of information depends critically on computing and software technologies. This argument is further strengthened by the establishment of various interdisciplinary areas such as computing mathematics, computational fluid mechanics, and computer simulation and by the new and growing internet-based areas of e-commerce virtual laboratories and e-science. This essential importance of software technologies raises a number of fundamental questions: What computable specifications or services can software systems implement? What is the nature of software behavior How can software behavior be formalized? How dependable are software systems. The emerging inter disciplinary area of software cybernetics is motivated by the fundamental question of whether or not and how software behavior can be controlled. Software behavior includes the behavior of software development processes, software maintenance processes, software evolution processes as well as that of software execution itself.

2. Software Cybernetics Concepts and Definitions:


The area of software cybernetics explores the interplay between software processes and control. Nobert Wieners Cybernetics is concerned with control and communication in the animal and the machine. If we treat software as a part of the machine, then a simple interpretation of the term software cybernetics that it is concerned with the control and communication in software. However, there is potential for the principles and theories of software to play a role in control, we should not stick to Wieners view of cybernetics and should better interpret software cybernetics as the interplay between software and control. Definition: The field of science concerned with processes of communication and control in software systems. In general, software cybernetics addresses issues and questions on : formalization and quantification of feedback mechanisms in software processes and adaptation of control theory principles to software processes and systems; application of the principles of software theories and engineering to control systems and processes; and integration of the theories of software engineering and control engineering. Here we adopt the following definitions.

Software: by software we mean the software development process, the software


maintenance process, the software evolution process and all related artifacts delivered during such including the delivered software system.

Control: a finite or infinite sequence of actions that are taken and applied to the
controlled object to achieve a given a goal for the controlled object in a systematic and repeatable manner. Several components are identified. -First, a single goal or a set of goals is given before a control is applied. -Second, actions are selected from a finite or infinite set of actions. -Third, a sequence of actions, rather than a single action, is taken; control is a dynamic process and the dimension of time is involved. -Four, the actions are taken in a systematic manner and thus there must be cooperation between constraints on the taken actions; the overall effect of the taken actions is that the given goal or set of goals is achieved. -Finally, the sequence of actions is repeatable. Thus the taken actions must be interpretable in the sense that the underlying reason for taking the actions can be stated explicitly; the sequence of actions must be derivable from known theoretical foundations to guarantee that the derivation or synthesis of the control or controller is applicable to different controlled objects having different goals and/or different constraints.

Control system: a system that comprises at least two components: controlled object
and controller. The controller delivers control signals or actions to the controlled object which force the controlled object to achieve a desired goal.

Control of software: here software serves as the controlled object and control is
applied to the software. The actions taken may include the identification or estimation of internal information and parameters of software or software processes for determining whether or not the software functions properly or whether or not a software process will achieve its intended objective so that a controller may transform the software or modify appropriate parameters in a software process so that desired objectives are achieved on schedule. The control process must be quantifiable and hence repeatable under similar circumstances for similar controlled objects. CMC approach is one of such approach.

Open-loop control: control (the sequence of actions) is determined off-line without


feedback; the responses of the controlled object to the applied actions are not utilized for determining subsequent actions taken on the controlled object.

Closed-loop control: By closed-loop control we mean that the behavior of the


controlled object is monitored and used in an on-line feedback control strategy to enforce a desired objective, real time information is used to determine subsequent control actions.

Feedback control: By feedback control we mean closed-loop control. Refer to the


FIG 6.2.1

FIG 6.2.1 (Closed loop /Feedback Control)

Adaptive control: An advanced form of feedback control; during the process of


adaptive control, not only the actions to be taken are derived and updated on-line, but also the controller is updated on-line on the basis of the responses of the controlled object to actions taken already. So we are going to study Self Adaptive Software. To motivate the area of software cybernetics, the question of why software needs to be and can be kept under control or why control of software is necessary and feasible needs to addressed. This can be analyzed from several different perspectives.

3. Current Software Engineering:


Conventional or existing software engineering is a discipline of applying sound engineering principles to software development, maintenance and management. The ultimate goal of software engineering is to deliver quality software products timely in a cost-effective manner. Several feedback mechanisms and control activities can be observed in software systems and software engineering processes. In a fault-tolerant software system, the software execution process is continuously monitored to detect

possible faults; actions are then taken to mask the effects of the occurring faults if any in order to minimize the occurrence of catastrophic software failures. This is a form of feedback control. In the software development process, various verification and validation activities such as inspection, review, testing and so on are taken to assess the work of software developers. The results are fed back to the software developers for improved performance, improved quality, etc. Feedback is ubiquitous in software engineering processes. Indeed, without such control, software and software processes would rarely achieve their specified goals.

3.1 Sample Problems


1. Control of the software test process: How much and what additional effort is to be applied to achieve the desired quality objective under time/cost constraints? 2. Optimal selection of tests: What is an optimal set of tests for achieving the desired quality objective given time constraints? 3. Software performance control: How best to adjust software parameters so that an optimal level of performance is maintained? 4. Control of the software development process: What is an optimal set of process variables required to achieve delivery objectives within cost/time constraints? A major problem with current software engineering is that it is not sufficiently quantitative. Many ad approaches and rules of thumb are extensively applied without rigorous justification or explanation based on accepted basic principles. Consequently, the success of complex software projects relies heavily on the experience of software personnel. Although the current trends of formalization and componentization have helped software engineering become more rigorous, the various feedback mechanisms and controls have not been fully identified or utilized in a systematic manner. In order for the software engineering process and system to be more quantitative, manageable and repeatable, various feedback mechanisms should be formalized, quantified and optimized. Therefore a feedback control theoretic context for software engineering would seem to be a natural evolution of the current state of the art.

3.2 Approaches:
1. Use instinct and experience. 2. Use (1) supported by quantitative tools.

(a)Use simulation: forward approach. (b)Use (a) plus feedback control: inverse approach -- Software approach

cybernetic

4. Software as Control Problem:


Although software is dramatically different from conventional controlled objects such as aircraft, chemical processes and fluid flows, existing control theories and principles can be applied. By treating the software test process as a controlled object and the process manager as a controller, the management of software testing becomes a feedback control problem. By treating the operating environment of the software under development as a controlled object, and the software being developed to be a controller, the synthesis of reactive software becomes a supervisory control problem. In the management of the software test process, the control theoretical approach can quantitatively forecast the test process trends and assist the manager in allocating testing resources In comparison with random testing, adaptive testing as a form of adaptive control uses less test cases to detect more software defects Hence, control theoretic approaches would appear to be necessary for optimizing the process. The emerging area of software cybernetics can also be justified from the perspective of control science and engineering. The field of control science and engineering is application driven and grew out of various application requirements The Watt governor drove people to stabilize systems of motion and general method for testing and enforcing stabilization. This eventually led to the well known Routh-Hurwitz stability test among others. The popular PID (proportional-integral derivative) controller originated from the way in which a helmsman steered a ship. The power of the frequency response approach to the design of feedback systems was demonstrated in the Second World War to meet military requirements and objectives. For example, the anti-aircraft control problem led to the work of Nobert Wiener on filtering and prediction Wiener further published his celebrated book on cybernetics (or control and communication in animals and machines) in 1948 The problem of launching, maneuvering, guidance, and tracking of missiles and space vehicles was the major force that drove the establishment and proliferation of the models and optimal control techniques, thereby establishing modem control theory. By analogy, it is reasonable to say that the control of software will become fertile ground for new advancements and techniques of control science and engineering.

However software is dramatically different from traditional objects. A characteristic feature of software is that software may contain various defects which can disrupt normal operations of software systems and lead to software failures in unexpected ways. Another distinct feature is that concurrency of various processes within a software system may dominate the behavior of the software system and make the

behavior unpredictable and non-repeatable even in a statistical sense. Then how does one represent or model software processes? Conventional transfer functions and state-space models may not be enough to represent software since they may be inappropriate to characterize the behavior of software defects and concurrency. Also, the ultimate goal of software engineering is to deliver quality software in a cost-effective and timely manner. Consider the FIG 6.5.1. Conventional control requirements such as stability, rise time and overshoot may no longer be appropriate. Software is a new application field with new representation models and new control requirements.

FIG 6.5.1 (Sample Problem Scenario in Software Engineering) Besides the classical control theory and modem control theory which uses transfer functions and state-space models to represent the controlled objects, the use of finite state automata to represent discrete-event dynamic systems has lead to a new theory of control, the so-called supervisory-control theory The interconnections models and the TS fuzzy models of controlled objects are other examples. We can expect that the new representation models of software will improve existing and/or lead to new control theories. New control requirements often lead to new research topics or theories. We also expect that the new control requirements of software may improve existing control theories and/or lead to new control theories. With the widespread application of control principles and theories to other fields such as biology and computer networking it is a logical step to apply control principles

and theories to software processes. These new diverse applications will evolve the existing control theory in new and probably unexpected ways. The emerging area of software cybernetics will undergo a similar evolution due to the challenges of controlling software processes. Modem aircraft adopt fly-by-wire flight control systems implemented with embedded software components and systems. In order to obtain satisfactory software control policies, system identification, adaptive and classical control theory and software reliability theory must be merged under the umbrella of software cybernetics.

5. CMC Approach to Software Testing:


Following the idea of software cybernetics, the controlled Markov chains (CMC) approach to software testing treats software testing as a control problem. The software under test serves as a controlled object, and the (optimal) testing strategy determined by the theory of controlled Markov chains serves as a controller. The software under test and the corresponding (optimal) testing strategy constitute a closed-loop feedback system, and the software state transitions behave as a Markov chain. The idea of software cybernetics was first proposed by the author in 1994 with an attempt to apply cybernetic or control-theoretical approaches to solve software engineering problem. The feasibility and benefits of the idea of software cybernetics are justified when we treat software testing as a control problem and purpose a controlled Makkov chains (CMC) approach, the software testing strategy serves as the corresponding controlled object. Conventional approaches to software testing, which are applied to the software under test without an explicit optimization goal, the CMC approach designs an optimal testing strategy to achieve an explicit optimization goal given a priori. Test cases are selected or generated by the optimal testing strategy and thus constitute an optimal test profile. An interesting but unsolved question is whether the optimal test profile makes up a Markov chain, although the corresponding behavior of the Markov chain, although the corresponding behavior of the software under the optimal testing strategy fits a Markov chain. Several theorists have proposed the idea of the Markov chain statistical test (MCST), a method of conjoining Markov chains to form a 'Markov blanket', arranging these chains in several recursive layers ('wafering') and producing more efficient test sets samples as a replacement for exhaustive testing.

6.1. Software Testing as a Control Problem


In the process of software testing, test cases are selected in accordance with a given testing strategy and applied to the software under test. Some test cases reveal failures. The corresponding failure-causing defects are then removed and thus the underlying software states undergo changes. Some test cases dont reveal failures and no state transitions happen to the software under test. So uncertainty is associated with the behavior of the software under test. If we treat the corresponding testing strategy as a control policy or controller, then we can treat the software under test as an uncertain controlled object. Further, if an optimization (testing) goal is given explicitly and a priori, then the test data selection becomes as an optimal control problem. In an optimal control problem, a dynamical system (controlled object) is given whose behavior not only follows its own laws of motion (e.g., Markov state transition laws), but may be influenced or regulated by a suitable choice of some of the systems variables, which are called control or action variables. The controls that can be applied at any given time are chosen according to control policies or laws that are derived from histories of the system and the given performance index. The performance criterion measures or evaluates in some sense that systems response to the control policies being used. The control policies (or controller) and the controlled system constitute a closed-loop feedback system as depicted in FIG 6.6.1. Then the optimal control problem is to determine a control policy that optimizes (i.e., either minimizes or maximizes) the performance criterion. Therefore in order to solve an optimal control problem, we need to identify three components: 1. A model for the controlled object 2. A set of admissible control policies and 3. A performance index ( or objective function )

FIG 6.6.1: Software Testing as a Control Problem

Chapter 7: Self-adaptive Software


1. Concept: With emerging areas such as web services, pervasive computing, and wireless sensor networks and so on, new computing paradigms and application patterns have taken lots of challenges in to software research. the increasing cost on maintenance and evolution, the stricter robustness and flexibility requirements, the more unpredictable running environments, the even larger gap between delivered software and runtime software, and etc. All of these challenges call for a new approach for more flexible and adaptive software model, which was recognized by DARPA Board Agency in December of 1997 as: Self-Adaptive Software: Self-adaptive software evaluates its own behavior and changes behavior when the evaluation indicates that it is not accomplishing what the software is intended to do, or when better functionality or performance is possible. This implies that the software has multiple ways of accomplishing its purpose, and has enough knowledge of its construction to make effective changes at runtime. Such software should include functionality for evaluating its behavior and performance, as well as the ability to replan and reconfigure its operations in order to improve its operation. Self Adaptive Software should also include a set of components for each major function, along with descriptions of the components, so that components of systems can be selected and scheduled at runtime, in response to the evaluators. It also requires the ability to impedance match input/output of sequenced components, and the ability to generate some of this code from specifications. In addition, DARPA seek this new basis of adaptation to be applied at runtime, as opposed to development/design time, or as a maintenance activity. This definition has strong background in control theory. It implies that the self adaptive software should have a sensor-evaluate-adjust executing loop, just like the feedback control. Furthermore, the adaptation model could have some adjustable parameters and a mechanism to adjust them, which has adaptive controller as its counterpart in adaptive control. M. Kokar et al. even treated control theory as the mathematical foundation for analyzing and designing self-controlling or self-adaptive software, and they proposed some control theory-based software models and a selfcontrolling software model as well. Therefore, self-adaptive software has strong relation with software cybernetics, the interplay between software engineering and control theory.

2. Writing Software that Executes Closed Loop


Under this paradigm, we design and code an application as a control system. The runtime software is treated like a factory, with inputs and outputs, and a monitoring and

control facility that manages the factory. Evaluation, measurement and control systems are layered on top of the application, and manage reconfiguration of the system. This regulated behavior is served by explicit models of the operation, purpose and structure of the application. It is significantly more complex than standard control systems, since the effects of small changes are highly variable, and because the filtering and diagnosis of results before they can be treated as feedback or feed - forward mechanisms is also very complex. Despite the difficulties of applying control theory to such highly non-linear systems, there appears to be a very valuable set of insights to be exploited from control theory, including for example the concept of stability.

3. Characteristics of Self adaptive Systems


Self-knowledge - Detailed knowledge of constituent components, current status etc. Self-configuration/re-configuration - Adjustments to a changing environment Self-optimizing - Monitor constituent parts and optimize accordingly Self-healing - The ability to recover from malfunction Self-protecting - Detect, identify and protect itself from attack Environmentally aware know its environment, the context surrounding its activity and act accordingly Co-operative Interact with other systems in a heterogeneous world open standards Anticipatory anticipate and transparently implement the resources required to meet user goals

4. Cybernetic Perspective
A control system comprises at least two components: controlled object and controller. The controller changes the controlled objects behaviors by delivering control signals (called control inputs) which force the controlled object to achieve a desired goal (called set point).

There are three kinds of control:


Open-loop control: Open-loop control generates control inputs offline without feedback from the controlled object. Feedback (closed-loop) control: Feedback control has a fixed control strategy and generates control inputs from both environment and controlled objects feedback. and

Adaptive control: Adaptive control is an advanced form of feedback control, which not only adjusts the controlled object, but also updates the controller by changing its adjustable parameters. Table 1 compares the entities/ terms in software self adaptation technologies and in control theory. Control theory Software self-adaptation technologies

Controlled object Controller Control inputs Set Point

Software entities to be adapted Adaptation infrastructure Adjusting operations to controlled software entities Desired properties of controlled software entities Traditional software system Self-adaptive software with a fixed control law Self-adaptive software with an adaptive control law.

Open-loop control Feedback control

Adaptive control

Table1. Terms of control theory & self-adaptation technologies

Software entities, such as parameters, statements, procedures (functions), components, connections among components, the whole application systems, the entire enterprise workflow, and etc., could be regarded as the controlled object in different granularities. To adjust these software entities for desired goals, we should utilize some mechanisms to: 1) Sense the current states of these entities; 2) Evaluate the sensed data; 3) Generate adaptive strategies and map them into controlled entities properties; 4) Change the controlled entities. These mechanisms are embedded in the adaptation infrastructure, which plays the same role as controller in control system. How to change a software entity depends on its different features, such as granularity, adjustable points, adjusting contracts and mechanisms. Taken the whole

application for example, at the architectural granularity, the adjustable points can be as follows: to add or remove components or connectors, to change the topology of the architecture, to change the constraints (e.g. performance). The presentation of these changes can be viewed as the control inputs, which follow a certain contract or protocol and should be implemented in some mechanism. The counterpart of set point in a software system also describes the desired properties (e.g. usability, performance, throughput, response time) of the controlled software entities. It can be presented in an accurate form (e.g. The response time should be less than 2 seconds) or in a descriptive form (e.g. The interface should be customized to every user of the system). And they may vary form the abstract levels of the goal. For example, the time limitation of a whole process is more abstract than those of each phases of the process. Varying from the adaptability, software systems can be classified into three categories: traditional predictable software system, self-adaptive software system whose control law is fixed and the one whose control law is self adjustable. Traditional software system, which reacts to the user inputs, passive calls, commands and etc., is mostly like the open-loop control system. It does not concern or evaluate its output and current state, but passively reacts to the changes of its outer environment. The second category is like the feedback control, whose control law is determined by the designer and cannot be changed during execution. The third one treats adaptive control as its counterpart in control system. Its control law has some adjustable parameters and can be self-adjusted depending on the effect of the past adapting process. It should be pointed out that traditional software system does not belong to the research areas of self-adaptive software. However, their changing mechanisms, including polymorphism in object-oriented paradigm, algorithm selection, generic or parameterized algorithms, online algorithms, conditional expression, form the implementation basis of the current self-adaptive software.

5. The Adaptive Software-Supported Framework


The framework proposed in this section is based on the above comprehension of three control models, the feature of software systems and the relationship between them.

5.1. Fundamental Considerations


Based on the cybernetic perspective, the self-adaptive software should contain controlled object and controller, and provides mechanisms to define the desired goals and to represent adjusting operations. Choosing a proper adaptation granularity will ease the comprehension and the implementation of the adaptation process. In our approach, we treat software component as the basic adaptation entity. This is because that reusable components are often self-

contained and loose coupled to each other, so adjusting of one component may have no, or little, influence on others in the same software system. In a control system, it is usually not difficult to identify the causality and to establish mathematical model between control inputs and controlled variables from the structure of the system and physical principles. But software systems running in the changing environment are much more complicated and dynamic. So the causality and adaptation model cannot be easily recognized. Therefore, we believe that a well-formed representation of the overall system is needed for system comprehension and adaptation strategy generation. In our approach, we employ the runtime software architecture (RSA) which can be viewed as a snapshot of the running software system plus a set of controllable points, to model the structure and behavior of the system. We should also consider the implementation alternatives of the adaptation infrastructure: as an independent subsystem (like the classic controller in control systems) or a common service provided by the underlying platform. The Agent Building and Learning Environment is a typical example of independent subsystem. But we treat the usability and programmability as the key features of software self-adaptation. So we choose the second alternative. We take J2EE (Java Platform, Enterprise Edition) application as the example for self-adaptive software, and have implemented a prototype J2EE application server providing adaptation service named PKUAS ("Peking University Application Server"). Java Platform, Enterprise Edition or Java EE is a widely used platform for server programming in the Java programming language. The platform was known as Java 2 Platform, Enterprise Edition or J2EE until the name was changed to Java EE in version 5. The current version is called Java EE 5. The previous version is called J2EE 1.4. Java EE includes several API specifications, such as JDBC, RMI, e-mail, JMS, web services, XML, etc, and defines how to coordinate them. Java EE also features some specifications unique to Java EE for components. These include Enterprise JavaBeans, servlets, portlets (following the Java Portlet specification), JavaServer Pages and several web service technologies. This allows developers to create enterprise applications that are portable and scalable, and that integrate with legacy technologies. Supported by the adaptation service, the J2EE application running on it who wants to be adaptable, only needs to simply declare its intentions in a pre-defined format. Whats more, we also provide a toolset named RSATool detailed, to generate the descriptor automatically, by which the end-user can visually define the desired goal. Shortly speaking, our approach chooses the software component as the adaptation entity, uses RSA(Runtime Software Architecture) as the system representation and treats the J2EE application server as the adaptation infrastructure.

5.2 The Role of PKUAS


PKUAS ("Peking University Application Server") is a J2EE application server developed by the research group of PKU-Bell Labs Software Technologies Joint Lab. The project began in 2001. Up to 2005, PKUAS had implemented J2EE 1.4 and EJB 2.0 specifications. PKUAS group is now working on supporting J2EE 1.5 and EJB 3.0. As a research project, PKUAS provides a platform to experiment with innovative ideas on new generation of software in the Internet environment. Besides the standard services listed in the specifications, e.g. Communication, Naming, Transaction, Security, etc., PKAUS has several distinguished features, including the on-line evolution of components, a flexible and extensible interoperability framework, and a reflective management framework. In order to support commercial applications, PKUAS also provides some tools, including a deployment tool which supports the remote deployment of components through a Web interface, and IDE plugins for Eclipse and JBuilder users. PKUAS group is now working with ObjectWeb, a nonprofit international consortium focusing on providing open source middleware. As shown in FIG 5.4.2, the internal functionalities of PKUAS are componentized into containers, common services and micro kernel. A container is the runtime space for components (i.e. Enterprise JavaBean, EJB), managing their lifecycle and runtime contexts. The container forms the environment and executes adaptation operations for EJBs. Common Services include J2EE standard common services (e.g. naming, communication, security and transaction) and PKUAS-specific customized services including adaptation service and other domain specific services. They are implemented with interceptor mechanism. Micro kernel provides a registry and invocation framework for containers, common services and other management functions. More information of the structure of PKUAS is discussed in.

FIG 7.5.1 (The Structure of PKUAS) PKUAS provides the adaptation infrastructure. Each component (EJB) can be replaced or changed through its online-evolution mechanism detailed in. As we know, adaptation operations vary from applications, but they have something in common. So in our approach, PKUAS provides some common adaptation operations such as selecting from different component implementations, updating a component online, evaluating current systems status, adjusting some variables and etc.

5.3 Open-loop control metaphor


Traditional software is predictable, that means its behaviors are determined in the development phase. The software runs as being defined and seldom cares about its current status and behavior, as is similar to the open-loop control system where the controller generates the control inputs only depending on the set point and its environment. In our approach, we treat the open-loop adaptation as the mechanism that the developers can provide a set of alternative implementations for a single software component, and define a control law to choose among them. Suppose the application aims to deal with various kinds of communication protocols, such as CORBA IIOP, Java RMI and SOAP. Besides, it is also expected for the application to be adapted to new protocols which are not determined during development. In the traditional way, the developer may employ the hard-wired conditional expressions such as IF-THEN-ELSE to deal with different protocols, which is not comprehensive and hard to add new protocols during the execution time.

Supported by the adaptation service, the developer only need to design an EJB (e.g. GeneralProtocol) with a single interface and several implementations (such as IIOPImpl, SOAPImpl, and RMIImpl), and write an adaptation-description. When this application is deployed, the adaptation descriptor is parsed and an adaptation interceptor will be inserted into the container for General Protocol. And while execution, the container will invoke the before Invoke method of the interceptor and then determine and load the appropriate implementation according to the protocol type. If a new protocol is to be added, the manager can view the applications RSA through RSATool and 1) Sight-click the component figure representing GeneralProtocol; 2) Select the command Add New Implementation in the popup menu; 3) Choose the new protocols implementation; and 4) Set the new protocols invoking condition. PKUAS then will add the new protocols implementation to the container and change the adaptation-descriptor by adding a new line. into the appropriate tag via onlineevolution mechanism.

5.4 Feedback control metaphor


In a feedback control system, the controlled object receives input from the controller and environment, acts based on the input and then producing output signals which are received by the controller. In this model, the controller has a fixed control law, which means the unchanged algorithm to transform the set point and controlled objects output into the control signals. Self-adaptive software model following the feedback control metaphor often introduces a QoS subsystem. Since software systems are usually more complex and dynamic than the control system, the QoS subsystem is used to transform the controlled entities complex behaviors into some accurate numerical values. Take the resource allocation problem for example. In PKUAS, each container acquired some specific amount of memory space for its contained EJB instance. In a certain application, the usage frequency of each EJB is different. So the simple average allocation strategy is not always sufficient; and we need introduce a strategy of allocating memory space depending on the usage frequency of each EJB. The QoS subsystem is used to calculate the percentage of each EJBs usage. And after a period of time, the adaptation service will adjust these EJBs memory space by changing configurations of containers.

5.5 Adaptive control metaphor


Adaptive control distinguishes itself from the feedback control through its adaptive controller with adjustable parameters and a mechanism for adjusting the parameters. Considering the software environment, we may find a practical way of designing self-adaptive software by establishing a function that maps the affecting properties to the desired goal and trying to make the function more accurate and reasonable. Many experiences shows that it is applicable to make the function first-order, so the model of our self-adaptation is comparatively simple. The developer of the application only need to define the causality between causing parameters and effected parameters. But where does the causality come from? The causality is always complex and cannot be easily recognized. We leave the problem to the developers, who have the most acquaintance with the application. With the help of RSA and through some architecture evaluation methods, the developers may find the proper causality relationship between the desired goals and affecting parameters.

6. Control Theory an Important to Self-Adaptive Software


Control theory is very important to self-adaptive software. It provides a rigorous mathematical foundation and suggests some reasonable models for self-adaptive software. On the other hand, self-adaptive software researches provide another application example for control theory. And it is expected that this will further the control models in control theory while considering the more dynamic and softer software environment.

Chapter 8: Research Topics


Many research areas have already benefited from the use of the concepts from software cybernetics although their relationship with software cybernetics has not yet been explicitly determined. Some of these contributions are described next. However the list below is not intended to be comprehensive and some works such as software process modeling with system dynamics and proactive and autonomic computing are not addressed here.

1. Contribution of Software Cybernetics: 1.1. Feedback Mechanisms in Software Processes


Suppose that multiple versions of a software product are released to the market consecutively. Changes are made from one version to another to improve the underlying software functionality and quality. This constitutes a software evolution process. Then, two fundamental questions can be raised. Are there any invariant patterns in the software processes? What role does feedback play in the various software evolution processes? Lehman is one of the early researchers who paid attention to the role of feedback in software evolution processes. He classifies software programs as S-programs, Pprograms, and E-programs , and proposes the so-called laws of software evolution On the other hand, Basili proposed the concept of software experience factory Obviously, software experience is a form of feedback information and the software experience factory approach is actually feedback based. The importance of the work of Lehman and Basili is that they initiated research on feedback mechanisms in software processes. Feedback is ubiquitous in software processes. On the one hand, feedback software processes to demonstrate some invariant laws, and on the other, appropriate feedback leads to better reuse of software experience and improves software processes. However we note that the work of Lehman and Basili does not formalize, quantify or optimize the underlying feedback mechanisms. The corresponding theoretical foundation is needed to interpret and improve the roles of feedback mechanisms in software processes.

1.2. Bisimulation and Controllability


Controllability is a fundamental notion in modern control theory Roughly speaking, a dynamic system is controllable if an arbitrary state of it can be moved into another arbitrary state in a finite length of time, extends the notion of state controllability to that of language controllability of finite state automata for discrete event systems with uncontrollable events. A language of a discrete-event system is controllable if the prefix closure is invariant under the occurrence of uncontrollable events. The controllability condition tests if a controller can be synthesized and connected to a given controlled object so that undesirable behavior is forbidden and desirable behavior is delivered. The

controlled object and the entire system comprising the controlled object and the controller are, in some sense, equivalent with respect to controllability. Bisimulation is a fundamental notion in concurrency theory and theoretical computer science [ Concurrent behavior can be observed extensively in distributed software and communication software. Bisimulation are partitions of the state space of software or computing system that preserves observability and reachability properties. Roughly speaking, bisimulation is a notion of property preserving abstraction for reducing the complexity of finite state systems. Bisimulation identifies the equivalence between a complex system and a simplifying one. Note that, as mentioned in the previous paragraph, the controllability problem can be treated as an equivalence problem in some sense. It is natural to ask if there are some inherent relationships between bisimulation and controllability. Barrett & Lafortune show that a language of a finite-state automaton is controllable if and only if the finite-state automaton (without supervisor) and an automaton corresponding to the language can form a bisimulation relation. Rutten introduces the notion of controllability relation and shows that the conventional notion of language controllability can be defined in terms of bisimulation or its variants in the setting of coalgebra. The importance of the research topic of bisimulation and controllability is due to the fact that fundamental notions in two seemingly unrelated fields, computer/software science and control theory, can be formulated under a unified framework, and the theoretical tools in software science and engineering can be a powerful impetus for the development of control theories and techniques. However this research topic is still in its infancy and many questions remain open. For example, how can nonlinear systems and stochastic systems be formulated in the setting of bisimulation? How can the bisimulation relation of dynamic systems be identified and tested on-line?

1.3. Adaptive Software


The environments where software products are executing today have considerably increased in complexity. The number of simultaneous users on distinct platforms with different resource constraints and the dynamic interaction among all of these elements constitute the basis for this complex environment. A question arises from this scenario: How can we design software to cope with such dynamic environments? Adaptive software systems address the solution for this problem by designing software that adapts itself according to changes in the environment. One approach to the design of adaptive systems has focused on resource allocation, such as an operating system scheduling processes, (QoS) (Quality of Service) guarantee, and fault tolerance. Two of the adaptive software approaches are of interest here due to the use of control theory concepts: the SMART Framework and the QoS framework. Both approaches are based on control theory and on automatic tuning of the controller.

SMART differs from the QoS framework by adjusting the system not based on resource allocation but on swapping to a component that provides the same functionality but better copes with the environment status. Also, SMART is a more generic approach by allowing the specification of the system constraints and their relation to the alternative choices.

1.4. Software Synthesis


Statistics indicate that over half of software defects are related to the software design phase. Different from conventional informal methods or formal methods of software synthesis he control theoretical approach to software synthesis treats the operating environment as a given controlled object and the software under synthesis as the required controller. The applicability of this approach is extended to more forms of non-functional requirements of state reachability and invariance in references. On the other hand, Sridharan, Mathur & Cai show that the theory of supervisory control can well be applied to synthesize the safety controllers for connected spaces which is a collection of one or more devices, each described by its Digital Device Manual and reachable over a network

1.5. Software Test Process Control


Under or overestimation of time and cost is common in the software test process. In many companies the estimation depends only on the managers experience. Furthermore, the evaluation of the progress of the test process is as inaccurate as the initial estimation. Measurements such as reliability and coverage can help access the progress of a test process. But in practice, just a small number of companies collect such information. Even when progress can be accessed and a deviation from expected values is detected, no techniques are used to determine the required changes in the process to correct the observed deviation. Techniques such as System Dynamics [SO] and Software Process Simulation provide an open loop solution for this problem by answering What if? questions. A new technique based on control theory has been developed to provide a closed loop solution for the above problem. A set of assumptions and corresponding equations are combined leading to a state space model. The availability of the model allows the application of feedback control and once a deviation from the expected behavior is detected, a set of alternative solutions is computed to correct for such deviation. The model is also used to predict the behavior of the process. The prediction is based on a calibration algorithm using data from the ongoing process. In any case, as stated above, the model is used to compute the required changes in the process to fulfill the managers expectations. The model mentioned above has been statically and dynamically validated. A tensor product based sensitivity analysis and an extremes case analysis were used for the static validation of the model. The first was also helpful in pointing out flaws in an early version of the model guiding to the current version of the model With regard to the dynamic validation, the model has been successfully applied to a variety of software

projects. The predictions of future behavior as well as the estimate of the initial number of defects were, on average, around 80% accurate.

1.6. The CMC Approach and Adaptive Testing


Conventional software testing techniques are mainly defined a priori and do not address how to formalize, quantify or optimize the feedback mechanisms in software testing. To address this question, Cai treats software testing as a control problem and proposes the CMC (Controlled Markov Chain) approach to software testing The software under test serves as the controlled object and is modeled as a controlled Markov chain, where the software testing strategy serves as the corresponding controller. The software state is defined as the number of remaining software defects. Suppose the related software parameters such as the initial number of software defects and software defect detection rates are known, then an optimal testing strategy can be derived on the top of existing control theory of Markov chains to achieve a given testing goal. An example goal is to removes all the remaining defects in the least number of tests. In practice the required software parameters are unknown and must be estimated by using test data. This leads to adaptive (software) testing. Adaptive testing adjusts the testing strategy or improves the testing technique on-line by learning from the history of software testing or other sources and is a form of adaptive control. Studies demonstrate that adaptive testing can significantly outperform the random testing It uses fewer test cases to detect more defects. Further, the variance of the number of test cases for detecting a given number of defects is reduced in comparison with the random testing. The CMC approach and adaptive testing also apply to the optimal stopping problem software testing with testing resource constraints and optimal software reliability assessment. A case study with the Space program shows that adaptive testing can significantly outperform random testing. Here we note that Chen etc. all propose the so-called adaptive random testing to take account of the patterns of failure causing inputs for guiding the test case selections.

2. Potential Research Topics


Besides those identified by Cai, Chen, and Tse including the relationships among controllability, observability and testability there are other potential research topics.

2.1. Adaptive Software Rejuvenation and Software Performance Control


Traditionally software systems are treated as different from hardware systems due to their non-aging nature. However recent research reveals that software may age or degrade and that the phenomenon of software aging should not be ignored. This is particularly true for the software in a networking environment, where software aging may lead to hang or crash of servers. The underlying causes of software aging include memory leaks, unreleased file locks, accumulation of un-terminated threads, data corruption hound-off accrual, file-space fragmentation, shared memory pool latching, and

others. An effective approach to dealing with software aging is to rejuvenate the software system of concern periodically or at desirable instants of time before software aging leads to hang or crash of software service. To this end, the current status of software operation is monitored and necessary information is collected to decide when and what parts of the software should be rejuvenated. This is essentially a control problem of software and provides avenues for control theories and techniques to play a role. However most of existing researches on software rejuvenation lacks solid control foundation. Can software rejuvenation be treated as a control problem? How can software be rejuvenated adaptively? On the other hand, the performance and quality of Service QoS is important for network software. The network should adjust its operation and service scenarios in accordance with the changes in the network traffic flow. This is again a control problem of software and a largely unexplored research topic, although there have been some researches in this area.

2.2. Control Theoretical Approach to Software Fault Tolerance


Several approaches have been proposed for software fault tolerance, including Nversion programming, recovery block programming, Self-checking. N-version programming, check pointing programming, and others Unfortunately existing software fault tolerance schemes are rarely related to control theories and techniques and lack a solid theoretical foundation. Treating software fault tolerance as a control problem is a promising idea and may lead to new vitas and approaches for software fault tolerance with theoretically sound foundation.

2.3. Logical Foundation for Control Systems


In a recent report on future directions in control, dynamics, and systems written by a group of control scientists control was defined to be the use of algorithms and feedback in engineered systems . A natural question is that if a logical foundation is necessary or feasible for control systems. The work of Vassilyev addresses the potential of applying temporal or higher order logic to control system synthesis. Partially related to the logical foundation control systems are logics for hybrid systems

2.4. Community Complexity in Control Systems


Community complexity theory is an active research direction in software community and theoretical computer science. It is concerned with how much communication is necessary for collaborative agents to complete a given task. A simple example is that two processors collaborate with each other to compute a given value and there must be a minimum number of communications for the computation process to obtain a right answer. We can treat the controlled object and the controller in a control system as two collaborative agents to perform a control task. Then how much communication or

feedback is necessary or sufficient for performing the control task? Is there any Imitation or impossibility for feedback control to perform a given control task? Questions of this kind have been studied in control community from a purely control perspective. Can they be related to community complexity theory.

3. On-going Research Projects


Among many institutions where the concepts of software cybernetics are being applied, below is a summary of the projects related to the authors organizations.

3.1. Purdue On-going Research Projects


An initial model was developed to predict schedule slippage during the system test process. This model, and the associated feedback controller, is used to determine the space of possible changes to be made to the process parameters in order to ensure that the schedule will be met. The model has been applied in two commercial environments with encouraging results. A more elaborate model of the test process, that captures the flow of various events in the process starting from test generation during the requirements phase, has been developed. The model is currently undergoing validation studies.

3.2

UTD On-going Research Projects

Two major projects under the perspective of software cybernetics are been developed at the Computer Science Department at the University of Texas at Dallas. (1).Stochastic software process control: Under many circumstances, a stochastic rather than a deterministic model appears to be a better solution to represent the process. The characterization of the disturbances in the stochastic model is done according to the CMM level of the organization. Two noise sequences are inserted into the model representing unforeseen perturbations and noise in the data collection process. The effect of the later can be minimized by the use of a Kalman filter. Finally a feedback software control tool to hide the complexity of the models from software managers will be made available through a web server. (2).Adaptive Software: The SMART Framework for adaptive software dynamically tune the controller in adaptive software using system identification techniques such as the least square approach and Markov parameters. In addition to the advantages of any adaptive approach, the SMART framework presents two features that distinguish it from a multitude of other techniques: flexibility and predictability.

3.3. Beijing On-going Research Projects


Several on-going research projects are carried out in the research group in Beijing.

(1).Adaptive testing with fixed-memory feedback. A new adaptive testing scheme is proposed. In this new scheme only a fixed amount of latest test data is fed back to online parameter estimation for adaptive testing. (2).Adaptive mutation testing: Research has demonstrated that the mutation testing can be formulated in the setting of the CMC approach and adaptive testing. This leads to reduction of computational burden of mutation testing. (3).Control theoretical approach to software architecture synthesis: An on-going research project is devoted to taking into account of architectures for software synthesis. (4). Control theoretical approach to software fault tolerance: Existing faulttolerant software is largely based on the idea of code redundancy. An on-going project is devoted to develop a control-theoretical approach to software fault tolerance without code redundancy Research in Cybernetics at Reading includes work on intelligence, including the use of neural networks; advanced and intelligent control; robotics; interactive systems, including the use of technology to aid and augment humans; image processing; virtual reality; systems for measurement, including the use of infra-red and Terahertz - these all involve systems and feedback.

Chapter 9: FUTURE
As many interesting research topics are there under this term, it may rise as one of the important area in the technological world. As it is a general term it will be very useful, not only for software industry but also for other areas like Biology,Social Science etc.

Chapter 10: CONCLUSION


Cybernetic itself is a very vast area. This seminar will just give you brief feel for the subject. In fact, here I have concentrate on so called first order Cybernetics, involving basic feedback loops. There also exists second order Cybernetics, in which systems have an observer which monitor and also influence what is happening in the system .There have also been suggestions of the need for third order Cybernetics. We have also seen that Feedback is one of the most important principles of Cybernetics. We have also seen some idea about Software Cybernetics. A large number of problems that arise during the development of software and its operation have been pointed out and the possibility of using control theoretic approaches to solve these problems has been raised. Both the software and the control communities should come together and work towards the establishment of a solid foundation that can be used in practice for effective and efficient development of high quality software. The development of software cybernetics should also give rise to new control theories.

Chapter 11: FAQs

Chapter 12: BIBLIOGRAPHY

[1] Kai-Yuan Cai :: Department of Automatic Control, Beijing Universityof Aeronautics and Astronautics, Optimal Test Profile in the Context of Software Cybernetics , 0-7695-1287-9/01 2001 IEEE. [2] Kai Cai, Ray A.: Department of Automatic Control, Beijing University of Aeronautics
and, Astronautics, Beijing 100083, China, Joao W. Cangussu, Department of Computer Science, University Texas at Dallas, Richardson - TX USA, DeCarlo : Department of Electrical and, Computer Engineering, Purdue University, West Lafayette-IN 479071398, USA and Aditya P. Mathur : Department of Computer Science, Purdue University, West LafayetteIN 47907-1398, USA, An Overview of the Software Cybernetics, 2004 IEEE.

[3] Wilhelm Bruns :: ArtecLab - Art, Work, Technology Department of Computer Science Bremen University, Germany ,Aesthetic Cybernetics - Turning towards Senses of Man and Machine*,2004 IEEE international Conference on Systems, Man and Cybernetics.

[7] W. ROSS ASHBY M.A., M.D.(Cantab.), D.P.M. Director of Research Barnwood House, Gloucester, An Introduction to Cybernetics, Second Impression, London, Chapman& Hall ltd. 1957. [8] Kai-Yuan Cai : Department of Automatic Control, Beijing Universityof Aeronautics and Astronautics, T.Y. Chen : School of Information Technology, Swinburne University of Technology, Hawthorn 3122, Australia, T.H. Tse : Department of Computer Science and Information Systems, The University of Hong Kong, Pokfulam Road, Hong Kong, Towards Research on Software Cybernetics. 0-7695-1287-9/01 2001 IEEE.