Green Software Engineering (de)
Entwicklung
Anforderungsanalyse
Green IT als Standard
Entwurf
Weniger Caching
Mehr Komprimierung
Paradigmen
Objektorientierung
MDA
Energy-aware design patterns
Implementierung
Programmiersprache
Datentypen
Codeoptimierung
Dynamisches An- und Abschalten
Test
Nutzung
Wartung
Konfiguration
Nutzungsszenarien
Nutzungsverhalten
Produkt Software
Architekturen und Paradigmen
Objektorientierung
SOA
Frameworks
Parallele Programmierung
Dienste
Cloud Computing
SaaS etc.
Softwaretypen
Embedded Systems
Client-Server-Systeme
Komponenten/Bibliotheken
Desktopsysteme
EE-Messwerte verfügbar machen
Art der Nutzung
Überwiegend auf Benutzereingabe wartend
Möglichst schnell fertig werden
Systemsoftware
Lebenszyklus aus Produktsicht
Messverfahren
Einflüsse
Race2Idle
Möglichst alles in der CPU
Kann bei knappem Speicher anders sein
Grafikkarte
Speicher
Netz
Messverfahren
Frequenz
Genauigkeit
Eindeutigkeit
Andere Einflüsse abschalten
Statistische Absicherung
Vergleichbarkeit
Verschiedene Versionen
Verschiedene Software mit gleicher Aufgabe
Unterschiedlich compilierte Versionen
Neue nicht releasede Versionen während der Entwicklung
Unterschiedliche Konfigurationen
Datenauswertung / Datenmanagement
Physisches Messgerät
Metriken
PUE / CUE
Blackbox-Messung
Betriebssystem etc. rausrechnen
Whitebox-Messung
Quellcode-Instrumentierung
Nutzungsszenarien
Nicht Performance-Benchmarks, sondern EE-Benchmarks
Nutzungsprognose
Rechnerintern
Verteiltes System
Verhalten einzelnen Nutzers
Statistische Nutzungsprognose vieler Nutzer
Bspw. Webshop-Bestellungen, Reports
Metriken
Typische Anwendungsfälle extrahieren
Unit Tests daraus generieren?
Ggf. durch (automatische) Nutzerbeobachtung
Standard-Szenarien zur Vergleichbarkeit
Modellbasierte Abschätzung des Verbrauchs
Auf Basis interner Werte
Prognose
Aus Ressourcendaten heraus
Standardsoftware
Datenbanken
Webserver
Deaktivierung
Techniken
Compilerbau
Effizienzstack mit Schnittstellen
Bios
Betriebssystem
Virtuelle Maschinen
Rechenzentrumsintern
Rechenzentrumsübergreifend
Energieversorgungsunternehmen
Ressourcenteilung zwischen Software, bspw. bei Sensoren in Mobiles
Datentypen
Effiziente Algorithmen
Energiesparende Standardverfahren
Caching
Komprimieren
Programmiersprachen
Skriptsprachen
Kompilierte Sprachen
Entwicklungsumgebung
Analyse
Tipps
Messwerkzeuge
Programmiertechnik
Parallele Programmierung
CPU-centrierte Programmierung
Was sind besondere GSE-Techniken?
Organisation
Ökostrom
Umweltmanagementsystem
Verteilte Entwicklung
Verbreitung
Schulungen
Studiumsinhalte
Wissenschaftliche Verbreitung
Datenverwaltung
Backup
Löschen
Redundanz
Forschungsprojekte
GREENSOFT – Green Software Engineering
ISNE – Informationssysteme für Nachhaltige Entwicklung
UFOPLAN-SSD 2015 – Umweltforschungsplan: Sustainable Software Design 2015
Best Practices
Orange: 30-40% Codeeinsparung
Supercomputing
Nachhaltige Konzepte
Effizienz
Effektivität
Suffzienz
Nicht notwendige Dienste reduzieren (Ads, Spam)
Zertifikate
Energieeffizientklassen von SW
Abgrenzung Produkt und Prozess
Anwendung
RE@Smart Grid
Energie sparen
Besondere Relevanz
Alles Akkubasierte / Mobile
High Performance Computing
Methodiken
Forschung
Umsetzung
Alle Informatik-Inhalte auf Green testen
Rebound
EE-Code schlechter les- und wartbar
Konzeptuell
Faktoren extrahieren, die im LCA EE-SW induzieren
CPU vs. Speicher
Netzlast
Schlagworte
Energy-aware