SMALL, SIMPLE, OBJECT-ORIENTED INFORMATION MODELLING TOOLS

OBJECTS

Object-Oriented; OOT object-oriented technology; OOP object-oriented programming; OOPL objecoriented programmig languages

OBJECTS

The term Object, is a key element of both the GST and OO concepts. An object in GST is often called an entity; however the terms are defined synonymously and refer to a fundamental building block of which the system is comprised. Objects under GST can range from the most simple (a grain of sand) to extremely complex (the universe). For one to understand a system, one must understand the objects or components from which it is made and how these objects behave.


In OO, the notion of the concept of objects lay within earlier work on Semantic Models dating back as far as Chen’s Entity Relationship model and many of the earliest investigations into this area refer to objects as entities, using the terms synonymously and seeking to define entities as objects in the real world. As the idea, of object-oriented was conceived, however, the opposite became true and objects were defined as unique entities – real world occurrences of unique, isielf-contained items. This is not surprising since the basis of much of this research is to accurately pattern systems development activities to the behavior of real world data elements.

After objects, class is the next major construct of both the General Systems Theory GST and OO paradigm. In GST, class is represented as the fundamental hierarchy of systems. Objects in the same frame makeup a set. Aristotle was one of the first scientists to be credited with the classifying of the approxi­mately, then known one thousand plants and animals. His work simplified the division of animals into animals with backbones and red blood and those without backbones and no red blood. He also classified plants by size and appearance. Later in the 18th century, Linnaeus reclassified plants by structured arrangement. In 1971, Boulding represented his hierarchy of major system levels by modeling a structure of system complexity based on nine levels.  Again, the level of abstraction determines the level of complexity. Systems theory provides an abstraction tool for decomposing and aggregating object into manageable components.

In OO, paradigm objects are also organized hierarchically into classes. Objects that are of a similar type or kind are combined into common types. Since any object will contain certain characteristics which make it unique, it will also contain characteristics which will be shared in common with other objects. Then objects possessing the same or similar kinds of characteristics are grouped together in common groups called classes. A class is a logical grouping of objects based on criteria parameters of the characteristics possessed in common by the objects as a group, object contains characteristics which provide for the object’s unique distinction from other objects, and characteristics which help to identify the object as a member of a group of objects with the same or similar characteristics. The common characteristics become the basis for the objects to be classified.

Within GST systems are decomposed into subsystems and aggregated into supersystems. More primitive systems can be combined to create higher order systems. The more primitive systems become subsystems of the higher order systems.

While an obvious hierarchy of systems exists (the ultimate system being the universe), still, almost any system can be divided and subdivided into subsystems and sub subsystems depending upon the particular resolution level desired.

Depending upon one’s level of abstraction, the higher order system may be considered a supersystem of the component subsystems.

A similar mechanism is utilized with the GO paradigm*. Classes may be grouped into higher classes called superclasses or divided into subsets called subclasses. Classes, superclasses, and subclasses are the vehicle for grouping and subdividing objects into logical categories based on the instance variables, which are the criteria for the separation and/or accumulation of objects. In some definitions an object can belong only to one class, while in others, objects can be a member of multiple classes.
 

The real power of the GO approach lies within the ability to define instance variables which create new classes from existing objects. Therefore, more primitive objects can be grouped to­gether to form more complex objects. Conversely, complex objects can be divided into subclasses creating more primitive objects.

*Go! is a multi-paradigm programming language that is oriented to the needs of programming secure, production quality, agent based ap- plications. It is multi-threaded, strongly typed and higher order (in the functional programming sense). It has relation, function and action procedure definitions.

THINGS, ELEMENTS

The province of philosophers?

As a Zoologist, I studied Structure & Function in the Animal Kingdom, Evolutionary Processes, Taxonomy and Classification. As a Human Anatomist, I studied and taught Structure, Anatomy, of the Human Body – including its functional and surgical dimensions. With a background in neuromuscular system research – I focused on the musculo-skeletal and nervous systems. Rather than just setting out the anatomical detail (as set out in text books and atlases of anatomy) I wanted to provide ideas and concepts to the students – such as “systems”. I have come to think about systems alot.

In 1986, I devised a Schema (a graphical symbolic) map of the Human Nervous System in which I attemted to decompose the system into all its named elements and then recompose the system into the fewest key elements, arranging these into a meaningful array/map. Creating “categories” for the principal elements and functional sets: Neuraxis, Grey Matter (Central Core Grey, Cortical Grey and Sub Cortical Grey etc etc).

In 1987, I devised a computer-based “Browser” – a version of the paper-based Schema that eliminated the (intrusive) annotation lines and which implemented my idea of hyper-graphics where a graphical object as part of the schema could be selected with the mouse-pointer and hyperlinked to definition, detail and reference.

So – as an Anatomist and Educator, I was concerned with the Naming of Things, their Classification in a Scheme of Things, and their arrangement (through processes of embryogenesis, fetal and neonatal development) into a normal (or abnormally, pathological) system.

I subsequently worked with an accomplished and gifted games programmer – who was interested in high-level computer languages – to create a graphical programming “Tool” to reproduce the ‘HNS Browser’ but in a way which was essentially generic i.e. for the creation and programming of things, graphical elements, objects with situation and behaviour in a system. With support from IBM UK New Technologies Group – we initated an R&D project which included an exploration of OOP employing the C++ OOPL.

SEE: https://ibmhursleymuseum.info/hursley-products-sw.asp

We subsequently discovered the EIFFEL OOPL and with support from its creator, Professor Bertrand Meyer, we developed a series of prototype hypermedia authoring tools and applications – including ‘The Media Language’ and ‘GARDEN’.

I have otherwise employed various OOPls including ‘DELPHI’ and ‘Java’, and most recently – ‘JavaScript’ ‘in the development of the ‘Frameworks’ Thinking Tool.

Object-Oriented Programming & Design

OOP and OOD are the subject of many and considerable published works in the academic world of computing science and software engineering.

The OOParadigm, OOP and OOD were fashionable in the 1970s, through the 1980s and became – backwards and forwards – the subject of debate and criticism, even going out of fashion.


OOP

SEE: Alan Kay on the Meaning of “Object-Oriented Programming”
“I thought of objects being like biological cells and/or individual computers on a network, only able to communicate with messages (so messaging came at the very beginning – it took a while to see how to do messaging in a programming language efficiently enough to be useful).”

SEE: Bertand Meyer Object-Oriented Software Construction. 1987 Prentice Hall

The recent article by Professors Madsen and Moller-Pedersen is well worth a read.

OOD

Object-oriented design (OOD) is a method for software design that focuses on planning a system of interacting objects to solve a problem.  It involves defining classes and their functionality, enabling objects to run the same implementation of the class with its state. 

SEE: “Object-Oriented Analysis and Design”, Second Edition 1994, Grady Booch, Addison-Wesley

A Modern Perspective on OO Programming, OO Codoing and OO Design


The recent article by Professors Madsen and Moller-Pedersen is well worth a read.

SEE: “What Object-Oriented Programming Was Supposed to Be”, Ole Lehrmann Madsen and Birgar Moller-Pedersen; Onward! 2022: Proceedings of the 2022 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software Pages 220 – 239

Leave a Reply

Your email address will not be published. Required fields are marked *