Posts Tagged ‘niam’

Why An Event is Not a Collision

Tuesday, August 26th, 2008

 

If you search the Internet with the phrase “What is an Event” nobody is able to give an answer. Most of the time an Event is simply “Something that Happens“. If we look at the Dutch Language an Event is called a “Gebeurtenis“. The Dutch verb “beuren” means “to bear“. In Dutch an Event is a Bearing.

Bear: O.E. beran “bear, bring, wear” (class IV strong verb; past tense bær, pp. boren), from P.Gmc. *beranan (cf. O.H.G. beran, O.N. bera, Goth. bairan “to carry”), from PIE root *bher- meaning both “give birth” (though only Eng. and Ger. strongly retain this sense, and Rus. has beremennaya “pregnant”) and “carry a burden, bring”. Many senses are from notion of “move onward by pressure.” O.E. past tense bær became M.E. bare; alternative bore began to appear c.1400, but bare remained the literary form till after 1600. Past participle distinction of borne for “carried” and born for “given birth” is 1775. Ball bearings “bear” the friction; bearing “way of carrying oneself” is in M.E.

Strangely enough an Event is related to the Birth of Something. An Event is Happening when Something is Set into Motion by Pressure (Tension). An Event is an Act of Creation.

Most of the time an Event is associated with a Very Short Duration, an Explosion. An Event can take much longer. An Event can take one second or thousands of years. A Movie is an Event. The Great Pyramid is an Event. The Earth is an Event. You are an Event.

An Event changes its Intensity all the time. A Concert has a Start and an Apotheosis. The Great Pyramid was almost forgotten but at this moment many books are written about the mysterious background. An Event is a Wave or a Vibration and every Event has its Unique Pattern.

An Event has a Bearing (the direction or path along which something moves or along which it lies), it moves into a certain direction. An Event extends and compresses in Space/Time (A Hurricane). An Event is Born, Expands, Compresses, Dies and Dissepears. It follows a Life-Cycle.

If an Event is a Vibration it can be described by a combination of Harmonics and Sub-Harmonics. Dependent on the type of Vibration an Event “dies out” (Damping, converges to a limit) or never stops.

When Events are Vibrations or Waves they are able to Add Up. When an Event is “combined with” another Event a new Event is created. This is called Cause and Effect in the World of Particles.

The world of Particles was created by the Greek Philosopher Aristotle. He denied the existence of the Dynamic by stating ‘There cannot be motion of motion or becoming of becoming or in general change of change’. The Greek based their view on the world on Logic and Euclidean geometry. They considered the word As IT IS.

When you look at the Event of the”man who has just been run over” by a car, The Greek View is of two Colliding Parts. In this view somebody is Responsible for the Accident. When you look at the Event from the perspective of the Wave the Accident is an Addition of Two Waves that are producing a Peak of High Intensity. There is no one to blame. The accident “Just Happened”. It was an Act of the Force of Creativity, The Elan Vital of Bergson.

Let’s have a look at the Design of Information Systems.

A long time ago the Designers of the Computer left the path of the Analogue Computer. An Analogue Computer is based on Waves. A Digital Computer is unable to represent Real numbers and Irrational numbers (π). It is also unable to represent many rational numbers (1/3). Many “real” problems are happening in Real and Irrational Space.

Digital Computers are representing the Dynamic World in a Static Way. A Program and a Database are a Static Representations of Reality. The Static changes into the Dynamic because of the Regular Pulses of the Clock of the CPU (Central Processing Unit).

NIAM is still by far the most “advanced” way to define an Information System. It is hardly used because many designers don’t have the ability or have lost the ability to Listen to and to Analyze Sentences that are Spoken by the User of the System. The result of not-using NIAM is a highly chaotic internal structure of the Information System. The System is not representing Reality at all.

NIAM uses the concept of the Elementary Fact (an Elementary Event), A Man is-run-over-by A Car. An Elementary Fact is a connection between two Nouns (Man, Car) and a Verb (Run-Over-By). Mostly the Verb is forgotten. The Static is still Dominating the Dynamic. The Car (A Movement) and the Man (A Movement) are dominating The Accident, The Run-Over-By. Strangely Enough the Memory of the Car and the Man fade away much faster than the Memory of the Accident. A War is remembered. The Soldiers are forgotten.

I am afraid we have to wait a little while until the Very Strong Wave of the Particle has finally died out.

LINKS

“What is an Event”, About Whitehead and Deleuze by Steven Shaviro

Bergson, Mathematics, and Creativity by Pete A. Y. Gunter

About Events by Jerymy Dunham

About NIAM

 

About Model Driven Software Development

Saturday, August 23rd, 2008

In the beginning of Software Development Programmers just Programmed. They did not use any method. The program was punched on a stack of cards and the computer executed the code. It took many days to get a small program running.

In the early 1980s text editors were introduced. In this stage somebody else called an Analyst wrote down Specifications and the Programmer transformed the specifications into a Program.

The Programmers and Analysts had to fill in forms with a pencil. The forms were typed by a central department and returned to them for correction. Much later programmers and analysts were able to use their own text editor.

The Specifications and the Programs were represented by many competing diagramming techniques like DFD (Data Flow Diagrams), JSP (Jackson), ERD (Entity Relationship Diagrams, Bachman), NIAM, Yourdon, Nassi Schneidermann and ISAC (Langefors). The Programmers and Analysts used Pencils and Plastic Frames to draw the Diagrams.

The data about the programs and the databases were stored in a Dictionary. A Dictionary is a System to store and retrieve Relationships. The Dictionary Software generated Copybooks that were included into the (COBOL) Programs. One of the most important Dictionary Packages was called Datamanager.

Datamanager used a so called Inverted File Database Management System. The Inverted File or Inverted Index is optimized to store and find Relationships.

At that time there were many types of Database Management Systems (Hierarchical, Network, Relational and Object). They were optimized for a special type of storing and retrieving data.

Between 1980 and 1990 the competing Methods and Diagram Techniques were fused and expanded to cover many domains of IT. The Dictionary (Datamanager) was also expanded to contain many more Relationships.

Around 1990 the process of integration was finally accomplished. At that time Information Engineering (IE) of James Martin was the most comprehensive Methodology available on the Market.

Texas Instruments implemented IE on a mainframe computer and called it IEF. IE was also implemented in IEW (Knowlegdeware) and Excellerator (Index Technologies). Computer Assisted Software Engineering (CASE) was born.

You have to understand that Graphic User Interfaces and PC’s were at that time in their infancy. It was impossible to manipulate diagrams. We used mainframes and Dumb User Interfaces (Forms) to define the models but we got a long way with it.

The big innovation came when IBM announced AD/Cycle in 1990. They created an Alliance with Bachman Information Systems, Index Technology Corporation, and Knowledgeware to create the most advanced Model Driven Software Development Tool ever made.

The kernel of AD/Cycle would be a complete new Repository based on the Relation DBMS of IBM called DB2.

At that time ABN AMRO was in a merger and we had the idea that an alliance with IBM would help us to create a new innovative development environment. I was involved in everything IBM was doing in its labs to create AD/Cycle.

The project failed for one simple reason. The Repository of IBM was never finished. The main reason was the Complexity of the Meta-Model of the Repository. A Relational DBMS is simply not the way to implement a Datadictionary (now called a Repository).

Another reason the project failed was the rise of Object Oriented Programming and of course the huge interference of Microsoft.

To save the project we had to find another repository and used the original Repository of Knowledgeware called Rochade. Rochade is still on the market. It is still a very powerful tool.

The introduction of the PC and the Activities of Microsoft generated a disaster in the development process of software. We had to move to square one and start all over again.

The Destructive Activities of Microsoft began by selling isolated disconnected PC’s to Consumers (Employees are also Consumers!).

At that time we did not realize this would cause a major drawback. We even supported them by giving all the employees of the Bank a PC, to Play With.

What we did not know was that the Employees started to Develop software on their own to beat the backlog of the central development organization. Suddenly many illegal (Basic) programs and databases appeared and we had to find a way to avoid Total Chaos.

The Solution to this problem was to introduce End User Programming Tools (4GL’s) like AS and Focus.

To provide the End Users with Corporate Data we had to develop Datawarehouses.

We were forced to create different IT Environments to shield the Primary, Accountable, Data of the Bank.

We had to develop a New Theory and Approach to support a completely new field of IT now called Business Intelligence.

We had to find a way to solve the battlefield of IBM (OS/2) and Microsoft (Windows) on the level of the PC Operating System.

We had to find a way to connect the PC to the other Computer Systems now called Servers. The concept of Client/Server was developed.

We had to find a way to distribute the Right Data on the Right Computer.

What Happened?

We were Distracted for about TWENTY YEARS and all what we where doing is Reacting on Technological Innovations that were Immature. We did not know this at that time.

The Big Innovation did not happen on the Level of the Method but on the Level of the Infrastructure. The Infrastructure moved from the Expert Level to the Corporate Level to the Consumer Level and finally to World Level. At this moment the MainFrame is back but the Mainframe is distributed over many Computers connected by a Broadband Network. We are finally back at the Beginning. The Infrastructure shows itself as a Cloud.

In every phase of the Expansion of the Infrastructure new Programming Languages were constructed to support the transformation from One level to the Other level. Every Time the Model had to be Mapped to another Target System.

The IBM Repository failed because the Meta Model of the Repository was much to complex. The Complexity of the Model was not caused by the Logical Part (The Technology Independent Layer) but by the Technical Part of the Model. It was simply impossible to Map the What on the How.

The only way to solve this problem is to make the What and How the Same.

This is what happened with Object Oriented Programming (OO). Object-Oriented programming may be seen as a collection of Cooperating Objects. Each object is capable of receiving messages, processing data, and sending messages to other objects. Each object can be viewed as an independent little machine with a distinct role or responsibility.

The rise of OO started in the early 1990s. At this moment it is the major programming paradigm. OO fits very well with the major paradigm about our Reality. That is why it can be used to Design (What) and to Program (How). OO comes with its own Method called UML.

What is Wrong with OO?

The first and most important problem is the problem of the Different Perspectives. Although OO fits with the Western Model of Reality, We (the Humans) perceive Reality in our own Way. Every Designer experiences another Reality and it is almost impossible to Unite all the Perspectives.

To Solve this Problem we All have to Agree on a Shared Model of Reality. This is mainly accomplished by defining Standard Models of Reality. The problem with Standard Models of Reality is that they are EnForcing a Certain Point of View.

Enforcing one Point of View to many People generates Opposition and Opposition starts a Process of Adaptation. The Major Effect is a very Complex Implementation of an Inconsistent Model of Reality. The What and the How are not the Same anymore.

OO is creating the Problem they want to Solve.

What to Do?

The long process of integration of the Methods until the 1990′s showed that there is one major issue that has to be resolved when you want to create software.

This Issue is called Terminology. Its main issue is to Define What We are Talking About. If we don’t agree about what we are talking about (The Universe of Discourse) we will always be talking about what we are talking about. We will create Circular Dialogues.

Eugen Wüster was the creator of the Science of Terminology. His activities were taken over by Unesco. It founded a special Institute to coordinate Terminology in the World called Infoterm.

There are four distinct views on Terminology:

  • the Psychological View

Concepts are Human Observations. They have to be based on Facts.

  • the Linguistic view

Concepts are the meanings of general terms. They have to be Defined.

Concepts are Units of Knowledge. They have to True.

Concepts are abstractions of kinds, attributes or properties of general invariant patterns on the side of entities in the world. They have to be Related.

Sadly, elements of all four views are found mixed up together in almost all terminology-focused work in Informatics today.

We are Confusing even the Science to avoid Confusion.

LINKS

About the History of Terms

About CASE-Tools

About the History of Terminology

 

 

A Practical Approach to Create a Balanced Community

Wednesday, July 25th, 2007

The current generation of programmers are doing what Edsger Wybe Dijkstra hoped not would happen. They are the cause of the mess we are in. They forgot to keep the balance between structure (Thinking) and meaning (Emotion).

The Managers of the Programmers are “out of tricks” and have become cynical. They don’t believe there is a way out. They are “muddling trough”, reacting on every major critical event with an impulsive re-action. It will be hard to convince them that there is a solution to their problems.

The major target are the Users within or the Customers of the companies. They feel very stressed and don’t have a clue why this is happening to them.

Their asset is that they Know How they are doing their job and they are able to Articulate What they are Doing. The only thing they don’t see is the Cycle. They are Part of a Whole without seeing it. This is normal.

When we ask the User what they are doing we give them a simple tool to paint a picture of the flow of their activities. If they have done this we generate the processes that are supporting them instantly. This will motivate them to go on.

In the next step we make a connection between Action and Meaning. We ask the user to define the meaning of the terms they are using. We could use Wiki. Wiki makes it possible to start a dialogue about the meaning.

This dialogue will create mutual understanding (Consensus) and in the end a Shared Convention, a mapping of meaning from person to person, culture (community, context) to culture (community, context). The next step is to transform Meaning into Structure.

The person that was an expert in the transformation of meaning to structure was Sjir Nijssen. He developed a method called NIAM. NIAM has generated many dialects called ORM, FORM, RIDDLE, FCO-IM and DEMO.

The basic idea of all these methods is to analyze human communication in terms of the sentences we speak and the commitments humans make to the each other.

NIAM takes out of a sentence the verbs (Action) and the nouns (Structure) and of course the numbers and creates a semantic model (the so called Universe of Discourse).

What Nijssen understood was that a computer is able to register Facts (reality we agree upon). The facts are stored in memory. If we all agree about the facts we can use them to start reasoning.

When we know what the user is doing and what he means we can move to other actors he has defined in his activity-diagram. We just perform the same process over and over again. Every time a new user (actor, role) is added we restart the dialogue about meaning.

At a certain point in this process of inquiry we will notice that the meaning in the context is stabilized. It has turned into a shared convention. What we also will notice is that a faint cycle (or a cycle in a cycle) becomes visible.

It will be full of strange loops and useless activities. Some people in the context will produce and others will just throw away what the others are producing. They don’t know because they don’t communicate on the level of their community.

This is the moment to start a new dialogue. The dialogue of Reflection (Why?). We are able to show to the actors in the community the whole. We call this tool a Monitor.

We will give them the opportunity to start a shared process of innovation (using the imagination). We can give them tools to Explore, to Design new activities and to Analyze the Facts (find patterns). We can even give them tools to Play with (games, simulator). All the time the Monitor will show them the state of their joint effort. I am certain the community will clean itself, get into balance, with joy.

In communities and organizations and of course society there are many stable invisible infrastructures. The visual activities of the users have to be connected to these layers. This has to be done by programmers. They have to define interfaces. User-Data is converted into messages that jump out of the layer when a human interference (mostly a decision) is really needed.

The consequences of this approach will be enormous. Many people will be out of work but they will be needed in the next step of Collective Innovation.

Want to read more about Dijkstra