Entwicklung

Als mögliche Ausprägung eines Vorgehensmodells für die Kategorie Entwickeln, wird eine generische Erweiterung für Softwareentwicklungsprozesse vorgeschlagen, deren Ziel es ist die Entwicklung grüner und nachhaltiger Software im Softwareentwicklungsprozess systematisch zu organisieren und für beliebige Prozesse adaptiert werden zu können.

Das Software Engineering kennt viele verschiedene systematische Ansätze, die eine methodische wohlorganisierte Entwicklung von Softwareprodukten ermöglichen. Typische Phasen in diesen Vorgehensmodellen sind die Anforderungsanalyse, der Entwurf, die Implementierung, das Testen, der Betrieb und die Wartung. Auf den ersten Blick stellen sich die verschiedenen Prozessmodelle sehr unterschiedlich dar. Nach einer genaueren Analyse kann jedoch festgestellt werden, dass die von den Akteuren ausgeführten Aktivitäten doch sehr ähnlich sind, auch wenn die Benennungen und die zeitliche Sequenzierung differieren. Für die folgende Darstellung wird ein generalisiertes Modell, basierend auf dem Wasserfallmodell (Royce 1970) verwendet, ohne jedoch die Restriktionen und Limitierungen des Wasserfallmodells (z. B. strikte sequenzielle Ausführung der Phasen) zu übernehmen.
Für diesen Überblick wird einfachheitshalber eine nebenläufige überlappende Ausführung der Entwicklungsphasen angenommen ohne Iterationen oder Inkremente.

vorgehensmodell-entwickeln-01.png

Lebenszyklus von Software als Teil des Modells der Prozesserweiterungen für Grüne und Nachhaltige Software (vgl. Dick und Naumann 2010, S. 709)

Die mit dem Prozessmodell eingeführten Erweiterungen sind die Nachhaltigkeitsrevision und Vorausschau (Abk. NRV), Prozessbewertung (Abk. PB), Nachhaltigkeitsretrospektive (Abk. NR) und das Nachhaltigkeitsjournal (Abk. NJ). Diese organisatorischen Elemente werden von unterstützenden Werkzeuge, Checklisten und Leitfäden begleitet. Dazu gehören der vom LCT inspirierte Lebenszyklus für Softwareprodukte, das Qualitätsmodell nebst zugehörigen Metriken, die Messmethodik für die Messung und Bewertung der Energieeffizienz. Letztere kann auch zur Messung und Bewertung der Performanz und Laufzeiteffizienz angewendet werden.

Nachhaltigkeitsrevision und -vorausschau

Die NRV betrachtet zunächst in der Revision die getane Arbeit, nimmt eine Bewertung vor dem Hintergrund der Kriterien für grüne und nachhaltige Software vor und identifiziert mögliche Probleme. Danach werden in der Vorausschau zu den vorher identifizierten Problembereichen Lösungen entwickelt, mit denen die Nachhaltigkeit des Softwareproduktes verbessert werden kann. Die NRV untersucht dabei Softwareaspekte, wie Anforderungen, Architektur, Quellcode, Laufzeit, Performanz. Aber genauso gut können hier das Geschäftsmodell, das Vertriebsmodell oder Update-Strategien und deren Wirkung auf die Nachhaltige Entwicklung berücksichtigt werden.
Für die Bewertung kann zum einen der LCT-basierte Lebenszyklus für Softwareprodukte herangezogen werden, zum anderen können aber zur Erstellung einer zahlenmäßig bewertbaren und belegbaren Entscheidungsbasis die Metriken und das Qualitätsmodell für grüne und nachhaltige Software herangezogen werden.
Die NRV sollte noch vor dem letzten Drittel eines Inkrements oder einer Iteration durchgeführt werden, sodass die gefundenen Probleme und zugehörigen Lösungen noch im gleichen Inkrement bzw. der gleichen Iteration umgesetzt werden können. In Abhängigkeit von der Länge der Inkremente bzw. Iterationen können auch mehrere NRVs durchgeführt werden.

vorgehensmodell-entwickeln-02.png

Ergänzung des Modells um die NRV

Prozessbewertung

Die PB erfasst und bewertet kontinuierlich den Softwareentwicklungsprozess. Entsprechend der Idee des LCA, werden dadurch Teile des Lebenszyklusinventars aufgebaut. Dazu werden verschiedene Daten erfasst, die für eine Bewertung der Wirkung des Entwicklungsprozesses auf die Nachhaltige Entwicklung erforderlich sind. Die PB beabsichtigt also nicht eine LCA für das gesamte Softwareprodukt durchzuführen. Einen tieferen Einblick in die Effekte der Nutzungsphase zu nehmen und diese zu bewerten ist die Aufgabe der NRVen und der Nren.
Da bisher aber keine Leitfäden zur Verfügung stehen, wie die LCA nach ISO 14040 auf Softwareprodukte angewendet werden kann, schlagen wir als einen ersten Ansatz vor, mit der PB die folgenden Einflussfaktoren zu erfassen, die eine negative Wirkung auf die Nachhaltige Entwicklung haben: Energie für Heizung, Ventilation der notwendigen Arbeitsräume, Stromverbrauch für die Beleuchtung und die notwendige ITK-Infrastruktur, notwendige Geschäftsreisen und die verwendeten Transportmittel, verbrauchtes Büromaterial. Zu den so ermittelten Zahlen soll eine Bewertung mit entsprechenden Indikatoren erfolgen, wie z. B. CO2-Ausstoß als Beitrag zur globalen Klimaerwärmung.

Nachhaltigkeitsretrospektive

Am Ende der Entwicklungsphase werden die in den NRVen und den PBen erfassten Daten und die auf deren Grundlage getroffenen Entscheidungen zusammengeführt und rückblickend die Nachhaltigkeit des gesamten Softwareproduktes bewertet. Ein weiteres Ziel ist es, anhand des NJs die zur Verbesserung der Nachhaltigkeit des Softwareproduktes getroffenen Maßnahmen zu bewerten und für zukünftige Projekte in Empfehlungen, Leitfäden oder Handlungsanweisungen aufzubereiten. Die erzielten zahlenmäßigen Ergebnisse zur Verbesserung der Nachhaltigkeit des Produktes können z. B. als Umweltinformation den Kunden oder interessierten Kreisen zugänglich gemacht werden. Die NR kann in einem moderierten Setting durchgeführt werden, wobei einzelne Aspekte, z. B. die zusammengeführte Wirkung auf die Nachhaltige Entwicklung des erstellten Softwareproduktes, im Vorfeld vorbereitet werden sollten.

Nachhaltigkeitsjournal

Das NJ ist der Dreh- und Angelpunkt der Prozesserweiterung für grüne und nachhaltige Softwareentwicklung. Es handelt sich dabei um ein strukturiertes Dokument, in das alle von den NRVen und PBen gesammelten Informationen und die auf diesen getroffenen Entscheidungen dokumentiert werden. Dabei sollen nicht umschweifende Berichte und Begründungen aufgenommen werden, sondern es sollen kurze ergebnisorientierte Einträge erstellt werden, mit denen die Entscheidungen und getroffenen Maßnahmen nachvollzogen werden können.

vorgehensmodell-entwickeln-03.png

Modell der Prozesserweiterungen für Grüne und Nachhaltige Software (vgl. Dick und Naumann 2010, S. 709)

Weiteres:

  • Zuschnitt der Erweiterung auf Scrum
  • Zuschnitt der Erweiterung auf OpenUP

Literaturverzeichnis

  • Dick, Markus; Naumann, Stefan (2010): Enhancing Software Engineering Processes towards Sustainable Software Product Design. In: Klaus Greve und Armin B. Cremers (Hg.): EnviroInfo 2010: Integration of Environmental Information in Europe. Proceedings of the 24th International Conference on Informatics for Environmental Protection, October 6 - 8, 2010, Cologne/Bonn, Germany. Aachen: Shaker, S. 706–715.
  • Royce, Walker W. (1970): Managing the development of large software systems: concepts and techniques. In: Proc. IEEE WESTCON, Los Angeles, S. 1-9. Online verfügbar unter www.cs.umd.edu, zuletzt geprüft am 23.05.2010.