Cybernetics oriented programming (CYBOP)
Autori
Viac o knihe
Informationen und Wissen gewinnen in der heutigen Gesellschaft zunehmend an Bedeutung. Software als eine Form der Abstraktion von Wissen spielt dabei eine entscheidende Rolle. Die Hauptschwierigkeit beim Erstellen von Software besteht in der Überbrückung der Diskrepanz zwischen menschlichen Denkkonzepten und den Erfordernissen einer maschinellen Darstellung. Herkömmliche Paradigmen des Software-Designs haben ihr Abstraktionsniveau in der Vergangenheit erheblich steigern können, weisen allerdings immer noch etliche Schwächen auf. Diese Arbeit vergleicht und verbessert traditionelle Konzepte der Software-Entwicklung durch Denkansätze anderer Wissenschaftsgebiete bzw. Phänomene der Natur -- daher ihre Bezeichnung: „Kybernetik-orientiert“. Im Ergebnis dieser interdisziplinären Herangehensweise stehen dreierlei Empfehlungen: (1) eine strikte Trennung aktiver Systemkontroll- Software von purem, passivem Wissen; (2) die Verwendung eines Schemas zur Wissens- Repräsentation, welches auf einer Doppel-Hierarchie zur kombinierten Darstellung von Teil-Ganzes- Beziehungen und Meta-Informationen beruht; (3) eine getrennte Behandlung jener Wissens-Modelle, die einen Zustand verkörpern, von solchen, die Logik enthalten. Zur Darstellung von Wissen gemäß dem vorgeschlagenen Schema wurde eine XML-basierende Sprache namens „CYBOL“ definiert und ein dazugehöriger Interpreter genannt „CYBOI“ entwickelt. Trotz ihrer Schlichtheit ist CYBOL in der Lage, Wissen komplett zu beschreiben. Als Prototyp zum Nachweis der prinzipiellen Funktionsfähigkeit des CYBOP-Ansatzes wurde „Res Medicinae“, ein „Free-/ Open Source Software“ Projekt, ins Leben gerufen. CYBOP bietet eine neue Theorie des Programmierens, die durchaus vielversprechend zu sein scheint, da sie nicht nur Mankos bestehender Paradigmen beseitigt, sondern vor allem flexiblere, zukunftssichere Anwendungen ermöglicht. Durch das leicht zu verstehende Hierarchie-Konzept werden Fach-Experten in die Lage versetzt, selbst aktiv an der Anwendungs- Entwicklung mitzuwirken. Die in klassischen Software-Entwicklungs-Prozessen zu findende Implementierungsphase entfällt.