www.wikidata.de-de.nina.az
Dieser Artikel behandelt die Tatigkeit der Erstellung von Software Zu weiteren Bedeutungen siehe Programmierung Begriffsklarung Programmierung von altgriechisch programma programma offentlich und schriftlich bekannt gemachte Nachricht Befehl 1 bezeichnet die Tatigkeit Computerprogramme zu erstellen Dies ist ein Teilbereich der Softwareentwicklung 2 Computerprogramme werden mit Hilfe einer Programmiersprache formuliert codiert Der Programmierer uberfuhrt dabei die z B im Pflichtenheft vorgegebenen Anforderungen in eine bestimmte Programmiersprache Teilweise werden dazu Codegeneratoren verwendet die Teile des Programmcodes auf Basis von Modellen die im Entwurf entstanden sind automatisch erzeugen Beim Programmieren sind wesentliche Aspekte zur Softwarequalitat zu berucksichtigen und durch die Gestaltung des Quellcodes umzusetzen Siehe dazu als Beispiele Programmierstil Benutzerfreundlichkeit 3 Wiederverwendbarkeit Modularitat Wartbarkeit Programmieren in erweitertem Sinn umfasst neben der Codeerstellung zahlreiche weitere Tatigkeiten zum Beispiel das Testen Entwicklertest des Programms oder das Erstellen der Programmdokumentation Abgrenzen vom Begriff des Programmierens lassen sich andere Tatigkeiten zur Softwareentwicklung wie beispielsweise das Projektmanagement die Anforderungsanalyse oder die Datenmodellierung Abhangig vom Typ und der Einsatzumgebung von Software z B fur Systemsoftware Spielesoftware Standardsoftware Grafiksoftware usw konnen zur Entwicklung unterschiedliche Verfahren oder und Werkzeuge wie Programmiersprachen Testverfahren etc zum Einsatz kommen und oder von spezialisierten Entwicklern ausgefuhrt werden Je nach angewendetem Vorgehensmodell verlaufen die Aktivitaten zur Programmierung in zeitlich voneinander abgegrenzten Projektphasen parallel oder iterativ In der Praxis geschieht das Programmieren haufig in Teamarbeit mit modernen Entwicklungsmethoden wie Agile Softwareentwicklung und Programmierwerkzeugen Ahnliche Bedeutungen Umgangssprachlich bezeichnet man gelegentlich auch das Konfigurieren das Einstellen Einrichten von Haushalts oder anderen elektrischen Geraten als Programmieren Auch Organisationseinheiten von Unternehmen in denen Software entwickelt wird werden oder wurden zum Teil Programmierung genannt Inhaltsverzeichnis 1 Geschichte 2 Qualitatskriterien 2 1 Korrektheit 2 2 Robustheit 2 3 Wartbarkeit 2 4 Effizienz 3 Effiziente Programmierung 4 Arbeitsmittel 5 Siehe auch 6 Weblinks 7 EinzelnachweiseGeschichte BearbeitenSiehe auch Computerprogramm Geschichte Geschichte der Programmiersprachen und Programmiersprache Geschichte Charles Babbage beschrieb 1834 eine programmierbare Maschine die Analytical Engine 4 welche allerdings nie gebaut wurde Seine Notations of calculations for the Analytical Engine umfasst 27 Programme Diese sind in the babbage papers des Science Museums von London abrufbar https collection sciencemuseumgroup org uk documents aa110000020 Die Programme enthalten bereits Indirekte Adressierung und bedingte Ausfuhrungen IF THEN ELSE Befehle Diese Dokumente durften als erste Programme und Programmiersprache bezeichnet werden Ada Lovelace ubersetzte 1843 eine ursprunglich franzosische Beschreibung der Analytical Engine von Luigi Federico Menabrea ins Englische und fugte eigene Notizen hinzu Diese Anmerkungen enthielten einen tabellarischen Plan zur Berechnung der Bernoulli Zahlen 1941 realisierte Konrad Zuse mit dem Z3 die erste programmgesteuerte Rechenmaschine von 1942 an entwickelte er mit Plankalkul die erste hohere Programmiersprache 5 Die Mathematikerin Grace Hopper schuf 1949 den ersten Compiler der Quellcode in Maschinencode ubersetzt 6 Qualitatskriterien Bearbeiten Hauptartikel Softwarequalitat Die Qualitat von Software entsteht zu grossen Teilen im Rahmen der Tatigkeiten des Programmierens besonders die folgenden Qualitatskriterien betreffend Korrektheit Bearbeiten Hauptartikel Programmfehler 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 Syntaxfehler Fehlerhaft formulierter Quellcode man verwendet Formulierungen oder Konstrukte die so nicht in der verwendeten Programmiersprache vorkommen Tippfehler Unkenntnis Syntaxfehler konnen beim Ubersetzen vom Compiler Interpreter oder Parser erkannt werden und verhindern i d R die Programmausfuhrung Semantische Fehler Das Programm verhalt sich nicht wie gewunscht weil moglicherweise der Algorithmus oder seine Umsetzung fehlerhaft war Semantische Fehler konnen in der Regel nicht automatisch erkannt sondern nur durch gewissenhaftes Testen gefunden werden beispielsweise in Form von Unittests Der Ubergang zwischen diesen beiden Fehlerarten ist fliessend Beispielsweise wird ein Tippfehler im Code z B gt anstatt lt in einem Vergleichsbefehl zu einem gultigen ausfuhrbaren Programm fuhren das Resultat durfte jedoch falsch sein An anderer Stelle konnte derselbe Fehler ein Syntaxfehler sein Robustheit Bearbeiten Statistisch gesehen wird die meiste Zeit fur die Entwicklung von Quelltext benotigt um auf Fehler oder aussergewohnliche Anwendungs oder Hardwareumgebungen zu reagieren Ein Programmtext der auch bei unvorhergesehenen Fehlern oder ungewohnlichen Umgebungen sinnvoll reagiert wird als robust bzw portabel bezeichnet Geubte Programmierer konnen die moglichen Fehler und Laufzeitumgebungen gut einschatzen und strukturieren das Programm und seinen Quelltext dementsprechend Der Zeitdruck bei der Entwicklung von Anwendungen stellt selbst an erfahrene Programmierer immer hochste Anspruche hinsichtlich dieses Kriteriums Wartbarkeit Bearbeiten Damit eine Software dauerhaft funktioniert muss sie wartbar sein Das heisst Anderungen wie Bugfixes Anpassungen und neue Features mussen ohne grossen Aufwand eingepflegt werden konnen Dies erfordert vor allem dass der Programmierer keinen zu kurzen kryptischen Quelltext oder Quellcode erzeugen soll der fur andere Entwickler nicht oder nur mit hoher Einarbeitungszeit verstandlich ist Um solche Probleme zu vermeiden existieren haufig Namenskonventionen in denen beispielsweise selbsterklarende oder auch sprechende Bezeichner Namen fur Variablen etc zur Verwendung empfohlen vorgeschrieben werden 7 oder die Verwendung aussagefahiger Kommentare im Code Auch eine sinnvolle Aufteilung des Codes in intuitiv verstandliche Funktionen und Klassen tragt zum Verstandnis und Ubersichtlichkeit bei Siehe auch Programmierstil Effizienz Bearbeiten In der Regel stehen einem Programm nur begrenzte Ressourcen Laufzeit Speicherverbrauch Bandbreite zur Verfugung Gute Programmierung kann dazu beitragen unnotigen Ressourcenverbrauch zu reduzieren Beispielsweise erfolgt dies indem bei Verwendung grosser Datenmengen an mehreren Stellen im Programm nicht jeweils der gesamte Datensatz kopiert wird sondern nur die Adresse ubertragen wird an der die Daten gespeichert werden Effiziente Programmierung BearbeitenGemass Niklaus Wirth zeichnet sich gute Programmierung 8 zum einen dadurch aus dass die Funktionen die die jeweils verwendete Programmierumgebung bereitstellt moglichst effizient genutzt werden Insbesondere geht es darum fur neue Aufgabenstellungen das Rad nicht immer wieder neu zu erfinden wenn bestimmte Funktionen schon bereitgestellt werden zum Beispiel durch die Programmierumgebung in Form von Programmbibliotheken Sie zeichnet sich also vor allem dadurch aus dass ein guter Uberblick uber den grundsatzlichen Funktionsumfang und die Systematik der von der Programmierumgebung bereitgestellten Funktionen die in die zehntausende gehen konnen moglich ist Fur eine definierte Aufgabenstellung kann in entsprechenden Dokumentationen dann schnell eine verfugbare Funktion ermittelt eingesetzt und ggf erweitert werden Arbeitsmittel Bearbeiten Hauptartikel Programmierwerkzeug Theoretisch reichen zum Programmieren ein einfacher Texteditor und ein Compiler Interpreter fur die jeweilige Programmiersprache aus In der Praxis wird jedoch zusatzlich auf eine Reihe von Werkzeugen zuruckgegriffen die typische Programmierarbeiten vereinfachen sollen Dazu gehoren beispielsweise Texteditoren mit speziellen Features wie Syntax Highlighting Autovervollstandigen und Refactoring wobei der Ubergang zur Integrierten Entwicklungsumgebung IDE fliessend ist Daneben existieren verschiedene Werkzeuge zur Fehlersuche sog Debugger sowie Programme zur Durchfuhrung statischer und dynamischer Tests Zur Performanzanalyse kann zusatzlich ein Profiler eingesetzt werden Arbeiten mehrere Entwickler an derselben Software kommen meist Versionierungssysteme zum Einsatz die den Code inklusive fruherer Versionen auf einem zentralen Server speichern auf den alle beteiligten Programmierer Zugriff haben Siehe auch BearbeitenProgrammiergerat ProgrammierparadigmaWeblinks Bearbeiten nbsp Wiktionary Programmierung Bedeutungserklarungen Wortherkunft Synonyme Ubersetzungen nbsp Commons Programmierung Sammlung von Bildern Videos und Audiodateien nbsp Wikibooks Das Buchregal Programmierung Lern und Lehrmaterialien Joachim Korb Die Geschichte der Softwareprogrammierung Einfuhrung ins Programmieren fur Neueinsteiger Allgemeine Grundlagen der Programmierung Online Buch Einzelnachweise Bearbeiten Wilhelm Pape Max Sengebusch Bearb Handworterbuch der griechischen Sprache 3 Auflage 6 Abdruck Vieweg amp Sohn Braunschweig 1914 1914 abgerufen am 9 Dezember 2015 Lerne Programmieren lerneprogrammieren com Unterschied zwischen Programmierung und Softwareentwicklung Sebastian Dorn Programmieren lernen und Algorithmen verstehen Abgerufen am 12 Januar 2018 http www computerhistory org babbage engines https link springer com chapter 10 1007 978 3 642 18631 8 9 Grace Hopper Yale University aufgerufen am 7 Juni 2016 Ulrich Kohler Frauke Kreuter Datenanalyse mit Stata Allgemeine Konzepte der Datenanalyse und ihre praktische Anwendung 4 Auflage Oldenbourg Wissenschaftsverlag 2012 ISBN 978 3 486 70921 6 S 113 books google com Datenanalyse mit Stata Allgemeine Konzepte der Datenanalyse und ihre praktische Anwendung mit sprechende Variablennamen im Abschnitt 5 6 Beschriftung von Variablen Niklaus Wirth A Brief History of Software Engineering In IEEE Annals of the History of Computing Band 30 3 Juli September 2008 S 32 39 doi 10 1109 MAHC 2008 33 computer org PDF abgerufen am 30 April 2009 Normdaten Sachbegriff GND 4076370 5 lobid OGND AKS Abgerufen von https de wikipedia org w index php title Programmierung amp oldid 237357275