Nachricht für neue Nutzer.
Nachricht für engagierte Nutzer.

Benutzer:Kwschneider/Softwareentwicklung/Grundlagen/Softwareentwicklung in der Praxis

Aus ZUM-Unterrichten

5. Softwareentwicklung in der Praxis =

Entwicklungsumgebungen (IDE, Editor, Compiler/Interpreter)

In der Praxis der Softwareentwicklung brauchst du nicht nur das Wissen, wie man Programme schreibt, sondern auch Werkzeuge, die dir die Arbeit erleichtern. Dazu gehören zum Beispiel Entwicklungsumgebungen, also Programme wie Editoren oder IDEs (Integrated Development Environments). Sie bieten dir viele praktische Funktionen – du kannst damit Code schreiben, testen und sogar direkt ausführen.

Ein Compiler oder Interpreter sorgt dafür, dass dein Code vom Computer verstanden und ausgeführt wird. So wird aus deinem Python-Programm zum Beispiel eine lauffähige Anwendung.

Moderne Entwicklungsteams nutzen ausserdem Tools, um gemeinsam am Code zu arbeiten und Änderungen nachzuverfolgen. Ein sehr bekanntes Werkzeug dafür ist Git.

Versionsverwaltung mit Git (Grundlagen, einfache Workflows)

Eine wichtige Grundlage moderner Softwareentwicklung ist die Versionsverwaltung. Damit ist gemeint, dass Änderungen am Code nachverfolgt und gespeichert werden. Besonders in Teams ist das hilfreich, weil so nachvollziehbar bleibt, wer wann was geändert hat und ältere Versionen jederzeit wiederhergestellt werden können.

Eines der bekanntesten Systeme dafür ist derzeit Git. Mit Git kannst du einfach verschiedene Entwicklungsstände sichern, neue Features ausprobieren, ohne den Hauptcode zu stören, und gemeinsam mit anderen am selben Projekt arbeiten.

Ein typischer Workflow ist zum Beispiel: Du lädst dir den aktuellen Code (Klonen), erstellst einen neuen Zweig (Branch) für deine Änderungen, testest alles und verbindest am Ende deine Arbeit wieder mit dem Hauptzweig (Merge). So bleibt die Übersicht erhalten, Fehler lassen sich leichter beheben und die Zusammenarbeit wird viel effizienter.

Dokumentation und Kommentierung von Code

Beim Programmieren ist es wichtig, dass nicht nur der Computer, sondern auch andere Menschen – und du selbst nach ein paar Wochen – verstehen, was dein Code macht. Genau dafür gibt es Kommentare und Dokumentation.

Kommentare schreibst du direkt in den Quelltext, damit zum Beispiel erklärt wird, warum du etwas auf eine bestimmte Weise gelöst hast oder was eine komplizierte Funktion macht. In Python benutzt du dafür das Zeichen # für einzelne Zeilen oder dreifache Anführungszeichen ("""…""") für längere Erklärungen, sogenannte Docstrings.

Gute Dokumentation hilft dir und dem Team, den Überblick zu behalten und Fehler zu vermeiden. Sie ist besonders wichtig, wenn mehrere Personen am selben Projekt arbeiten oder Programme später weiterentwickelt werden sollen.

In Python ist es üblich, Funktionen und Klassen mit Docstrings zu versehen, damit später automatisch Nachschlagewerke (sogenannte API-Dokumentationen) daraus generiert werden können. Auch kleine Beispiele oder Hinweise zu den Eingaben und Ausgaben einer Funktion sind hilfreich.

Kurz gesagt: Schreibe deinen Code so, dass andere ihn verstehen können, auch wenn sie nicht dabei waren, als du ihn geschrieben hast. Das spart Zeit, Nerven – und macht dich zu einer Person, mit der alle gern im Team arbeiten!

Docstrings und Annotations

Docstrings sind spezielle mehrzeilige Kommentare, die direkt am Anfang einer Funktion, Klasse oder eines Moduls stehen. Sie werden in Python mit dreifachen Anführungszeichen geschrieben, also entweder """ oder ''', und dienen dazu, die Aufgabe und Verwendung eines Programmteils ausführlich zu beschreiben.

Der große Vorteil: Docstrings können von Tools und anderen Programmen automatisch ausgelesen werden, etwa für Nachschlagewerke oder Hilfeseiten (wie die integrierte Hilfe mit help()). Ein typischer Docstring erklärt, was die Funktion macht, welche Parameter sie erwartet und was sie zurückgibt. Damit hilft er nicht nur anderen im Team, sondern auch dir selbst beim späteren Nachschlagen.

Beispiel einer Funktion mit Docstring:

Annotations – genauer Typannotationen – sind ein weiteres nützliches Werkzeug in Python. Sie erlauben es, die erwarteten Datentypen von Parametern und Rückgabewerten anzugeben. Typannotationen sind zwar optional und werden beim Ausführen nicht erzwungen, sie helfen aber dabei, Fehler früh zu erkennen und den Code verständlicher zu machen – gerade in großen Projekten.

Viele moderne Editoren und Tools können diese Typinformationen nutzen, um Hinweise oder Warnungen anzuzeigen.

Typische Annotation sieht so aus:

Hier ist klar ersichtlich, dass sowohl a als auch b ganze Zahlen sein sollen und die Funktion ebenfalls eine ganze Zahl zurückgibt. Diese Zusatzinformationen fördern die Lesbarkeit und Wartbarkeit deines Codes – und sorgen dafür, dass auch später noch nachvollziehbar bleibt, was du dir beim Programmieren gedacht hast.

Testen und Qualitätssicherung (Unit-Tests, Testfälle)

Tests spielen eine zentrale Rolle, wenn du sicherstellen willst, dass dein Programm wirklich das tut, was es soll. Besonders beliebt sind sogenannte Unit-Tests: Das sind kleine, automatisierte Prüfungen, die einzelne Teile deines Codes – zum Beispiel eine Funktion oder Methode – testen.

Stell dir vor, du hast eine Funktion geschrieben, die zwei Zahlen addieren soll. Mit einem Unit-Test kannst du automatisch prüfen, ob das Ergebnis zum Beispiel bei 2 + 3 wirklich 5 ist.

Solche Tests helfen dir, Fehler möglichst früh zu entdecken, und sie erleichtern die Wartung von Programmen, weil du schnell erkennst, ob spätere Änderungen etwas kaputtmachen.

In Python gibt es dafür eigene Module wie „unittest“ oder „pytest“, mit denen du Testfälle einfach definieren und immer wieder automatisch ausführen kannst. Je mehr Tests du schreibst, desto sicherer kannst du sein, dass dein Programm auch nach Änderungen zuverlässig funktioniert.

Gute Qualitätssicherung bedeutet also nicht, dass du alles doppelt machen musst, sondern dass du mit klugen Tests viel Zeit und Stress sparst – und die Software am Ende einfach besser ist.

Quiz

Was ist der Hauptvorteil von Typannotationen in Python? (!Sie beschleunigen die Laufzeit des Programms.) (Sie helfen, Fehler früh zu erkennen und machen den Code verständlicher.) (!Sie sind verpflichtend und werden vom Interpreter geprüft.) (!Sie ersetzen die Notwendigkeit zu testen.)

Was beschreibt eine typische Unit-Test-Aufgabe am besten? (!Überprüfung der gesamten Software.) (Testen einzelner Funktionen oder Methoden auf korrektes Verhalten.) (!Kontrolle des Designs der Benutzeroberfläche.) (!Erstellung eines Lastenhefts.)

Welches Python-Modul ist speziell für das Schreiben und Ausführen von Unit�Tests vorgesehen? (!math) (!random) (unittest) (!os)

Was ist ein zentrales Merkmal des Wasserfallmodells? (!Iterative Entwicklung mit vielen Rückkopplungen.) (Feste Reihenfolge von Phasen, jeweils Abschluss einer Phase vor Beginn der nächsten.) (!Kontinuierliche Auslieferung.) (!Ständige Einbindung der Endnutzer*innen.)

Welche Aussage trifft auf das Pflichtenheft zu? (!Es wird ausschließlich von den Nutzer*innen geschrieben.) (Es beschreibt, wie die Anforderungen technisch umgesetzt werden.) (!Es enthält ausschließlich Kundenwünsche.) (!Es wird nach Abschluss der Entwicklung erstellt.)