4 Beispiel im Rahmen des DVP-Projektes

4.2 Soll-Konzept: Mögliche Änderungen

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.
Integrativ lässt sich damit das Verfahren zum Einfügen neuer Plugins erleichtern.

4.2.1 Änderungen auf Code-Ebene

Das prototypische Programm für die hier verwendete und pluginbasiert konfigurierte VDRSoftware ist nicht objektorientiert geschrieben.
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
  • Präzisere und aussagekräftigere Bezeichnung der Prozeduren
  • Zusammenfassung der XML-Fragmente in ein einheitliches Dokument
  • Entwicklung eines allgemeingültigen Schemas für XML-Dateien
  • Einheitliche automatische Generierung eines dynamischen HTML-Gerüsts
  • Dynamisches Erstellen der Grafiken
  • Flexibleres Gestalten der CD um das Programm für eine Migration bzw. Integration in andere Umgebungen (vgl. Kapitel 4.1.2.1)
  • Änderungen der Verzeichnisstruktur, um eine Doppelinstallation der Plugins zu vermeiden (vgl. hierzu Tabelle 29)
  • Erweiterung um weitere Plugins, um z.B. Aufnahmen tätigen zu können, mögliche Plugins sind Anhang C zu entnehmen
  • Integration der externen Programmteile in das Hauptprogramm dvp.py
  • Reduzierung des Aufwands einer Pluginintegration
  • Re-Dokumentation

Tabelle 30: Änderungen des Programm-Codes

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.


  • 175: Vgl. [Lani 2000] S. 231 ff
  • 176: Vgl. [Gamm 1996] S. 144 ff
  • 177: Für das modpython des Apacheservers gibt es inzwischen ein aspektorientiertes Framework namens Pylets. Mehr dazu unter [OSTG 2004]

 


Top| Home| << Zurück | Nächste >>
" TARGET="_blank"> >> Home Page <<