4 Beispiel im Rahmen des DVP-Projektes
Mögliche Änderungen sind auf verschiedenen Ebenen möglich. Zum einen können Änderungen
im Code bzw. im Aufbau des Gesamtprogramms die Softwarequalitätskriterien erhöhen,
zum anderen lässt sich auf Ebene der Weboberfläche das Kriterium der Benutzbarkeit anhand
der DIN ISO 9241-10 weiter spezifizieren.
Das prototypische Programm für die hier verwendete und pluginbasiert konfigurierte VDRSoftware
ist nicht objektorientiert geschrieben.
Integrativ lässt sich damit das Verfahren zum Einfügen
neuer Plugins erleichtern.
Die prozedurale Aufteilung des Programmcodes
und die Verwendung von Templates sind aber bereits grundlegende Schritte zur Wiederverwendung
von Teilen, nutzt aber noch nicht den vollen Umfang, den die Objektorientierung
bietet.
Die Hauptziele sind hier die Erhöhung der Softwarequalität, Wiederverwendbarkeit
und die Reduzierung des Aufwands, der nötig ist um ein weiteres Plugin zu integrieren, z.B.
durch bestimmte Automatisierungen. So ergeben sich in erster Linie folgende Überlegungen:
Allgemeine Änderungen auf Code-Ebene
Die in Kapitel 3 vorgestellten objektorientierte Programmierkonzepte helfen dabei, das Programm
umzuwandeln und so die Wiederverwendung und Wartung zu verbessern, und in einer
späteren Version im Sinne des Generativen Programmierens mit Hilfe eines Generators automatisch
Varianten ableiten zu können.
Dazu muss das bestehende Merkmalmodell in eine
Form überführt werden, die ein automatisches Ableiten von Familienmitgliedern ermöglicht.
Zur besseren Strukturierung des objektorientierten Programms lassen sich dann die Vorteile
der Objektorientierung wie z.B. Vererbung nutzen, um die Ziele der Systemfamilienentwicklung
zu realisieren. Abzuwägen bleibt allerdings der Aufwand und der Nutzen der Umstrukturierung
bei kleinen Programmen. Anwenden lassen sich so folgende in Kapitel 3.2 vorgestellte
Konzepte:
Polymorphismus: Polymorphismus ist wie in jeder objektorientierten Sprache eine Standardaufgabe.
Python stellt dazu eine Vielzahl an polymorphen Mitteilungen zu Verfügung und
gibt die Möglichkeit eigene Mitteilungen zu erstellen. Denkbar wäre in der praktischen Anwendung
hier z.B. die Zuordnung einer Methodenanwendung für Start und Stopp auf ein Plugin
zur Laufzeit175.
Entwurfsmuster: Muster lassen sich auch in Python verwenden oder können hier neu entwickelt
werden. Denkbar wäre es z.B. im neu strukturierten Programm ein Klassenkonstrukt
nach dem Muster des „Prototypen“ zu schaffen, welches die Grafikdarstellung, den HTMLAufbau
oder die XML-Generierung neuer Plugins regelt, denn das Muster „Prototyp“ hat die
Aufgabe durch die Verwendung eines prototypischen Exemplars neue Objekte durch Kopieren
zu erzeugen.176.
Aspektorientierte Programmierung: Als orthogonale Zusammenfassung von technischen
Details neben der Semantik regelt die Aspektorientierte Programmierung Rechteüberprüfungen,
Persistenz, Synchronisation von Daten, Objektinteraktionen, Parameterübergaben etc.
und erhöht damit die Wiederverwendbarkeit der „gefilterten“ Codeteile enorm. Denkbar wäre
hier im praktischen Beispiel z.B. eine Routine, die vor Programmstart prüft, ob für die Firmware
oder für die VDR-Software und ihre Plugins Updates verfügbar sind.177.
Top|
Home|
<< Zurück |
Nächste >>
" TARGET="_blank"> >> Home Page << |