Frontend und Backend

Eine grundsätzliche Unterscheidung wird bei der Softwareentwicklung zwischen der Implementierung von Komponenten für Frontend und Backend gemacht. Beide Komponenten sind für die Softwareentwicklung wichtig und voneinander abhängig.

Frontend

Frontend bezeichnet alles, was man auf einer Webseite sehen kann. Dazu gehören Animationen, Bilder, Videos und vieles mehr. Die Frontend-Entwicklung spielt also für die optische Gestaltung von Webseiten eine wesentliche Rolle. Die Ergebnisse werden auf der Webseite für den User sichtbar und er hat damit die Möglichkeit, mit der Webseite zu interagieren.

Backend

Auf der anderen Seite gibt es die Backend-Entwicklung. Sie beschreibt die Software, die im Hintergrund einer Webseite arbeitet und für den User nicht sichtbar ist. Dazu gehören beispielsweise die Sammlung von Daten oder das Update von Programmen. All diese Vorgänge laufen unsichtbar im Hintergrund ab und werden vom User nicht wahrgenommen.

In der Praxis gibt es Softwareentwickler, die sich auf eine dieser beiden Entwicklungsmöglichkeiten spezialisiert haben. Manche Softwareentwickler bearbeiten jedoch auch beide Seiten. Technisch laufen die Programmierprozesse jedoch in ähnlicher Weise ab. Die Unterscheidung zwischen Frontend und Backend dient in erster Linie dazu, die Softwareentwicklung übersichtlicher zu gestalten. Um eine funktionstüchtige Frontend-Software zu entwickeln, muss auch eine entsprechende Backend-Software vorhanden sein.

Objektorientierte Programmierung

Die objektorientierte Programmierung spielt vor allem bei der Entwicklung von Anwendungsprogrammen eine große Rolle. Diese Art der Programmierung wird von den meisten modernen Programmiersprachen unterstützt.

Was ist objektorientierte Programmierung

Diese Form der Programmierung ist Teil der sogenannten Programierparadigmen. Die objektorientierte Programmierung basiert auf der Anlehnung der Software an die Gegebenheiten in der wirklichen Welt. Das klingt kompliziert, ist aber durchaus nachvollziehbar. Jedes Objekt in der realen Welt verfügt über spezifische Eigenschaften. So kann beispielsweise ein Flugzeug von einem bestimmten Hersteller stammen, eine bestimmte Form haben, ein Transportflugzeug sein oder ein Kampfflugzeug. Diese Eigenschaften sind die Daten des Objekts. Außerdem besitzt ein Flugzeug verschiedene Funktionen. Es kann fliegen oder landen. In der objektorientierten Programmierung werden die Funktionen als Methoden bezeichnet. Die Daten und Methoden werden dabei zu Objekten zusammengefasst. Jedes Objekt gehört einer bestimmten Klasse an. Im Fall des beschriebenen Beispiels gehören die Objekte zur Klasse “Flugzeuge”. Die Klasse ist in der Programmierung gleichzeitig der Bauplan für weitere Objekte. Von jeder Klasse können dann beliebig viele Objekte erzeugt werden.

Ermöglicht wird diese Art der Programmierung durch die Anwendung verschiedener Programmiersprachen, welche eine objektorientierte Programmierung unterstützen. Die häufigsten dieser Programmiersprachen sind dabei Java oder C#.

Was ist Softwareentwicklung?

Unter Softwareentwicklung versteht man allgemein die Entwicklung neuer Software oder die Verbesserung bestehender Softwaresysteme. Alle Apps auf dem Smartphone oder dem Tablet sind Softwarelösungen. Das reicht von der Navigation über die Wetter-App bis hin zur Musik. Die Entwicklung dieser Software ist jedoch ein langfristiger Prozess, der sich in verschiedene Phasen einteilen lässt.

Am Anfang steht eine Idee

Zu Beginn der Softwareentwicklung steht immer eine bestimmte Idee. Im Mittelpunkt steht dabei die Funktionalität. Die Software muss bestimmte Funktionen gewährleisten. Deshalb wird in die Entwicklung vor allem viel Zeit für die Planung investiert. Ein Programm kann eine bestimmte Aufgabe selten in einem einzigen Arbeitsschritt erledigen. Vielmehr erfordert die Umsetzung einer Funktion mehrere einzelne Arbeitsschritte, die sorgfältig geplant und aufeinander abgestimmt werden müssen. Nach der Planung der Funktionen können die Daten ermittelt werden, welche für die Erfüllung der einzelnen Arbeitsschritte notwendig sind. Nach diesem Entwicklungsprozess wird die gesamte Software nochmals eingehend geprüft.

Da die Entwicklung von Software ein sehr umfangreicher Prozess ist, werden die Entwicklungsschritte in einzelne Phasen eingeteilt.

Verschiedene Entwicklungsmodelle – gleiche Phasen

Prinzipiell wird bei der Entwicklung einer Software zwischen zwei Modellen unterschieden. Zum einen gibt es das iterative Modell und zum anderen das Wasserfallmodell. Beide Modelle vereinen jedoch jeweils sechs Phasen im Entwicklungsprozess. Diese Phasen bestehen aus der Anforderungsanalyse, dem Design, der Umsetzung, der Prüfung, der Veröffentlichung sowie der Wartung. Nachdem eine Software entwickelt, geprüft und veröffentlicht wurde, geht der Entwicklungsprozess jedoch weiter. Ein Computerprogramm oder eine App werden ständig weiterentwickelt und verbessert.

Das iterative Modell

Bei einem iterativen Modell wird die Software durch ständige Wiederholungen schrittweise optimiert. Im Zuge dieser Wiederholungen kann sich die Struktur der Software entwickeln. Die Entwicklung der Software wird dabei in viele einzelne Schritte zerlegt, die jeweils einer Kontrolle unterzogen werden. Dadurch können alle auftretenden Mängel sofort und rasch behoben werden. Außerdem können die Softwareentwickler auch rasch auf veränderte Anforderungen reagieren und die Software an die veränderten Bedingungen anpassen.

Das Wasserfallmodell

Dieses Modell zeichnet sich durch seine lineare Struktur aus. Dabei erfolgen die einzelnen Prozessschritte in kurzen aufeinanderfolgenden Phasen. Bei diesem Modell durchläuft man eine Entwicklungsphase im Gegensatz zum iterativen Modell jedoch nur ein einziges Mal. Dieses Modell wird in der Softwareentwicklung am häufigsten eingesetzt.

Das Ziel der Softwareentwicklung ist es, mit möglichst geringem Aufwand eine bestmögliche Softwarelösung für ein bestimmtes Problem zu erreichen. Vor allem der Arbeitsaufwand soll möglichst gering gehalten werden, da dieser enorme Kosten verursacht. Eine Software ist nur dann nützlich, wenn sie alle Funktionen korrekt ausführt und alle zur Verfügung stehenden Ressourcen effizient verwendet. Vor allem die Speicherkapazität und die Prozessorgeschwindigkeit bilden die Rahmenbedingungen für die Nutzung und Arbeitsweise der Software. Die Softwareentwicklung ist so alt wie die Entwicklung der Hardware. Schon die ersten Computer benötigten Software, um Funktionen richtig ausführen zu können.

Arten der Softwareentwicklung

Es gibt unterschiedliche Arten von Softwareentwicklungsmodellen. Diese Vorgehensmodelle dienen in erster Linie zur übersichtlichen Gestaltung der Softwareentwicklung. Sie gelten quasi als Plan für die Entwicklung eines bestimmten Softwareauftrags. Dieser Plan ist deshalb vorteilhaft, da die Entwicklung von Softwarelösungen meist ein komplexes Problem darstellt. Neben dem Wasserfallmodell gibt es noch andere Verfahren. Dazu zählen das Prototyping, das Spiralmodell oder das V-Modell.

Das Wasserfallmodell

Das Wasserfallmodell gilt als lineares Entwicklungsmodell und wird in einzelnen Phasen umgesetzt. Die Ergebnisse einer Phase dienen im Anschluss als Basis für die nächste Phase. Jede einzelne Phase wird dabei vollständig durchgeführt. Erst wenn diese Phase beendet ist, kann die nächste Phase eingeleitet werden. Das Prozedere ist daher sequenziell und nicht simultan. Dadurch kann das Projekt in einzelnen Arbeitsschritten umgesetzt werden und der Aufwand ist für das Management relativ gering. Viele Softwareprojekte verwenden in erster Linie dieses Entwicklungsmodell.

Das Prototyping

Dieses Entwicklungsmodell arbeitet mit der Entwicklung von Beispielen für eine anstehende Softwarelösung. Die Softwareentwickler entwerfen dabei einen Prototypen der zukünftigen Software. Diese Prototypen sind dabei rasch und effizient abrufbar, und eventuelle Verbesserungen können ebenso schnell durchgeführt werden. Diese Methode ermöglicht es, Änderungswünsche von Auftraggebern frühzeitig zu berücksichtigen. Das ist wesentlich einfacher, als nach der Fertigstellung der Software Änderungen vorzunehmen.

Das Spiralmodell

Hier wird ein Kreis in vier Quadranten unterteilt. Jeder Quadrant bezeichnet einen eigenen Entwicklungsschritt. Durch dieses Modell sollen in erster Linie die Entwicklungskosten für eine Software möglichst gering gehalten werden. Der erste Quadrant dient der Entwicklung von Zielen, welche durch die Software erreicht werden sollen. Im zweiten Quadranten finden sich Alternativlösungen. Der dritte Quadrant beherbergt die eigentliche Entwicklung der Software und im vierten Quadranten wird die nächste Phase für die Softwareentwicklung eingeleitet. Der gesamte Entwicklungsprozess durchläuft alle Quadranten mehrmals und spiralförmig von innen nach außen.

Das V-Modell

Das V-Modell wurde bereits im Jahr 1979 kreiert und dient als Alternative zu den oben genannten Modellen. Im V-Modell werden ähnliche Tätigkeiten, die zur Entwicklung der Software erforderlich sind, zusammengefasst und dienen als sogenannte Vorgehensbausteine. Es gibt insgesamt 22 dieser Bausteine. Dieses Modell ist für die Erarbeitung komplexer Softwarelösungen vorteilhaft, da es erweiterbar ist und stets an geänderte Rahmenbedingungen angepasst werden kann. Außerdem ermöglicht das Modell, jede Entwicklungsphase in einem Test zu kontrollieren. Das V-Modell ist in gewisser Weise auch an das Wasserfallmodell angelehnt.

Die Programmiersprachen

Die Programmiersprache ist ein wesentlicher Bestandteil in der Softwareentwicklung. Sie bildet die technische Grundlage für alle Programme, die auf EDV-Geräten ausgeführt werden. Diese Sprache ist eine rein formale Sprache und dient der Formulierung von Datenstrukturen und mathematischen Algorithmen.

Die verschiedenen Programmiersprachen

Mittlerweile werden in der Softwarebranche viele verschiedene Programmiersprachen angewendet. Die häufigsten Sprachen sind dabei Javascript, C und C++, PHP und Swift. Daneben existiert noch eine Vielzahl anderer Sprachen, die alle in ähnlicher Weise aufgebaut sind. Javascript ist jene Sprache, die am häufigsten für Webanwendungen genutzt wird. Diese Sprache ermöglicht es, Webseiten zu programmieren, Spiele zu entwickeln oder Anwendungsprogramme zu erstellen. Die Programmiersprache C++ ist eine Erweiterung der Ursprache C und wird auch heute in vielen Rechnern angewendet. Hauptsächlich programmiert diese Sprache Betriebssysteme. Die Sprache PHP wird ausschließlich für die Programmierung von Webseiten genutzt und bestimmt, was im Hintergrund einer Webseite elektronisch geschieht. So können mit ihrer Hilfe konkrete Daten direkt auf der Webseite angezeigt werden. Swift ist eine Programmiersprache, die von Apple entwickelt wurde und nur auf diesen Geräten läuft. Außer diesen Sprachen gibt es noch etliche andere Programmiersprachen. Eine davon ist beispielsweise Scratch. Diese Programmiersprache dient allerdings weniger zum richtigen Programmieren von Computern als vielmehr als Lernprogramm. Die Sprache ist recht einfach und wurde speziell für Kinder entwickelt.

Beliebte Programmiersprachen

Wer eine App entwickeln will oder sich generell für das Programmieren interessiert, muss zuerst zumindest eine Programmiersprache beherrschen. Am besten eignet sich Javascript, da diese Sprache fast überall eingesetzt werden kann. Speziell eignet sich Javascript für die Erstellung von Webseiten. Durch diese Sprache kann zum Beispiel die Benutzeroberfläche einer Internetseite zusammengestellt werden.

Eine weitere prominente Programmiersprache ist Python. Sie dient hauptsächlich der Programmierung von Maschinen und automatisierten Produktionssystemen und wird vor allem von großen Unternehmen benutzt.