Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Programmierung

Beim Programmieren sind wesentliche Aspekte zur Softwarequalität zu berücksichtigen und durch die Gestaltung des Quellcodes umzusetzen. Siehe dazu als Beispiele …

Inhalt6 Abschnitte
  1. 1. Grundbegriff und Ablauf
  2. 2. Qualität von Programmen
  3. 3. Korrektheit und Fehlerarten
  4. 4. Robustheit, Wartbarkeit und Effizienz
  5. 5. Effiziente Nutzung vorhandener Funktionen
  6. 6. Geschichte und Arbeitsmittel

Grundbegriff und Ablauf

Programmierung bezeichnet die Tätigkeit, Computerprogramme zu erstellen, und gehört zur Softwareentwicklung. Computerprogramme werden in einer Programmiersprache formuliert, also codiert. Programmierende übertragen dabei Anforderungen, zum Beispiel aus einem Pflichtenheft, in eine bestimmte Programmiersprache. Teilweise unterstützen Codegeneratoren diese Arbeit, indem sie aus Modellen, die im Entwurf entstanden sind, automatisch Teile des Programmcodes erzeugen.

Zum Programmieren im engeren Sinn gehört vor allem die Erstellung von Quellcode. In einem erweiterten Sinn umfasst Programmieren auch Tätigkeiten wie Entwicklertests und Programmdokumentation. Andere Aufgaben der Softwareentwicklung, etwa Projektmanagement, Anforderungsanalyse oder Datenmodellierung, lassen sich davon abgrenzen.

Je nach Softwaretyp und Einsatzumgebung, zum Beispiel Systemsoftware, Spielesoftware, Standardsoftware oder Grafiksoftware, werden unterschiedliche Verfahren, Programmiersprachen, Testverfahren und Werkzeuge eingesetzt. Programmierung kann je nach Vorgehensmodell in getrennten Phasen, parallel oder iterativ ablaufen. In der Praxis geschieht sie häufig in Teamarbeit, mit modernen Entwicklungsmethoden wie Agiler Softwareentwicklung und mit speziellen Programmierwerkzeugen.

Qualität von Programmen

Beim Programmieren müssen wichtige Aspekte der Softwarequalität im Quellcode umgesetzt werden. Dazu gehören unter anderem Programmierstil, Benutzerfreundlichkeit, Wiederverwendbarkeit beziehungsweise Modularität und Wartbarkeit. Ein großer Teil der Softwarequalität entsteht also direkt während der Programmierarbeit.

Die wichtigsten im Artikel genannten Qualitätskriterien sind Korrektheit, Robustheit, Wartbarkeit und Effizienz. Sie beschreiben, ob ein Programm die geforderten Aufgaben richtig erfüllt, mit Fehlern und ungewohnten Umgebungen umgehen kann, später gut geändert werden kann und sparsam mit Ressourcen umgeht.

Korrektheit und Fehlerarten

Ein Programm ist korrekt, wenn es die im Entwurf gemachten Vorgaben richtig umsetzt. Dazu muss es in der Regel fehlerfrei sein. Beim Programmieren treten vor allem zwei Arten von Fehlern auf: Syntaxfehler und semantische Fehler.

Syntaxfehler sind fehlerhaft formulierter Quellcode. Dabei werden Formulierungen oder Konstrukte verwendet, die in der jeweiligen Programmiersprache so nicht vorkommen, etwa durch Tippfehler oder Unkenntnis. Syntaxfehler können beim Übersetzen durch Compiler, Interpreter oder Parser erkannt werden und verhindern in der Regel die Programmausführung.

Semantische Fehler liegen vor, wenn sich das Programm nicht wie gewünscht verhält, obwohl es formal ausführbar sein kann. Ursache kann ein fehlerhafter Algorithmus oder eine falsche Umsetzung sein. Solche Fehler werden normalerweise nicht automatisch erkannt, sondern durch sorgfältiges Testen gefunden, zum Beispiel durch Unittests.

Der Übergang zwischen Syntaxfehlern und semantischen Fehlern ist fließend. Ein Tippfehler wie „>“ statt „<“ in einem Vergleich kann zu einem gültigen, ausführbaren Programm führen, dessen Ergebnis aber falsch ist. An anderer Stelle könnte derselbe Fehler ein Syntaxfehler sein.

Robustheit, Wartbarkeit und Effizienz

Robustheit bedeutet, dass ein Programm auch bei unvorhergesehenen Fehlern oder ungewöhnlichen Anwendungs- oder Hardwareumgebungen sinnvoll reagiert. Ein solcher Programmtext wird auch als portabel bezeichnet. Geübte Programmierer können mögliche Fehler und Laufzeitumgebungen besser einschätzen und den Quelltext entsprechend strukturieren. Zeitdruck stellt dabei auch erfahrene Programmierer vor hohe Anforderungen.

Wartbarkeit bedeutet, dass Software dauerhaft angepasst werden kann. Bugfixes, Anpassungen und neue Features sollen ohne großen Aufwand eingepflegt werden können. Dafür sollte Quelltext nicht zu kurz oder kryptisch sein, damit andere Entwickler ihn verstehen können. Hilfreich sind Namenskonventionen, selbsterklärende oder „sprechende“ Bezeichner für Variablen und andere Elemente, aussagefähige Kommentare sowie eine sinnvolle Aufteilung in verständliche Funktionen und Klassen.

Effizienz bezieht sich auf den sparsamen Umgang mit begrenzten Ressourcen wie Laufzeit, Speicherverbrauch und Bandbreite. Gute Programmierung kann unnötigen Ressourcenverbrauch reduzieren. Ein Beispiel ist der Umgang mit großen Datenmengen: Statt an mehreren Stellen jeweils den gesamten Datensatz zu kopieren, kann nur die Adresse übertragen werden, an der die Daten gespeichert sind.

Effiziente Nutzung vorhandener Funktionen

Nach Niklaus Wirth zeichnet sich gute Programmierung auch dadurch aus, dass die Funktionen der verwendeten Programmierumgebung möglichst effizient genutzt werden. Programmierende sollen für neue Aufgabenstellungen nicht immer wieder „das Rad neu erfinden“, wenn passende Funktionen bereits vorhanden sind, zum Beispiel in Programmbibliotheken.

Dafür ist ein guter Überblick über den grundsätzlichen Funktionsumfang und die Systematik der Programmierumgebung nötig. Diese kann sehr umfangreich sein und zehntausende Funktionen enthalten. Für eine konkrete Aufgabe kann dann in der Dokumentation schnell eine vorhandene Funktion gefunden, eingesetzt und bei Bedarf erweitert werden.

Geschichte und Arbeitsmittel

Charles Babbage beschrieb 1834 mit der Analytical Engine eine programmierbare Maschine, die jedoch nie gebaut wurde. Seine „Notations of calculations for the Analytical Engine“ umfassen 27 Programme und enthalten bereits indirekte Adressierung sowie bedingte Ausführungen, also IF-THEN-ELSE-Befehle. Diese Dokumente dürften als erste Programme und Programmiersprache bezeichnet werden.

Ada Lovelace übersetzte 1843 eine französische Beschreibung der Analytical Engine von Luigi Federico Menabrea ins Englische und ergänzte eigene Notizen. Diese enthielten einen tabellarischen Plan zur Berechnung der Bernoulli-Zahlen. 1941 realisierte Konrad Zuse mit dem Z3 die erste programmgesteuerte Rechenmaschine. Ab 1942 entwickelte er mit Plankalkül die erste höhere Programmiersprache. Grace Hopper schuf 1949 den ersten Compiler, der Quellcode in Maschinencode übersetzt.

Theoretisch genügen zum Programmieren ein einfacher Texteditor und ein Compiler oder Interpreter für die jeweilige Programmiersprache. Praktisch werden meist zusätzliche Werkzeuge eingesetzt: Editoren mit Syntax-Highlighting, Autovervollständigung und Refactoring, Integrierte Entwicklungsumgebungen (IDE), Debugger zur Fehlersuche, Programme für statische und dynamische Tests sowie Profiler zur Performanzanalyse. Arbeiten mehrere Entwickler gemeinsam an einer Software, werden meist Versionierungssysteme verwendet, die den Code und frühere Versionen auf einem zentralen Server speichern.

Lernvideos zu Programmierung

Weiterlesen

Softwaretechnik ... Agile Softwareentwicklung. Die Softwaretechnik umfasst den gesamten Prozess von der Identifizierung des Bedarfs bis hin zur Inbetriebnahme einer konkreten … Programmiersprache Bei deklarativen Programmiersprachen ist der Ausführungsalgorithmus schon vorab festgelegt und wird nicht im Quelltext ausformuliert/beschrieben, sondern es … Softwareentwickler Ein Softwareentwickler (englisch software developer) ist eine Person, die an der Erstellung und Weiterentwicklung einer Software mitwirkt. Anforderung (Informatik) Im Verlauf der Anforderungsanalyse werden auch Geschäftsprozesse und Geschäftsobjekte modelliert, die zur Formulierung von Anforderungen herangezogen werden … Softwarequalität „Unter Softwarequalität versteht man die Gesamtheit der Merkmale und Merkmalswerte eines Softwareprodukts, die sich auf dessen Eignung beziehen, … Quelltext Quelltext, auch Quellcode (englisch source code) oder unscharf Programmcode genannt, ist in der Informatik der für Menschen lesbare, in einer … Programmierstil Er gilt als Teilaspekt von Softwarequalität, der insbesondere die Verständlichkeit und Wartbarkeit von Software, dies sind Kriterien für Softwarequalität gem. Softwaretest Ein Softwaretest prüft und bewertet Software auf Erfüllung der für ihren Einsatz definierten Anforderungen und misst ihre Qualität. Anforderungsanalyse (Informatik) Ziel ist es, die Anforderungen des Auftraggebers an das zu entwickelnde System zu ermitteln, zu strukturieren und zu prüfen. Das Ergebnis einer … Datenmodellierung Mit Datenmodellierung bezeichnet man in der Informatik Verfahren zur formalen Abbildung der in einem definierten Kontext relevanten Objekte mittels ihrer … Vorgehensmodell zur Softwareentwicklung Die agile Softwareentwicklung hingegen beschäftigt sich mit Methoden, die den Entwickler kreativ arbeiten und Verwaltungsaspekte zurücktreten lassen. Je … Agile Softwareentwicklung Agile Softwareentwicklung zeichnet sich durch selbstorganisierende Teams sowie eine iterative und inkrementelle Vorgehensweise aus. Agile Ansätze können sich …