Kompilierung
Programmierung – MLM-Software
Softwareentwicklung im Kundenauftrag
Die moderne Softwareentwicklung
Der Begriff Softwareentwicklung schließt im Allgemeinen die vorbereitende Entwicklungsarbeit sowie die nachfolgende Umsetzung (Programmierung) von Computerprogrammen mit ein. Oft wird die Softwareentwicklung mit der Programmierung gleichgesetzt. Tatsächlich können jedoch Softwareentwicklung und Programmierung voneinander getrennt oder auch parallel in mehreren Teilschritten erfolgen. Eine reine Softwareentwicklung umfasst die theoretische Ausarbeitung eines Konzepts für eine Software. Durch die Programmierung wird der Bauplan (Software Konzept) in ein nutzbares Softwareprodukt umgewandelt. Auf den technischen Bereich angewandt, wäre die Softwareentwicklung im Kundenauftrag die Erstellung des Bauplans und die eigentliche Produktion entspricht dann der Programmierung. Der Oberbegriff Softwareentwicklung umfasst auch mehrere unterschiedliche Bereiche in der IT. Damit dem Begriff Software teilweise sehr unterschiedliche Programme gemeint sind es notwendig die Begrifflichkeiten etwas zuordnen.
Die Bereiche der Softwareentwicklung
Die Softwareentwicklung umfasst unter Anderem folgende Hauptbereiche:
Hardwarenahe Programmierung
Compiler-Entwicklung
Betriebssystem Entwicklung
Entwicklung von Anwendungsprogrammen
Algorithmik
Webentwicklung
Datenbankprogrammierung
App-Entwicklung
Spieleentwicklung
Modifikation von Anwendungsprogrammen Skriptsprachen
Grundsätzlich unterscheidet man bei der Entwicklung von Softwareprogrammen zwischen Software mit Benutzeroberfläche und Software ohne Benutzeroberfläche.
Seit dem Einsatz grafischen Betriebssystemen kommen bei den meisten Anwendungsprogrammen grafische Benutzeroberflächen (GUI) zum Einsatz. Es gibt jedoch einige Softwaresysteme die als Hilfsmittel für einen Low Level Einsatz gedacht sind und bewusst Kommandozeilen basiert entwickelt werden. Der größte Teil der Anwendungsprogramme ist jedoch mit einer grafischen Benutzeroberfläche ausgestattet. Daneben gibt es aber mindestens genauso viele Softwarekomponenten die als Dienste ausgelegt sind und ohne grafische Benutzeroberfläche andere Softwarekomponenten unterstützen. Bei der Softwareentwicklung muss sich der Softwareentwickler nicht mehr allein auf die Entwicklung aller grundlegenden Systemfunktionen konzentrieren, sondern kann auf Komponenten und Dienste die vom Betriebssystem oder von anderen Softwareprodukten bereitgestellt werden zurückgreifen. Softwarehersteller stellen Funktionen ihrer Programme über sogenannte Programmierschnittstellen (API) zur Verfügung. Diese ermöglichen anderen Programmierern auf Daten oder Funktionen bestehender Softwaresysteme zugreifen.
Softwareentwicklung in der Praxis
Neben den Teilbereichen der Softwareentwicklung unterscheidet man auch die Art nachdem eine Software entwickelt wird:
Klassische Auftragsentwicklung nach Pflichtenheft
Agile Softwareentwicklung
Reverse engineering
Redesign
Während bei den meisten Softwareentwicklung ein Konzept auf der Basis einer Bedarfsanalyse erstellt wird, gibt es gelegentlich die Anforderung ein bestehendes Softwaresystem zu erweitern oder auf der Grundlage aktueller Technologien neu programmieren. Hierbei werden der Regel der Funktionsumfang sowie die Benutzerführung vom Altsystem weitestgehend übernommen. Die Softwareentwicklung beschränkt sich in diesem Fall auf die Analyse des abzulösenden Systems und die Auswahl der zu verwendenden Technologien bei der Programmierung der Software.
Je nach Art und Umfang des zu entwickelnden Softwareprojekts arbeiten ein oder mehrere Softwareentwickler oder ganze Entwicklerteams an der Umsetzung eines Softwareprojekts. Meist übernehmen spezialisierte Softwareentwickler Teilbereiche der Entwicklung. Dabei wird eine Software in logische Schichten aufgeteilt. Einige Softwareentwickler übernehmen die Entwicklung von Algorithmen oder Hintergrunddiensten andere Softwareentwickler kümmern sich um die Benutzerführung und die Gestaltung der grafischen Benutzeroberfläche.
Die eigentliche Programmierung
Die Programmierung einer Software kann als eigenständiger Prozessschritt gesehen werden. In der Praxis gibt es zwischen Programmierer und Softwareentwickler eine dauerhafte Feedback-Schleife. Der Einsatzbereich der Software sowie die zu verwendenden Technologien, bestimmen über die Entwicklungsumgebung und die zu verwendende Programmiersprache. Während für hardwarenahe Programmierung eine abstrakte Maschinensprache (Assembler-Code) zum Einsatz kommt, werden für andere Anwendungsgebiete Hochsprachen verwendet deren Befehle an die menschliche Sprache angepasst sind. Zu diesen Hochsprachen gehören zum Beispiel C, C++, Pascal oder BASIC. Diese Hochsprachen müssen natürlich für die Computer in maschinenlesbarem Code übersetzt werden. Dies kann zur Laufzeit durch einen Interpreter oder bei der abschließenden Softwareerstellung durch einen Compiler erfolgen. Beide Strategien sind für unterschiedliche Einsätze der Software gedacht. Einige Sonderformen der Hochsprachen werden in visuellen Wicklungsumgebungen verwendet. Hier kommen zum Beispiel Visual Basic, Visual C++ oder C# zum Einsatz.
Softwareentwicklung im WEB
Bei der Entwicklung von Web-Anwendungen kommen sogenannte Metasprachen oder Skriptsprachen zum Einsatz. Oft werden sogar mehrere Skriptsprachen die speziell für den Einsatz im World Wide Web entwickelt wurden verwendet. So werden die grafischen Elemente (Benutzeroberfläche) einer Webseite mit HTML programmiert wobei die aktiven Elemente einer Webseite sowie die im Hintergrund laufenden Funktionen mit PHP und Javascript programmiert werden. In der Regel wird bei der Softwareentwicklung vorgegeben welche Programmiersprachen zum Einsatz kommen sollen. Die Entscheidung für die Auswahl einer geeigneten Programmiersprache hängt von den technischen Möglichkeiten der Programmiersprache bzw. der Entwicklungsumgebung ab. Darüber hinaus wird ein Softwareentwickler immer auf den allgemeinen Verbreitungsgrad einer Programmiersprache sowie den Entwicklungsstand achten. Komfortable Entwicklungssysteme die nicht mehr gepflegt werden oder exotische Programmiersprachen die nur von einer Minderheit beherrscht werden vom Softwareentwickler in der Regel nicht in Betracht gezogen.
Moderne Entwicklungsumgebungen unterstützen den Softwareentwickler und den Programmierer gleichermaßen. Sie stellen Hilfsmittel und Werkzeuge für die Projektorganisation und für die Quellcodeverwaltung Verfügung. Häufig findet man in solchen Entwicklungsumgebungen Instrumente zur Prozesssteuerung und zum Workflow Management.
Die Werkzeuge eines Softwarentwicklers
Dem Softwareentwickler stehen unzählige Tools für die Umsetzung eines Softwareprojekts Verfügung. Je größer und komplexer ein Software Projekt ausgelegt ist umso mehr übergeordnete Prozessschritte und Verwaltungsaufgaben sind erforderlich. Für kleinere Softwareprojekte des aber durchaus üblich dass Softwareentwickler und Programmierer ein und dieselbe Person sind. Das verkürzt in der Regel die Entwicklungszeit durch den Wegfall einer übergeordneten Verwaltung. Oft kommt es sogar vor das erfahrene Softwareentwickler und Programmierer bestimmte Teilaufgaben direkt umsetzen, d.h. den Code gleich ins Reine schreiben ohne vorher ein abstraktes Schema zu entwickeln. Diese Form der Softwareentwicklung kann bei kleinen Softwareprojekten erhebliche Kosten und Zeiteinsparungen bringen. Bei größeren Softwareprojekten für diese Vorgehensweise eher zu Problemen.
Anwendungsentwicklung im Baukastenprinzip
Die meisten professionellen Softwareentwickler konzipieren ihre Software modular um eine Wiederverwendbarkeit programmierten Bausteine zu gewährleisten. Damit ist man schon bei der Softwareentwicklung in der Lage den Grundstein neue Projekte zu legen. Da im Laufe der Zeit immer mehr und Bausteine entwickelt werden die dann relativ kurzfristig bei ähnlichen Softwareentwicklungsprojekten eingesetzt werden können, sind die Durchlaufzeiten bei erfahrenen Softwareentwicklern in der Regel viel kürzer als bei Branchenneulingen. Für viele Auftraggeber kann es finanziell und zeitlich sehr interessant sein ein bestehendes Projekt nach seinen Wünschen und Anforderungen modifizieren zu lassen. Hier besteht die Herausforderung für den Softwareentwickler darin die Modifikationen so anzubringen dass die bisher entwickelten Komponenten ihre ursprünglichen Funktionen beibehalten.
Schnittstellen – unverzichtbar
Neben dem Design und der Architektur muss sich der Softwareentwickler mit der Wartung der Dokumentation und dem Release Management auseinandersetzen. Darüber hinaus sind oft umfangreiche Studien die das Anwendungsgebiet betreffen zu betreiben. Sofern eine Anbindung an Drittsysteme erfolgen soll müssen hierzu die entsprechenden Schnittstellen geschaffen werden. Ein Softwareentwickler muss die entsprechenden Dokumentationen studieren und die Umsetzung fremder Datenformate planen. Auch bei diesem Arbeitsschritt liegen die Aufgabengebiete von Softwareentwickler und Programmierer nah beieinander. In vielen Bereichen sind die Übergänge fließend.
Kompilieren – was heißt das? Einfach erklärt
Was bedeutet es in der EDV: Kompilieren
Die Softwareentwicklung betreffend heißt kompilieren, einen Quellcode in eine anwendbare Programmiersprache zu übersetzen, sodass etwa ein Computer den Code ausführen kann. Ein Programm wird mithilfe eines Compilers übersetzt. Es gibt Bau-Pakete, die sowohl den Quellcode eines Programms als auch den notwendigen Compiler beinhalten, um Nutzern das Kompilieren des Codes in eine ausführbare Datei zu erleichtern. Dies ist zum Beispiel bei den build-essentials von Ubuntu der Fall.
Wie kann ich etwas kompilieren?
Wollen Sie selbst etwas kompilieren, kann sich dies als komplex gestalten und nötige Kenntnisse im Programmieren voraussetzen. Einfacher geht es jedoch, wenn Sie sich ein Bau-Paket herunterladen können. Dann gehen Sie so vor:
Laden Sie direkt vom Herausgeber den Quellcode zusammen mit allen nötigen Compilern und anderen Programmen herunter. Entpacken Sie die Dateien in ein Archiv und greifen Sie auf dieses mit einer Konsole zu. Führen Sie dann diese Schritte aus:./configuremakemake install
Der erste Befehl liest den Quellcode ein und analysiert ihn. Das Kompilieren wird dadurch vorbereitet. „Make“ stellt den Prozess des Kompilierens dar, während der letzte Schritt die kompilierte Datei direkt installiert.
Das könnte Sie auch interessieren:
Android App erstellen: So gehen Sie am besten vor
Kompilierung
Der Prozess der Erstellung eines ausführbaren Programms durch das Schreiben von Code in einer kompilierten Programmiersprache wird Kompilierung genannt. Die Kompilierung ermöglicht es dem Computer, das Programm zu verstehen und auszuführen, ohne die Programmiersoftware zu verwenden, die zur Erstellung des Programms verwendet wurde.
Weitere Artikel im Wiki