Objects in Holistic Programming

Objects are the entity of analytical software development. There is object oriented analysis. So, does it makes sense to use the term object within Holistic Programming? It does, if we rething about what role objects play in software development.

Essentially, objects in object oriented programming are a tool to group data structures and program behaviour (aka. functions), somehow related to the entities we perceive within the domain of the software. Only technical and procedural aspects brought tons of restrictions how to deal with these objects - for the sake of better management of the software code. If we replace all these acquired restrictions with a knowledge management system that exactly "knows" about each and every little part of an object and thier dependencies, we can return to the original idea, and treat objects as representitives (or placeholders) of domain entities within our software, and group our knowledge along these identified entities.

An object in Holistic Programming is a named entity that can have attributes and functions assigned. Functions are pieces of software code executed when the object receives a certain message. And: an object can inherit it's attributes and functions from any other object.

I intentionally do not use the terms "class" and "instance" in this chapter. Please read about them in "Inheritance Everywhere".

Important for building a knowledge representation with objects is, that we can change the object definition with any learned piece of knowledge. There must not be any "static" structure that would hinder us to describe our knowledge along the structure we have in mind at this single moment we are thinking about it. Furthermore, the software system we are using to describe our knowledge with must support every change we have in mind and do apply.