Kontakt
de
Sustainable Solutions: Green Software Engineering from the Perspective of a Mobile Engineer
R&D

Nachhaltige Lösungen: Green Software Engineering aus der Sicht eines Mobile Engineers

In der heutigen Welt müssen Einzelpersonen und Unternehmen die Auswirkungen ihres Handelns auf die Umwelt erkennen. Dies gilt für alle Bereiche, auch für die Softwareentwicklung. In diesem Blogbeitrag werden wir uns mit den Auswirkungen der Softwareentwicklung auf die Umwelt befassen und einige praktische Lösungen zur Verringerung dieser Auswirkungen vorstellen. Wir werden auch die Wirksamkeit von Werkzeugen wie ecoCode bewerten, die die "Umweltfreundlichkeit" von Code analysieren.

Was ist grünes Software Engineering??

Green Software Engineering bezieht sich auf die Entwicklung nachhaltiger Lösungen mit minimalen Auswirkungen auf die Umwelt. Dies beinhaltet den Einsatz umweltfreundlicher Praktiken und Technologien während des gesamten Software-Lebenszyklus, einschließlich Design, Entwicklung, Testen, Bereitstellung und Wartung.

McKinsey geht davon aus, dass sofortige Maßnahmen zur Verbesserung der Nachhaltigkeit von Software und Daten zu einer Verringerung der CO2-Emissionen um etwa 5 % bis zum Jahr 2030 führen könnten.

Green Software Engineering zielt darauf ab, den Energieverbrauch, die Kohlenstoffemissionen und die Abfallproduktion zu reduzieren. Dies wird durch verschiedene Strategien erreicht, wie zum Beispiel:

  • Verwendung effizienter Algorithmen
  • Optimierung des Codes auf Energieeffizienz
  • Reduzierung des Ressourcenverbrauchs
  • Nutzung von erneuerbaren Energiequellen für Hosting und Bereitstellung
  • Förderung von Virtualisierung und Cloud Computing
  • Umsetzung von Recycling- und Entsorgungsstrategien für Hardwarekomponenten.

Wie wirkt sich die Entwicklung von Anwendungen auf die Umwelt aus?

Die Entwicklung von Anwendungen kann sowohl direkte als auch indirekte Auswirkungen auf die Umwelt haben. Zu den direkten Auswirkungen gehört der Energieverbrauch durch den Betrieb von Software und Rechenzentren, der zu Treibhausgasemissionen führt. Darüber hinaus kann auch der Datenaustausch über Netzwerke und die Cloud aufgrund des Energiebedarfs für Übertragung und Speicherung Auswirkungen auf die Umwelt haben.

Indirekte Auswirkungen entstehen durch die Herstellung und Entsorgung von Hardware. Dazu gehören Server, mobile Geräte und andere IT-Geräte, die Elektronikschrott erzeugen und zur Umweltverschmutzung beitragen.

Durch die Anwendung grüner Softwareentwicklungspraktiken können Entwickler jedoch die Umweltauswirkungen der App-Entwicklung reduzieren und ihre Apps nachhaltiger gestalten.

Wie kann die Entwicklung von Apps umweltfreundlicher gestaltet werden?

Die Entwicklung einer umweltfreundlicheren App kann durch kundenspezifische App-Entwicklung erreicht werden, da diese die Flexibilität bietet, die Lösung an die spezifischen Anforderungen anzupassen.

Im Folgenden werden einige praktische Beispiele für Maßnahmen vorgestellt, die während des Entwicklungsprozesses von Apps umgesetzt werden können, um die Nachhaltigkeit zu verbessern und die Auswirkungen auf die Umwelt zu minimieren:

  • Optimieren Sie Algorithmen und Code. Schreiben Sie effiziente Algorithmen und sauberen Code, um die CPU-Auslastung und den Energieverbrauch zu reduzieren. Verwenden Sie Profiling-Tools, um Engpässe zu identifizieren und die Leistung zu optimieren.
  • Reduzieren Sie die Ressourcennutzung. Erstellen Sie leichtgewichtige Software mit effizienten Datenstrukturen und reduzieren Sie ressourcenintensive Aktivitäten, um die Nutzung von Arbeitsspeicher, Speicher und Rechenleistung zu optimieren.
  • Verwenden Sie energieeffiziente Bibliotheken und Frameworks. Wählen Sie energieeffiziente Bibliotheken und Frameworks, die nach ökologischen Prinzipien entwickelt wurden.
  • Implementieren Sie Stromsparfunktionen. Integrieren Sie Energiesparfunktionen wie Ruhe- oder Schlafmodi in Ihre Software, um den Energieverbrauch zu reduzieren, wenn die Software nicht aktiv genutzt wird.
  • Nutzung von Cloud Computing und Virtualisierung. Nutzen Sie Cloud-Computing und Virtualisierungstechnologien, um den Bedarf an physischer Hardware zu reduzieren, den Energieverbrauch zu senken und den ökologischen Fußabdruck der Softwareentwicklung und -bereitstellung zu minimieren.
  • Förderung der Langlebigkeit und Rückwärtskompatibilität von Software. Entwickeln Sie Software, die leicht aktualisiert werden kann und mit älterer Hardware kompatibel ist, um Elektronikabfälle und den Bedarf an Hardware zu reduzieren.
  • Minimierung der Netzwerknutzung. Optimieren Sie die Datenübertragung durch Komprimierung, Caching und andere Techniken, um die über das Netzwerk übertragene Datenmenge und damit den Energieverbrauch zu reduzieren.
  • Konzentrieren Sie sich auf den Kauf von langlebigen Geräten. Achten Sie bei der Auswahl von Geräten auf Energieeffizienz, Recyclingfähigkeit und das Engagement des Herstellers für den Umweltschutz.
  • Einführung umweltfreundlicher Praktiken am Arbeitsplatz. Fördern Sie Recycling, Energiesparen und andere umweltfreundliche Aktivitäten in Ihrem Entwicklungsteam und Ihrer Organisation.
  • Überwachen und bewerten Sie regelmäßig. Bewerten Sie regelmäßig die Umweltauswirkungen Ihrer Softwareprodukte und Entwicklungstechniken und passen Sie diese entsprechend den gewonnenen Erkenntnissen an.

Acht grüne Softwareentwicklungsstandards

Nach der Einführung von acht Prinzipien für die umweltverträgliche Software-Entwicklung wurden diese Prinzipien allgemein als Grundpfeiler für die Gewährleistung von Nachhaltigkeit, Funktionalität und Umweltverträglichkeit bei der Software-Entwicklung anerkannt.

Unternehmen können von der Einhaltung dieser Prinzipien erheblich profitieren, da sie einen Rahmen für die Entwicklung umweltfreundlicher Softwareanwendungen bieten. Im Folgenden wird ein kurzer Überblick über die Prinzipien gegeben:

  1. Carbon - Die Entwicklung kohlenstoffeffizienter Anwendungen reduziert den Carbon Footprint der Softwareentwicklung.
  2. Strom - Die Entwicklung energieeffizienter Anwendungen reduziert den Strombedarf für deren Betrieb. Dies führt potenziell zu Kosteneinsparungen und zur Verringerung der Treibhausgasemissionen.
  3. Kohlenstoffintensität - die Bevorzugung erneuerbarer Energiequellen und die Steigerung der Energieeffizienz minimieren die Kohlenstoff- und Energieverschwendung.
  4. Embodied Carbon - die Entwicklung hardware- und netzwerkeffizienter Anwendungen optimiert die Umweltauswirkungen der Hardwareherstellung und -entsorgung sowie den Energieverbrauch im Netzwerk.
  5. Energieproportionalität - Verbesserung der Energieeffizienz der Hardware reduziert Energieverschwendung und erhöht die Nachhaltigkeit der Softwareentwicklung.
  6. Vernetzung - Die Begrenzung der übertragenen Datenmenge und der über das Netz zurückgelegten Entfernung reduziert den Energieverbrauch und verbessert die Netzeffizienz.
  7. Nachfragegestaltung - Die Entwicklung kohlenstoffbewusster Anwendungen erhöht das Umweltbewusstsein und fördert nachhaltige Gewohnheiten.
  8. Messung und Optimierung - Die Konzentration auf inkrementelle Verbesserungen, die die Gesamteffizienz des Kohlenstoffmanagements erhöhen, hilft, verbesserungsbedürftige Bereiche zu identifizieren und die kontinuierliche Verbesserung der Softwareentwicklungstechniken zu fördern.

Einführung in das ecoCode Plugin: die Idee und die Werkzeuge im Kern

Das ecoCode Plugin soll schlechte Code-Praktiken wie schlechte Optimierung und Speicherlecks aufdecken. Es ist kompatibel mit Java 11 und höher und läuft auf Docker. Das Plugin ist bereits für Android, iOS, Java, Python und PHP verfügbar.

Sie können die Liste der Android/iOS Best Practices einsehen, auf die sich das ecoCode Entwicklungsteam bezieht. Hier ein Auszug aus den Regeln für Android:

  • Verwenden Sie auf Geräten ein dunkles Design.
  • Vermeiden Sie Animationen von Drittanbietern in der Benutzeroberfläche.
  • Verwenden Sie workManager.
  • Vermeiden Sie die Verwendung von Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS.
  • Überwachen Sie Änderungen des Ladestatus des Geräts mit einem Broadcast-Empfänger, der in den Aktionen ACTION_POWER_CONNECTED und ACTION_POWER_DISCONNECTED registriert ist.
  • Verwenden Sie getSystemService(Context.VIBRATOR_SERVICE) nur, wenn es unbedingt notwendig ist, um die Batterie zu schonen.
  • Prüfen Sie, ob der Energiesparmodus aktiviert ist und passen Sie die Ressourcennutzung entsprechend an.

Hier sind die Regeln, die bereits für Android eingeführt wurden:

  • FusedLocationRule.class,
  • BluetoothLowEnergyRule.class,
  • KeepScreenOnAddFlagsRule.class,
  • KeepScreenOnSetFlagsRule.class,
  • BrightnessOverrideRule.class,
  • InternetInTheLoopRule.class,
  • KeepCpuOnRule.class,
  • ThriftyMotionSensorRule.class,
  • WifiMulticastLockRule.class,
  • LocationLeakRule.class,
  • CameraLeakRule.class,
  • SensorManagerLeakRule.class,
  • DurableWakeLockRule.class,
  • MediaLeakMediaRecorderRule.class,
  • MediaLeakMediaPlayerRule.class,
  • RigidAlarmRule.class,
  • ContinuousRenderingRule.class,
  • KeepVoiceAwakeRule.class,
  • ThriftyBluetoothLowEnergySetAdvertiseModeRule.class,
  • ThriftyBluetoothLowEnergyRequestConnectionPriorityRule.class,
  • ThriftyGeolocationMinTimeRule.class,
  • ThriftyGeolocationMinDistanceRule.class,
  • ChargeAwarenessRule.class,
  • VibrationFreeRule.class,
  • TorchFreeRule.class,
  • ThriftyNotificationRule.class,
  • UncompressedDataTransmissionRule.class,
  • SensorCoalesceRule.class,
  • JobCoalesceRule.class,
  • SaveModeAwarenessRule.class,
  • ThriftyGeolocationCriteriaRule.class,
  • HighFrameRateRule.class

Es gibt weitere Regeln, die in der Liste der Kandidatenregeln registriert sind und noch nicht implementiert wurden.

Der ecoCode auf dem Prüfstand: Erkenntnisse aus einem ELEKS-Projekt

Wir von ELEKS haben uns entschieden, das ecoCode Plugin in einem unserer Projekte zu testen.

Und hier ist ein Beispiel für Probleme, die in der Android App gefunden wurden:

  • 7 Probleme mit der Verwendung eines hellen Designs in themes.xml, das den Stromverbrauch auf Smartphones beeinträchtigen kann.
  • 4 Probleme mit dem Einschalten des Bildschirms durch <uses-permission android:name="android.permission.WAKE_LOCK" />, wodurch der Akku entladen wird.
  • 1 Problem im Zusammenhang mit der Verwendung von Firebase Analytics, das eine Gefahr für die Privatsphäre darstellen kann
  • 10 Anmerkungen im Zusammenhang mit Benachrichtigungen von Cordova.

Hier ist das Ergebnis für iOS

Ausgehend von unseren Erfahrungen mit ecoCode können wir sagen, dass sich ecoCode in der Anfangsphase der Entwicklung befindet und noch eine Feinabstimmung und Erweiterung der Regeln für die Codeanalyse erfordert. Aber aus den Ergebnissen, die wir erhalten haben, kann man bereits erkennen, welche Ziele es sich setzt.

Die wichtigsten Erkenntnisse

In dem Maße, in dem sich die Welt um mehr Nachhaltigkeit bemüht, wird Green Software Engineering zu einem wichtigen Faktor bei der Entwicklung von Lösungen mit minimalem ökologischem Fußabdruck.

Unternehmen haben verschiedene Möglichkeiten, um eine umweltfreundlichere Lösung zu gewährleisten. Dazu gehören Maßnahmen wie die Optimierung des Codes, die Integration energieeffizienter Bibliotheken, die Implementierung von Energiesparfunktionen usw.

Die Einhaltung von acht Standards für Green Software Engineering kann ebenfalls dazu beitragen, einen Rahmen für eine umweltfreundliche Softwareentwicklung zu schaffen. Darüber hinaus können Unternehmen auf externe Tools zurückgreifen, die die Umweltfreundlichkeit des Codes sicherstellen. Unsere Untersuchung hat gezeigt, dass das ecoCode Plugin, obwohl es sich noch in einem frühen Entwicklungsstadium befindet, das Potenzial hat, die Entwicklung nachhaltigerer Anwendungen zu unterstützen.

Have a question?
Speak to an expert
Kontakt
  • Wir benötigen Ihren Namen für die korrekte Ansprache
  • Wir benötigen Ihre Telefonnummer, um Sie hinsichtlich Ihrer Anfrage kontaktieren zu können
  • Wir benötigen Ihren Standort, um entscheiden zu können, welches unserer Büros für Sie zuständig ist
  • Wir benötigen Ihren Unternehmensnamen als Hintergrundinformation, um zu ermitteln, wie wir Ihnen helfen können
  • Akzeptierte Dateitypen: jpg, gif, png, pdf, doc, docx, xls, xlsx, ppt, pptx, png, Max. Dateigröße: 10 MB.
(jpg, gif, png, pdf, doc, docx, xls, xlsx, ppt, pptx, PNG)

Wir speichern Ihre Daten in unserem CRM-System, um Sie kontaktieren zu können. Für weitere Informationen beachten Sie bitte unsere Datenschutzrichtlinie
  • Dieses Feld dient zur Validierung und sollte nicht verändert werden.

Wir sind zufrieden mit dem Know-how sowie der Arbeit, die ELEKS für uns geleistet hat. Wir haben zum Produkt, über dessen Design, den Funktionen sowie der Benutzerfreundlichkeit hervorragendes Feedback erhalten. Insgesamt waren wir sehr zufrieden mit der Zusammenarbeit mit ELEKS, und wir können uns ganz sicher vorstellen, weitere Projekte mit ihnen durchzuführen.

corentine piette
Corentine Piette
Manager, appygas