Objektorientiert – offen – effizient


Effizienter weiterentwickeln und pflegen

Siemens hat sich dafür entschieden, anstelle von objektorientierten Funktionsbausteinen, die Umsetzung der Objektorientierung auf der Basis von Klassen zu implementieren. Damit finden sich Kenner anderer OOP-Sprachen (Java, C#) leicht zurecht. Das heißt, Struktur und Verhalten eines Objekttyps werden in einem Bauplan, der Klasse, festgelegt. Anpassungen an neue Gegebenheiten oder Weiterentwicklungen erfolgen durch Ableitung einer neuen Klasse von der bestehenden. Sie erbt automatisch alle Eigenschaften und Funktionen der Basisklasse. In der abgeleiteten Klasse lassen sich nun Eigenschaften oder Methoden zufügen und auch geerbte Methoden überschreiben, also anpassen. Der entscheidende Vorteil ist, dass die ursprüngliche Funktionalität vollständig erhalten bleibt. Es ist nicht erforderlich, einmal getestete Objekttypen nach Erweiterungen erneut zu testen. Die Weiterentwicklung bei der bisherigen prozeduralen Programmierung fällt deutlich aufwendiger aus: Durch das notwendige Kopieren von Software entstehen verschiedene Derivate, deren Funktionen erneut zu testen und zu pflegen sind. Getestete Objekttypen sind einfach in umfangreichere Objekttypen integrierbar (Aggregation). Diese gesteigerte Wiederverwendbarkeit ergibt einen erheblich reduzierten Aufwand. So bleiben größere Software-Projekte übersichtlich, lassen sich einfacher weiterentwickeln und leichter pflegen.

Generische Interaktion über Interfaces

Der Informationsaustausch zwischen verschiedenen Objekttypen erfolgt bei OOP über sogenannte Interfaces. Für die unterschiedlichen Interaktionen werden die passenden Interfaces definiert. Die Beschreibung eines Objekttyps (Klasse) implementiert die für ihn relevanten Interfaces und stellt damit die Kommunikationsmechanismen bereit. Mit dieser Kenntnis ist nun ein gezielter Datenaustausch zwischen den Objekten möglich, ohne die Kapselung aufzubrechen. Damit sind die Interaktionen zwischen verschiedenen Objekten generisch realisierbar. Unterschiedliche Objekttypen sind somit in einer Anlage beliebig kombinierbar, ohne zusätzlichen Programmieraufwand für die Objektverbindung. Darüber hinaus lassen sich Objekte beliebig weiterentwickeln, ohne die bestehenden Kommunikationsmechanismen zu beeinträchtigen. Ein weiterer vorteilhafter Aspekt der Interfaces besteht darin, dass sich eine gezielte Vereinbarung von diesen zwischen verschiedenen Entwicklungsabteilungen treffen lässt. Das erlaubt eine unabhängige Software-Entwicklung. Wartezeiten aufgrund noch fehlender Zulieferung von einem Bereich lassen sich so vermeiden bzw. minimieren.

Schrittweise umsteigen

Der zunehmende Umfang der Programme und der damit steigende Pflegeaufwand erzwingen förmlich die Nutzung von objektorientierten Methodiken. Damit lassen sich die Zusammenhänge der Software einfach und übersichtlich beschreiben, der Programm-Code ist gut lesbar und es fällt leichter, den Überblick zu behalten. Das Engineering-System Simotion Scout unterstützt den Programmierer komfortabel, auch bei der Nutzung der objektorientierten Programmierung. Die prozedurale und objektorientierte Programmierung können so koexistieren. Somit sind bisher erstellte Programme weiterhin nutzbar und eine schrittweise Erweiterung oder Umstellung auf objektorientierte Programme ist problemlos möglich. Das Engineering-System stellte von Anfang an einen objektorientierten Ansatz auf Basis von technologischen Objekten (TOs) im System bereit. Mit der Version 4.5 wird dieser Ansatz nun um anwenderdefinierte Objekte erweitert.