Programmierung

Programmierung
Ausschnitt aus einem BASIC-Listing für den C64

Programmierung (von griechisch prógramma „Vorschrift“) bezeichnet die Tätigkeit, Computerprogramme zu schreiben. Dies umfasst vor allem die Umsetzung (Implementierung) des Softwareentwurfs in Quellcode und, je nach verwendeter Programmiersprache, dessen Übersetzung in die Maschinensprache.

Programme werden unter Verwendung von Programmiersprachen formuliert. In eine solche Sprache „übersetzt“ der Programmierer die verwendeten Algorithmen. Zunehmend wird er dabei durch Codegeneratoren unterstützt, die zumindest Teile des Programmcodes auf Basis von Modellen (die im Entwurf entstanden) automatisch erstellen.

In vielen, insbesondere in kleineren Softwareprojekten und bei Einsatz Agiler Prozesse, sind der Entwurf und die Erstellung eines Programms nicht getrennt, das Programm entwickelt sich in diesen Fällen in enger Wechselwirkung mit dem Entwurf und umgekehrt. In größeren Projekten sind Entwurf und Programmierung (dann häufig als Implementierung bezeichnet) getrennt. Der Programmierer bewegt sich dann bei seiner Tätigkeit im Rahmen des Entwurfes; seine Aufgabe ist, die durch den Entwurf beschriebene Wechselwirkung von ebenfalls dort beschriebenen Softwarekomponenten durch Programmcode zu realisieren.

Dennoch ist auch Programmieren eine kreative Tätigkeit; ein Entwurf gibt zwar einen Funktionsrahmen vor, doch kann dieser auf unterschiedliche Art umgesetzt werden.

Umgangssprachlich bezeichnet man manchmal auch das Konfigurieren von Haushaltsgeräten als „Programmieren“.

Inhaltsverzeichnis

Qualitätskriterien

Korrektheit

Ein Programm muss die im Entwurf gemachten Vorgaben korrekt umsetzen. Dazu muss es in der Regel fehlerfrei sein, wobei beim Programmieren meist zwei verschiedene Arten von Fehlern auftreten:

  1. Syntaxfehler: Fehlerhaft formulierter Quellcode – man verwendet Formulierungen oder Konstrukte, die so nicht in der verwendeten Programmiersprache vorkommen (Tippfehler, Unkenntnis, …). Syntaxfehler können vom Compiler/Linker oder Parser erkannt werden – müssen aber nicht!
  2. Semantische Fehler: Das Programm verhält sich nicht, wie gewünscht. Möglicherweise weil der Algorithmus oder seine Umsetzung fehlerhaft war.

Der Übergang zwischen diesen beiden Fehlerarten ist fließend. Beispielsweise kann ein Tippfehler im Code (z.B. ">" statt "<") zu einem gültigen ausführbaren Programm führen, das Resultat wird jedoch wahrscheinlich falsch sein. An anderer Stelle wiederum könnte der selbe Fehler einen Syntaxfehler darstellen.

Syntaxfehler werden meist vom Compiler oder Interpreter als solche erkannt und benannt. Semantische Fehler im Programm können in der Regel nicht automatisch erkannt, sondern nur durch gewissenhaftes Testen gefunden werden – beispielsweise in Form von Unittests.

Robustheit

Statistisch gesehen wird die meiste Zeit für die Entwicklung von Quelltext benötigt, um auf Fehler oder außergewöhnliche Anwendungs- oder Hardwareumgebungen zu reagieren. Ein Programmtext, der auch bei unvorhergesehenen Fehlern oder ungewöhnlichen Umgebungen sinnvoll reagiert, wird als robust bzw. portabel bezeichnet. Geübte Programmierer können die möglichen Fehler und Laufzeitumgebungen gut einschätzen und strukturieren das Programm und seinen Quelltext dementsprechend. Der Zeitdruck bei der Entwicklung von Anwendungen stellt selbst an erfahrene Programmierer immer höchste Ansprüche hinsichtlich dieses Kriteriums.

Wartbarkeit

Damit eine Software dauerhaft funktioniert, muss sie wartbar sein. Das heißt, Änderungen wie Bugfixes, Anpassungen und neue Features müssen ohne großen Aufwand eingepflegt werden können. Dies verlangt vor allem, dass der Programmierer sich nicht dazu verleiten lassen darf, zu kurzen, „kryptischen“ Quelltext zu erzeugen, der aber nur noch von ihm selbst (wenn überhaupt) verstanden werden kann. Andernfalls kann die Einarbeitungszeit in den fremden oder alten eigenen Code sehr lang werden.

Um solche Probleme zu vermeiden, existieren eine Reihe von Konventionen wie die Verwendung von selbsterklärenden Variablennamen und die Verwendung von Kommentaren im Code. Auch eine sinnvolle Aufteilung des Codes in intuitiv verständliche Funktionen und Klassen trägt zum Verständnis und Übersichtlichkeit bei.

Performanz

In der Regel stehen einem Programm nur begrenzte Ressourcen (Laufzeit, Speicherverbrauch, Bandbreite) zur Verfügung. Gute Programmierung kann dazu beitragen, unnötigen Ressourcenverbrauch zu reduzieren. Beispielsweise indem bei Verwendung großer Datenmengen an mehreren Stellen im Programm nicht der gesamte Datensatz kopiert wird, sondern nur die Adresse, an der die Daten liegen.

Effiziente Programmierung

Gemäß Niklaus Wirth zeichnet sich gute Programmierung[1] zum einen dadurch aus, dass die Funktionen, die die jeweils verwendete Programmierumgebung bereitstellt, möglichst effizient genutzt werden. Insbesondere geht es darum, für Aufgabenstellungen nicht das Rad neu zu erfinden, wenn bestimmte Funktionen schon durch die Programmierumgebung bereitgestellt werden (beispielsweise in Form von Bibliotheken). Sie zeichnet sich also vor allem dadurch aus, dass ein guter Überblick über den grundsätzlichen Funktionsumfang und die Systematik der von der Programmierumgebung bereitgestellten Funktionen (die in die zehntausende gehen können) erzeugt wird. Für eine definierte Aufgabenstellung können sie in entsprechenden Dokumentationen dann schnell die bereitgestellten Funktionen nachschlagen und einsetzen.

Schlechte Programmierung ist es, wenn viel Zeit in das Adaptieren nicht passender Module gesteckt wird und ein verzwicktes, nur schwer wartbares Gestrüpp von Modulen und Skripten entsteht, die dem jeweiligen Versionswechsel der benutzten Module schutzlos ausgeliefert sind. Man sollte jedes Mal abwägen, ob es sinnvoll ist, etwas Neues zu schaffen oder schon bestehende Funktionen zu nutzen.

Arbeitsmittel

Theoretisch reicht zum Programmieren ein einfacher Texteditor und ein Compiler/Interpreter für die jeweilige Programmiersprache aus. In der Praxis wird jedoch zusätzlich auf eine Reihe von Werkzeugen zurückgegriffen, die typische Programmierarbeiten vereinfachen sollen. Dazu gehören beispielsweise Texteditoren mit speziellen Features wie Syntax-Highlighting, Code Completion und Refactoring – wobei der Übergang zur Integrierten Entwicklungsumgebung (IDE) fließend ist.

Daneben existieren verschiedene Werkzeuge zur Fehlersuche, sog. Debugger, sowie Programme zur Durchführung statischer und dynamischer Tests. Zur Performanzanalyse kann zusätzlich ein Profiler eingesetzt werden.

Arbeiten mehrere Entwickler an der selben Software, kommen meist Versionierungssysteme zum Einsatz, die den Code inklusive früherer Versionen auf einem zentralen Server speichern, auf den alle beteiligten Programmierer Zugriff haben.

Siehe auch

Weblinks

Wiktionary Wiktionary: Programmierung – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen
Wikibooks Wikibooks: Das Buchregal "Programmierung" – Lern- und Lehrmaterialien
 Commons: Programming – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

  1. Niklaus Wirth: A Brief History of Software Engineering. In: IEEE Annals of the History of Computing. 30, Nr. 3, Juli-Sept. 2008, S. 32-39, doi:10.1109/MAHC.2008.33 (http://www2.computer.org/cms/Computer.org/ComputingNow/homepage/2009/0409/BriefHistoryofSoftwareEng.pdf, abgerufen am 30.4).

Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?
Synonyme:

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Programmierung — Gehirnwäsche; Konditionierung; Manipulation; Engineeringarbeit; Softwareentwicklung; Implementation * * * Pro|gram|mie|rung 〈f. 20〉 das Programmieren * * * Pro|gram|mie|rung, die; , en: das Programmieren …   Universal-Lexikon

  • Programmierung — programavimas statusas T sritis automatika atitikmenys: angl. programming vok. Programmierung, f rus. программирование, n pranc. programmation, f …   Automatikos terminų žodynas

  • Programmierung — programavimas statusas T sritis fizika atitikmenys: angl. programme composition; programming vok. Programmherstellung, f; Programmierung, f rus. программирование, n; составление программы, n pranc. programmation, f …   Fizikos terminų žodynas

  • Programmierung — programavimas statusas T sritis Kūno kultūra ir sportas apibrėžtis Problemos sprendimo formalizuoto algoritmo kompiuteriui priimtina forma parengimas. kilmė plg. programa atitikmenys: angl. programming vok. Programmierung, f rus. програмирование …   Sporto terminų žodynas

  • Programmierung — programavimas statusas T sritis Kūno kultūra ir sportas apibrėžtis Veikimo programos sudarymas. kilmė plg. programa atitikmenys: angl. programming vok. Programmierung, f rus. програмирование …   Sporto terminų žodynas

  • Programmierung für Multiprogrammverarbeitung — lygiagretusis programavimas statusas T sritis automatika atitikmenys: angl. concurrent programming; multiple programming; parallel programming vok. Parallelprogrammierung, f; Programmierung für Multiprogrammverarbeitung, f rus. параллельное… …   Automatikos terminų žodynas

  • Programmierung in Assemblersprache — programavimas asemblerio kalba statusas T sritis automatika atitikmenys: angl. assembly language coding vok. Programmierung in Assemblersprache, f rus. программирование на языке ассемблера, n pranc. programmation en assembleur, f …   Automatikos terminų žodynas

  • Programmierung — Pro|gram|mie|rung 〈f.; Gen.: , Pl.: en〉 das Programmieren …   Lexikalische Deutsches Wörterbuch

  • Programmierung — Begriff aus der Informatik mit unterschiedlichen Auslegungen: 1. Synonym für ⇡ Programmentwicklung. 2. Synonym für ⇡ Codierung …   Lexikon der Economics

  • Programmierung — Pro|gram|mie|rung die; , en <zu ↑...ierung> das Programmieren (2, 3) …   Das große Fremdwörterbuch

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”