Cybernetics Oriented Programming (CYBOP)
An Investigation on the Applicability
of Inter-Disciplinary Concepts
to Software System Development
Paperback: 536 Pages
Publisher: Tux Tax; 1st edition (January 19, 2007)
License: GNU FDL
Dimensions: 16.8 x 24.0 x 3.2 cm | 6.61 x 9.45 x 1.26 inches
Weight: 1100 g / 2.43 pounds
In today's society, information and knowledge increasingly gain in importance. Software as one form of knowledge abstraction plays an important role thereby. The main difficulty in creating software is to cross the abstraction gap between concepts of human thinking and the requirements of a machine-like representation.
Conventional paradigms of software design have managed to increase their level of abstraction, but still exhibit quite a few weaknesses. This work compares and improves traditional concepts of software development through ideas taken from other sciences and phenomenons of nature, respectively - therefore its name: cybernetics-oriented.
Three recommendations resulting from this inter-disciplinary approach are: (1) a strict separation of active system-control software from pure, passive knowledge; (2) the usage of a new schema for knowledge representation, which is based on a double-hierarchy modelling whole-part relationships and meta information in a combined manner; (3) a distinct treatment of knowledge models representing states from those containing logic.
For representing knowledge according to the proposed schema, an XML-based language named CYBOL was defined and a corresponding interpreter called CYBOI developed. Despite its simplicity, CYBOL is able to describe knowledge completely. A Free-/ Open Source Software project called Res Medicinae was founded to proof the general operativeness of the CYBOP approach.
CYBOP offers a new theory of programming which seems to be promising, since it not only eliminates deficiencies of existing paradigms, but prepares the way for more flexible, long-life application systems. Because of its easily understandable concept of hierarchy, domain experts are put in a position to, themselves, actively contribute to application development. The implementation phase found in classical software engineering processes becomes superfluous.