Object Oriented Design Patterns
Object Oriented Metaphysics Through Design Patterns
The Structured Programming Methodology
As computers were introduced it was found that programming them was quite difficult. There were all kinds of different standard codes to program each type of computer differently which had different command sets and different ways of processing themselves; and often more than one kind of programming used for different parts or layers of a computer system. Early programming of computers was often done in assembly language - a basic compiler-like assembler that made programming possible using names for the data variables and addresses in the program. Thus you could write programs that were not all numbers and the assembler would translate that into all numbers so the computer could understand it. There were a few formal languages available early on, but only Fortran and Cobol seemed to last. Fortran used mnemonic naming of variables but was still not easy to code in. Cobol was advertised as user friendly but wasn’t really because of the complexity of three divisions of code that all had to be right and agree with each other. Developing Cobol was actually part of the process of developing Structured Programming, discussed below [Cobol was designed to make modular structured programming easier].
A few people had a knack for programming and with a little practicing they could accomplish very complex programs. But the haphazard rules about developing software led to unpredictable results; particularly when various programs were used. All kinds of errors and often strange and untraceable errors occurred.
Businessmen and scholars gathered around the problem at various conferences and meetings. The businessmen wanted control of the issue - they needed good programs that were under their control [businessmen needed to control] - but they did not understand computers [at all]. But scholars wanted science. The computer appeared to them as a system that could be used to push science on and into everything - then the scholars would have power.
This led to the compromise formulation of the Structured Programming methodology. The most important issue recognized by everyone in these studies is the problem with data.
In an office the data is on your desk or in your files so there is a boundary around it. I mean people can sneak in and look at your data or change your data at night - but that is clearly and visibly a violation of all kinds of rules.
In a computer the data of anyone can be available for everyone else [at least too available for the good of the organization]. So there had to be rules inherent in the system, in the programming language design, and in the systems analysis methodology, that protected data in one module of the system from interference from any other module. I think my discussion clarified the basis for a host of different rules at a number of different levels of the computer system that are referred to as “data hiding”. The meaning is that data belongs to a given system and module. Hiding means the data cannot be seen or be accessed by another module except under specific conditions based on the fact that the other module needs to see, or use, or change the data.
This set of data hiding rules applies to any data processing method or system of the computer. Compilers must be capable of giving you this necessary control of data. Programs and systems have to offer such data protection. No code, in any, language, should ignore this need. It was a conclusion of the structured design effort but most code designers agreed that data hiding is an absolute requirement with or without the rest of structured controls. Agile methodologies make everything in the process more visible [no black box processes] but data still needs to be protected in the processing itself.
Picturing Modeling styles for Systems Design
The main issue that led to the development of structured programming was the use of the goto command to move about the code as the program was running. This was the pride and joy of capable programmers at the time and they felt it as a sort of sign of their genius that they could write spaghetti code that was wonderful in how it worked. The problem was that it was not predictable.
So then there was structured programming [the goal was defining functional code that was then scientific - the functionality was defined, per Yourdon, through cohesion and coupling]:
, B.S. Applied Physics, City University of Hong Kong (2020)
There are seven types of cohesion, namely –
Co-incidental cohesion - It is unplanned and random cohesion, which might be the result of breaking the program into smaller modules for the sake of modularization. Because it is unplanned, it may serve confusion to the programmers and is generally not-accepted.
Logical cohesion - When logically categorized elements are put together into a module, it is called logical cohesion.
Temporal Cohesion - When elements of module are organized such that they are processed at a similar point in time, it is called temporal cohesion.
Procedural cohesion - When elements of module are grouped together, which are executed sequentially in order to perform a task, it is called procedural cohesion.
Communicational cohesion - When elements of module are grouped together, which are executed sequentially and work on same data (information), it is called communicational cohesion.
Sequential cohesion - When elements of module are grouped because the output of one element serves as input to another and so on, it is called sequential cohesion.
Functional cohesion - It is considered to be the highest degree of cohesion, and it is highly expected. Elements of module in functional cohesion are grouped because they all contribute to a single well-defined function. It can also be reused.
Lecture notes on software engineering - VSSUT
First this list itself [which was in Yourdon’s book] is an admission that everything you had the computer do was not necessarily functional — nor could some necessary things be forced into a functional process [you can’t pretend]..
I had to teach from a textbook on structured project management in which both structured, and object oriented programming, were defined as based on this list of types of cohesion. The textbook author, obviously, had no concept of what object oriented programming was about. The rule of minimum coupling [minimum passing of data between modules] between any two modules and strong cohesion [defined by Yourdon as single functionality] was the basis of structured programming design. Also see: Yourdon and Constantine
An important part of structured method of designing computer software was to divide up the processing so each part of the process had only one input and one output [the final modules were then called atomic {meaning singular} processes]. And also, in the processing, the modules input was supposed to be converted to the output in a singular process [the black box rule was supposed to allow the programmer to use science and math style programming for everything - hidden to the users so they could not complain about the scientific methodology]. When I describe it that way, I realized that the structured method was specifically meant to put totally Newton Only science as the rule of all program design, in order to force Newton Only “physics style” for any work on solving systems analysis problems generally.
The modules were developed from what they called a data flow diagram. First the whole process was defined as though it was a function. Then key [functional] parts of the whole system were recognized and put into a separate data flow diagrams that then indicated how the data was processed in each part of the whole system - always assuming some kind of cycle in order to use the computers ability at cyclic processing. Then each subprocess was divided up separately on separate diagrams. You continued dividing up the processing; but stopped when you reached an atomic process [one input, one output and a singular process to convert the input into the output {non-functional processes just needed to be broken down to a simple as possible but based on data handling needs}]. You can then hook the separate final processes together to get a complete diagram of the processing. You could show that to the users but they probably would barf. The programmers had to know what such a chart meant in coding. But for the sake of structure they might only see some of the smaller drawings that related to modules required of them.
Doing the Data Flow Diagram correctly insures a process methodology that forces a “structured” approach at every step. Hermeneutics was not mentioned or even considered for use. Hermeneutics is science, but like much “soft” science it was not Newton Only. So these scientific programming people did not trust hermeneutics and so they threw out all the understanding of context and methods of interpretation that went with hermeneutics [with over a thousand years of the development of analysis]. I think that completely shunning hermeneutics was a big part of the complete failure of structured programming design. The other big problem was not talking to anyone as you developed the software. People in general might not be “scientists” but they certainly know a lot that we the developers need to know about their system [See: Hermeneutics in Agile System Development].
To counter some of the worst problems with structured programming, agile programming requires the programmer has to take a bath and talk to the customers. There needs to be some way for the customer to see what is happening and critique the project work. A spiral methodology [there are many specific spirals but in practice the activities are very similar - just different names {polymorphs}] is used to allow the team to see the progress in small steps where they see visually what the process is doing. The spiral works better with object oriented programming since individual objects of the program make a good way to divide up and become layers in the spiral; and can be easily demonstrated to the users. The spiral I have drawn starts at Prototyping.and Evaluating stage. Then there is an Analysis stage; followed by a Planning stage. The final stage in the loop is to Build this Module and then get Customer Comments. These stages are repeated over and over; with each loop being involved with a new and different module [or object] of the project. The modules are usually about a weeks worth of effort. If a module will take more time, that time is allowed to the worker or team. A module is complete when the telephone calls from users stop [communication with the user is constant]. At the end of a major project we sat around and checked out and cleaned up our computers; until the phone calls [for changes we would make] stopped. Them we started another major project.
Spiral Methodology a part of Agile
My book on system design [Hermeneutics in Agile Systems Development] starts out with hermeneutics as a basis for all analysis. Structured programming designers wanted the results to be scientific and they felt the context [a big part of hermeneutics] of the system would drag unscientific [and old] concepts into the process. But the context is the meaning. By leaving out almost all of the context [some of the context does sneak through anyway] you lose much of the meaning behind the project. The context must be there as part of the analysts and programmers have to be trusted about deciding which context to eliminate [or change] because it is unscientific. Without the context the new code cannot match the real world that the previous code [or process] was based on.
The context is a major part of the things I talk about in “Through the Looking Glass” where I define the characteristics of the process as “Context Calculus”. These are not functionally based but more like solving differential equations. Also, many issues are housekeeping of data structures of the processes for the sake of the data. My suggestion for controlling data through a process I call Formation Data Context - examining details of the change in context of data items as its relationship to other data changes in the processing. This can be done in analyzing a system as information [data] changes its relationship to other information [data] in the system.
Taking the context out almost completely makes the basis for our system into a total abstraction. But then it cannot match the real world. Abstraction is on the order of generalization [this is not a complete synonym but shows the target region]. As with generalization the abstraction represents a amalgamation of many things - but the amalgamation ‘itself’ does not exist anywhere.?If it did that real thing would not be abstract. 'Abstraction visualized' interpreted as an entity is very dangerous since it is almost always extended in design thinking into becoming the ultimate real. Then the true reals are lost in the conversation. One of the problems here is that the degrees of freedom uncertainty cannot be overridden by abstraction.
We also need to know what particular data looks like and how it is used in our minds. How we do it, effects what is done. This is the work of the minds object orientation, and our instantiated memory objects that represent individual visible memories. But the uninstantiated archetype class [that the linked list of instantiated memories is extended from] is where the data linked string of polymorphs is processed through search and sort in-place [it is a linked list] and in the archetype linked list [which is instantiated] to provide an understanding of the grouped meaning. This is part of background processing [the subconscious that everyone is afraid of] that provides the calculus [the first derivative {of the change} of the data in the list] for our memory processing.
This part of our mind is not a spook or demon [Freud's discussion of the subconscious made it demonic - but it is mostly processing in what appears to be advanced processing systems to analyze the data without interfering with our conscious mental activities], but such a search and sort algorithm [the sort may be partially based on age of data but also based on association with other {specific} archetypes] that provides a first derivative analysis of the minds polymorphic data [changes in context lead to the ability to recognize the place that data belongs in memory processing]. It is to help with the things we cannot see or do not see or recognize unless they 'move or change'. It is the change in the thumbnail image with respect to other thumbnail data, of a memory archetype linked list, that is a clue to what is happening [changing] now [is r-this search analysis]. Our eyes provide some of the change to improve our vision by moving our focus direction as we search. But by the differential context calculus analysis of the archetypes we can see the thumbnail image set in a more detailed and meaningful way with respect to each other [particularly finding the change with respect to the relationship to different but related archetypes]. This is part of context calculus. This approach may help to clarify AI data, particularly the list of changes or its equivalent, so that the most relevant [based on the derivative with respect to changes "specifically" recognized differences] is regarded first and above what would be less important issues by this context calculus analysis.
Agile methodologies start about the same time as object oriented programming. I don’t think that is a coincidence.?Object oriented programs are divided up into factors that are like the factors that people divide up the universe, because the universe is object oriented. Dividing the work up by using objects is natural and meaningful. So explaining a program can make sense to the user since the modules are like real objects everyone is familiar with [and not based on functionality that is not as recognizable as reality]. The programs and how they work were better understood by the programmer, too. I have mentioned that before, relating to the reusability of object oriented code; because it makes sense and, what it is doing, is understandable [see more below]. So discussing the project issues is easier for the programmers but much easier on the customers
[The ideas associated with abstraction have helped us understand how extreme “perfection” could be harmful - at times - and particularly with a certain kind of understanding. But we need to remember, in this real universe, no planet is a perfect sphere, then how can we picture a perfect universe. But, since it is not and can never be “real and perfect”, we need to be careful of using the perfection standard as some kind of necessity {especially with structured methodology}. Perfection {which structured programming and political correctness often claims} as we mention here, tends to be from scientific abstraction {or maybe it always is}. There, then, will never be a pothole on any road; and babies will never again wet their diapers. It seems that object orientation allows a sense of imperfection {parallel to reality} that does not destroy the effort {it is not perfect but we know that} - but actually that makes the effort real. The fact that scientific abstraction is not real {it is a complete abstraction}, makes any idea from perfect scientific abstraction, useless and meaningless [and structured program problems demonstrated that].
[The other side of this coin, that we try to hide, is revealed in the old saw: perfection is the destroyer of the good. Object oriented design sees the world as it is and also describes it that way. Once you see it, the scientific abstraction no longer interferes {it has lost its teeth}. The good works in spite of not being perfect {perfect in an abstracted scientific sense}. And you understand because OOP is real, not total abstraction. And our object oriented minds can tune into the object oriented world around us.]
So somewhere in the time frame there was an effort to develop what came to be called object oriented programming. They would also need to develop a programming design method that could be used for object oriented design. The original point was to develop programming systems that could do things like draw pictures, using the concepts that were learned by trying to draw pictures on a computer screen, with a computer. This led to an understanding of how “things” [all or most things] worked that meant there was a different way to envision “things” in order to see how “activities” got done [a quick definition of what object oriented programming is about].
But there also was the cryptic [cryptic to people who could not be familiar with computer programming] writings of Jung. His writings on how the mind works played a part in how object oriented programs were developed. The developers of object oriented programming did consult these cryptic writings [of Jung]. So there is something about how the world works [How do you set variable definitions that copy the way things work or the way they are visualized as associated together in the world?]; and there is something about how our minds work [the processing that copies the descriptions of Jung].
Jung's work was seen also as helpful in applying a more philosophical basis. The fact that Jung felt the mind already worked this way related to the fact that, that indicated its relationship to how the real world works. The brain had to recognize or reflect the real world or we were all lost. And part of Jung's contribution was that his psychology made this form of object oriented?analysis some kind of real. Structured design did not reflect the real world - only the 'ideal abstracted scientific world' [that did not actually exist anywhere].
This attempt to see how the world works when you are drawing pictures actually captured something in how the world works in general for this development group. They were sensing that this way of breaking down structures of things and activities {with various parallels showing up for various types of activities.} was getting at something more foundational than mere compiler improvements. And, it agreed with Jung’s descriptions.
[My own experience in object oriented programming, is the fact that when you are doing OOP the results seem so much more related to the real world that you are working with {a better?through the looking glass}; and the programs themselves are far more understandable as to what they are doing in the real world than are the total "black box" sense of what you are doing in the "scientific" abstraction of structured programming. There is no comparison in the two feelings: I understand the object oriented program - but let's test that structured program a couple more times, just to be sure.]
The link between the two - the mind and the way things work in the "real" world - is important. The real world works this way, rather than like the scientific modules of structured programming, which should be a clue to what I think 'is' the great "Western Philosophical" problem. They sent everyone searching for the perfect [scientific] abstraction. They should have sent them out to look for the object orientation in reality. The world is made of objects not abstracts. The abstraction they have is, science, and the mathematics of science; and was not working as a basis for a philosophy. Science abstraction, in fact, was too generalized to actually match the 'particularity' of reality.
Polymorphic and Object Oriented
My thesis here is that world that we are dealing with, in front of us, is polymorphic [See: Tau te Ching] and therefore object oriented.
There is an infinite number of these categories possible [can be done - be part of reality]; But, Object Oriented reality, does not include every conceivable [abstract-able] category.
The Development of Object Oriented Programming
Through the Looking Glass
Having programmed successfully in object oriented mode, I find the link between the two - that is how things work in the mind and the way things work in the "real" world - is important. The real world works this object oriented way, rather than like the scientific modules of structured programming. The meaning here is that: Generalizing can never even begin to understand the particular [their god - science abstraction - is a god of everything perfect - but my God is the God of reality - even of me with all my flaws - the necessity for perfection {in others} makes PC truth a painful crushing and destructive religion based on the perfection implied in scientific abstraction - it is not real or authentic].
Object Oriented Design via UML - Briefly
See: Hermeneutics
Objects are based on classes that have names, methods [activities], attributes [properties]; when an object is instantiated it can be extended from a class or more than one class, so it takes on the properties of the class or those classes. But you can also alter those inherited methods and attributes [and add methods and attributes]. This is like all fish species have similarities but with different particulars; and each species can have its own set of properties and even activities but still hold on to the properties of all fish.
The methods and attributes can be visible to other objects or only visible locally [inside the object]. This is part of a sophisticated data hiding with objects. Then objects can “talk” to each other; but mostly they ask the other object to do something [change something, move to some place, process a variable, move some data somewhere, or return a value]. The sense of this programming is that the objects you have in your program are all together [like a public meeting] and you then can have them tell each other things you want done, and they do that for each other.
The fact that some scientists are saying there are no patterns in the universe is from the Newton Only assumption since patterns [other than the black body default energy distribution - which is for almost no constraints {there is aways gravity and usually the ambient air pressure in the atmosphere} in the wave equation for entropic energy distribution] cannot be recognized under a Newton Only metaphysics. That default "pattern" distribution looks more like an unpattern than a pattern. Singular processes cannot produce patterns since all patterns are similar to eddies, that require non-singularity, which is in eddies a reflection of the action. Patterns if they are not just accidental would have connections and relationships that are purposely manifold meaning definitely not singular,
But under Newton Only eddies can not be present [in the analysis] since the very presence of an eddy makes the process non-singular. An eddy is a second output - and it is a memory of the action itself [Shannon Entropy] making it meaningful. When you are paddling your canoe, watch how this happens. The motion of the paddle against the water pushes water backward and the reaction [singular] is the forward motion of the canoe. But eddies are also forming around the paddle - a second output. Sorry, they should not allow people to paddle their canoes since it is a violation of Newton Only. Of course, if the eddies are patterns in the universe and they mean something which is understood, then once you recognize the world of harmonics, then there are meaningful patterns. The meaning comes from the harmonics [the entropy of Shanon]. The meaning of eddies is the memory[Shannon Entropy] of the paddling process.
Abstraction. particularly Newton Only abstraction, needs to scrub the context from the process. That is to get at the important and hopefully singular process that science can attest to. But the eddies [or the like] need to be counted as context - not process - so we can examine the paddling of your canoe scientifically. But the fact that the part you study is limited to a singular part of the action does not make the action as a whole, singular. The eddies are part of paddling and cannot be separated from it in reality - only in the facts that science wants to investigate. By clearing away all context for Newton Only [simplistic] science you make the science less real by pretending the eddies were not “really” there. They just don’t understand!
This is my Father’s World
Being able to recognize natural patterns is just part of harmonics [the study of patterns in nature]; and all reality seems to be built around some such a set of patterns [it happens that way - even though there is no “Newton Only science” for it]. These patterns can not be recognized by such science or its questions, since everything is particular, and there is no Newton Only science to that. There is a world of difference, based on viewpoint, between singular and particular. In science the goal is to represent all sand as alike so that can be put into the equation in a solvable form. That is the path of singular processing in science. Engineers can adapt these results to the production line.
But in object orientation, particular refers to the fact that every grain of sand [or any instantiated object] is separate [an early step toward molecules - but the molecules are all alike] and different and unique. This is important in object oriented terms but does not compute well in structural methodology.
In spite of [or is it because of] particular-ness there are patterns to object oriented reality. The two work together under the definitions of object oriented thought. The basic difference is that instantiated objects are only and always individual and particular. And the often uninstantiated parent class is an abstraction of all the children in “the” process. The instantiated classes [objects] are the ones being actively used in the program. The uninstantiated class, that the instantiated objects are defined by [extended from], are then the abstraction for that set of items. If a new class is instantiated as another extension of a parent class that parent class is, in a sense even more of an abstraction of the child objects. This hierarchy of objects matches something related through polymorphism to tree-trunk-branch-limb-stem-leaf conceptualization; which is different in different stacks but in a parallel conceptions of each object stack. This is a different abstraction than what we are talking about in scientific abstraction. The hierarchies have similar form but the relationships between the layers is different. There still is some mental processing similarity - so the same name “abstraction” can apply. This is, sort of, but not completely [there is more here than that], Plato vs Socrates.
Candle Meditation for True Peace
Genesis 1 [The Object Oriented Creation of the World]
King James Version
Sitz im Leben:?I see a priest, perhaps around the time of winter solstice, that might take the families in his community out for a camp out, to a camp grounds or something like a camp grounds, or to a public park. Then he would set up a group of murals that could be held up by the fire light. He needed to bring some small lights for a light show of the 3rd verse. He would then recite the verses in the darkness, using the camp fire to light the murals, that were raised near the bonfire with the verse that applied; but so everyone could see them.
1?In the beginning God created the heaven and the earth.
2?And the earth was without form, and void; and darkness was upon the face of the deep. And the Spirit of God moved upon the face of the waters.
3?And God said, Let there be light: and there was light.
4?And God saw the light, that it was good: and God divided the light from the darkness.
5?And God called the light Day, and the darkness he called Night. And the evening and the morning were the first day.
6?And God said, Let there be a firmament in the midst of the waters, and let it divide the waters from the waters.
7?And God made the firmament, and divided the waters which were under the firmament from the waters which were above the firmament: and it was so.
8?And God called the firmament Heaven. And the evening and the morning were the second day.
9?And God said, Let the waters under the heaven be gathered together unto one place, and let the dry land appear: and it was so.
10?And God called the dry land Earth; and the gathering together of the waters called he Seas: and God saw that it was good.
11?And God said, Let the earth bring forth grass, the herb yielding seed, and the fruit tree yielding fruit after his kind, whose seed is in itself, upon the earth: and it was so.
12?And the earth brought forth grass, and herb yielding seed after his kind, and the tree yielding fruit, whose seed was in itself, after his kind: and God saw that it was good.
13?And the evening and the morning were the third day.
14?And God said, Let there be lights in the firmament of the heaven to divide the day from the night; and let them be for signs, and for seasons, and for days, and years:
15?And let them be for lights in the firmament of the heaven to give light upon the earth: and it was so.
16?And God made two great lights; the greater light to rule the day, and the lesser light to rule the night: he made the stars also.
17?And God set them in the firmament of the heaven to give light upon the earth,
18?And to rule over the day and over the night, and to divide the light from the darkness: and God saw that it was good.
19?And the evening and the morning were the fourth day.
20?And God said, Let the waters bring forth abundantly the moving creature that hath life, and fowl that may fly above the earth in the open firmament of heaven.
21?And God created great whales, and every living creature that moveth, which the waters brought forth abundantly, after their kind, and every winged fowl after his kind: and God saw that it was good.
22?And God blessed them, saying, Be fruitful, and multiply, and fill the waters in the seas, and let fowl multiply in the earth.
23?And the evening and the morning were the fifth day.
24?And God said, Let the earth bring forth the living creature after his kind, cattle, and creeping thing, and beast of the earth after his kind: and it was so.
25?And God made the beast of the earth after his kind, and cattle after their kind, and every thing that creepeth upon the earth after his kind: and God saw that it was good.
26?And God said, Let us make man in our image, after our likeness: and let them have dominion over the fish of the sea, and over the fowl of the air, and over the cattle, and over all the earth, and over every creeping thing that creepeth upon the earth.
27?So God created man in his own image, in the image of God created he him; male and female created he them.
28?And God blessed them, and God said unto them, Be fruitful, and multiply, and replenish the earth, and subdue it: and have dominion over the fish of the sea, and over the fowl of the air, and over every living thing that moveth upon the earth.
29?And God said, Behold, I have given you every herb bearing seed, which is upon the face of all the earth, and every tree, in the which is the fruit of a tree yielding seed; to you it shall be for meat.
30?And to every beast of the earth, and to every fowl of the air, and to every thing that creepeth upon the earth, wherein there is life, I have given every green herb for meat: and it was so.
31?And God saw every thing that he had made, and, behold, it was very good. And the evening and the morning were the sixth day.
Public Domain
After the reading, the priest would then have everyone gather around the bonfire and eat barbecued sausages with bread, and in those days some wine.
Jupiter Flash Mob
The verses in Genesis, themselves, are a good description of creating the universe with harmonic [object oriented] constraints. The building blocks of that universe are the constraints on the "system". Notice the results of this construction are?objects?that are the things that appear [are born] and fill this universe. The objects are built from the previous contents of the system that they are in, by the defining constraints. This set of verses are an embarrassment to the structured mind that can only conjecture a big bang construction of a structured universe. It seems any other construction violates the conservation of mass, energy, and momentum; or maybe Newton Only. In the Genesis version the universe is built by feeding on its own chaos to produce meaningfulness under the constraints set by God.
There is an infinite number of these categories possible [can be done - be part of reality]; But, Object Oriented reality, does not include every conceivable [abstract-able] category.
Object Oriented Development
The object oriented programming world is a totally different process than?the structured design world. In the object oriented world we are working with analysis, code, programs, and complete systems that are close to through the looking glass with the real world. Somehow the construction of the OOD processes did hit a bullseye on reflecting reality; because it is also reusable. I am always bothered by textbook authors that insist code cannot be reused. Thy are left behind, in the structured generation of computer programming. We always reused our object oriented code for new projects.
And with object oriented code the programs, the code, even the development process is closer to the reality you are working with than anything involved with structured code development. In fact there are people developing object oriented code patterns that each work in any of a certain kine of process [kine - a Hawaiian Pidgin word that captures the concept of completely untyped types as a basis of starting out, and later naming, a new system or process and its parts [kine] - but of which you start out knowing nothing about]. You finish the reuse of this code by just adding code for the specific needs of the process you are coding for.
So we have this itching by many to make use of that possibility. Developing design patterns is not by creating new patterns but is by recognizing recurring patterns that are so similar to each other that they can be represented by a standard code methodology that gives just enough flexibility to be used easily in many, many programs by programmers; with just minor additions to the code.
Proof that the universe is object oriented!
At present the ultimate development of the object oriented universe is Design Patterns.
[Design Patterns is related to its predecessor?Business Process Modeling?{Also see:?Co-Designing}]. Our Modeling on the C0-Designing project was using Design Patterns that were based on Erickson and Penker. The design patterns we used are on pages 10-12 near the end of their article.
Business Process Modeling
From: Erickson and Penker
Business process modeling is a way to evaluate the business processes of an organization and determine possible improvements. The people who developed the BPM processes changed some standard OOD drawings to produce a new standard drawing {like the above diagram} for a basic design pattern for one of the defined business processing areas. My first experience with design patterns is when I was working with Peter Rittgen on Internationally Distributed Teams. We were using the Erickson and Penker methodology of UML.
Typical Design Patterns
One example of the many methodologies that are doing this, is demonstrated on the page: The Catalog of Design Patterns. The table on the left side of this page has guidance on finding other pages of this online work. The top selection advertises books on the subject that you could buy - see the top subject?Premium Content. These folks {and there are a host of efforts in this area} are redesigning how we picture the universe - but mainly to write code. My goal is to use this methodology to better recognize and understand the universe.
When you first step into it, it is a little shocking [they have bent the pictures a different way]. But the patterns they are picturing are based on reality - and demonstrate reality better than the scientifically abstracted Structured Analysis and Design. The Builder system of the methodology was chosen by me because their web page approaches these issues in a very understandable way.
This is a set of designs by one of the groups that is doing this kine of thing [the same group that the discussion above was about]. I have chosen one lower level diagram to show how the patterns work in use. The?Builder?web page shows how this is used to develop code for such a system. My ultimate interest is to develop patterns that effectively describe and analyze the universe [pattern as algorithm basis].
Director
House Builder
The Code Base - Structure
The details for the rest of the coding are based on the particular contexts in the system you are working on.
From:?The Builder
The basis of these patterns [and many like them by other authors] is the new metaphysics that I am pointing to [but I want to "envision the universe" - not just write code] -?I am saying - if these kine of patterns can be applied to all the universe - "That is the Universe" - the new metaphysics.
Patterns for Interaction Design are also a basis for reusable pattern code. These are patterns that you use over and over as you build web pages [in an object oriented background code]. See:?PatternFly Pattern Library for Interaction Design.
We demonstrate this process by an example from PatternFly for developing a Login Page
Login Page
Overview Design
Code: The login page allows a user to gain access to an application by entering their username and password or by authenticating using a social media login. For additional login methods, see:
Usage scenarios related to the login page include:
领英推荐
Basic Login Page
This is a general layout of a common login screen. A user can input the username and the password together to log in.
Also see:?How to Write a Good Design Pattern. The whole OOD process is seemingly so close to the reality that it is attempting to reflect, there is a definite strong possibility that reality can be described by such systems; and much more accurately than scientific abstraction. The previous work in patterns is for developing code, but that same process can reveal how, such object oriented entities or activities, can be the basis for philosophical content [in an object oriented {and contextual} philosophy]; whether that is as an entity or as an activity. The final written documents will be text [and maybe some pictures] describing the philosophical meaning and activities of the object oriented world, in object oriented terms. To get a start on how to do this see. particularly:?Where do design patterns come from?
Also a little?polymorphic thinking?is needed to translate their method of developing reusable code, into a new method of developing philosophical descriptions of reality - but the two are quite parallel patterns [polymorphism].
Just imagine that you are starting a new project and you need a design [or some designs] of things and what they do in the project. Pick something you might do at home, or at work , or as a volunteer. Then picture object classes [people or machines] that could help you do this project. What kind of object classes [people or machines] could do this for you. Then design these classes by describing who or what they are and what kine things they do [here we are philosophizing not coding the computer]. Then tell each of these class objects what they are to do in the proposed project [attempting generality so the pattern might be used for other similar projects], in simple instruction steps [as simple basic and necessary instructions]. The thought in the set of commands is that the devised object would be able to understand notes on a sheet of paper. Ultimately - these instructions act as a reminder of how the objects act in a process. The language then needs to be altered to be a philosophic discussion of the process with an object oriented base.
You should start by avoiding a computer or programming in the system so you move away from present Computer Design Patterns - to make sure you are considering new territory. You end up with instructions like the design pattern described, above, use but it does not need to be in code [just some kind of standardized language]. The standardization is to make it generally useful. In the future, we, who see the world this way, will need to develop standards for such practice so they can be used to develop a general understanding of the universe . . . reverse engineering the universe via post-structuralism [object oriented post-structuralism].
The Future of Philosophy
Philosophy should become a description of the objects and meaningful patterns in the universe. Abstraction is a way of opening up new ground of thought; but it should not be considered as the transcendental, since abstraction is purposely straying from what is considered basic truth. If we base our philosophy on such abstraction - then there are, by our definition, no meaningful patterns in the universe - and then we are lost and drowning in a philosophical soup. That, structured methodologies, needed abstract as the center of the thought and the project, which meant the transcendental of the effort could not be real.
Why the present Metaphysic is Not Acceptable
The present metaphysics is basically wrong and unusable since it is really based on abstraction as the source - the transcendental. And then reality is not allowed to be used to disagree with these assumptions. When an abstract transcendental is allowed to be primary truth to judge everything else, then we are not able to function in reality. That is why we need mindfulness meditation. We reattach to simple everyday realities, and accept that they are real and meaningful [patterns]. Then we can return to functioning in reality. Abstracts can have meaning and they allows us to recognize problems in our understanding; but abstraction can never be allowed to override reality [that is an internal conflict - and endless loop].
The Advantages of an Object Oriented Metaphysics
Object oriented metaphysics maintains our connection with reality [at every step]. There is also plenty of abstraction in our mind with the development and use of linked lists that combine various objects together in various kine of lists. Structural thought and writing restricts [maybe even prevents] the mixing of metaphors. The rules of the structured configuration - which is limited by phenomenological concepts of a given culture - prevent many kine of abstraction and therefore restrict the possibilities of abstract thinking and definitely writing. Object oriented is absolutely attached to reality more than any other basis of philosophy or religion. But there is also a great possibility for abstraction within and guided by the system.
[As an aside for developing the subject, the Hawaiian Pidgin language seems based on the mind much more than English. Hawaiian Pidgin, as a very recently created language, and should definitely be closer to the archetypes of Jung then a language like English. Pidgin is a vernacularly developed language and has not had scholars and teachers to mold it into something more pressing toward scholarship than archetypes or their working processes [which previously were not recognized]. The English language has had hundreds of years of teacher “rulers”, to form into a formal language. The formation of a formal language was more important than philosophy or progress. So we have a formal language that does not equate well with Jung’s archetypes, and does not seem to be that acquainted with reality. Henry VIII and his attitude, character, and dimensions seem to be more important than anything else to the development of English.
Here are some Hawaiian Pidgin words that seem to be closer to Jung’s archetypes then anything in English.
kine: allows abstraction of almost anything [which is like the flexible character of the archetype linked lists].
ohana: no-one is left behind [in a philosophy this would refer to “nothing” is left behind - all instantiated objects are always included - but some will be lost in the bottom of the pile].
talk story: this is the idea of just talking - just conversation for conversation. The basis of this conversation is conversation. The archetypes are actually set up to be able to carry out such a conversation. [Turing equates intelligence, literally, to talk story.].
Thus the minds object orientation algorithms [Jungian], and adding analysis through some Hawaiian Pidgin, are the key to object orientation as a metaphysics.]
SONGS 139 [Hawaiian Pidgin}
God Know Me An Take Kea Me
One David kine song fo God,?fo da main music guy
1 Eh! You Da One In Charge!
You check me out all da time
Fo see how I stay inside.
Az how you know eryting bout me.
2 Erytime I sit down o stan up,
You know bout all dat.
No matta you stay far away,
You know wat I tink.
3 From da time I wake up
Till da time I go sleep,
You see wea I go.
You know awready how I do stuff.
4 Eh Boss, even befo
Someting come outa my mout,
Fo real, you know eryting I goin tell!
5 You stay all aroun me fo take kea me.
You put yoa hand on top me
Fo no let notting happen to me.
6 Da way you know me,
Blow my mind!
You know me mo betta
Den I know me!
7 Eh, no way I can go some place
Wea yoa Spirit no stay!
No mo one place fo me run away to,
An you no stay dea too!
8 If I go up to da sky, you stay ova dea.
If I spread out my bed
Inside da Mahke Peopo Place,
You stay ova dea too.
9 If I get da kine bird wing fo fly,
From da place wea da sun come up,
To da mos far side a da ocean
Wea da sun go down,
Fo live dea,
10 No matta, cuz you stay dea too!
Even dea you goin show me wea fo go
An grab me wit yoa hand
Fo no let me fall down.
11 If I tell, “Fo shua, da dark goin hide me!”
O if I tell, “Da nite goin cova up
Da light fo me!”
12 No matta—
Cuz even nite time,
No stay dark enuff
Fo you no see me.
Fo you, da nite time stay light
Jalike da day time.
Fo you, in da dark o in da light,
No make diffrence.
13 Eh God, you wen make me
An eryting inside my body.
Wen my muddah come hapai,
You wen put togedda all my parts.
14 I like tell you dat you da greates,
Cuz wen you wen make me
You wen do spesho kine tings fo me,
An ho! dass skery!
Eryting you make, stay awesome!
Inside I know dass da trut
Fo real kine!
15 Da way my bones come togedda,
You wen see um real good,
Dea inside my muddah
Wea nobody can see um.
Was jalike I stay deep unda da groun
All da time you put
Da diffren piece togedda.
16 Befo I born, you see my body
Come togedda.
You wen write down inside yoa book
Wat goin happen ery day I stay live.
17 Eh God! Az real deep,
Da way you tink bout me!
Da stuff you tink bout me,
No can count!
18 Wen I try fo count um,
Dey mo plenny den da sand
On top da beach!
Still yet, erytime I wake up,
You stay right dea wit me!
19 Eh God! I like fo you kill da peopo
Dat do bad tings!
All you killas, get outa my life!
20 Dem guys, da ony time
Dey talk bout you,
Az wen dey like scam somebody.
Dey use yoa name fo do
Any kine pilau kine stuff,
Cuz dey stay agains you.
21 Eh! You Da One In Charge!
Da peopo dat hate you,
Dey da ones I goin hate too!
Da peopo dat go fight you,
Dey good fo notting!
22 I hate dem guys to da max!
Dey da ones I stay agains.
23 Eh, God! Check me out
Fo see how I stay deep inside.
Go tes me, an know wat tings
I tink bout dat bodda me.
24 If you see anyting inside me
Dat bodda you, go tell me.
Show me da right way fo go
Fo get da kine life
Dat goin stay to da max foeva!
? 2020, Wycliffe Bible Translators, Inc. on behalf of the Pidgin Translation Group
How do we Change the Metaphysic
We need to demonstrate that object orientation will work as a metaphysics. It appears, from extant writings from the past [like the Bible], that object orientation was the metaphysics for many cultures of the past. This may have slowed their [scientific] progress since they did not have the a complete Jungian conception of how the archetypes worked in order to allow object oriented abstract thought; that, I think, is necessary for progress. Actually Jung’s archetype processing [and adding understanding the unseen data processes [the real subconscious] that must be functioning behind the scenes in the archetypes to make the mind work] provide that the object orientation of the mind is ready for a great deal of abstraction [what I call context calculus - a first derivative of the comparative relationship between two linked lists] - and that abstraction is also constrained to reality [by the archetypes processes]. Because the structure, analysis, and processing of archetype linked lists, can provide useful results that include recognizing reality and OO abstraction.
We, also, need to convince people that almost all of their deeper problems are caused by the Newton Only metaphysics of our Western culture. There is no way in the Newton Only approach, to reasonably study or resolve what is called cyclic activity. Cyclic processes are not singular so the present science says pass on it all. Take two pain pills and go to bed - and take a course in yoga. I see Newton Only as a hindrance to creativity, development, and progress since it is peculiarly based on one single dimension of all scientific endeavor. There is only one singular process of Newton Only.
Object Oriented Systems and Contextual Systems
There was a complaint on a blog about the good and bad of object oriented programming: It complained of all the”garbage” that had to be carried everywhere in the object oriented program. That garbage is the context that is written into the object oriented processing. The writer must be used to lean code of structured design. That code may be efficient in processing functions; but it is not real and not truly through the looking glass. This is the context that structured code ignores, since it might not be scientific. In object oriented programs it is required in the design of coding. You write the context into all the class definitions. This is where object oriented becomes reality. When we in living normally in reality, we move about carrying a lot of context with us. Partly this is in our wallet. But it also is all the numbers and names we keep in our memory. So the clerk asks us for seven different numbers that are required on a form being filled out, we can recite them all, sometimes. Sometimes we need to consult our wallet. Having all that context included [as who I am] is part of making object oriented code real. So object oriented code could be called contextual code [and object oriented philosophy could be referred to as contextual philosophy].
A Path to Escape the Pain of More Structuralist Abstraction
The biggest problem with modern "science" is that they have become political and their political philosophy has been developed into a very narrow philosophical base. They say that their approach to everything is reality, but the extremely liberal character of their political philosophy does not pass as science by any scientific rules. It is even more-so because they challenge ideas from others by claiming violations of Newton Only; but these liberal [non-singular] philosophic ideas are defined as Newton Only. Hypocritically they insist their opponents have to follow the very narrow Newton Only metaphysics for everything; but they don’t have to [they are in the clique]. For their philosophy of science they add Marx, Engels, and Gramsci, who are strangely considered Newton Only when there are always lots of inputs and lots of outputs to all their philosophical arguments. Our proposal for metaphysics is not so patently hypocritical. Amen!
Amy Grant?
This is my Father’s World
?