GPT-3 – ein Meilenstein der künstlichen Intelligenz

Der Generative Pre-trained Transformer 3 (GPT-3) ist eine Software mit künstlicher Intelligenz, die Texte generieren kann. Sie wurde am 11. Juni 2020 als Betaversion veröffentlicht und stammt vom Software-Unternehmen OpenAI. Die GPT-3-Software, ein Meilenstein des Software-Engineerings, wurde mit 175 Milliarden Parametern trainiert. GPT-3 arbeitet kontextbasiert und reagiert auf Texteingaben, in dem sie quasi die fehlenden Teile ergänzt. Diese Methode lässt sich sowohl bei der Programmierung von Skripten als auch bei der Erstellung von gewöhnlichen Texten anwenden, wie sie von Menschen geschrieben werden.

Anwendungsbeispiel – was kann die Software?

GPT-3 funktioniert wie eine Art erweiterter Sprach-Assistent, der es unter anderem ermöglicht, Teilaufgaben im Bereich der Softwareentwicklung, wie etwa das manuelle Schreiben von Programmiercode, durch die Software selbst erstellen zu lassen. In ersten Anwendungsbeispielen wurde das Programmieren von Apps bereits mehrfach erfolgreich demonstriert. Jordan Singer hat zum Beispiel ein Plugin für die Figma-Software erstellt, mit dem ein User, unter der Assistenz von GPT-3, die KI dazu bringen kann, die Nutzeroberfläche einer App samt rudimentärer Funktionalität zu erstellen. Dazu gibt er normale Sprachfragmente in eine Textbox ein und bestätigt die Eingabe.

Der menschlich Faktor

GPT-3 bietet die Grundlage zur Erstellung neuer Eingabe-Schnittstellen für Computer-Anweisungen. Der Faktor Mensch wird natürlich nicht komplett ersetzt. Beispielsweise hat die fortschrittliche Art, wie man heute einfach online leckere Kuchen bestellen kann, im Prinzip auch nur den Komfort für den Kunden erhöht. Durch die einfache Bedienung kann sich wirklich jeder im DeineTorte-Shop im Handumdrehen seine ganz persönliche Wunschtorte zusammenstellen. Dank der großen Auswahl an Kuchen und Törtchen ist garantiert für jeden etwas dabei. Durch die Shop-Software wurde letztlich die Kundennähe verbessert.

Wie sieht die Zukunft der Softwareentwicklung aus?

Werden die GPT-Module aus dem Hause Open-AI die Arbeit der Spezialisten, wie Programmierer, IT-Spezialisten, Designer oder Texter demnächst übernehmen? Nein, denn sämtliche zu erstellenden digitalen Produkte sind individuelle Lösungen. Und diese müssen letztendlich den Bedürfnissen der Endnutzer und Menschen entsprechen, um ihnen das Leben und die Arbeit zu erleichtern.

Im Bezug zum obigen Beispiel der Software für Unternehmen des DeineTorte-Shops könnte GPT-3 etwa den Auswahlprozess für den Kunden und das Kundenmanagement der Shopbetreiber verbessern. Auch in vielen anderen Bereichen kann die GPT-3-Software Prozesse beschleunigen. Wenn man sich die Nutzeroberflächen der offiziellen behördlichen Steuererklärungen-Software ansieht, hat man momentan zwar noch eher den Eindruck, dass der Mensch eher der Software dienen soll. Vielleicht befreit die GPT-3-Software die Nutzer ja bald wie ein Filter von sämtlichen jeweils irrelevanten Informationen? Das wäre doch ein Segen. Alle hätten mehr Zeit und könnten sich wieder um die schönen und wirklich wichtigen und zwischenmenschlichen Dinge kümmern, die das Leben bereichern.

Software für Unternehmen

Bei der Softwareentwicklung stellt man sich die Frage, welche Software für Unternehmen geeignet ist. Viele Unternehmen verwenden standardisierte Software, die für den Alltagsgebrauch im Büro oder in der Verwaltung angewandt wird.

Unternehmensspezifische Software

Fast jedes Unternehmen verfügt heute bereits über ein eigenes EDV-System. Die Nutzung von Rechnern ist zur Alltagstätigkeit geworden. Im Bürobereich dominieren bereits seit langer Zeit Softwarelösungen wie Microsoft Office oder Open Office. Diese Software bietet in erster Linie Lösungen für den Bürobereich an. Diese reichen von der Textverarbeitung über die Erstellung von Präsentationsunterlagen bis hin zur Buchhaltung und Kostenrechnung. Diese Programme sind standardisiert. Daneben gibt es jedoch auch Software, die eigens für ein Unternehmen entwickelt wird. Unternehmen beauftragen für die Softwareentwicklung professionelle Programmierer, die sich damit beschäftigen, eine geeignete Softwarelösung zu entwickeln und im Unternehmen zu implementieren. Welche Software von einem Unternehmen benötigt wird, hängt hauptsächlich von der Branche sowie dem Entwicklungsstand des Unternehmens ab. Heute wird spezielle Software vor allem im Bereich der künstlichen Intelligenz benötigt. Das betrifft unter anderem Maschinen, die im Produktionsablauf eine wesentliche Rolle spielen und mit anderen Maschinen sowie mit Menschen kommunizieren.

Software aus der Cloud

Viele Betriebe verwenden Softwarelösungen aus der Cloud. Mit deren Hilfe werden Meetings durchgeführt oder die Lagerverwaltung kontrolliert. Der Vorteil der Nutzung einer Cloud besteht in erster Linie in der Kostenersparnis. Eine große Rolle spielen cloudbasierte Lösungen in er unternehmensinternen Kommunikation. Die meisten Mitarbeiter kommunizieren dabei über Skype oder ähnlichen Technologien mit den anderen Mitarbeitern oder der Unternehmensführung. Aber auch die Auslagerung sensibler Daten kann über eine Cloud erfolgen. Durch die Nutzung dieser cloudbasierten Lösungen können die Unternehmen auch viel flexibler agieren. Derartige Lösungen aus der Cloud werden von SaaS angeboten. Das Kürzel steht dabei für die Bezeichnung Software as a Service. Dabei werden alle IT-Vorgänge und Softwarelösungen von einem externen Dienstleister angeboten. Für die Inanspruchnahme dieser Dienstleistungen ist lediglich ein Computer sowie ein Internetzugang erforderlich.

Das Programmieren von Apps

Die App-Stores von Google und Apple sind voll mit den verschiedensten Apps. Es gibt fast für jeden Bereich des Alltags eine Lösung, die in Form einer App aufscheint. Dahinter steckt natürlich eine Menge Entwicklungsarbeit. Das Programmieren von Apps ist jedoch gar nicht so schwer, wie man vermuten möchte.

Was ist eine App?

Eine App ist nichts anderes als eine Software, die auf mobilen Endgeräten eingesetzt wird. Vor allem auf Smartphones dienen Apps dazu, sich über die unterschiedlichsten Dinge zu informieren. Auch ein Navigationssystem wird mithilfe einer App gesteuert. Apps sind in erster Linie darauf ausgerichtet, mit einem Touchscreen bedient und aktiviert zu werden. Bei der Programmierung einer App muss dieser Umstand deshalb vorrangig berücksichtigt werden. Die Entwicklung einer App kling zwar kompliziert, ist aber relativ einfach, wenn man sich mit der Technik einigermaßen gut auskennt. Auch die Programmierung von Apps kann man heute lernen. Dafür stehen im Internet zahlreiche Portale zur Verfügung. Auch Kurse und Webinare werden zu diesem Thema angeboten. Die Entwicklung einer App kann auch ohne umfangreiche Programmierkenntnisse erfolgen, wenn man Baukastensysteme dafür verwendet. Diese werden von verschiedenen Unternehmen online angeboten. Mit diesen Baukästen ist es relativ einfach, seine eigene App zu entwickeln.

Quellcode und Programmiersprache

Alle Apps entstehen mithilfe sogenannter Quellcodes. Diese Codes müssen zuerst geschrieben werden. Danach wird mit einer geeigneten Programmiersprache die App verwirklicht. Grundsätzlich gibt es heute zwei verschiedene Systeme von Apps. Dazu gehören jene, die auf Android basieren und jene, die sich dem iOS-System bedienen. Android ist in den meisten Smartphones und Webseiten zu finden und iOS bei Apple-Produkten. Apps, die auf Android ausgerichtet sind, werden mit der Programmiersprache Java bedient. iOS-Apps gründen sich hingegen auf der eigenen Sprache von Apple – Swift.

Der Quellcode wird in einer Software geschrieben, welche zur Projektverwaltung dient. Die Software dafür stellt Google für Android zur Verfügung. Für die Programmiersprache Java ist zudem das Tool Java Development Kit notwendig.

Umfangreiche Apps werden jedoch von intelligenten Unternehmen hergestellt. Diese verfügen über ein fachlich hochqualifiziertes Team, welches sich mit der App-Entwicklung tagtäglich auseinandersetzt. Für Unternehmen, die eine eigene App ins Leben rufen wollen, stehen auch Unternehmen zur Verfügung, welche diese Aufgabe übernehmen. Allerdings sind die Kosten für die Entwicklung einer professionellen App relativ hoch. Die durchschnittlichen Kosten für das Erstellen einer App liegen bei rund 8.000 Euro.

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.

Digitale Geschäftsmodelle

Digitale Geschäftsmodelle werden im Wirtschaftsleben immer bedeutender. Sie spielen vor allem im Marketing und im Verkauf eine große Rolle. Auch für diese Geschäftsmodelle existieren verschiedene Softwarelösungen.

Lösungen aus der Cloud

Auch digitale Geschäftsmodelle bedienen sich heute vorwiegend Lösungen aus der Cloud. Diese beinhalten Bezahlmodelle oder Angebotsformen. Die Softwarelösungen werden dabei nicht mehr im eigenen EDV-System implementiert, sondern einfach aus der Cloud abonniert. Das erspart viel Zeit und natürlich Kosten. Die Software, die für digitale Geschäftsmodelle wie Online-Shops oder Subscriptions verwendet wird, muss in der Lage sein, die digitalen Geschäftsprozesse vollständig zu erfassen. Um die digitale Transformation zu schaffen, ist es für Unternehmen wichtig, über entsprechende IT-Kenntnisse sowie über Softwarekompetenz zu verfügen. Die verwendete Software gibt außerdem Aufschluss darüber, wie innovativ ein Unternehmen auf dem Markt agiert. Softwaresysteme werden daher ständig an veränderte Rahmenbedingungen angepasst. Die Softwarekomponenten, die für ein digitales Geschäftsmodell eingesetzt werden, müssen fortlaufend aktualisiert werden. Eine Lösung, die aus der Cloud kommt, ist daher vorteilhaft, da dort die Software laufend auf den neuesten Stand der Technik gebracht wird.

Gerade im Zeitalter der Digitalisierung ist die Softwareentwicklung zu einem wesentlichen und unabdingbaren Bestandteil geworden. Das gilt nicht nur für digitale Geschäftsmodelle, sondern generell für alle Unternehmen.

Software Engineering

Heute hört man viel von Software Engineering. Was verbirgt sich hinter diesem Begriff und welche Bedeutung hat diese Disziplin in der heutigen Zeit?

Softwaretechnik

Der Begriff Software Engineering bezeichnet nichts anderes als die Softwaretechnik. Diese beschäftigt sich mit der Entwicklung und Verbesserung von Software. Sie besteht jedoch aus einer Reihe von verschiedenen Teilbereichen, die alle für die Softwareentwicklung von Bedeutung sind. Die Softwareentwicklung ist ein sehr komplexer Vorgang, der in einzelne Entwicklungsschritte eingeteilt wird. Dieser Entwicklungsplan wird auch als Vorgehensmodell bezeichnet. Im Software Engineering werden alle Teilschritte des Entwicklungsprozesses zusammengefasst. Das Software Engineering sorgt damit für die Planung des Bedarfs an Software bis hin zu ihrer konkreten Umsetzung und Anwendung.

Software Engineering ist eine wissenschaftliche Disziplin der IT, die zum Bereich der Wirtschaftsinformatik und teilweise auch der praktischen Informatik gehört. Um als Softwaretechniker oder Software Engineer zu arbeiten, muss eine universitäre Ausbildung erfolgreich abgeschlossen werden. Dies erfolgt meistens im Rahmen eines Informatikstudiums. Die wesentlichen Ziele, welche das Software Engineering verfolgt, sind aus wirtschaftlicher Sicht die Verkürzung der Zeit für die Softwareentwicklung, die Qualitätssicherung sowie die Senkung der damit verbundenen Kosten. Außerdem trägt sie wesentlich dazu bei, dass die Entwicklung von Software in systematischer Weise erfolgt.

Die Ausbildung zum IT-Spezialisten

Der IT-Bereich ist besonders durch ein stetiges Wachstum gekennzeichnet. Die IT-Branche hat jedoch viele unterschiedliche Betätigungsfelder zu bieten und beschränkt sich nicht allein auf das Programmieren oder die Softwareentwicklung.

Voraussetzungen

Um eine konkrete Ausbildung zum Softwareentwickler oder IT-Spezialisten zu absolvieren, bedarf es einiger Voraussetzungen. Diese Berufe sind eng mit Algorithmen und Mathematik verbunden. Wer in diesen Bereichen weniger versiert ist, sollte sich nicht unbedingt mit dieser Materie beschäftigen. IT-Berufe sind vor allem für jene Personen geeignet, die sich für Technik und Mathematik interessieren und für die Logik kein Fremdwort ist. Wer sich für das Innenleben von Computern oder Smartphones interessiert, könnte eine Ausbildung als Softwareentwickler in Angriff nehmen. Dafür eignen sich auch Studienrichtungen wie Informatik oder Elektronik. Voraussetzung für eine akademische Ausbildung ist natürlich das Abitur. Als vorteilhaft kann sich dabei auch ein erfolgreicher Abschluss einer höheren technischen Schule erweisen. In der Elektro- und Informationstechnik werden in Deutschland mittlerweile auch duale Studiengänge angeboten.

Die Bereiche der IT

Die Abkürzung IT steht für die englische Bezeichnung information technology. Sie verbindet die beiden Fachbereiche Elektrotechnik und Informatik. Heute werden in den meisten Branchen der Wirtschaft IT-Fachkräfte benötigt. Der Bogen spannt sich dabei von der Automobilindustrie über die Energiewirtschaft bis hin zur Luft- und Raumfahrttechnik. Neben der Ausbildung im Rahmen eines Studiums ist auch eine schulische Ausbildung in diesem Bereich möglich. Die Ausbildung zum Assistenten der Informatik kann in einer Fachschule erfolgen. Dabei stehen auch verschiedene Fachrichtungen im Mittelpunkt wie beispielsweise die Ausbildung als Betriebsinformatiker oder als Medieninformatiker. Die Aufgabe eines Assistenten der IT ist es, Hard- und Softwarekomponenten anzupassen und die Systeme in der Praxis auf Computern und EDV-Anlagen zu implementieren.

Eine Ausbildung zum Informatikkaufmann kann ebenfalls im Rahmen einer dualen Ausbildung in Schule und Praxis erfolgen. Informatikkaufleute schätzen in einem Unternehmen den Bedarf an IT-Lösungen ab und beschreiben Softwareprogramme, die für das Unternehmen von Bedeutung sein können. In diesem Beruf lernt man, technische Störungen zu beheben und muss sich außerdem mit der Programmierung beschäftigen.

Auch in Deutschland leidet die Industrie und Wirtschaft heute unter einem enormen Fachkräftemangel im IT-Bereich. Jedes Jahr werden mehr offene Stellen in diesem Segment ausgeschrieben. Die Zahl der geeigneten Bewerber hält sich jedoch stark in Grenzen. Deshalb haben jene, die sich in Zukunft mit der Informationstechnologie und der Softwareentwicklung beschäftigen wollen, sehr gute Berufsaussichten. Auch die Gehälter sind in diesem Berufsfeld relativ hoch angesetzt und stellen damit durchaus attraktive Anreize dar. Zudem sind auch die Karrierechancen sehr gut.

Programmiersprachen erlernen

Das Lernen von Programmiersprachen ist eine wichtige Voraussetzung, um in die Entwicklung von Softwareprogrammen oder Apps einzusteigen. Um Programmiersprachen zu erlernen, gibt es eine Reihe von Möglichkeiten.

Die Art der Sprache

Zuerst stellt sich die Frage, welche Sprache man erlernen will. Das ist für das spätere Programmieren entscheidend. Mittlerweile gibt es eine Menge an unterschiedlichen Programmiersprachen. Einige davon sind universell einsetzbar, andere wiederum dienen nur der Entwicklung spezieller Komponenten. Die erste Sprache, die man erlernt, ist sicherlich die schwierigste. Hat man diese einmal durchschaut, tauch die nächste Sprache auf, mit der man sich auseinandersetzen muss. Das Lernen hört in diesem Bereich also nie auf. Die Wahl der passenden Sprache hängt in erster Linie davon ab, was man programmieren will. Man muss sich daher entscheiden, ob man Webseiten bauen, Daten verwalten oder Embedded-Lösungen entwickeln will. Außerdem ist es wichtig zu erkennen, welche Sprache in Zukunft an Bedeutung gewinnen wird und welche nicht.

Die wichtigsten Sprachen

Programmiersprachen sind meistens auf eine bestimmte Anwendung ausgerichtet. Python ist eine Sprache, die relativ einfach ist und die sich in erster Linie für die Entwicklung von Programmen im Backend eignet. Auch für Einsteiger ist diese Sprache für den Anfang die erste Wahl.

Für das Lernen eignet sich ferner die Grundsprache C. Diese Sprache ermöglicht es, die Interaktionen zwischen Hardware und Software kennenzulernen. Die objektorientierte Programmiersprache C++ baut auf C auf. Angewandt wird C++ vor allem im Bereich der Spielentwicklung sowie in der 3-D-Programmierung.

Javascript ist eine Sprache, die derzeit am weitesten verbreitet ist und sie kann zudem vielfältig eingesetzt werden. Da Javascript vor allem im Webdesign eingesetzt wird, entwickeln erfahrene Programmierer diese Sprache auch ständig weiter.

HTML und CSS

Sowohl HTML als auch CSS sind keine eigentlichen Programmiersprachen, werden aber trotzdem verwendet. Sie dienen in erster Linie der Entwicklung von Lösungen für das Frontend von Webseiten. Die Sprachen sind einfach zu erlernen, und Webdesigner sind im Umgang mit diesem Instrument sehr versiert. Eine Vielzahl von Apps und Softwareprogrammen ist heute auf diese beiden Sprachen ausgerichtet.

Wer eine Programmiersprache erlernen will, muss nicht gleich ein komplexes Projekt in Angriff nehmen. Vor allem die einfachen Programmiersprachen ermöglichen einen leichten und raschen Einstieg in die Kunst des Programmierens. Danach ist es jedoch sinnvoll, an einem konkreten Projekt zu arbeiten. Dabei kann die Problemstellung definiert werden und man kann sich mit der Programmierung konkret auseinandersetzen. Die Programmiersprachen bilden allerdings nur die Grundlage für das Engineering. Hilfreich beim Programmieren sind mathematische Kenntnisse und vor allem eine gute Portion Logik. Alle Programme bauen auf logischen und mathematischen Modellen auf. Mithilfe der richtigen Sprache werden die Programme erstellt.

Programmieren kann man im Rahmen von Kursen, Lehrgängen oder Seminaren erlernen. Darüber hinaus gibt es auch im Internet zahlreiche Foren, die sich mit diesem Thema eingehend beschäftigen.

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.