138
Copyright 1994 Kent Palmer. All rights reserved. Not for distribution. Rough draft for review only. 13 1. SOFTWARE ENGINEERING: A YOUNG DISCIPLINE. Software Engineering 1 is slowly emerging as a discipline in its own right from the craft of computer programming 2 . It is a discipline grown up in industry rather than invented in academia. It addresses the problems that occur when a group of people attempt to construct a large software system. The key word is large because when the software product gets large enough that it can no longer be completely understood by one person, or a few, certain problems emerge that are not seen in smaller systems. These are problems like the need to communicate the design to others; the need for 1. S. Pflaeger Software Engineering: The Production of Quality Software. Macmillan 1991. R. Pressman Software Engineering: A Practitioner's Approach. McGraw-Hill 1987. I. Sommerville Software Engineering. Addison-Wesley. J.A. McDermid (ed.) Software Engineer's Reference Book. Butterworth-Heinemann 1991. 2. “The evolution of the Software Engineering Discipline” Mary Shaw ????? SOFTWARE ENGINEERING FOUNDATIONS A Paradigm for Understanding Software Design Methods Software Engineering Design Methodologies and General Systems Theory Kent D. Palmer, Ph.D. Software Engineering Technologist PO Box 4402 Garden Grove CA 92642 [email protected]

Software Engineering Design Methodologies and General Systems Theory

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Copyright 1994 Kent Palmer. All rights reserved. Not for distribution. Rough draft for review only.

13

1. SOFTWARE ENGINEERING: A YOUNG DISCIPLINE.

Software Engineering1 is slowly emerging as adiscipline in its own right from the craft ofcomputer programming2. It is a disciplinegrown up in industry rather than invented inacademia. It addresses the problems that occurwhen a group of people attempt to construct alarge software system. The key word is largebecause when the software product gets largeenough that it can no longer be completelyunderstood by one person, or a few, certainproblems emerge that are not seen in smallersystems. These are problems like the need tocommunicate the design to others; the need for

1. S. Pflaeger Software Engineering: The Production of Quality Software. Macmillan 1991.R. Pressman Software Engineering: A Practitioner's Approach. McGraw-Hill 1987.I. Sommerville Software Engineering. Addison-Wesley.J.A. McDermid (ed.) Software Engineer's Reference Book. Butterworth-Heinemann 1991.2. “The evolution of the Software Engineering Discipline” Mary Shaw ?????

SOFTWARE ENGINEERING FOUNDATIONS

A Paradigm for Understanding Software Design Methods

Software Engineering Design Methodologies and General Systems Theory

Kent D. Palmer, Ph.D.Software Engineering Technologist

PO Box 4402 Garden Grove CA [email protected]

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

14

concurrent cooperative software design by alarge number of people working on differentaspects of the same problem; the need tocontrol the artifacts produced by the essentialtransformations in the software developmentprocess; and the need to reuse as much ofprevious software systems as possible. Theseare the kinds of issues that emerge whensoftware development attacks large problemsand builds hundreds of thousands or millions oflines of software code.

Software Engineering is still in its infancy as adiscipline, yet already it is experiencingparadigm shifts3. A paradigm shift is a radicalchange in the way of looking at known facts ofa discipline. In Software Engineering thecurrent paradigm shift is away from functionaldesign4 toward what is called object-orienteddesign5. This is a shift away from looking atpieces of software as functions that transform aset of inputs into outputs, toward looking at thepersistent data in a system, and seeing thefunctions that operate on these pieces ofpersistent data as being grouped around thatprivate data. This paradigm shift is causing old

3. The Structure of Scientific Revolutions Thomas Kuhn ????4. Structured Design Yourdon / Constantine ??????5. Some ref on OOD ???

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

15

problems to be seen in a new light. And it iscausing a rethinking of the way we producesoftware systems.

Although Software Engineering is developingand changing rapidly within itself, therelationship it has to other disciplines is stillunclear because it is not well integrated into theacademic establishment as yet. Thus, the newinventions of Software Engineering within itsown field may seem baffling or be seen as anexercise in re-invention by other moreestablished disciplines. This problem isexacerbated by the fact that SoftwareEngineering is perceived as a renegadenewcomer. At the same time these moreestablished disciplines are themselvesdeveloping software systems to support theirown applications. So, although they may nothave a good connection to what is happening inSoftware Engineering as a discipline, they havea connection to software products that they usein their own ongoing work. There is a vitalneed for other disciplines to learn what ishappening in Software Engineering, and forsoftware engineers to understand what otherdisciplines have to offer toward thedevelopment of the Software Engineering

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

16

discipline.

One of the most vital of these connections isbetween Software Engineering and GeneralSystem Theory. Software engineers profess tobe building software 'systems.' But, beyond theloose generic use of this term, there is not a lotof material within the corpus of SoftwareEngineering literature concerning the genericnature of systems of which software systems isan instance. On the other hand, GeneralSystems Theory, which gives itself wholly toattempting to understand generic systems likemany other disciplines, uses softwareapplications in its own work, and perhaps isunaware of the developments within SoftwareEngineering as a discipline; developmentswhich are interesting because of the additionallight they shed on systems in general. Becausesoftware systems emulate many different typesof systems and allow them to be tested andinterrogated as simulations, these softwaresimulations are a valuable tool that function asthe instruments by which General Systemstheorists do much of their investigation. Yetthese tools may not be designed andimplemented using the methods which arecurrently state-of-the-art within Software

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

17

Engineering. Those who build softwaremodels are generally operating within theprogramming craft stage of software discipline.

Thus, the question arises: What do GeneralSystems Theory and Software Engineeringhave to learn form one another? The answerthat will be explored in this paper is that theseare both meta-disciplines, and that they actuallyhave a symbiotic relation with each otherwhich sets them apart from all the otherdisciplines. General Systems Theory looks atall kinds of systems that appear in the world,and attempts to abstract their generic features.This allows similar systems in widely differentfields to be recognized. Software Engineeringbuilds simulations of systems in widely varyingfields by applying the same techniques forunderstanding and automating those systems.Thus, with General Systems Theory it is therepresentation of the systems that areabstracted, while in Software Engineering it isthe means of embodying the abstracted orconcrete system that is generic. The tellingthing is that General Systems Theory itself usessoftware representations of abstract systemssuch as the General Systems Problem Solver(GSPS) provides. Software Engineering, on

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

18

the other hand, designs and builds software'systems'. So, not only are both meta-disciplines which abstract from and are used byall other disciplines, but each of these meta-disciplines need and use each other. ForGeneral Systems Theory software is the meansof simulation and instrumentation of thesystems being studied. For SoftwareEngineering, a specific kind of 'system' is beingbuilt.

Software Engineering and General SystemsTheory are symbiotic. The question is, whatdoes this really mean for the relation betweenthe two meta-disciplines? This will be thesubject of the rest of this paper.

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

19

2. THE GENERAL SYSTEMS THEORY DISCIPLINE IN RELATION TO SOFTWARE ENGINEERING.

It is somewhat understandable why softwareengineers might ignore their sister meta-discipline. Generally Systems Theory itself hashad a hard time getting recognition of its claimto a central role in science. It has been difficultto show that Systems Theory has anything tocontribute other than generalizations which,because they are too abstract, do not really tellyou anything. (Software Engineering, on theother hand, suffers from the criticism thateverything it has to offer is too concrete.)Unfortunately, the connections betweendisparate disciplines that treat specific kinds ofsystems through General Systems Theory havenot yet happened. Recognizing that thesystems treated by different disciplines arereally projections of the same general systemhas not yielded enough fruit to make this animportant aspect of science.

General Systems Theory stands in the samerelation to the sciences as MathematicalCategory Theory does to the separate kinds ofmathematics called categories6. We cannot yet

6. Arrows, Structures, and Functors, M.A. Arbib & E.G. Manes NY: Academic Press 1975

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

20

see the functors (homeomorphic relations)between different systems that GeneralSystems Theory should eventually provide.However, with the advent of the structuralGeneral Systems Theory of George Klir, it ispossible to see the outlines of this scienceemerging. It is only right that this systemshould be expressed in terms of MathematicalCategory notation as it is in another article inthis issue. We might expect software to havesome affinity with category theory as well.Since software is the universal implementationmedium of all mathematical categories, andbecause software has only mathematicallimitations to its structure and shape, we cansee that Category Theory is well suited to theunderstanding of the relationship betweensoftware designs and methods7.

7. Categories, Types, Structures Andrea Asperti Giuseppe Longo QA76.7A76 1991

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

21

Figure 1:

It is important to understand why GSPS is anadvance over previous systems theories. Iwould characterize GSPS as a structural-formalsystems representation, as opposed to merely aformal theory. Early systems theory really didlittle more than posit that “everything is asystem.” What GSPS adds is the structuraldimension that differentiates between differentsystems architectures. This is accomplished byinvoking a hierarchy of epistemological

O

S

D

F

SS

SD

SF

S2S

S2D

S2F

MSS

MSD

MSF

MS

MD

MF

SMS

SMD

SMF

M2S

M2D

M2F

Process MetaModelsStructural Modelsinfinite regressinfinite regress

Klir’s set of model types for general systems theory.

objectsystem

sourcesystem

datasystem

generativesystem

formal

metastructuralsource

structuraldata

structuralgenerative

metastructural

sourcestructuralstructural

source

structuralstructural

data

structuralstructural generative

metastructural

data

metastructuralgenerative

source

metadata

metagenerative

structural

meta-metagenerative

meta-metadata

meta-metasource

meta source

structuralmeta data

structuralmeta generative

FIGURE 1

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

22

levels8. The recognition of these levels is veryimportant, as it gives clear definition to thesubject matter of General Systems Theory andthe differentiation of the field of possiblesystems architectures. Knowing what thestructure of this field is, must be an essentialstep in the recognition of different systems withthe same architecture. Since software allowsany mathematically possible structure, softwaredesigns may be seen to cover the same field. Itis the absolute malleability of software (withinthe constraints of hardware) that makes it fit tomodel all the diverse actual systems that arespecific points in the field of all possiblesystem designs mapped by General SystemsTheory.

Given the epistemological levels posited byGSPS, the obvious question occurs as to whatthe relationship of software design methods(which allow different designs to berepresented) is to the overall epistemologicalframework. But, first we must understandsomething about the underpinnings of theGSPS framework in its role as the articulator ofdesign space for systems. There is a veryimportant point about this framework which is

8. See Klir ASPS Figure 1.3 Hierarchy of epistemological levels of systems: a simplified overview. Page 16.Represented in Figure 1.

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

23

perhaps not widely appreciated: the frameworkgoes to infinity in two directions. The semi-lattice diagram9 shows meta-systemsdiverging from meta-structures as twocompletely different infinite regresses of meta-levels of description in orthogonaldimensions. The first dimension is structuralwith patterns within patterns in part-wholerelationships. The second dimension is meta-systemic where discontinuous changes arehandled by positing modal changes of thesystem. These two dimensions are verydifferent. Meta-systemic patterns arediachronic and have to do with the changing ofpatterning regimes within time. Pattern meta-levels are synchronic embeddings of higherlogical types of order. They have to do notwith time, but with space where data has adifferent fractal patterning at each partialdimensional level. We might say that thesecond dimension that deals with meta-modelsis the process dimension because it allowsembedded patterns or structures to vary in timeThe meta-models determine the discontinuouschanges between synchronic structuraltransformations which appear as a changingprocess articulated diacronically. Together,

9. See Klir ASPS Figure 9.1; page 420

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

24

these two infinite regresses show thatultimately any system is unrepresentable in itsentirety. This is because after just a few meta-levels of spatial or temporal embedding we getlost in the ultra complexity of all but thesimplest dynamical systems. The most we canhope to do for all, but inherently deterministicsystems, is give an approximation that goes upjust a few meta-levels in relation to structuralpattern and process meta-systems.

This framework in General Systems Theoryboth makes its limits clear, and also allows it torepresent the architecture of diverse systems byallowing higher and higher logical types ofdescription along both of these dimensions.But, we are led deeper to ask why thislimitation exists and what it represents. Thislimitation has to do essentially with the way inwhich systems themselves are manifested. It isnot merely an artifact of our descriptiveconventions. Because General Systems Theorypurports to be a science, it operates with thesame self-imposed metaphysical blinders as allsciences. However, this does not mean that itdoes not have metaphysical presuppositionsbuilt into it. GSPS has its own metaphysicalpresuppositions, and one of those is that the

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

25

ultimate system can never be known. Thatlimit system that is unknowable is an image ofthe Kantian noumena. This unknowablity isbuilt into the theory as the twin infiniteregresses. By building in this presupposition,GSPS is able to fine tune its description ofsystems by providing a structural model oftheir possible systems architectures. It is ableto provide a representation that can track thechanges in the system over time and to anylevel of sub-patterning. On the other hand, itcan handle multiple interlaced part-wholepatterns. However, the non-manifestation ofthe system as noumena is a steep price to payfor this structure and flexibility. It is thismetaphysical dimension that needs to beappreciated because it is exactly here that theinnate affinity with software can be shown toexist most strongly.

Dr. Klir has in several papers pointed out thenew information aspect of science that heproposes to explore10. This new aspect has itsown metaphysical attributes which it shareswith software. We can best characterize thisnew aspect by relating it to the concept of“Being” which is generally thought to be the

10. Klir on information sciences

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

26

most general, and thus most empty, concept.Heidegger gives the concept of Being contentby associating it with ‘presencing’11 or‘manifestation.’12 Being is the process ofmanifestation of “whatever manifests.” Fromthe time of Aristotle, through Kant, and up tothat of Husserl, this manifestation has beenthought of as pure presencing of clear anddistinct objects that can be seen from an idealpoint of view that sees all sides of the object atonce. In this ideal presencing the noumena, theinner coherence of the objects, remains hiddenbecause it is on a transcendental plane.However, the object itself seems to be fullyavailable. This is the type of manifestation thatscience assumes when it looks at its objects. Itassumes that the object is fully available forinspection in every detail. This is the type ofBeing Klir assumes when he looks at his Objectsystems and turns them into Source systems.However, by differentiating the Object fromthe Source systems, he is making a crucialadmission that the Source system is only seento the extent it is turned into an object viewedby a passive observing subject. The process bywhich such a system is turned into an object is

11. R. Harper, On Presence: Variations and Reflections. Trinity Press International, Philadelphia, 1991.12. Heidegger on Manifestation???

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

27

unspecified except that it entails some type ofspecial focusing, such as that Descartesintroduced into science, that makes clear anddistinct (delimited) objects out of the blurrymasses presented to the natural senses13.

Seeing a system rather than an object is notdifferentiated by Klir. To him a system is anobject which has been instrumented, or madeavailable, for observation. However, I believethat a system is on a completely differentontological meta-level from the object, and Ithink this is implied by Klir's usage. I thinkthis difference between object and system is thesame difference that Heidegger14 makesbetween Pure Presence type of Being and whatmay be called Process Being, which is “Beingmixed with time.” In Process Being the processof manifestation of the object is taken intoaccount. The major effect in this manifestationis called showing and hiding15. Inmanifestation not all aspects of the system areseen at once. The way in which the objectcomes into and goes out of view is also takeninto account. This has very importantramifications for systems science which is not

13. E. Zerubavel, The Fine Line: Making Distinctions in Everyday Life. The Free Press, New York, 1991.14. Being & Time (NY: Harper & Row 1962)15. A. Blum, Theorizing. Heinemann, London, 1974.

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

28

widely appreciated. Because systems sciencesees itself as science at a meta-level above allother disciplines, it is really ignoring the factthat it is a ‘meta-physical’ discipline. The word‘system’ is the catch-all that attempts to bridgethis gap. When you ask what a system is, youget back the answer that “everything is asystem” that you consider as such. So ‘system’is really a way of seeing the world: it is aworldview, a metaphysical approach to reality.

Fortunately, Nicholas Rescher16 gives a clearerdefinition of the characteristics of a system:

Lambert contrasted a system with its contraries,all “that one might call a chaos, a mere mixture,an aggregate, an agglomeration, a confusion, anuprooting, etc.” ... And in synthesizing thediscussions of the early theoreticians of thesystem-concept, one sees the following featuresemerge as the definitive characteristics ofsystematicity:

1. wholeness: unity and integrity as a genuinewhole that embraces and integrates itsconstituent parts

2. completeness: comprehensiveness:avoidance of gaps or missing components,inclusiveness with nothing needful left out

3. self-sufficiency: independence, self-containment, autonomy

16. N. Rescher, Cognitive Systematization. Rowman & Littlefield, Totowa New Jersey, 1979, pages 10-11.

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

29

4. cohesiveness: connectedness,interrelationship, interlinkage, coherence (inone of its senses), a conjoining of thecomponent parts, rules, laws, linking principles;if some components are changed or modified,then others will react to this alteration

5. consonance: consistency and compatibility,coherence (in another of its senses), absence ofinternal discord or dissonance; harmoniousmutual collaboration or coordination ofcomponents “having all the pieces fall intoplace”

6. architectonic: a well-integrated structure ofarrangement of duly ordered component parts;generally in an hierarchic ordering of sub- andsuper-ordination

7. functional unity: purposive interrelationship;a unifying rationale or telos that finds itsexpression in some synthesizing principle offunctional purport

8. functional regularity: rulishness andlawfulness, orderliness of operation, uniformity,normality (conformity to “the usual course ofthings”)

9. functional simplicity: elegance, harmony,and balance, structural economy, tidiness in thecollaboration or coordination of components

10. mutual supportiveness: the components ofa system are so combined under the aegis of acommon purpose or principle as to conspiretogether in mutual collaboration of itsrealization; interrelatedness

11. functional efficacy: efficiency,effectiveness, adequacy to the common task.

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

30

These are the definite parameters ofsystematization. A system, properly speaking,must exhibit all of these characteristics, but itneed not do to the same extent -- let aloneperfectly. These various facets of systematicityreflect matters of degree, and systems cancertainly vary in their embodiment.

These characteristics of system are ignored bythe objectivists which want a simpleoperational concept of system which is fullyavailable, but essentially empty of content.These characteristics are implicit in the conceptof system as it is actually used. This is trueeven of the objectivists, which is shown by thefact that the concept of an “object” remainsdifferent from that of “system.” The addedimplicit meanings of system are those pointedout above by Rescher. All of thesecharacteristics of the system relate to thedifference between the object and what mightbe called the ‘temporal gestalt.’ The object is asynchronic slice out of the diachronic temporalgestalt at the idealized “now” point. Thetemporal gestalt itself includes the wholeevolution of the object. It thus inhabits at leastthe so-called “specious present17,” or theextended now, and moves out toward the entiretemporal interval in which the object manifests.

17. William James ?????

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

31

The temporal gestalt is modeled by the processdimension of Klir’s epistemologicalframework. The difference between PurePresence and Process Being is the differencebetween the temporal slice and the wholeprocess of unfolding. It is in this process ofunfolding that the characteristics of systemenumerated above unfold. As a temporal slice,the object seems to have almost arbitraryfeatures because any slice of the whole processof unfolding might have been taken. But if youconsider the whole process of temporalunfolding, you get a complete dynamic pictureor gestalt. One gets a sense of the wholeness ofthe system and can judge the completeness ofany slice. The temporal gestalt exhibitsapparent self-sufficiency because it is anentirely self-contained process of unfolding,exhibiting its own boundaries rather than beingdelimited arbitrarily. As a gestalt pattern, itexhibits internal coherence or cohesiveness,and external coherence or consonance. It hasits own architectonic with functional unity,regularity, simplicity, and efficacy. Thesystem's parts exhibit mutual supportiveness.To the extent we want to know what is really“out there” in the world, we must take intoaccount the temporal gestalts unfolding as

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

32

natural complexes18. To the extent we want toproject our own order on the world and excludewhatever does not fit with our ordering, we willwant to stick to the objectivist metaphysic thathas the aim of controlling, rather than engagingin dialogue with phenomena. The objectcontrlos the phenomena by ordering it as apassive strawman determined by our subjectivewhim. The system as temporal gestaltallowsthe observed phenomena to have its own voiceand speak for itself thorugh its own self-articulation over time.

If we release our metaphysical imaginations fora moment, we might see that systems areobjects caught in webs of showing and hiding.Thus, the difference between an object and asystem is whether it is looked on as somethingthat is completely available or something that isonly partially available and at least partiallydetermines its own availability. The partialavailability prevents us from capturing all ofthe Object systems in our source system. Thepartial availability is what separates the objectfrom the source. They are really two ways oflooking at the same thing. Moving from sourcesystem to object system, one has moved from

18. Natural Complexes

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

33

blurs of perception to idealized objects that arepurely available as sources for observation andexperimentation by a subject. We have put onthe metaphysical blinders which makes usthink our scientific objects are “objectively”accessible to an intersubjective community.

For Heidegger, the realm of showing andhiding is not just something to be escaped fromby science. Instead, this realm is theinfrastructure that science itselfsimultaneously depends on and ignores. It isthe realm of technological means. A simpledemonstration can give you the feeling for this.In writing, you are unaware of your pencil.Your focus is on what you want to say, not onthe movement of your hand in recording whatyou are saying. This is the difference betweenpresent-at-hand (pure presence of the object)and the ready-to-hand way of relating to thepencil which is moving in time and supportingthe objective focus. So it is with alltechnology. Technology supports theendeavors of science. And the majorinstrument through which this is done today isthe computer. In fact, it is interesting that thecomputer has in its make up all the elements ofthe structural system which join present-at-

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

34

hand and ready-to-hand modes of relating tothings in a single unified mechanism. This iswhat makes the computer a general purposemachine that is applicable to almost everytask19.

One might look at the difference between“object” and “system” as being like thedifference between figure and ground in gestaltpsychology. The object is the focus ofattention. The system is the interaction of allthe possible focuses in the field of the system.However, you can only see one or a few objectsat one time, so in looking over the entire field,the center of focus must shift from object toobject. This is the manifestation of showingand hiding within the field, that is, in fact, whatwe call the system. The system is a group ofobjects in the same field of showing and hidingrelations.

Another way to look at this is by consideringthe difference between Formal systems andStructural systems. In a Formal system such assymbolic logic, geometry, or any mathematicalcategory, there is a set of axioms, and it isthrough the relationship between the axiomsthat the full Formal system is built. However,

19. K. Palmer “SOFTWARE ENGINEERING FOUNDATIONS: Software Ontology” Unpublished Manuscript available for review from the author on request.

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

35

this system is made of purely logical relations,and time does not effect the system except tothe extent it takes time to go through the proofsstep by step. On the other hand, a Structuralsystem is a powerful means for understandingdiscontinuous transformations. The Structuralsystem attempts to apply formal rules to thecontent of the Formal system in order to trackthe changes that occur across discontinuities.These discontinuities can be structural orchanges in pattern at different levels ofmagnification in one synchronic slice. TheStructural system is basically descriptive. Itgives up the rigor of deduction for the ability tohandle change. George Klir's GSPS isessentially a Formal-Structural system. Itsepistemological levels allow different Formalsystems to be connected together to form aStructural system that can handle change. It is,in fact, the best example of a Structural systemthat I have found. Structuralism has been mosteffective in understanding the universe in thehands of physicists and chemists. It has evenmade strides in biology with the discovery ofthe DNA genetic code. And some use of it hasbeen made in the social sciences withStructuralists like Noam Chomsky20, Claude

20. N. Chomsky on Transformational Grammar

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

36

Levi-Strauss21, Jean Piaget22 and others, usingit to describe aspects of human nature andculture.

However, the difference between object andsystem as two different ways of looking atthings does not exhaust the implicitmetaphysics in GSPS. By introducing theconcept of the two infinite regresses, GSPSimplicitly hints at the presence of anothermetaphysical assumption which has alsoappeared in Modern Ontology. The questionoccurs to us, where do these two infiniteregresses lead? That place is where the systemexists as unreachable noumena. The system asnoumena is very different from the objectivenoumena of the idealists. In modern ontology,various philosophers have sought to describewhat the next higher meta-level of Being isabove Process Being. Heidegger calls that nextmeta-level Being (crossed out). Derrida hascalled it DifferAnce23 which he describes asthe differing/deferring of writing. In thisconception we differentiate between speechand writing. In speech, a showing and hidingprocess occurs, and it carries us along,

21. C. Levi-Strauss, The Savage Mind. University of Chicago Press, Chicago, 1966.22. J. Piaget, Structuralism. ????23. J. Derrida, Of Grammatology. The John Hopkins University Press, Baltimore, 1974.

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

37

presenting us a series of ideas that appear fullyavailable in language. The flow of language isthe emanation of the temporal gestalt inaction. It is the basic pattern for the ready-to-hand's technological support of ideation.However, writing is different. Writing makes itpossible to create partial texts which arescrambled into a different order than that inwhich they were written. The text is a field ofpure difference in which things that weretogether may appear apart, or in differentorders, than those in which they werecomposed. Another ontologist, Michael Henry,speaks of what is called the Essence OfManifestation24 which is the pure immanenceunderlying the manifestation (akatranscendence) that we see as showing andhiding. What is purely immanent neverappears, but shapes what does appear. Itbecomes particularly conspicuous in textswhich are susceptible to unconsciousdistortion. You know it is there by the waywhat appears is distorted or malformed.Taking these two ideas (differAnce and theunconscious essence of presencing) together,we can see their relevance to GSPS. GSPSposits two infinite regresses which hide the

24. M. Henry, The Essence Of Manifestation. ????

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

38

noumena of the system. We would like to callthe noumena of the system a meta-system orproto-gestalt. In other words the temporalgestalt arises from an always already lost originfrom which many systems (gestalts) emanateand toward which they all point. This origin isth next higher meta-level beyone the system.The noumena of the system (essence ofpresencing as such) never appears because ithas been first covered over multiple times.Firstly, it is covered over by the extraction ofthe object from the source system into therealm of pure availability. Secondly, it iscovered over by the showing and hidingrelations between multiple objects whichmakes the system itself something that is neverseen because it is always in the background.All we really see is the multiple showing andhiding relations. Thirdly, the system is coveredover by the infinite regress of meta-layers ofdescriptions. These twin infinite regresses (inspace and time) have as their origin, which isnever seen, a singularity which is the noumenathat represents the inner coherence of thesystem itself. That singularity is the source ofthe unity of all the systems characteristicsspoken of by Rescher. Rescher points out thateven the systems characteristics appear as

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

39

independent of each other. This reminds us ofDeleuze and Guattari’s dictum25 that allcontents that genuinely emanate from theunconscious must be orthogonal andindependent. If there is any relation betweenthe apparently emanating contents then we ardealing with projections of consciousness andnot with the unconscious as such. This is whythe systems characteristics are independent ofeach other. They emanate directly from theessence of manifestation or the unconsciousorigin of the system in the meta-system orproto-gestalt. They are ultimately empiricallyderived from the observation of organisms26.The systems characteristics form a systemwhich is a complex gestalt of “closelyinterrelated and mutually complementary”elements; but “the crucial characteristic of suchcases is the conjoining of various factors thatare in theory separable from one another but inpractice generally found in conjunction27.” Sothe systems characteristics themselves form abroken whole with no synthetic unity(totalization). Because of the discontinuitieswithin the set of systems characteristics, thereis room left for the action of the essence of

25. Deleuze & Guattari, Anti-Oedipus. University of Minnesota Press, Minneapolis26. op. cit. page 1227. N. Rescher Cognitive Systematization. page??

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

40

manifestation. The inner coherence of thesystem must be inferred from the fractal andtemporal patternings, but nowhere does thisappear explicitly. This is the realm of pureimmanence that never appears except asdistortions and breaks in the always imperfectdescriptions, that may be fruitfully comparedwith the unconscious discovered bypsychologists in the system of consciousness.The systemic unconscious (un-consciousmeans non-manifesting) was called by Freud28

from the first, the ID, meaning “it.” The “IT” ofsystems is the essence of their manifestationthat no-where appears as concrete foci, butappears globally in the distortions and breaks insystem functioning that causes all the meta-levels of description to be at least slightly outof “sync” with the real system.

You may begin to get the idea that the meta-levels of Being, as we see them covertly inGeneral Systems Theory, have more to do withour perception and understanding of the systemthan with the things being observedthemselves. Well, you would be right becausemeta-levels of Being have to do with themanifestation of everything, including

28. H. F. Ellenberger, The Discovery of the Unconscious: The History and Evolution of Dynamic Psychiatry. Basic Books, New York, 1970.

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

41

scientific objects. Science believes it can beclever by claiming metaphysical ignorance.But the best of scientific theory ends upmimicking the ontological distribution ofentities in the world, and thus begrudginglygives an accurate metaphysical picture in spiteof claiming ignorance. So it is also with GSPS.GSPS accurately portrays three of the fourpossible29 different meta-levels of Beingdiscovered by modern ontologists. And it isthrough this accurate portrayal of these meta-levels that Klir manages to claim the highground from which he can look down on all theother sciences supported by their implicittechnologies. Each science has a focus, and itkeeps that specialized focus and works on itsobject by applying the requisite technology.The application of that technology makes thescience into a system, and becoming a systemallows it to treat its object as a system. ButGeneral Systems Theory correctly thinks ofitself at a meta-level above systems. It is thesupra-system of all possible systems. Ittherefore maps out the terrain of all possiblesystems designs. By mapping this terrain, itallows the theorist to identify a particularinstance of an abstract system and to recognize

29. Pure Presence, Process Being, Hyper Being, and Wild Being

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

42

the generalization of an instance.Figure 2: Essential View Points on Software Design Theory

An important point is to recognize thatsoftware also operates on this third meta-levelof Being. It is by representing this third meta-level, that software has its true kinship withGeneral Systems Theory. However, softwareappears on the third meta-level of Being in acompletely different way from GeneralSystems Theory. Software is a form of writing.It is an automated writing. It is writing that can

SoftwareTheory

P

A

E

D

EVENTwhen

AGENT

DATA

who

where

whatPROCESS

why

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

43

change itself. Thus, Software is an excellentexample in the real world of what Derrida calls“differAnce.” In software the operation ofdiffering and deferring appears in the spaghetticode of multiple intertwined GOTOs; in self-rewriting code; in side effects; and mostimportantly for us, in delocalization30.Delocalization is, in effect, exactly the type ofphenomenon that Derrida wants to describewith the term “differAnce.” Delocalizationcauses the ideas, or design elements, expressedin the text to be spread out and interspersedwithin the text. It represents the opacity of thetext itself. Any one part of the text seemsperfectly clear. But we cannot hold all of it inour memory at once. So the text is not allperfectly available. There is “showing andhiding” as we scroll the source code up anddown in our editor. But there is an even moresevere “showing and hiding” effect as thesoftware executes. That execution may be verydifferent than one imagines just looking at thetext of the program. This is called a bug orsometimes a side-effect, depending on thecontext. It is the cognitive dissonance betweenwhat we see on the screen in the code and whatthe actual action of the code turns out to be

30. E. Soloway et al, “Designing Documentation to Compensate for Delocalized Plans”. Communications of the ACM, 31, No. 11, November 1988, pp 1259-1266.

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

44

when it is complied and executed. Getting ridof these bugs, or dealing with side effects,normally determines the extent ofdelocalization as statements are moved so theydo not conflict with each other. Between thecode and the action in execution there is a blinsspot in which differAnce appears.

So, Software and General Systems Theory aretwo completely different manifestations on thesame meta-level of Being. There may be othersat this level, but one thing for sure is thatGeneral Systems Theory and software arecomplementary and need each other. Softwareobjects are always systems. They areinherently means of showing and hiding whichare automated. General Systems Theory usesthese mechanisms of showing and hiding tosimulate concrete systems at some level ofabstraction. General Systems Theory risesabove all concrete systems by displaying theinherent mathematical structure of the field ofall possible systems structures. So, wheresoftware is a very concrete manifestation oflevel three meta-level of Being, GSPS is a veryabstract manifestation. But it is necessary to goto this third level because naive systemstheories (that do not go to this level) tend to

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

45

appear empty. By describing the field of allpossible systems structures, GSPS provesuseful because it surveys the field ofcombinatorial structural differences thatunderlie all systems.

Here we do not explore the fourth meta-level ofBeing called Wild Being by Merleau-Ponty.This is because both GST and Software arearticulated at the third meta-level and do notaddress the fourth meta-level. But we can pointthe reader to the work of Deleuze and Guattariwho attempt to define a philosophy thataddresses this meta-level of Being. This meta-level is the highest articulation of Being intokinds and beyond that lies the unthinkable. Themeta-levels of Being are analogous to the meta-levels of learning that Bateson defines andwhich will appear later in our argument. Bothhierarchies have a finite endpoint. Forphenomena related to computation that exist atthis highest level of the articulation ofmanifestation we must turn to artificial life andintelligence techniques as examples. Softwareengineering attempts to separate itself from alltechniques of programming that do not havedeterministic or easily predicted results. Thosetechniques tend to appear in Artificial

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

46

Intelligence systems.

The four kinds of Being arise from an analysisof modern Continental philosophies where thephenomena of the fragmentation of Being intodifferent kinds was first noticed andappropriated as the central motif of modernphenomenological inquiry. The firstphilosopher who signaled this possibility wasHusserl who was followed by his studentHeidegger. Heidegger defined the differencebetween the first two meta-levels of Being inhis seminal work Being and Time based on histeachers definition of essence perception(eidetic intuition) as a mode of apprehensionradically different from the modes ofapprehension associated with induction anddeduction. From that beginning modernontology has attempted to explore the relationbetween these to modes of being and theirimplication for our relation to the world. In theprocess other kinds of Being were discovered.Foremost in this work has been Merleau-Pontywho translated Heidegger’s modalities ofBeing called present-at-hand and ready-to-handinto the psychologically understandable waysor relating to objects through pointing andgrasping in his work The Phenomenology of

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

47

Perception. At the end of that work hediscovers the next modality of relating to thingsin the world which I call the in-hand and whichhe later names Hyper Being. Finally in his lastand incomplete work The Visible and theInvisible he defines Hyper Being formally andthen points to the possibility of a fourth meta-level of Being called Wild Being. It is onlywith the work of Deleuze and Guattari in Anti-Oedipus that this last highest meta-level ofbeing is fully explored philosophically. Thesemeta-levels of Being discovered by modernEuropean philosophers have deep significancefor our understanding of how the world isprojected within our worldview. Here we usethem as a back drop for analyzing the relationof General Systems Theory to SoftwareEngineering and show that both disciplineshave the properties they do because they existat the third meta-level of Being.

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

48

3.SOFTWARE DESIGN METHODS

Software Design Methods are the majorcontributions of Software Engineering as adiscipline which sets it apart from ComputerScience. Sometimes methods are referred to asprogramming-in-the-large, as opposed toprogramming-in-the-small31. Programming-in-the-small is done using computer languagesand by writing source lines of code, one at atime. Programming-in-the-large attempts tosee the global picture of what is happening andmake it globally coherent. This means rising tohigher levels of abstraction wheredelocalization does not effect design elements.Software Methodologies give the softwaredesigner a means of doing programming-in-the-large systematically. There are a myriad ofsuch methodologies being proposed. Themethodologies breakdown into two basickinds:

Understanding the problem.

o Hatley-Pirbhai Structured Analysis 32

o Ward-Mellor Structured Analysis 33

o Shaler-Mellor Object Oriented Analysis 34

31. F. DeRemer & H.H. Kron “Programming-in-the-large versus programming-in-the-small” IEEE Transactions of Software Engineering, 12, No. 2, 1976, pages 80-8632. D. J. Hatley & I. A. Pirbhai, Strategies for Real-Time System Specification. Dorset House, New York, 1987.33. P. T. Ward & S. J. Mellor, Structured Development For Real-Time Systems. Yourdon Press (Prentice Hall), Englewood Cliffs, New Jersey, 1985. Three Volumes.34. S. Shlaer & S. J. Mellor, Object Oriented Systems Analysis: Modelling the World in Data. Prentice Hall, Englewood Cliffs, New Jersey, 1988.

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

49

Designing the Solution.

o SPC-Gomaa (Ada Design & Analysis for RealTime Systems) ADARTS 35

o Yourdon-Constantine Structured Design 36

o Neilson-Shumate Object Oriented Design/Virtual Layered Machine 37

These are some representative examples ofcurrent design methodologies. There is a lot ofchange in this field today. Many newmethodologies are being proposed every year.Major paradigm changes are underway, such asthat from functional design38 to object-orienteddesign39. This field has not yet begun to lookat itself critically. However, what we can seeemerging is a series of different representationsfor abstractly portraying all automated real-time embedded systems. Embedded systems40

function within machines by controllingsensors and actuators. Such systems mustnecessarily be real-time because they mustreact to actual events that are sensed and makethings happen within the technologicalsystem. Thus, Software Design Methodologies

35. Software Productivity Consortium, Adarts Users Guidebook. Volume 1 & 2. [ADARTS_GUIDEBOOK_90031-MC] Herndon VA, 1990. 36. E. Yourdon & L. Constantine, Structured Deisgn Book ???37. K. Nielsoon & K. Shumate, Designing Large Real-time Systems with Ada. McGraw-Hill, New York, 1988.38. E. Yourdon & L. Constantine, Structured Design Book ?????39. S. Khoshafian & R. Abnous, Object Orientation. John Wiley & Sons, New York, 1990.40. D. M. Auslander & C. H. Tham, Real-time Software for Control. Prentice Hall, 1990.

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

50

(SDM) are the representation by whichsoftware systems will be adapted to myriadapplications in the world. In this sense they area specific type of systems architecture, but withvery wide applicability. One might say that itis the class of architectural elements necessaryfor the technological system as a whole. Thetechnological system as a whole, to the extent itbecomes integrated, will be tied togetherthrough software which is designed using theserepresentations. For this reason we can think ofsoftware as a meta-technology that integratesmyriad systems within the technological infra-structure making it a whole.

Software Design Methodologies were not, forthe most part, invented by academicians.Instead, they were developed by softwareengineering practitioners to deal with theproblems of conceptualizing the abstractstructure of software designs, and to allowthose to be recorded and constructed. Softwaredesign methods allow major problems with thedesign of software to be addressed. Normally,for small systems programmers can design thesoftware as they write it. This is called “directprogramming” or sometimes “hacking.” Theydesign the application, working within the

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

51

mesh of delocalization as they attempt to thinkabout the whole design. This practice, whichworks for small systems, leads to disaster whenlarge systems are designed. The heart of theproblem is delocalization that cannot becontrolled under the interaction of disperseddesign elements. Any particular designelement at the software architecture level maybe spread out throughout the code at theimplementation level so that its side effectsbecome a totally unknown factor. Thisfragmentation of the design elements makes itnearly impossible for the design to berecovered from the code. Object-orienteddesign attempts to reduce the effects ofdelocalization, but there is always some residueleft over within the software system. Designelements which interpenetrate within the codebecome indistinguishable, so that thearchitecture is submerged and cannot bereconstructed without a lot of effort. Thisproblem is exacerbated when performanceissues produce distortions in the softwarearchitecture that compound the problem ofdelocalization. Software methods solve thisproblem by using abstraction to let the designerlook at the architecture before it becomessubmerged and delocalized in

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

52

implementation. However, at the softwaredesign level there is another important effect:the fragmentation of views of the softwaredesign. Software design has been called non-representable by Peter Nauer41. This meansthat the design itself, in its entirety, cannot everbe represented. This is similar to the effect inGeneral Systems theory in which we say thatno system can be completely known. Allrepresentations of systems are partial, no matterhow much they attempt to represent the details.Similarly, representations of software designsare also always partial. However, there are atleast four points of view on any softwaresystem:

o AGENT VIEW - WHO? - The view of thehierarchy of independent processing units.

o FUNCTIONAL VIEW - WHAT? - The viewof the transformations performed by the systemon either material or information.

o EVENT VIEW - WHEN? - The view of thetemporal ordering of events in the system.

o DATA VIEW - WHERE? - The view of thearrangement of design elements in the memoryof the system.

These four views of every software system areprobably canonical42. They are the principle

41. P. Nauer, “Programming as Theory Building”. Microprocessing & Microprogramming, 15, 1985, pages 253-216, North Holland Publishing Company, Key Note Address EuroMicro'84 Copenhagen Denmark.

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

53

views from which each software system shouldbe looked at as it is being designed. The designitself will have an endless number of WHYs orreasons for being exactly as it is and no otherway. In fact, it is the infinite number of reasonsfor it being “just so” that cause the design to beultimately unrepresentable. However, everydesign can be represented finitely from each ofthese views in spite of the fact that all itsreasons cannot be enumerated. This fact allowssoftware design to occur, but it is alwayslimited by the fact that its representation isfragmented into at least these different views.

The fragmentation of the views onto thesoftware design is the same effect asdelocalization at the higher level of abstraction.The unconscious, or non-manifesting essentialcharacter of software does not go away athigher levels of abstraction, but merelytransforms. Thus, the split in views is amanifestation of differAnce that hides theimmanent essence of manifestation. It is thepositive appearance of this form ofunconsciousness. In effect there is appearingand disappearing if different kinds of designelements as we move from viewpoint to

42. Meaning that these are the only four possible views. This is still to be proven.

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

54

viewpoint when looking at any one design.The unconscious appears through theinteraction of design elements that cannotappear in representations together yet stillinteract within the software systems as a whole.It, however, indicates the inner nature oftechnology as system. Technology formssystems which support various endeavors.Those systems are inherently perspectival43

because it takes various specialties to keepthem operating. The need for those specialtiesis built into the technology itself because it hasso many aspects which are each very detailed,so that no one person can know it all. When weabstract away all this detail at the softwaredesign level, the perspectival nature stilladheres to the abstract view of the system. Thistells us that the perspectival nature is essential,not accidental. In General Systems Theory theperspectives are the various specific Sciencesthat it attempts to serve. The relation betweenGeneral Systems and the special sciences isessential. Without the special sciences, noGeneral Science of systems would bepossible. On the contrary, the question iswhether a General Systems Science is indeedpossible or useful. If it is useful, one of those

43. P. R. Fandozi, Nihilism & Technology. University Press of America, Washington D.C. 1982.

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

55

uses is as a bridge between special sciences.As a bridge, General Systems Science must bebuilt to move continuously between theperspectives of the special sciences. In thatmovement there is showing and hiding asdifferent specific aspects of things move out ofview when we switch from one way of lookingat things (physics) to another (biology). Thequestion is whether there is some area ofexclusion that never comes into view at all, andis completely immanent. This is possiblebecause one could say that the inner coherenceof all the views taken together never appearsanywhere in any of the views. Thus, thesingularity to which the horns of infiniteregress asymptotically approach is probablyidentical with the inner coherence of all theperspectives of the sciences which GeneralSystems Theory attempts to integrate.

Now this brings us to the question of whatsoftware methodologies are, and how theywork. Software methods are techniques forrationally proceeding to undertake the designof a software system. As such, they arecomposed of five fundamental categories ofelements:

o Design Elements: The artifacts represented by

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

56

the notation and formed by the methods whichare the components through which the design isarticulated.

o Notations: The specific graphical or textualrepresentations of the artifacts molded by theconcepts in the method.

o Methods: The set of concepts and theirrelations used to understand and formulate theessential features of the design.

o Sequence: The steps in which the methods areapplied to the design problem space.

o Heuristic: The rules to guide the process ofdiscovering artifacts which tell you when youare done or what is good, aesthetic, etc.

Xiping Song, a Ph.D graduate from Universityof California at Irvine, along with his advisorLeon Osterweil has analyzed existingmethodologies into the following more detailedset of categories of parts44:

Artifacts: which are descriptions/specificationsof entities involved in software design activities(e.g.., the interface specification for modules).

Note that we did not decompose artifacts intosub-types. The reason for this is that our earlierexperiments have indicated that the mosteffective way to aid the comparisons of artifactsis to examine the functions of the artifacts.

[Note: Artifacts in the present exposition arecalled design elements]

44. “A Framework for Classifying Parts of Software Design Methodologies” by Xiping Song & Leon J. Osterweil ISS'92 Second Irvine Software Symposium; Irvine Research Unit in Software University of California, Irvine

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

57

Concepts: which are ideas that underlie aSoftware Development Methodology (SDM).Concepts can be rationales and theories behind aSDM, or strategies and heuristics used in theSDM for specifying/evaluating artifacts (e.g..abstraction, information hiding).

Properties: which are desired characteristics ofartifacts. An SDM is always aimed atproducing artifacts that have some superiorproperties, (e.g.. artifacts should be easy tounderstand and modify.

Principles: which are concepts used to help inproducing artifacts that have the propertiesdesired by customers and designers. An SDMeither justifies new design principles or adoptssome existing principles as the basis of theSDM, (e.g. object oriented SDMs useprinciples of information hiding and abstractionas their bases).

Criteria: which are rules advocated for use bydesigners in deciding what constitutes anartifact. An SDM usually provides a fewcriteria that serve as the necessary conditions fordeciding what an artifact is, (e.g.. JacksonSystem Design (JSD)45 defines the criteria fordeciding a JSD entity. Rational DesignMethodology46 provides a set of rules used todecide how to decompose a design documentinto a tree of module specifications).

Guidelines: which are concrete strategies,heuristics or existing techniques advocated foruse in identification and specification ofartifacts. Guidelines are often described by

45. M. Jackson, Jackson System Development. Prentice-Hall International, 1983.46. D. L. Parnas and P. C. Clements, “A Rational Design Process: How and why to fake it. IEEE Transactions on Software Engineering, 12, No. 2, pages 251-257, Feb. 1986.

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

58

giving examples or artifacts. (For example,Booch Object Oriented Design (BOOD) 47

indicates that device, system, people, andlocation might be objects. BOOD also suggestsa guideline that using informal English analysistechnique can help in identifying objects.)

Measures: which are references with respect tosome standard, or samples used for quantitativecomparison or evaluation of the quality ofartifacts. Some existing SDMs define measuresto help in quantifying the degree to whichvarious artifacts demonstrate desiredproperties, (e.g.. Structured Design definesdifferent bindings (e.g.. functional and logical)and uses them as a basis for a measure forevaluating the cohesiveness of the programdesign).

Representations: which are the means used forexpressing artifacts. They are aimed atimproving the precision with which an artifact isspecified and at improving comprehensibility ofartifacts. They could be languages, sets ofdiagrammatic notations, (e.g.. data flowdiagram), etc.

o Structural: which is a type of representationthrough which artifacts are captured in the formof diagrammatic notations.

o Mathematical: which is a type ofrepresentation through which artifacts arecaptured using mathematical notations andmathematical operations that are performed onthem.

o Linguistic: which is a type of representation

47. G. Booch, Object-oriented Design with Applications. The Benjamin / Commings Publishing Company. Inc. 1991.

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

59

through which artifacts are captured in the formor language statements.

Actions: which are physical or mentalprocessing steps used for the developingartifacts. As action may create or modify anartifact. An action may also evaluate an artifactand then decide if it needs further development.

o Developo Modelingo Decomposeo Specifyo Defineo Deriveo Identifyo Select

This more elaborate analysis of what actualmethodologies contain will give the reader abetter idea of what is meant by amethodology. However, in this article we willfocus on the five more broadly definedcategories of elements described above whichare implied within the Song/Osterweilbreakdown. Here we are defining amethodology as composed of various methodsor techniques, which are sequenced by themethodology, and to which the methodologyadds some overarching heuristics, or tactics fordiscovery of the best possible design. Eachmethod has an associated notation for the

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

60

representation of design elements which maytake various forms. We assume that a methodis composed of a set of actions by which thebasic transformations of information definedby the methodology is undertaken. We willassume that the method is a theory of the bestway to approach the transformation of therequirements into a feasible design. We willalso assume that the method produces andmanipulates design elements, so-calledartifacts, according to the theory which, whenoperationalized, has it own properties andmeasures. The Song/Osterweil more detailedcharacterization is an important step in theevolution of design methods because they arethe first to analyze the existing design methodsin this manner. However, in this exposition wewill settle for less precision concerning thecategories of elements of any methodology.

The reason for separating methodologies intothe categories of design elements, methods,notation, sequence, and heuristic is that it givesa clear picture of the structure of themethodology. The methodology is not amonolithic way of approaching design. Inalmost every case it is a combination ofapproaches and techniques. Each of these

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

61

techniques of approach to the design within themethodology, called here methods, has theirown representation which is separate from thetheoretical structure of the method itself. Amethod may have many notations in variousforms such as diagrammatic, formal language,mathematical formulation or prosedescription. The notation chosen is inessential.The essential thing is the set of interlockingconcepts that form the foundation of anymethod. The next most basic aspect is theinterface between methods which is usuallyspecified in terms of the sequence ofapplication of the methods to the problem.Methods must work together in order for thedesigner to get his arms around the problem.Finally, the methods are not algorithms thatwith certainty produce predetermined results.So, every set of methods that make up amethodology must be accompanied by a set ofheuristics, or discovery guidelines, which showthe way toward the best design in the face ofthe necessity for the partial solution of wickedproblems48. In this case our dissection ofmethodologies at a grosser level into fiveelements is meant to focus in on the salient

48. H. A Simon, “The Structure of Ill Structured Problems”. Artificial Intelligence, 4, 1973, pages 181-201. Also H. A. Simon, The Sciences of the Artificial. MIT Press, Cambridge Mass. 1969.

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

62

aspects for our consideration here. For otherpurposes it is correct to go to the lower level ofanalysis carried out by Song/Osterweil.

We must distinguish between software process,software methods, and software tools.Software process consists of the kinds of workthat are done in order to produce software.49

The activities identified by Song/Osterweil areexamples of the kinds of core work undertakenin the design process. These are described byindustry standards such as the IEEE Standardfor Software Development Process50. Amongthese, one kind of work is Software Designwhich is a crucial transformation of thesoftware system51. In doing design work, oneuses software methodologies. Methodologiesorganize the design work, highlighting andabstracting essential features along with thecreation of design elements that arerepresented using the notations associated withthe methods. Normally, a methodology ismade up of several methods that are sequencedin a particular order. By following thisidealized order, one is led to think aboutdifferent aspects of the system and how they

49. Besides the essential transformations there are other kinds of work such as Planning, Metrics, Monitoring and Control, Configuration Management, Reuse, Technology Infusion, Environmental Maintenance, and many others.50. IEEE Software Process Lifecycle Standard, P1074 51. These essential transformations are Requirements Analysis, DESIGN, Code, Test and Integration.

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

63

interrelate. As the methods are applied, oneuses the heuristics to find optimal designswithin the design space of all possible systemsdesigns. Designing a system in this way isgreatly accelerated when the methodology issupported by automated design tools. Thesetools enable the methodology and support thedesign process. Thus, methodologies enhanceand rationalize design work which are furtherenhanced by automation of the methodology byComputer Aided Software Engineering(CASE) tools.

Notice that the methods that are sequenced bythe methodology allow the software designer tolook at different aspects of the design one at atime. Thus, methods are broken apart from oneanother by perspectival views. In fact, we cansay that the only views a designer has are thoselisted above (i.e.. Data, Agent, Function, andEvent). Therefore, it is possible to see thatmethods are a way of rendering these viewsconcrete by providing instantiated abstractionsor design elements with specific well-definedcharacteristics for the designer to work with ashe is considering those views. In fact, we cango further and say that methods are the bridgesbetween points of view, and that the

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

64

sequencing of methods is the movement fromviewpoint to viewpoint as one circles aroundthe unrepresentable core of the design. Thatunrepresentable core is like the coherence of allthe specialized sciences. The inner coherenceof the views is never seen. However, one hasthe ability to circle around and around that non-representable core and make it partially visiblefrom a variety of perspectives. The fact thatmethods are bridges between a finite number ofviewpoints means that there are, in fact, a finitenumber of “minimal methods” out of whichany particular methodology may be built. Thisis important because for the first time we cansurvey the whole field of methods and say howeach particular methodology concocted by anexpert fits into the whole field.

Given this framework of viewpoints andbridges between them, I have constructed amodel of the field of all possible designmethods. This framework52 draws from asurvey of existing methodologies, and attemptsto identify “minimal methods” that allowmovement from one conceptional viewpoint onthe design to another. The results of this surveywere very interesting because it showed that

52. See Figure 4.

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

65

methodologies were amenable to this type ofanalysis. In fact, it revealed certain propertiesof well known methods which might not beappreciated otherwise. For instance, the bestknown of the design methods is the dataflowdiagram53. It consists of bubbles that representdata transformations and lines that representdataflows between transformations. Datastores may also be represented. It was quicklyseen that the dataflow acted as a bridgebetween functional and data points of view.And the success of the dataflow diagram can beunderstood by the fact that it actuallyrepresents two “minimal methods” combinedinto one notational technique. A ‘minimalmethod,’ as I use the term, means that it is thesimplest conceptual threshold that will allowthe movement from one viewpoint to another.It is possible to endlessly add elegant notationalor conceptual nuances to a method as seen bymany methodologies that represent extremelysubtle distinctions. However, there is someminimum theory that is needed to bridge thegap between two viewpoints that represents acritical threshold of conceptual complexity.The minimal method attempts to capture thissimplest possible method that still allows the

53. T. De Marco, Structured Analysis and System Specification. Yourdon Press, New York, 1978.

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

66

transition between viewpoints. In the case ofthe dataflow, the data lines andtransformational bubbles are enough to showthe relation between data and function from thefunction’s point of view. Data stores areunnecessary for this purpose. However, torepresent function from the point of view ofdata, the datalines between bubbles are notnecessary, and all one needs is the datalinesbetween function bubbles and datastores.Thus, the complete dataflow diagram that hasboth datalines, datastores, and transformationsallows one to consider data from the point ofview of function or vice versa with equal ease.Thus, the dataflow diagram is really twominimal methods merged into one techniquethat has the extra advantage of conceptualreversibility. Looking at the data flow fromthis perspective shows how perfectly suited it isto the task of representing programs that aregenerally thought of as algorithms plus data.

Figure 3: Dataflow diagram minimal methods example.

The empirical survey of the available designmethods was interesting in that in manyinstances it was obvious which methods wereconducive to transition between viewpoints. Inother cases it was difficult to fill in the blanks

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

67

from existing methods. In those cases, minimalmethods had to be discovered which filled theblanks in the matrix. This occurred particularlyfor the transitions between the data and eventviews, which was quite unexpected. Anotherpoint of surprise was that what constitutedminimality was different for different minimalmethods. Some were very complex and othersvery simple so that the resultant fielddescription appeared lopsided. Finally, whileseveral of the minimal methods allowed two-way bridges between viewpoints, in other casestwo completely separate minimal methods that

DATA STORE

data in data out

datatransform

modalinhibition

signal

Minimal Method

Minimal Method

Function>Data

Data>Function

FUNCTIONBUBBLE

(METHOD)

TWO-WAYBRIDGINGMETHOD:

Diagram

a single way bridge

a single way bridge

Two way method bridge between viewpoints

The Dataflow

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

68

were very different constituted twoindependent one-way bridges. This occurredbetween the event-process, event-data, andprocess-agent transitions. The following is thelist of minimal methods generated by thissurvey of the field of all possible softwaredesign methods:

1. Function alone: Functional Decomposition.Functional decomposition is a hierarchical treeof functions and sub-functions which is standardin structured analysis, such as that of Tom DeMarco54.

2. Agent alone: Tasking Tree. The Adalanguage55 introduces into programming theconcept of tasking trees, which is a hierarchicaldecomposition of tasks, each of which are anindependent thread of execution.

3. Event alone: Interval Logic. Interval Logicwas constructed by J.F. Allen 56 as a means ofrelating events in terms of their temporaldependencies (before, during, after, etc.).

4. Data alone: Entity, Relationship, AttributeDiagram. Chen57 introduced Entity Relationdiagrams as a way to represent the relationsbetween data items.

5. Function --> Event: State Transitiondiagram. A standard part of the Hatley-Pirbhai58 and Ward-Mellor59 real-time

54. T. De Marco, Structured Analysis and System Specification. Yourdon Press, New York, 1978.55. United States Department of Defense, Reference Manual for the Ada Programming Language. ANSI/MIL-STD-1815A-1983 Approved February 17, 1983. American National Standards Institute, Inc. 1980. Ada is a registered trade mark of the United States Government.56. J. F. Allen, “Maintaining Knowledge About Temporal Intervals”. Communications of the ACM, 26, No. 11, 1983.57. ?????????58. op. cit.59. op. cit.

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

69

structured analysis method is to add statetransition diagrams to dataflow diagrams. Statediagrams are connected to the dataflow throughdecision tables and process activation tables.The State Transition Diagram (Finite StateMachine) is the traditional way to representcomputer algorithms abstractly.

6. Event --> Function: Petri Net 60. Petriinvented these nets to show how control flowsare starting to be used more and more to analyzecomplex control structures. Colored PetriNets61 is the preferred representation. Petri netsare composed of places and transitions.Markers move though the places by the firing ofthe transitions. Petri nets are the dual of StateMachines.

7. Function --> Data: Input/Output Dataflow.This is the dataflow diagram with onlytransforms and dataflow lines.

8. Data --> Function: Objects withoperations62. This is essentially the data flowdiagram with only datastores and transformsnow called operations or even “methods.” Theoperations are grouped around the data theychange and the entire set is packaged together.

9. Function --> Agent: Mapping of function totask. Process Allocation is described by Mellor& Ward63. An explicit mapping is maintainedas design progresses between the functionaltransforms and the discrete processors (tasks)that will perform those functions.

10. Agent --> Function: Virtual Machine

60. W. Reisig, Petri Nets: An Introduction. Springer-Verlag, New York, 1985.61. Ref for Colored Petri Nets ?????62. P. Wegner, “Object Oriented Concept Hierarchies”, Brown University, Working Paper presented at CASE'88. 63. op. cit.

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

70

instruction set. This concept was introduced byNeilson & Schumate64 and says that theimplementation component is made up ofinstructions that solve a problem at a particularlevel of abstraction. The set of instructionsworking together solve the problem andconstitute a virtual machine. Instructions are, inturn, lower level virtual machines, operations ondata objects, or pure data transformations.

11. Agent --> Event: World Line. Explicitlyintroduced by Agha65 in his exposition ofACTORS, the world line concept comes fromrelativity theory which seems to apply tomultiple agents acting concurrently within asystem. A world line follows all the events thatoccur to a single agent.

12. Event --> Agent: Scenarios. Scenarios cutacross worldlines and follow a series of eventsin a causal chain. Normally this chain followspaths of communication between the agents.

13. Data --> Event: Data Transitions. This is avery simple method of watching a data valuechange in a set of variables as the programexecutes. It has dual configurations in whichyou follow the data from variable to variable.Or you follow the changes in the data values inone variable and compare that to the changes inother values. This method is not represented inthe literature, but is practiced by everyprogrammer who has ever debugged a program.

14. Event --> Data: Design Element Flow. Thisis a very simple method which says that systemstates and design element states are coordinated.It has dual configurations in which you compare

64. op. cit.65. G. Agha, Actors: A Model of Concurrent Computation in Distributed Systems. MIT Press, Cambridge Mass. 1986.

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

71

the transitions of design elements as the systemstate changes. Or you compare the states of thedesign elements when system transitionsoccur. This method is also not represented inthe literature, but is implied by the fact thatdesign elements are expected to cooperate in asoftware system.

15. Agent --> Data: Communication TransportMechanisms. A key feature of the ADARTS 66

method developed by SPC/Gomaa is the displayof communications mechanisms betweenmultiple tasks. These are an implementation ofthe dataflow lines which specify the nature ofthe data channel as Flag, Semaphore, Mailbox,Rendezvous, etc.

16. Data --> Agent: Data Monitors. Introducedby Hoare67 data monitors protect data frommultiple conflicting access and are used inoperating system design to allow different tasksto share the same data.

This set of minimal methods fulfills all therequirements of our description of the field ofdesign methods. It allows each transition to bemade by letting one viewpoint take the otherviewpoint as an object. Thus, in the dataflowexample, process reifies and objectifies data asdataflow lines. On the other hand, dataobjectifies and reifies process as operationsclustered around data that has the sole purposeof transforming the data. The objectification of

66. op. cit.67. C. A. R. Hoare, “Monitors: An Operating System Structuring Concept”, Communications of the ACM, 17, No. 10, Oct. 1974. See also, “Communicating Sequential Processes”, Communications of the ACM, 21, No. 8, Pages 666-677, August 1978.

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

72

one viewpoint by the other is a very interestingprocess. It has to do with stillness and motionin this case. The objectifying viewpoint seesitself as still, while the elements related to theother viewpoint are seen to be moving.Different criteria for objectification exist ineach set of minimal methods. But the endresult is that the active viewpoint uses the otherviewpoints as its material which it organizes inorder to get a view of the system. Viewpointsorganize, and in these minimal methods we seethat organization at work. Not all the designfeatures of the system are visible at once, but itis possible to circle around a particularviewpoint moving through the other threepossible viewpoints one at a time to get acoherent picture of the system from thatparticular viewpoint. As one rotates though theother viewpoints treated as material for theactive viewpoint a coherent picture of thesystem from that active viewpoint becomesaccessible. Then, at some point specified bythe overall methodology, one changes to one ofthe other viewpoints and makes them active torepeat the process. The analogy is Rubric'sTetrahedron68. As one moves between activeviewpoints, different design features rotate out

68. This is a toy related to the Rubric's cube which is turned to match up the colors on the sides.

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

73

of view, and others come into view. The wholething is never visible at once, so showing andhiding is in effect. But all the views areconnected and form a web around the designedsoftware which can be traversed. With enoughpasses the one begins to intuit the completepicture of the software design which is neveractually available. The coherence of thatdesign, which lies hidden beyond thefragmented perspectives from which theinfinite regress of WHYs issues, is theunmanifest non-representable part of thedesign, the essence of manifestation of thedesign.

Figure 4: View Points Combine to Give Minimal Design Methods

AGENT EVENT

DATA

who when

where whatPROCESS

Petr

i Net

Dataflow Input / Output

Data Objects

Worldline

Scenarios

Tra

nspo

rt

Dat

a St

ruct

ures

Stat

e T

rans

ition

s

Mec

hani

sms

Design

Prot

ecte

d

Element Flow

Machine

Data Transitions

Allocation of Function

to TaskVirtual

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

74

Now this description of the field of all methodswas empirically derived. The main reason fordoing it was to study the interaction betweenelements visible in different views. However,once it had been formulated, I began to wonderabout the strange lopsided nature of thedescription of the field. I had expected all theminimal methods to be equally complex, for allminimal methods to support two-way bridgeslike the dataflow diagram. One good thing wasthat I could see how many of the minimalmethods were duals of each other in the senseused in Mathematical Category Theory. Forinstance, the state machine and the Petri Netappeared to be duals. It did appear thatmethods connecting the same two viewpointswere of about the same complexity. It was onlyas one traversed the field, that the variations inthreshold complexity appeared. Yet, there wasenough lopsidedness and irregularity in myfield description to make me doubt the result ofthis analysis on purely aesthetic grounds. It isalways open for someone else to try toconstruct a different set of minimal methodsthat equally provide transition betweenviewpoints. But, if you accept that there areonly four viewpoints on design, and thatmethods are transitions between viewpoints,

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

75

then it is just a matter of filling in the blanks,and this is the set of minimal methods thatappeared most likely to me. The naggingquestion, though, is why the set is so lopsidedand uneven. Is this due to my poor selection ofcandidates for minimal methods, or due tosome inherent properties of the field itself?

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

76

4. DESIGN METHODS IN A GENERAL SYSTEMS THEORY CONTEXT.

It occurred to me that there was no way toanswer this question of the adequacy of the setof minimal methods without a context in whichto see these minimal methods functioning.Therefore, I decided to attempt to insert theminto Klir's excellent model of a formal-structural system. This would provide acontext that should make it clear whether theset fits together or not. GSPS was constructed,with description in mind to facilitate the twogreat descriptive operations of General SystemsTheory: reconstruction and identification69.The amount of space dedicated in Klir's book todesign of systems in the sense common insoftware engineering was minimal at best. Infact, it seems to me that the vocabulary isskewed too much toward description andwould have to be changed somewhat to becomemore familiar to the software designcommunity. Yet, GSPS provides somethingcrucial that is missing from the softwareengineering community which is a universalvocabulary for describing systems. Thus, if itwere possible for software engineers to learn

69. Ref reconstruction and identification. ?????

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

77

that vocabulary, it would be a boon to theprofession. What is really needed is anotherversion of that system which is presented in away that would be easy for software engineersto relate to, and perhaps some of theterminology changed to be more what they areused to, especially where the different wordsmean the same thing. For instance, Klir speaksof the generative system, whereas for softwareengineers this is the software program. It isinteresting that what appears as higherepistemological levels in General SystemsTheory are more concrete levels from the pointof view of software engineering. This isanother indication of the symbiotic andcomplementary relation between the dual meta-disciplines.

Terminological issues aside, the architecture ofthe GSPS is an excellent view of what a systemis, and the only question becomes, how doesone use that General Systems view to guide thedesign of software? Searching though theASPS book for a place to make the necessaryconnection between my set of minimalsoftware design methods and the generalstructure of systems, I was gratified to find, asif the author knew exactly what I needed, a

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

78

ready-made place to plug in my set ofviewpoints and minimal methods. That placewas found in the section on “backgrounds” and“support variables.”70 When one lifts thesource system out of the object system, it is bydeciding which attributes of the object systemwill be included in the system to be studied.The object system is a bundle of attributes fromwhich some are selected. How the observerrecognizes which attributes form a coherent or“systematic” set is not treated. But, thenarrower bundle of extracted attributes is thesource system, and for each of those selectedattributes, a variable needs to be defined and anobservation channel constructed to create thedata system which renders the systemavailable. Here, Klir points out a fact usuallyoverlooked, which is that for meaningfulmeasurements to be made, there needs to beother special variables created that provide thecontext for measurement, the coordinateswithin which the measurements will be relatedto each other. These coordinate variables arealso attributes taken from the global context ofthe source system. They must be attributes thatare globally uniform. This means thatbackground attributes are really a connection

70. ASPS Chapter 2 Section 2 “Variables and Supports” pp 38-44

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

79

between the system and its environment. Thismeans that the gestalt of the system on thebackground of its environment is formalized byidentifying the background attributes. It isinteresting that by selecting a particularbackground for a system, one is, in effect,attaching it to a specific discipline as well sothat in using the four viewpoints (data, event,function, and agent), one is connecting theGeneral Systems Theory to SoftwareEngineering. Other selected backgroundswould entail connection to other disciplines.Thus, the disciplines color the backgroundagainst which the Object system is seen. Byswitching backgrounds, one immediatelyswitches disciplines. The general point isthough, that the particular backgroundattributes furnished by Software Engineeringare generic in the same sense that the Objectsystems of General Systems Theory aregeneric. Therefore, this connection ofbackgrounds to foreground attributes is thespecific site for the marriage of the two meta-disciplines. Further, we see that the relation ofthe foreground treated by General SystemsTheory, and the background treated bySoftware Engineering, is another instance ofthe object/supporting technology dialectical

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

80

relationship which is in some sense formalizedby this proposed common law marriage ofstrange bedfellows. The background attributes,once selected, become special variables called“supports.” Klir mentions that the normal kindsof support variables are measures of space,time and/or population.

This concept of a “support variable” providedexactly what I needed. Event and Data werealready directly translatable, for they were theway time and space were represented in theminimal methods. Data always means where,in the space of memory, a particular pattern ofinformation lies. Time is always conceived interms of cycle times of the central processingunit (CPU). And when I looked closer at theconcept of “population,” I saw it could beconstrued to be made up of my two otherviewpoints superimposed. Population usuallyrefers to animals which are autonomous beingsthat move about independently. Here again, wesee hints of Rescher's reduction of systemscharacteristics to the empirically discoveredcharacteristics of organisms. Demographicsfollows these movements and categorizes thedifferent types of organisms which are spatiallydistributed. However, essential to the concept

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

81

of population, as it is normally used to speak oforganisms, autonomy of action is definitelyimplied. And all organisms do different things,and have very different behaviors as well asshapes, so the things they do can be construedas their functionality. In fact, there is a directrelation between functionality andintentionality. Functionality is an ill-definedand over-used concept in software engineering.Intentionality really refers to relevance and thedistinguishing of kinds, as one’s attentionmoves from one type of thing to another.Organisms all have some form ofconsciousness, and the focus of thatconsciousness is their intentionality.Functionality is the focus of the autonomousagents within the population which directlyrelates to changes in their behaviors. Thus,from this narrow perspective, population can beseen as made up of autonomous agentsexhibiting different kinds of behaviors(functioning) expressing their individualintentions71. So I could see my way clear tosaying that for each viewpoint on Softwaredesign there was at least one support variable.The interaction between these support variablesis then described by the set of minimal

71. L. Kohout A Perspective on Intelligent Systems. Chapman & Hall 1990.

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

82

methods. In this way there was a preciseinterface between software design methods andKlir's formal-structural system.

However, once I had made this connection, Iwas fascinated by what immediately followedfrom it. Klir goes right on to discuss what hecalls Methodological Distinctions72. This boilsdown to the idea that any particular supportvariable can exhibit different orderingcharacteristics. Basically the possibilities areas follows:

ORDERING

o No Ordering (male/female type-purediacritical distinctions)

o Partial Ordering (a depends on b -dependencies)

o Linear Order (a follows b - complete ordering)

DISTANCE

o No Distance (do not have a scale)

o Distance (have a scale)

These types of orders determine theeffectiveness of the support variables inlocating a measured event/entity (eventity)within the overall system. They form a latticeof possible orderings which has the following

72. Chapter 2 Section 3 Methodological Distinctions pp 44-51

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

83

elements:

a) No Order, No Distance: The coordinates are amyriad of distinctions which are not related toeach other.

b) Partial Order, No Distance: Set theoryproduces partial ordering without distance.

c) Linear Order, No Distance: A continuous lineexists, but how far apart the points are cannot bedetermined.

d) Partial Order with Distance: Sets in whichyou know how many boundaries you havecrossed to get somewhere give this type ofmeasure.

e) Linear Order with Distance: This is the typeof measure we are used to in mathematics thatuses the real number line.

In this lattice position c and d are at the samelevel, lying as two separate routes between b

and e. The methodological distinctions tell youhow good your measurement system will be.We naturally assume that full ordering will beavailable to us in each support that we select.So we assume that we will not have anyproblems determining the exact position ofeach eventity in relation to our coordinates.However, we do not always have full choice asto what support variable from which we canchoose, and this is why Klir explains theimportant distinctions between them. If it

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

84

hadn't been that support variables were such agood fit for my methods into the GSPSframework, I would not have thought twiceabout these distinctions between types ofcoordinate systems. But as I started looking atmy proposed support variables and themethodological distinctions, I noticed that twotypes of support variables existed in myschema:

Support variables with Partial Order and noDistance

o AGENT

o FUNCTION

Fully ordered support variables

o EVENT

o DATA

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

85

Figure 5: Lattice of Methodological Distinctions

This caused me to look deeper into the relationbetween these two types of support variables,and what I discovered there, I think, is verysignificant for the development of softwaredesign methodologies. Basically what I sawwas that there was an irreconcilable gulfbetween my two types of support variables, andthat gulf intrinsically determined the nature ofsoftware designs. In building a softwaresystem, we start off with requirements whichare basically a set of pure diacriticaldistinctions without order or distance. Insystems design we decompose functionality

WITH DISTANCEPARTIAL ORDER

d

agent < > process

data<space

NO ORDERNO DISTANCE

PARTIAL ORDERNO DISTANCE

NO DISTANCE

LINEAR ORDERWITH DISTANCE

LINEAR ORDER

a

b

c

e >eventtime

pure binary distinction

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

86

and pick a set of agents (boxes with multipleprocessors, processors, tasks within aprocessor) that become the architecturalelements of the system. A miracle of designmust occur. In hard real-time systems it isassumed that a certain event has to occur in thefull ordering of spacetime. The point is, thatthere is no way to connect the architecture ofagents and the functional decomposition to thenecessities of spacetime occurrence. Thedesign must perform a miracle, and there is noreal support for that miracle. The designermust find a way to leap the gap from globalarchitecture and functionality to spacetimeoccurrence, and this is the essence of the real-time design problem. Implied here is that thisgap is essential and can never be bridgedexcept through intuition and basicallyinadequate bridging techniques.

This said, it then quickly became clear that theintermediate positions in the lattice ofmethodological distinctions were veryimportant. They were, in effect, the genericprototypes of each minimal method pair. Andthis is very significant because it means thatminimal methods have a root in some sort ofmathematical necessity. In each case they

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

87

attempt to describe an intermediary positionbetween pure partial order without distance andfull ordering. Now the lopsidedness of the setof minimal methods started to make sense. Theagent-process (functionality) bridge which wascomposed of function-to-agent mapping andthe virtual machine (augmented structure chart)was very complex in order to compensate forthe lack of structure to the ordering itself;whereas the event-data bridge could afford tobe simple because the ordering was robust.This means that the lopsidedness in the set ofminimal methods was a direct result of theexpressive poverty of partial ordering forwhich the agent-function methods attempted tomake up in their higher threshold of inherentcomplexity.

Another important point was that the nature ofthe intermediate lattice positions could beunderstood as duals of each other. Linearitywithout order is the dual of partial orderingwith distance. When you see that partialordering basically means “sets,” or VennDiagrams, it is possible to see each of theseintermediate duals as a use of two sets againsteach other in the only two possible ways. Inpartial order with distance, the agent set is used

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

88

against the process set, and you getmeasurement by counting boundary crossings.In the case of linearity without distance, one setbecomes the coordinate line, and the otherbecomes the thing arrayed on that coordinateline. Thus, the second set can be arrayedagainst the first in only two possible ways. Itcan become a coordinate line, in which case ithas no tick marks to provide a scale. Or it canbe used as an alternative categorization of thesame elements, in which case it provides thescale without an independent coordinatereference. Either way, to move to full ordering,another element besides the original two setsmust be provided. That third element is eitheran external coordinate or an external scale.This, in software, is provided by the real worlditself. The spacetime continuum has the extradimension necessary for full ordering toappear.

The minimal methods that connect event-dataand process-agent strive to fill the gap betweenthe two types of viewpoint. However for hardreal-time systems the minimal-methodsconnecting event-data cannot be relaxed, andso the gap appears as an unreconcilable abyssacross which the design must leap. This abyss,

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

89

in the heart of the viewpoints is the negativerepresentation as an essential absence or lack ofthe non-manifesting essence of manifestationfrom which all the differAnce conjured up bysoftware issues forth. It is an importantabsence haunting every software design,making it an essentially impossible task whichwe do anyway using our intuition (which hasan crucial unconscious factor) as a guide.

The presence of this lack in the background ofevery Source system is important for GeneralSystems Theory also. Because GeneralSystems Theory generally detaches itself fromall possible backgrounds associated withspecific disciplines, that lack becomesobserved. General Systems Theory seems to beable to detach itself from that blindspot in thebackground. But then the blindspot reappearsat the center of General Systems Theory itselfas the “always already lost” origin of the twoinfinite regresses of meta-structures andmodels. The blindspot appears both in thebackground and in the foreground, and cannotbe escaped without lowering our expectationssignificantly with respect to the robustness ofour descriptions of empirical Source systems.It is not much of a leap to realize that the fore

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

90

and background blindspots are merely tworeflections of a single hidden source fromwhich the whole temporal gestalt isemanating. Not only are we caught in webs ofshowing and hiding, we are also tied tosomething which never appears, but constantlydistorts and conditions everything that doesappear. This is hard for all naive realists toswallow, but is hidden in the very structuresthat objectivists build because it is an aspect ofmanifestation or Being itself, and whatever isdefined by the objectivists undergoesmanifestation or presenceing which even theycannot escape.

Each of the different meta-levels of Being canbe derived naturally by first making thedistinction of “ontological difference” betweenbeings and Being. Once we recognize Being asdifferent from the beings that participate inBeing then we can begin to explore the natureof Being itself. For most of our philosophicaltradition that Being was considered as unifiedand unitary. But since Parmenides it wasconsidered as also frozen and static. It wasHeidegger who exploited the insights ofHusserl to show that there must be some kindof Being mixed with Time. This dynamic

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

91

Being which underlies all processes andsupport temporal gestalts that last longer thanthe Now moment was shown to have aradically different nature from the Beingassumed by Aristotle and Kant and the othermajor philosophers in the Western tradition.Eventually it was shown by Heidegger than yeta further kind of Being could be defined calledBeing (crossed out) which Derrida went on todefine as DifferAnce and exploit in his workssuch as Of Grammatology. Michael Henry alsoexplored this level showing that it had somefundamental non-manifesting aspect which likethe unconscious was always hidden from viewand only seen as distortions within the thingsthat were manifest. Henry called this alwayshidden aspect of Manifestation the Essence ofManifestation. As each meta-level of Being isbroached it becomes successively harder tothink about its nature and consequences for ourcomprehension of manifestation. The finalstage in the unfolding of Manifestation wasdefined by Merleau-Ponty as Wild Being andexplored by Deleuze and Guattari. Wild Beingis the substrate of Being within perception andis exemplified by the phenomena of touch-touching itself. In that phenomena there is anopacity which cannot be made transparent to

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

92

itself which reveals itself as a chiasm orreversiblity between perceiver and perceived.Delueze and Guattari speak of this samephenomena in terms of the relation betweendesiring machines and the body without organsor the embedding of partial objects within therhizome. It is difficult to think about this levelof the infra-structure of ideation except interms of the negation of dualities by therealization that duals imply each other andmutually define each other so that what reallyexists is the relation between the duals not theduals themselves. Thus at this level everythingis composed of partialities and propensitieswhich exist in a Chaotic field which combinesorder and disorder in which order is embeddedin disorder and vice versa. Both GST andSoftware Engineering attempt to delimitthemselves in relation to the meta-level of WildBeing and exclude its chaotic nature from theirconsideration. For Software Engineering thecatch all category for all such phenomenaassociated with Wild Being is ArtificialIntelligence. For General Systems Theory it isComplexity Theory. The limit of GST issystems too complex to be analyzed intocomponent parts and synthesized as formal-structural systems. Such systems must be

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

93

considered at a macro level without looking indetail at their parts or must be considered at amicro level and generated by uncontrolledinteractions to produce macro phenomena.Complexity Theory assumes that certainemergent phenomena emerge from verycomplex systems that cannot be reduced byanalysis to constituent parts. Theseemergences are the way that Wild Beingmanifests in these systems. In this paper verycomplex systems and their emergentphenomena are not considered further but thereader should be aware of the existence of thisfurther horizon of exploration that opens up outof GST and Software Engineering as weattempt to think what the next meta-level ofBeing from that at which they are situated mustbe like.

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

94

5. SYSTEMS ARCHITECTURE FROM THE POINT OF VIEW OF SOFTWARE

Now that we have seen how the softwaremethods plug into the support variables of theGSPS architecture, it is necessary to interpretthe GSPS semi-lattice of meta-levels from thepoint of view of software. This interpretationwill include the mapping of the software designminimal methods into the support variables sothat, in effect, a complete software designframework is produced out of the generalizedGSPS structure. Here we are turning GSPSinto a specific design system for software.However, since software is also at a meta-levelabove all the specific sciences, we could beseen as extending the realm of GSPS toproduce a broader set of modeling systems, bywhich discrete simulations might be built. Assuch GSPS is extended by attaching a certainset of generic modeling methods found usefulin designing software, but which could beapplied to the modeling of any discrete system.This combination of the two meta-disciplines,which takes into account both foreground,background, and their relations, might be calledSoftware Systems Meta-Methodology73.

73. There is a paper in the series Software Engineering Foundations on this topic which is available from the author on request.

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

95

5.1. OBJECT SYSTEM

The object system is what is differentiated fromthe environment and designated as a “system.”As has been said, if this is a system instead ofan object then it exists in a web of showing andhiding relations as a complete gestalt. As suchit is not just a gestalt in space but also in time.If the system can be represented in space alonethen a formal system is adequate to describe it,but if the system is dynamic then we need astructural-formal description of it.

The formal-structural description has twocomponents related to its patterning and itsformation. Patterning considers order on thebackdrop of disorder while Formationconsiders disorder on the backdrop of order.These are complementary views of the samesystem which combine to give the formal-structural description of the system.

The “object” system is delimited as a form onthe background of everything else. That formmay move and change over time and so wemight have structural descriptions of it andprocess models of its changes. Within the formthe contents may move and change over time inwhich case we construct micro-formalisms to

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

96

describe transformations in content whichdelineate the structure of the content and modelits changes over time. When we combine thesetwo descriptions of the form and its contentthen we have a complete formal-structuraldescription. But this is not a description of asystem unless we include the showing andhiding webs that the objects within this systemparticipate in through the dynamics of its formand pattern configurations.

At the level of the “object” system we havemerely focused in on the target system as agestalt and discriminated its orthogonal patternand form components that blend together inwebs of showing and hiding to create a formal-structural system.

5.2. SOURCE SYSTEM

Having isolated the object system we are readyto look for its attributes and the backgroundsthat give significance to those attributes. As wehave seen for the software system thosebackgrounds become visible as we observe thesystem from the four canonical viewpoints:Agent, Function, Data, and Event. Theseviewpoints each reveal a background specificto it upon which the system might be seen. In

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

97

the light of that viewpoint on a specificbackground the system will have certainsignificant attributes which will appear relevantto our modeling of the system. At the level ofthe source system we isolate those attributesagainst the system wide backgrounds. So thesource system becomes a bundle of selectedattributes in relation to a few well selectedglobal system backgrounds.

At this level the system description begins toramify. That ramification is precisely the samekind of ramification that occurs in Russell’stheory of logical types. In other words we cansee the source system as attempting to resolveall the paradoxes that it finds in the objectsystem by applying something similar toRussell’s ramified Type Theory. In the case ofthe Klir epistemological lattice the ramificationoccurs in a spacelike direction and in a timelikedirection. In the spacelike direction variableschange on constant backgrounds while in thetimelike direction backgrounds change inrelation to constant variable sets. At the pointof fusion both backgrounds and variable setsvary together. The spacelike direction relatesto the structuring of the parts and wholes withinthe system into echelons of holons. In this case

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

98

we are calling the “structure” the combinationof formation and patterning within the sourcesystem. The timelike direction considers themodels by which different structural (form/pattern) configurations are changed over time.A model is the same as a structuralconfiguration in space only applied to time.Models are composed of processes and sub-processes. During a certain sub-process aspecific part-whole holonic structure is in forceand a set of transformations are applied to it.When this sub-process changes to a differentsub-process then a new set of transformationsare applied to the holonic structure.Transformations may be of a number ofdifferent kinds. Transhaping changes the formfrom one formation to another. Transcriptionwhich changes the patterning from oneordering scheme to another. Transfigurationthe changes of both form and patternsimultaneously. We would calltransubstantiation the change of the mediumwhich supports the form and patternconfiguration. The change of form, pattern andsubstance all simultaneously we might dubtransmutation. All these kinds oftransformations are possible that bring us fromone form-pattern configuration to another as

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

99

the system changes as a dynamical processaccording to some meta-model of changes. Wecan see this in terms of the system “working”where it brings to bear different kinds of workat different times in a specific sequences inorder to effect changes. We notice that “work”can effect changes in pattern, form, orsubstance according to goals. When we look ata system from a process perspective we projectthese goals in order to see the coherent kinds ofwork being applied to effect transformations.

Since we understand that space and timedimensions are intimately related in a fusionwhich we normally think of as “spacetime,” itis clear that the structural and process modeleddimensions of ramification must be interlinked.We see exactly this in Klir’s epistemologicallevels where there are certain nodes that mixthe spacelike and timelike aspects of the systemdescription emphasizing one or the other. Thismeans that the ramification of the structuresand models in the epistemological lattice aremutually entailing which means that thespacelike characteristics articulate the time likecharacteristics and vice versa. Now we alsonotice that of our four viewpoints there are twothat represent spacelike (Data) and timelike

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

100

(Event) characteristics of our design. Thisindicates that the embedding in spacetime iscomplete in as much as the total dynamicsystem is encompassed by structures andprocess models but also there are designelements that specifically embody thearchitecture of the system in spacetime. Wealso need to note that spacetime has a dualcalled timespace74 which looks at the systemand the propagation of events within it from acausal perspective. Thus the MATRIX ofspacetime/timespace has two meta-viewpointsthat encompass the specific backgroundviewpoints on software design. Theepistemological lattice exists as a half wayhouse between these two levels ofviewpoints75. In other words theepistemological lattice exists only as aspacetime structure which encompasses thefour viewpoints on software design two ofwhich embody the spacetime aspect of thesystem itself. We might ask why the spacetimecomponent of the system differentiates itself onthese three different levels. We note thatembodiment within spacetime through theDATA and EVENT viewpoints is

74. Normally called Minkowoski “spacetime.”75. Spacetime / Timespace viewpoints or Design viewpoints including Agent, Function, Data (space) and Event (time).

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

101

encompassed along with the AGENT andFUNCTION viewpoints by the structural andprocess model ways of looking at the system asa whole which in turn gives us a view of thewhole within the ultimate background ofspacetime/timespace. If we want to look at thecausal relations between elements through thetimespace view then in effect we switch fromemphasizing the independence of the structuresand process models to the emphasis of thefused structural-processes or process-structures that exist in the epistemologicallattice. At the level of viewpoints this fusioncomes about though the agent and functionviews in relation to timespace embodiments bydesign elements. The timespace view is almostlike the fusion of the spacelike and timelikeorthogonal components that can be seen asseparate in spacetime. The epistemologicallattice allows us to see this fusion whenviewing the system from the outside in terms ofthe fusion of process models and structures ofpattern and form.

5.3. DATA SYSTEM

Klir calls the data system the observed datastreams flowing though variables (thatcharacterize attributes) and supports (that

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

102

characterize backgrounds). Here he hasalready reduced the system in his mind into adata image. But we have seen that a softwaresystem has four viewpoints of which data isonly one. All of those can be reduced to dataimages but this reduction does violence to ourunderstanding of the workings of the system.Instead we prefer to understand that these dataimages preserve the different kinds ofinformation related to the different viewpointsthat were projected on the object system toproduce the source system. At the data systemlevel we are reducing the system to streams ofdata that are recorded and analyzed in order todiscover the workings of the system. But froma software point of view we are seeing thesoftware system as flowing streams of datarelated to the different views on the dynamicsystem we are designing. There is informationabout the Agents within the system, about thefunctions they are performing, about the eventsthat are occurring and the data that the systemis consuming and producing. We note that allthis data about the different viewpoints aremixed together and they ramify and fuse inexactly the same way as the source system didin spacelike and timelike dimensions. Thedifference is now that the whole system is seen

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

103

as a set of variables taking on values at specificlocations in time and space. If we are studyingsuch a system then we wish to understand theconfiguration of structures and process modelsthat are implicit in the multitude of changingpatterns of information in the forms of thevariables over time. If we are designing such asystem then it is our hope to get these changingpatterns of data in the forms of the variables tobehave correctly which is not an easy task.

What we notice at the data level is that thewhole object system which was reduced toattributes has now again been reduced to astring of memory locations and their valuesover time. The next question becomes for theSystems Scientist if we can create a generativesystem that simulates the data values changingover time. For the designer the question iswhether it is possible to write a program thatcreates precise configuration of values not as asimulation but as the origin of that pattern.

5.4. GENERATIVE SYSTEM

The program is the generative system thatproduces the required data streams when itexecutes. The program can be either compiledor interpreted. The difference is whether it

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

104

executes in small snatches or as a monolithicblock. An interpreted program is moremalleable and flexible but is normally slowerbecause it is compiling as it is going along.Either way the program when it is executingbecomes pure behavior which acts blindly onthe instructions that occur in the source code. Itproduces configurations of changing values inspacetime and if those correspond to those thatare needed then we say that the program isrunning without defects. To write a programthat imitates a value sequence exactly is takenas demonstration that one understands that datasequence. This is the notion of understandingwithin the objectivist viewpoint on existence.This is a very limited or one dimensional viewof understanding. Exact imitation is notnecessarily a display of understanding. Insteadgoing beyond the information given isunderstanding. In other words realunderstanding is not merely the production of afrozen image of the thing being understood thatcan be made perfectly available as somethingPurely Present, but must exemplify a process ofmoving beyond what is given through theapplication of a hermeneutic circle whichinterprets what is given in different contexts togive an overall interpretation which is never

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

105

complete. So we should posit a stage beyondthe generative system. That next stage is theKnowledge stage. It moves beyond theepistemological lattice for general systems intoKnowledge systems which exhibit artificialintelligence and life. Klir indicates this levelwhen he deals with goal seeking systems whichuse feed forward and feedback separately ortogether to produce meta levels of thegenerative system which display goal seekingor adaptive behavior. He ends that expositionwith an explanation of the autopoietic systemwhose goal is to maintain its own organizationand especially its boundary with theenvironment.

But here at the generative level we mustattempt to put our design for the dynamicalformal-structural system into a program thatproduces the right data pattern. That programwhen it is not executing is itself a data patternas well. The data pattern of the designedprogram exemplifies the interembeddedviewpoints of Agent, Function, Data, andEvent. When we reduce the design to aprogram then delocalization begins to play arole as design elements actually interfere witheach other within the source code of the

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

106

program. It is the warps of delocalizationwhich are increased exponentially asperformance characteristics become more andmore important. These warpages account forthe difficulty of understanding code and manyof the errors that creep in despite the rigors ofstructured programming and other goodsoftware engineering practices.

What for General systems theory is the mostgeneral level of understanding of the system isfor software engineering the most concretewhere the system is represented as anexecutable program. Software has its ownspecial ontological basis which exemplifieswhat Derrida calls DifferAnce and makes itdifferent from most things in the world that areeither like nouns (frozen objects) or verbs(processes). The nouns are locatable in thespacelike dimension whereas the processes arelocatable in the timelike dimension. Softwarewith its branches and while loops that altersequence instead has traces which place itbetween a noun and a verb. We can signify itwith words like shape which can function asboth a noun or a verb. The trace is the sumtotal of the side effects or mutual interferencesof the running program. We look at the listing

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

107

and compare it to the trace that occurs duringexecution. So . . . Shape shapes. The sourcelisting executes and produces a trace. We traceour way thorough the source listing looking forwhat it is doing when in order to try tounderstand the complexities of its mechanismin operation. We might say . . . Trace Traces.There is a cognitive dissonance between thecumulative side effects as observed inexecution and the flat text of the source code ofthe program. Due to delocalization and themixture of design elements, that object orienteddesign can only partially stop, it is verydifficult to understand the homeomorphismsbetween the two kinds of trace (noun and verb).We reach the point where we are lost betweenthem, where we enter the realm of tracelessnessin which it is impossible to decide what in theprogram is leaving a certain side effect. As weapproach this undecidability we get closer andcloser to the actual essence of software.

Attempts are being made to come to terms withthe nature of software and its strange essence.The seminal article was written by F.P. Brookscalled “No Silver Bullet.” A recent follow uparticle by R. G. Mays called “Forging a SilverBullet from the Essence of Software” continues

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

108

the introspection of the discipline into thenature of the peculiar object they are engagedin creating. The author has presentedphilosophical arguments that attempt to definethe essence of software in the article “SoftwareOntology” which is the first part of the serieson Software Engineering Foundations. In thatarticle the author identifies the object ofsoftware with the third meta-level of Beingcalled Hyper Being by Merleau-Ponty whichexemplifies what Derrida calls DifferAnce withits chiasmic attributes of differing anddeferring. This definition draws on work inmodern ontology rather than the oldAristotelian roots of ontology that is used byBrooks and Mays. But if we look at the workof Mays we see that he points out three basicsources of the essence of software:

• Conceptual Content

“A software entity is characterized by conceptsthat come from both the problem domain andthe surrounding software entities with which itinterfaces.” [page 21-22]

I would go further to say that software is inevery case an embodied theory. Besides theconcepts that Mays mentions there is the

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

109

theoretical concepts that control the structure ofthe software itself that is inherent to thesoftware which are represented by the conceptsin Design Methodologies.

• Representation.

“The concepts of a software entity areexpressed as representations of both the data ituses and the function it performs.” [page 22]

I would go further and say following Naur thatsoftware design is inherently non-representablein toto and that all representations are partial.Those representations do not just representData and Function but also the viewpoints ofAgents and Events. These viewpoints are“canonical” in that they are sufficient torepresent the essentials of any real-timesoftware design. Thus we would include theviewpoints and the minimal methods that spanbetween them within a finer definition of thesoftware essence.

• Multiple Subdomains

“A software entity performs functions thatconsist of transformations on its data, based onconditions present at the time of execution.The presence of conditions splits the input

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

110

domain into multiple subdomains of thefunction.” [page 22]

This is the combinatorial aspect of softwarethat makes it impossible to formally prove anybut the simplest systems. This also is theconnection between the software and events,data, actions and transformations in the realworld to which its events, data, actions, andtransformations must be harmonized to operateproperly.

Besides the splitting of subdomains overinputs of data to transformations there is alsosplitting of subdomains over event signals.Thus the combinatorial explosion of possiblestates is intimately related to the embedding ofthe real-time software system in spacetime.

• Delocalized Incarnation

To the three major aspects of the softwareessence mentioned by Mays I would add theeffect of delocalization which causes the designelements at the conceptual level embodied bypartial representations to be smeared out withinthe actual source code that incarnates thesoftware design. Mays theory of softwareessence seems to ignore the incarnation of itwithin the text of the source code which is then

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

111

compiled and executed. The major effects ofcognitive dissonance occur because of ourinability to see the relation between what is inthe delocalized source code constructs andwhat actually occurs when the software is run.Also this is the place where the differencesbetween Higher Order languages occur andtheir relation to assembly language and binarycode. All software can be represented by thethree constructs of structured programming(sequence, if, and while statements) but alllanguages have a bewildering array ofconstructs which gives rich choice as to how toimplement any given feature of the design.

We can augment Mays’ summary by adding tohis words saying, “Thus the software entity isin essence a construct of interlocking conceptscharacterized by a conceptual content”revolving around a non-representable kernel ofthe design “derived from its problem domainand the milieu of other software entities withwhich it interfaces” as well as software designspecific constructs “by” partial “representationsof its concepts both in the data it uses and in thefunctions it performs” as well as in terms ofagents and events”, and by the multiplesubdomains of its input domain that

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

112

characterize the different transformations thatwill occur, depending on the conditions that arepresent during execution” which is carried outby delocalized design elements embeddedwithin a text that is compiled and run whichcreates cognitive dissonance between the textand the actions of the program. [page 24-25]

From these he derives the following inherentproperties:

1. The conceptual construct of the software isheld in the developers thinking. Therefore theSoftware is Malleable and Changeable.(conceptual content)

2. The conditions in the software combinemultiplicatively. Therefore the software iscomplex. (multiple subdomains)

3. The software representations are a“crystallization” of the conceptual construct.(representation)

4. The developer must anticipate the behavior ofthe software beforehand under all cases andconditions. (multiple subdomains)

5. Software is more broadly conceptual thanmathematical or graphical. Therefore softwareis unvisualizable. (conceptual content)

6. Software development is an intensive activityof thinking. (multiple subdomains)

7. A higher-order verification coccus in thedevelopers thinking. Formal verification is

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

113

done relative to the software representations.(conceptual content)

8. Programs are objects in the world and operatein the world. Therefore software needsconstantly to conform and change.(representation)

9. Software will always be an asset that must bemaintained and enhanced. Therefore softwaredeveloped is primarily though incrementalenhancements. (representation)

10. The first task of development is to re-enliven the conceptual construct in thedevelopers thinking. (multiple subdomains)

This series of deduced properties is veryuneven. We could instead look at the minimalsystem of properties that occur in the essenceof software constructing a minimal system.

Figure 6:

Mays draws the conclusion that becausesoftware is primarily theory that it is verychangeable and malleable. Also because

THEORY REPRESENTATIONS

WORLD INTERFACE INCARNATION

A

B

C

D

E

F

[Changeable] (Mays #1)

[Difficult to Verify](Mays #3, 8 & 9)

[*Cognitive dissonance*] [Complex](Mays #2)

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

114

software has a world interface that is complexand that combinatorially explodes then it willbe very complex. Representations need to beconstantly verified in the face of this changeand complexity. And as we have added thesoftware incarnation leads to cognitivedissonance between source code and executionside effects. When we combine these essentialfactors we get even more difficult problemsrearing their ugly heads.

A. Theory <-> Representation

In Mays’s scheme Theory does not interactwith representation at all which is very odd. Anon-represented theory is completely ethereal.Such designs only exist in the heads of thedesigners, where a good many designs of actualprograms continue to live to this day. Withoutrepresentation a theory cannot be shared orrecorded or adequately studied even by theoriginal designer himself. But these attributesare separated because the whole design theorycannot be captured by the representations.Representations are always partial and as wemove from one representation to anotherdifferent parts of the design appear anddisappear. This is because the theories of

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

115

design must be organized around the canonicalviewpoints that organize the universe ofdiscourse within which we build up ourtheories of designs.

B. Theory <-> World Interface (Mays #5, 6,& 7)

Theories are abstract precisely because we wishto cover the multiple subdomains of inputs andrepresent the system that can cover themnicely. But due to combinatorial explosion wecannot actually test all the interactions ofconstructs that we can finitely write down tooccur in the operation of the software.Software cannot be adequately portrayed eithergraphically or mathematically because it has abehavioral aspect that cannot be portrayedadequately by these means. When we look atrepresentations we are not visualizing thesoftware itself but partial representations ofaspects of it that can never be brought togetherin any satisfactory way to tell the whole story atonce as graphics attempt to do. Nor can it beformally proved due to combinatorialexplosion of states. Theories are by theirnature abstract which as its good points and badpoints. The good point is that we can say

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

116

general things that apply in most cases aboutthe software through the language of softwaremethods. The bad point is that the world is fullof exceptions that must all be handled andsoftware theory cannot do that they must behandled at the level of implementation. Theworld as it exists as a collection of states ofaffairs presents software that tries to harmonizewith the world a very severe problem.

C. Theory <-> Incarnation

Theory as design elements are encoded intosoftware source code that embodies it andactually runs when it is compiled. Due todelocalization which smears the designelements out in the code it is very difficult tomaintain the design once the code has beencreated. The code is in constant flux and theinterference of design elements with each otherespecially in high performance code can causedesign elements to be severely mangled in thethis process of incarnation. Code and Designtheory are fundamentally at odds and the codealways wins because it actually does somethingwhereas the design only makes thingsunderstandable to the humans that are creatingthe program.

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

117

D. Representation <-> World Interface(Mays #4 & 10)

Designers must attempt to use mentalsimulation to anticipate he workings of thesoftware. That mental simulation needs to berevisited over and over again and remain true tothe software design and the world that theprogram is going to function in. Therepresentations no matter how augmentedcannot show the complexity of the worldcompletely. All that they can do is provide agloss that stands halfway between the worldand theory that is manipulable by the designer.

E. Representation <-> Incarnation

Representations by minimal methods createabstract design elements that glossimplementation issues which in turn gloss theactual implementation constructs at the level ofdelocalization which in turn glosses assemblycode and which in turn glosses binaryinstructions on a particular hardware platform.What we have is a series of levels ofrepresentation. Within the design level wehave hierarchies of Data, Events, Functions andAgents. These levels of design andimplementation can be very complex and

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

118

stacked deep. But each level must be perfectlymatched to those above and below it for a gooddesign to occur and for a complex system thisis very difficult to do and sustain onceaccomplished in the face of changes.

F. World Interface <-> Incarnation

Not only is the world complex andunpredictable and the Incarnation of softwareon particular hardware platforms complex butthese two things add together to produce asuper complexity where the hardware platformis engaged in the world which the software isattempting to control things and make themplay together properly. In another paper thatthe author has written this role of software iscalled meta-technology. Software bindstogether different technological structures intoa meta-system which it attempts to operate sothat harmony between the systems ismaintained. It is the role of software to do this.So software is incarnated in the technologicalworld as a meta-technology that makes otherpieces of technology play together andintegrate while performing complex tasks thatcan be safety critical. As such the software isembedded in spacetime/timespace making

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

119

specific things happen at particular points intime and space among the hardware ensemble.Bridging the gap between the incarnatedtheories of its design and its embedding in theworld in a way that works properly is a verydifficult task for something as brittle assoftware.

We have gone into the nature of the essence ofsoftware to show what the generative systemlooks like from the point of view of software.The essence of the generative system relatesour theories of the world to representationswhich in turn are incarnated within the worldand tested against that world. Previously I havesaid in another paper that this gives softwaremany of the same attributes that appear in thephilosophy of science as problems. Scienceproduces hypotheses from theories which ittests. Software produces representations fromtheories which it incarnates and tests againstthe world. So software has similar problemsdetermining what is a good theory and howshould it be tested. The difference is that withsoftware you get more immediate feedback andone is not trying to extend knowledge butmerely embody knowledge.

What is interesting is that one cannot

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

120

demonstrate understanding by mere imitation.All that we have said about software merelyshows it to us as something that imitates theworld’s states in order to harmonize with it.But imitation even though it is a sincere formof flattery does not necessarily display trueunderstanding of the world and it is only byembedding understanding in programs do theybecome less brittle. Software by itself is verybrittle. Anything that is not explicitlyprogrammed into it causes it to fail. In order tocreate robust programs we must produce thosethat imitate the living and the knowing thingsin the universe. That is we must strive to makethem true systems that imitate the organismsthat Rescher points out are the source of ourideas of systems. Thus to give robustness tosoftware meta-systems we would extend Klir’sepistemological hierarchy by placing a level ofKnowledge beyond the generative level. Todisplay understanding we must go beyond themere imitation of data systems and producesystems with knowledge and flexibility. Thuswe arrive at the need for a living/cognitiveepistemological level beyond the generativelevel.

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

121

5.5. ARTIFICIAL LIVING KNOWLEDGE SYSTEM

To have deep understanding of a generativesystem requires a knowledge representationscheme to be overlaid on the generative system.That supplemental system displaysunderstanding of the workings of thegenerative system. It needs to ultimately beliving/cognitive or what is called Autopoietic.Autopoiesis means self-producing or self-organizing. Thus we posit that the next level ismost like an organism that is the root metaphorfor the system. It is not just a knowledge leveladded to the generative but the knowledge isactivated by being the self-knowledge of anautonomous being. This level actually allowsus to understand software better because it isthe next higher meta-level above softwarecalled the proto-technical and operating at thenext higher meta-level of Being which is WildBeing as defined by Merleau-Ponty.

When we think of software we notice that theattempt is made to define it in such a way to getrid of all the paradoxes like self-modifyingcode and spaghetti goto statements and others.When we move to the Artificial Intelligenceand Life level beyond software what we see is a

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

122

mosaic of techniques with nothing likemethodologies for us to hang our hats on. EachAI or ALife technique competes with all theothers in a bewildering array of sophisticatedbut very basic programming techniques mostlyrealized at the implementation level. Afterstudying this area for a long time I realized thatthere was a reason there were no equivalents tominimal methods for AI and ALife. That isbecause all the paradoxes that were pushed outof the software layer by the discipine ofSoftware Engineering were pushed into AI andALife. Each of these techniques revolvedaround some paradox in the software layer andbecause they were paradoxes they could neverbe resolved into a simple method that is easilyrepresented. All the monstrous aspects ofsoftware are collected here and combined tocreate specific techniques that will use the sideeffects of software to create imitations of life orcognition.

Another point about this level is that it usessoftware as a enabling machine instead ofhardware. Because of that it is free to createtheoretical structures that are completelydisconnected from reality. Thus Virtual worldsarise as the abodes of artificial living and

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

123

intelligent creatures that can be completelydisconnected from any kind of recognizablereality enforced by the world we live inmundanely. When this detachment from realityis combined with network technology then youget the advent of cyberspace as the realm of allpossible virtual worlds. Within these worldsartificial intelligent and living creatures roamwhich will be created by the opaque AI andALife techniques that arise from the paradoxesin the software layer. Combinations of opaquetechniques will render these creatures evenmore opaque and incomprehensible. Thus weare engaged in creating alien creatures withinour virtual worlds which we can neverunderstand. They are inherentlyincomprehensible since they are created usingall the techniques banished from softwareengineering because they are not trusted toproduce assured results in the real world.

Between the fantasy virtual world and the realworld stands what Geleterner calls the “mirrorworld76” which attempts to render an image ofthe real world in virtual reality. Mirror worldsstand between the real world and the fantasyworlds disconnected from reality. Mirror

76. Gelertner. Mirror Worlds

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

124

worlds give us more knowledge about theactual world than we would normally possess.They are worlds with superabundance ofinformation and real-time connection to theactual world. They are the mirror between ourworld and the fantasy worlds that depart fromreality in significant ways. We can say that themirror worlds are super-real and form thereversible interface between reality andirreality. For instance a fantasy world may be aworld where a fundamental assumption that ismade in the designated as real world is changedto see what would happen. These fantasyworlds give us the possibility of conductingexperiments in worlds that do not exist whichwill shed more light on the world that doesexist thought intersubjective agreement. It isthough mirror worlds and fantasy worlds thatour ability to socially construct worlds isunleashed into realms that it was impossible toenter before. These mirror worlds and fantasyworlds will have a profound impact on thedesignated as real world as a hyper extensionwhich when treated as part of the designated asreal world actually has profound effects on thatto which it is supplemented. This is because allof these worlds function in the realm of HyperBeing which as Derrida has shown has the form

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

125

of a supplement which changes the meaning ofthe thing to which it is attached.

At the this level generators become imitationsof living knowning organisms. That is theyimitate the most sophisticated systems weknow which are living creatures. Thus it isonly at this level that we have a true attempt toportray systems in relation to the root metaphorof organisms with cognitive capacity. Theseorganisms have a fundamental ability to learnand adapt. And this must be taken into accountin our model. Therefore an important part ofthis level of manifestation are the meta-levelsof learning which were first defined byBateson77. There are four of these meta-levelsof learning which scale the ladder of meta-levels until they reach the unthinkable whichlies at the fifth meta-level beyond all forms oflearning.

5.5.1.LEARNING SYSTEM

The knowledge system may learn about othersystems or may expand to cover a domain ofsystems rather than a single system of aparticular kind. Thus Learning systemssupplement Knowledge systems. When

77. Bateson Steps to the Ecology of the Mind

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

126

software systems display learning then theycease to be fragile with respect to changes intheir environment. A learning software systemmay also exhibit this learning with respect toitself producing internal images of itself andlearning about itself.

5.5.2.META-LEARNING SYSTEMS

These systems as Bateson shows learn to learn.Learning to learn means exploring new ways oflearning. This allows such a software system tocope with discontinuous changes in itsenvironment and within itself. When we learnto learn we increase our learning capacity andalso gain new learning skills. Such a softwaresystem would be very robust with respect to itsenvironment being able to cope withenvironmental changes and changes in itselfthat are unexpected.

5.5.3.META-META-LEARNING SYSTEMS

Learning how to learn can be supplemented byLearning at the next meta-level which meanschanging paradigms of learning how to learn.There may be different paradigms of how tolearn to learn which is to say differentapproaches to learning to learn. At this meta-

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

127

meta-level the difference between self andenvironment become irrelevant. Theenvironment and the self is considered a singlemeta-system where the environment learnsfrom the self and vice versa. At this meta-levels the differences in paradigms in learningbecome important and the ability to switchparadigms of learning so that new self-otherconfigurations become possible becomesimportant.

5.5.4.META-META-META-LEARNING SYS-TEMS

Bateson says that the next level is one in whichones whole worldview changes and that this isthe highest meta-level of learning. Beyond thisis only the unthinkable. It is at this level thatthe projection of the world by the self-othermeta-system is accomplished. The key featureof this level is the appearance of the emergentevent. The emergent event is the possibility ofa genuinely new thing to come into existence.A meta-system that operates at this meta-levelcould handle the appearance of the genuinelyemergent event. The genuinely emergent eventis defined as one that moves thought all fourmeta-levels of Being as it enters the clearing-in-Being and becomes part of the World.

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

128

An example of a Meta-meta-meta learningsystem is Western science. In school we aretaught things in a certain pedological style. Butas we encounter different teachers we realizethat there are different ways of learning and weattempt to learn how to learn in these differentways. For instance, there are ways of learningsuited to those who are language oriented,graphically oriented, and kinetically oriented.But we may combine these different ways oflearning to achieve particular learning effectsthat are difficult to achieve in any other way.As an example, audio visual materials may becombined with an exercise. But eventually aswe begin to achieve mastery of subjects werealize that we need to produce our ownsynthesis of the materials in order to showmastery. These syntheses appear likeparadigms in that they go beyond theinformation given to posit theories which arenot contained in what we have learned to learn.When we can advance these paradigms then wehave in effect reached the fourth meta-level oflearning where we advance the state of thediscipline in which we are engaged. Findingthese cutting edges at the fourth meta-level oflearning is very difficult. In fact one can saythat the whole problem of intellectual advance

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

129

is to locate these cutting edges and makeprogress with respect to the disciplines at thoseedges. Persons who do not learn to learn tolearn to learn cannot locate these cutting edges.Those do locate them and contribute to ourunderstanding at those cutting edges are theones who bring genuinely new things intoexistence. They are the ones who transform theworld.

5.5.5.THE UNTHINKABLE

The unthinkable is the meta-level beyondwhich we can create learning representations.

Notice that we have gone beyond Klir’soriginal formation to add levels of learninguntil we reached the unthinkable. We note thatthe unthinkable is equivalent to the infinitemeta-levels to which structural and processmodels ramify and fuse.

We have also noted that when we reach theinfinite meta-structures or meta-process modelsor the unthinkable we have reached a pointidentical with the “essence of manifestation”described by Henry that is the point of pureimmanence which never manifests.

The unthinkable may be considered identical

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

130

with the Buddhist non-concept non-experiencecalled Emptiness. Emptiness is itself empty. Itis the expression of the absolute middlebetween all nihilistic opposites. Emptiness isthe center of the vortex around which thedynamic of worldview projection at each of themeta-levels of learning revolves.Understanding Emptiness is essential tounderstanding the projection of the worldviewbecause Emptiness balances the whole actionof worldview projection.

5.6.WINGS TO INFINITY

Now we will explore each of the wings thattake us to infinity of process and structuralmeta-levels and see how they function at themultiple levels of the epistemologicalhierarchy. In what follows the word LEVELcan be replaced with any of the followinglevels we have discovered:

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

131

Figure 7:

5.6.1.STRUCTURAL LEVEL SYSTEM

For software the structure appears as multiplewhole-part relations exemplifying the relationsbetween patterns and forms.

5.6.2.META-STRUCTURAL LEVEL SYS-TEM

These whole-part relations become ever moreinter-embedded. At the first level of inter-embedding there are structures withinstructures.

5.6.3.META-META-STRUCTURAL LEVEL SYSTEM

At the next interembedding level there arestructures within structures within structures.This regress is infinite because we can imaginestructures embedded within each other to

Object

Source

Data

Generative

Knowledge/Living

Learning1

Learning2

Learning3

Learning4

Unthinkable

Models StructuresProcesses Form/Pattern

LEVELS:

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

132

infinite levels of logical typing. Ultimatelythese meta-levels of structures approach theunthinkable, which is a complexity of structurebeyond which the human mind cannotconceive.

5.6.4.MODELED LEVEL SYSTEM

Models are the temporal structuring by whichthe spatial structuring is controlled andchanged over time. We call these processmodels.

5.6.5.META-MODELED LEVEL SYSTEM

We can think of processes within processescontrolling structures over time.

5.6.6.META-META-MODELED LEVEL SYS-TEM

There is also an infinite regress for models ofprocesses as we can think of processes withinprocesses infinitely. These also approach theinfinity of meta-levels of process which isunthinkable.

5.6.7.FUSION OF PROCESS AND STRUC-TURE

There is an interference between our structural

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

133

and process model reifications which sees themas fused. This fusion represents the timespacecausal view of the system. In one fused viewstructure dominates time whereas in the othertime dominates structure. These are equivalentto the proto-imaginaries found in Spencer-Brown’s Laws of Form. We follow Merleau-Ponty in calling these points of fusion betweenprocess and structure chiasms or points ofreversibility. In fact, we will coin a new termcalled intaglio for the fused relation betweenprocess and structure. Intaglio is the engravingof an image within a stone so that it appearsthree dimensional usually though the other sideof the transparent stone. Many times theintaglio is frosted to produce the appearance ofsolidity to the image. There are sculptures thatexist made of glass where intaglio is used onboth sides to give the appearance of intertwinedfigures connected thought the medium of theglass. Many times these are figures of men andwomen intertwined in some exotic fashion. Inother words in these intaglio sculptures whatexists is a fusion of the figures thought theconnecting medium. The figures themselveshave no reality other than the medium thatholds the carving of the intaglio. So it is withthe fusion of process and structure. They do

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

134

not exist as separate entities but only exist asthe chiasm or reversibility between them. Wecan talk of this fusion at three levels.

• PATTERN/FORM CHIASM = structuralized forms• LIVING/COGNITIVE CHIASM = autopoietic systems• SOCIAL/PSYCHIC CHIASM = reflexive systems

Here we understand that form and patterntogether produces structures of forms and thatprocesses model these over time. But form andpattern also have an intaglio relation in whichone cannot be completely separated from theother. In that relation they exhibit interferenceswhich reveal the trace structures below thelevel of manifestation of form and pattern. Inthose trace structures the intaglio of form andpattern as interference patterns betweendisorder and order appear. It is this trace levelthat give us the foundation for theunderstanding of the autopoietic systems thatimitate living/cognitive organisms. The livingand the cognitive also produce a fusion ofprocess and structure that has a qualitativedifference from process or structure inisolation. The autopoietic theory of Maturanaand Varela display these features ofreversibility very well. However, these

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

135

theories break down when we move to considerthe social. Thus the social must be a new levelof organization that goes beyond theautopoietic. Autopoietic system maintain theirorganization homeostatically. A reflexivesystem is defined as the next level beyond theautopoietic and it is seen as heterodynamicinstead of homeostatic with respect to itsorganization. This means a reflexive system isecstatic in projecting the world and changes itsorganization dynamically to differentorganizational regimes. Thus the reflexivesystem can accept emergent events as the waythe worldview is projected changes radicallyover time. We say that such a fusion of processand structure lies right on the brink of theunthinkable because it accepts changes fromthe region of what is incomprehensible inrelation to it and deals with these changeswhich are called emergent events. At this levelthere is a chiasm between the social and thepsychic. From one point of view reflexivesystems are social but from another point ofview they are psychological. Thus there is apsychosocial dual-intaglio at the level of thereflexive heterodynamic system. Theunderstanding of heterodynamic systems is thefurthest reaches of all systems theory.

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

136

Each of these levels of dual intaglio that wehave been laying out are extensions of GeneralSystems Theory. They lay beyond theunderstanding of structural-process fusion.Structural-process and process-structural fusionexist at each level of the epistemologicalframework. We can view these merely asreversible process and structural modes of theframework or we can look beyond that to seethe qualitative difference between the fusedand the unfused aspects of structure andprocess. This qualitative difference points ustoward the special systems that emerge fromGeneral Systems Theory. These are thesystems theories regarding dissipative,autopoietic and reflexive systems. They appearas the fusion of process and structure from thetimespace perspective. This fusion has aqualitative difference that expresses itselfquantitatively as well78. We see here thatDissipative systems can be looked at from thepoint of view of the object, source, data, andgenerative systems. The Autopoietic systemcan be looked at from the point of view of allthese systems as well as from the point of viewof Knowledge and Life. The levels of learning

78. For further details see the author’s two series of papers On the Social Construction of Emergent Worlds and Steps Toward the Threshold of the Social (unpublished manuscripts).

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

137

are the province of the reflexive system and canbe considered up to the point of unthinkablity.

Now that we have defined the special systemsand their chiasmic fusion we can go back toconsider the generic fusion from the processand structural perspectives.

5.6.8.STRUCTURAL MODELED LEVEL SYSTEM

At each level there is a fusion whichemphasizes structure over process and onewhich emphasizes process over structure.These take on a different quality from thetimespace viewpoint that reveals the specialsystems that emerge from GST. However if wego back and look at the structural-modeledsystem that exists at each level from thespacetime viewpoint we see that when spacedominates time we get the equivalent of aknowledge representation system as in Prologwhere connections in space are more importantthan the processing in time. In knowledgerepresentation schemes the knowledge is codedinto structures which are unified by a singlelogical algorithm. There is only one processand multiple knowledge representations onwhich it does its work.

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

138

5.6.9.MODELED STRUCTURAL LEVEL SYSTEM

When time dominates space from a spacetimeperspective we see that we get a normalrelation in programming between processingand memory where the processing controls thememory rather than the configuration ofmemory controlling the processing. But herewe have an interpreted system where data andprocessing are more intimately connectedrather than a precompiled program whichoperates on completely separate data.

Knowledge representation that emphasizesspace over time is independent of interpretationwhich emphasizes time over space but stillallows fusion of data and processing. Thesetwo fusions are orthogonal to each other inevery case at each level of the epistemologicalframework.

So at the data level there can be control dataand non-control data. This means that non-control data is dominated by processes whilecontrol data dominates processes and containsin the data stream the structure that controlsprocesses.

At the generative level we see that data can be

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

139

coded into tables which control processing orwe can allow processing to contain many morecontrol statements and we can code thefunctioning of the software into source codealgorithm.

At the knowledge level we get the differencebetween Prolog which uses the unificationalgorithm to process static knowledgestructures and Lisp which does its processingon lists where the list itself can be the programbeing executed. Thus list processingalgorithms dominate the data representation butthey are fused. Prolog expresses this fusion inthe way it rewrites its knowledgerepresentation causing the unificationalgorithm to give different results from pass topass.

At the levels of learning we can eitheremphasize the materials being learned or thelearning process itself. If we emphasize thematerials being learned then the drive to learnis external and we call this teaching. If weemphasize the process of learning over thematerials learned then the drive is internal andwe call this self-realization which Maslowcalled a drive. This ramifies to all the meta-levels of learning. The drive to learn at any

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

140

meta-level can be either internal or external butwhatever the driving force learning has to bereciprocal and social. When we see thislearning mirrored within the individual we callthat the psychological realm. Thepsychological and the social are mirroropposites.

The fusion of the structure and processrepresents yet another way in which theunthinkable enters the epistemologicalframework. We already noted that theframework itself extends past the generative tothe knowledge level and on up the hierarchy ofthe meta-levels of learning to the unthinkable.Then we saw that at each epistemological levelthere are two wings of extension to infinity.The point of infinity for both wings of meta-level extension is the same and is identical withthe unthinkable. Now we see that each wingfuses with the other wing of theepistemological framework in a way that caneither be seen causally from the point of viewof timespace or in terms of separation from theviewpoint of spacetime. When we interpretedfusion from the point of view of timespace werecognized the levels of chiasm related to thegenerative system, the knowledge and living

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

141

level and the levels of learning. These wedefined as the special systems that emanatefrom General Systems Theory. The we turnedaround and saw that these fusions of the wingscan be seen from spacetime viewpoint insteadin terms of separation and we saw how thatmeant the difference between coding actioninto spatial configurations rather than writingalgorithms and we can see how these may beexpressed at every level of the epistemologicalhierarchy. But the reversibility between thespacetime and timespace views of fusion alsopoints us toward the essence of manifestationbecause of the qualitative and quantitativedifferences between these two views of fusionthat produce a blind spot in our view ofchiasmically fused aspects of systems. Wecannot understand easily the connectionbetween timespacelike fusion andspacetimelike fusion of the two wings that tendtoward and infinity of meta-levels.

Figure 8: Wild Being Hyper Being

Chiasm Finite Unthinkability process/structure Beyond the meta-levels internal of learning

Magicians meta-system proto-gestalt

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

142

Reversible Aspects Infinite Complexity process over structure Separate structure and structure over process process wings of interferences meta-levels external

In effect this shows that we need to understandbetter the extension of General Systems Theoryinto the realm of the special systems. Themeans for doing this is Software Engineeringbecause it is software engineering that providesthe connection to computability of systems.The special systems appear when we considerthe fusion of structure and process from thecausal or timespace perspective. They do notappear when we consider the spacetimeperspective on fusion. Instead there we get aview of the computability of the combinationof structure and process. Thus the specialsystems are bound to computability in amysterious fashion which is not clear as wereverse our perspective from timespace tospacetime emphasis. In effect this calls for thedevelopment of a computational meta-systemorthogonal to General Systems Theory. Thatcomputational meta-system is embodied inGoertzel’s Magician Systems first proposed inhis work Chaotic Logic. If we see theexpansion of the epistemological framework

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

143

toward the unthinkable and the spreading of thewings of meta-levels of structure and processtoward infinity as the dual opposites of thetimespace and spacetime views of fusion thenwe see that these two duals define an interfacewhich is orthogonal to GST within which thedual to GST must exist. That dual must dealwith chaotic processes in a structured waywhich is computable. Goertzel’s Magicianmeta-systems is the only candidate yet foundthat fulfills the conditions that this dual mustfulfill. And it turns out that the Magician meta-system is intimately connected to the specialsystems when it is expressed meta-algebraically. Magician systems also have thecharacteristic that they express formally all thedifferent kinds of Being. So magician systemsprovide us with a model of the balance ofheterodynamics and homeostasis within therealm of dynamical dissipation.

Therefore we see that General Systems Theoryas the theory of gestalts or showing and hidingsystems must have a dual which expresses themeta-system and meta-gestalt within whichgestalts form. We posit that this dual is theMagician meta-system and that it is definednegatively by the relation of the fall into the

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

144

essence of manifestation via infinite meta-levels and finite meta-levels to the embeddingof fusion between process and structure seen interms of spacetime and timespace. Thisreversibility between two views of fusion andtwo approaches to the essence of manifestationdefines possibility of the Magician meta-system negatively. It is by studying the relationof the Magician meta-system and the specialsystems in this context that we realize theirinner connection. And that connection is madepossible by computability and ultimately bysoftware as an embodiment within the matrixof spacetime and timespace.

GST is formed completely in the realm of PurePresence. But it attempts to deal withprocesses in terms of models of temporalstructuring as opposed to spatial structuring.Thus as a formal-structural system it gives us aview of processes while attempting to not fallinto Process Being. When we realize thatsystems are gestalts of showing and hidingprocesses we fall into Process Being and wemust reinterpret GST within that context.When we extend the GST epistemologicalframework we see that it truncates in theunthinkable which is either finite or infinite.

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

145

We have seen that this is an expression of theessence of manifestation and that is what takesGST to the third meta-level of Hyper Beingwhere the software essence also resides. Atthat level we see GST and SoftwareEngineering as duals. But then when we lookat the Epistemological Framework we see thatthere are nodes of fusion between process andstructure. We can see these in terms ofspacetime or timespace as we look at theembedding of the GST epistemologicalframework in the timespace/spacetime matrix.These two views show us the place of thespecial systems that emerge from GST withtheir chiasmic relations between fusedcomponents. But if we look at them fromanother angle we get a view of thecomputability of these fused structures seenexternally in terms of process and structure.These two views of fusion indicate thepresence of Wild Being which is the highestmeta-level of Being beyond Hyper Being.Within the gap between fusion and the essenceof manifestation the possibility of a dual toGST arises and we posit that this dual is aMagician meta-system that combines theinscription of traces with the computationalemulation of chaotic processes. We posit that

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

146

Magicians are the meta-system whichcombines all the special systems into a singleproto-gestalt from which all the gestalts ofsystems arise within the clearing-in-Being.Magician systems combine all the kinds ofBeing into a single computable formal meta-system. The meta-system of Magicians is thedual of the structural-formal system of GSTand it is software than provides the interfacebetween them as the means of conferringcomputability to both.

The discovery of a dual to General SystemsTheory is a surprising result when needs furtherstudy in order to explore all of its ramifications.That dual is a meta-system that defines thebasis for the emanation of all the systems thatarise within General Systems Theory. Thisdual of GST can only be appreciated from thepoint of view articulated by the definition ofthe different kinds of Being. But once thisperspective on systems that looks explicitly attheir ontological basis has been established itbecomes clear that GST needs underpinningsthat attach it to all the more fundamentalontological levels. Magician meta-systemsperform that role. They unify all specialsystems theories and provide a meta system

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

147

that defines their ontological basis. It is clearthat a major extension to the foundations ofGeneral Systems Theory has been proposedbased on these ontological ramifications of thefragmentation of Being which relates the mostgeneral system to a computationalinfrastructure and also to the thresholds ofcomplexity that provide the basis for theemanation of dissipative, autopoietic andreflexive systems.June 10, 1996

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

148

Figure 9:

O

S

D

F

SS

SD

SF

S2S

S2D

S2F

MSS

MSD

MSF

MS

MD

MF

SMS

SMD

SMF

M2S

M2D

M2F

Process MetaModelsStructural Models

A

L1

L2

L3

L4U

chiasm

chiasm

chiasm

MK

SMK M2K

SK

S2K MSK chiasm

dissipativespecial system

autopoieticspecialsystem

reflexivespecialsystem

ML

SML M2L

SL

S2L MSL chiasm

utopoietic

earning

nthinkable

Kent Palmer

Software Engineering Design Methodologies and General Systems Theory

149

Apeiron Press

PO Box 4402 Garden Grove, California 92842-4402

714-638-7376 [email protected]@[email protected] 714-638-0876

Copyright 1996 by Kent Duane Palmer

Draft #1 950710 Editorial Copy. Not for distribution.

All rights reserved. No part of this book may be reproduced in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage and retrieval system, without permission in writing from the publisher.

This book was set using Framemaker document publishing software by the author.

Electronic Version in Adobe Acrobat PDF available at http://server.snni.com:80/~palmer/homepage.html

Note: A later version of this chapter was published in The International Journal of General Systems, Vol 24(1-2), pp 43-94. It is copyrighted by Overseas Publishers Association (OPA) Amsterdam B.V. of The Netherlands under license by Gordon and Breach Science Publishers SA

c:\wildsoft.src\tastle_2.doc

Wild Software Meta-systems

Software Engineering Design Methodologies and General Systems Theory

150

Library of CongressCataloging in Publication Data

Palmer, Kent Duane

WILD SOFTWARE META-SYSTEMS

BibliographyIncludes Index

1. Philosophy-- Ontology2. Software Engineering3. Software Design Methods

I. Title

[XXX000.X00 199x]9x-xxxxxISBN 0-xxx-xxxxx-x

Keywords:

Software, Design Methods, Ontology, Integral Software Engineering Methodology, Systems Theory

DRAFT