Die Konzepte und Methoden der Objektorientierung haben sich in der IT-Welt mittlerweile breit durchgesetzt und sind zum beherrschenden Paradigma in der Software-Entwicklung geworden. Daher bedarf die objektorientierte Methodologie an dieser Stelle keiner besonderen Erläuterung mehr.
Gängige objektorientierte Sprachen heute sind Java, C++, C#, Ruby u.a. Die objektorientierte Programmierung begann mit Sprachen wie Simula und Smalltalk. Gundlegende Konzepte wurden aber auch in der KI (Künstliche Intelligenz) - wenngleich mit etwas anderer Terminologie - vorangetrieben und schlugen sich in Lisp-basierten Sprachen und Werkzeugen wie CLOS (Common Lisp Object System), Flavours, KEE und Knowledge Craft nieder. Daher ergänzen sich objektorientierte und wissensbasierte Ansätze oft in natürlicher Weise.
Die Entwicklung guter, robuster und intelligenter Softwaresysteme ist schwierig. Ziel aller Entwicklungsmethodiken ist die Erstellung von Software, die sich durch Korrektheit, bessere Wartbarkeit, Benutzerfreundlichkeit und Effizienz auszeichnet. Mit wachsender Komplexität und Größe von Software wird dies immer schwieriger. Die objektorientierte Methodik kann dabei helfen, diese Ziele besser als bisher zu erreichen und einige Probleme der Softwareentwicklung besser zu bewältigen. Hierzu bietet sie ein Bündel von Konzepten an, deren wichtigste Elemente die Datenkapselung, die Polymorphie und die Vererbung sind.
Für uns ist die objektorientierte Denkwelt eine zentrale Disziplin bei der Softwareentwicklung und eine tragende Säule unserer Kernkompetenz. Dabei fassen wir den Begriff OO-Welt in einem umfassenden Sinne auf. Es geht nicht nur um die objektorientierte Programmierung von Anwendungen im engeren Sinne, also um die Programmierung im Kleinen (programming-in-the-small), sondern um den Entwurf und die Ausgestaltung von geeigneten, hochwertigen Anwendungsarchitekturen, etwa von service- und komponentenorientierten Enterprise-Architekturen, und deren Einbettung in die gegebene Arbeits-, System- und Anwendungslandschaft, also um die Programmierung im Großen (programming-in-the-large).
Die objektorientierte Methodik garantiert nicht automatisch eine gute Software-Architektur; der Bau komplexer Anwendungen erfordert vielmehr ein hohes Maß an Erfahrung, an Können und an Kreativität, fachlich und technisch.
Nicht für alle Problemstellungen ist die objektorientierte Denkhaltung automatisch der richtige und bestgeeignete Ansatz. Wir reichern viele Anwendungen dadurch an, dass wir in diese Komponenten einbetten, die auch anderen Architekturprinzipien unterliegen können. Dabei kann es sich z.B. um Komponenten in neuronaler Architektur handeln, dies können prädikatenlogisch formulierte oder funktionale Erweiterungen sein, oder dies können spezifische Verfahren aus dem Gebiet "Computational Intelligence" sein. Einige dieser Methoden sind auf diesen Seiten skizziert.