Programmierung

Aus Mikiwiki
Wechseln zu: Navigation, Suche

Programmierung (auch: Softwarentwicklung) bezeichnet die Tätigkeit, Rechnerprogramme (Software) zu erstellen. Im weiteren Sinne sind darunter alle Tätigkeiten zu verstehen, die mit dieser Programmerstellung verbunden sind, insbesondere auch der konzeptionelle Entwurf. Im engeren Sinne bezeichnet Programmierung lediglich das Umsetzen dieses konzeptionellen, abstrakten Entwurfes in konkreten Quelltext.

Auch der Vorgang des Einschreibens eines bereits fertig erstellten und in Maschinencode übersetzten Programms und von Daten in einen Festwertspeicher (etwa ein EPROM oder EEPROM) wird als Programmierung bezeichnet.

In vielen, insbesondere in kleineren Softwareprojekten, 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össeren 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.

Die Programme werden üblicherweise in einer Programmiersprache ausgedrückt. In dieser Sprache formuliert der Programmierer Algorithmen. Zunehmend wird er dabei durch Codegeneratoren unterstützt, die zumindest Teile des Programmcodes auf Basis von Modellen (die im Entwurf entstanden) automatisch erstellen.

Qualitätskriterien

Gute Programmierung zeichnet sich dadurch aus, dass die Funktionen, welche die jeweils verwendete Programmierumgebung bereitstellt, möglichst effizient genutzt werden. Insbesondere geht es darum, nicht für jede Aufgabenstellung das Rad neu zu erfinden, wenn bestimmte Funktionen schon durch die Programmierumgebung bereitgestellt werden (etwa in Form von Bibliotheken). Gute Programmierung ermöglicht also einen guten Überblick über den grundsätzlichen Funktionsumfang und die Systematik der von der Programmierumgebung bereitgestellten Funktionen (die in die tausende gehen können). Für eine bestimmte Aufgabenstellung können in entsprechenden Dokumentationen die bereitgestellten Funktionen dann schnell nachgeschlagen und eingesetzt werden.

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. Es sollte jedes Mal abgewogen werden, ob die Schaffung von etwas Neuem sinnvoll ist oder ob schon bestehende Funktionen genutzt werden können.

Gute Programmierung heisst auch, wartbaren Programmcode zu erzeugen. Strukturen, nach denen das Programm oder Programmmodul funktioniert, sollten also möglichst selbsterklärend, zudem aber auch durch Kommentare im Programmcode dokumentiert sein. Der Programmierer darf sich nicht aufgrund dazu verleiten lassen, allzu kurzen "kryptischen" Code zu erzeugen, der zwar ein paar Programmzeilen spart, aber nur noch von ihm selbst verstanden werden kann.

Gute Programme entstehen fast automatisch, wenn redundante Anweisungen und redundante Daten vermieden werden.

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

Arbeitsmittel

Die Entwicklung von Software wird durch sogenannte Werkzeuge unterstützt. Dazu gehören Editoren, Integrierte Entwicklungsumgebungen, Quellcodeverwaltungssysteme, Übersetzer oder Compiler, Prüfsoftware und Testwerkzeuge.

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
country DE.gif Wikipedia ger Programmierungwbm Enzyklopädischer Artikel
country US.gif Eric S. Raymond eng The Jargon Filewbm
country US.gif Eric S. Raymond eng How to become a hackerwbm
country US.gif Eric S. Raymond eng The art of Unix programmingwbm
country US.gif Eric S. Raymond eng Eric's random writingswbm
country US.gif INET Interactive eng Hot Scriptswbm Programmierbeispiele für Ajax, ASP, ASP.NET, C und C++, CFML, CGI und Perl, Flash, Java, JavaScript, PHP, Python, Ruby on Rails, XML