TRINIDAT-WIKI

Was ist Software-Entwicklung?

Was ist Software-Entwicklung?

Ob in der Freizeit oder im Berufsleben – Software begleitet und leitet unser Leben. Sie ist die entscheidende Ressource für die Digitalisierung von Arbeits- und Produktionsprozessen. Doch wie wird Software eigentlich genau entwickelt? Wir geben kompakte und verständliche Antworten auf die Frage: Was ist Software-Entwicklung?

Sie haben Fragen?
Wir haben die Antworten!

Sie benötigen eine kostengünstige und moderne Software-Lösung?

Jetzt beraten lassen

Was genau versteht man unter Software?

Um sich der Frage anzunähern, sollte zunächst geklärt werden, was Software eigentlich genau ist. Software ist in erster Linie ein Sammelbegriff für Programme und ihre Daten. Aufgabe von Software ist es, der Hardware, also zum Beispiel einem PC, zu sagen, was er tun soll. Es ist das Gegenstück zu Hardware und beschreibt alle nicht-physischen Komponenten eines rechnergestützten Systems. Das Betriebssystem, die installierten Programme und alle Daten, die damit generiert werden, gehören zur Software. In etlichen Geräten steckt Software – von der Waschmaschine über das Navigationsgerät bis zum Fitness-Tracker. Folgende Arten von Software lassen sich unterscheiden:


Welche verschiedenen Software-Arten gibt es?

Anwendungen:

Anwendungen sind Programme und Apps, die Benutzern helfen, bestimmte Aufgaben zu erledigen. Ob Textverarbeitung oder das Bearbeiten von Fotos: Anwendungssoftware wird in der Regel von menschlichen Benutzern genutzt. Es gibt sie als Webanwendung oder PWA, als App oder klassisch als lokal installierte Desktop-Software. Neben Standardanwendungen gibt es eine große Zahl individuell entwickelter Programme.

Systemsoftware:

Systemsoftware ermöglicht überhaupt erst, den Computer zu starten und Anwendungen ins Laufen zu bringen. Die gängigsten Betriebssysteme sind Windows, Mac OS X und Linux. Die Betriebssysteme stellen auch die Benutzeroberfläche bereit, mit der Programme und Apps ausgeführt werden. Zudem steuert Systemsoftware über Schnittstellen die Verbindung zwischen Software und Hardware-Komponenten.

Embedded Software:

Damit ist Software gemeint, die in der Regel ohne menschlichen Benutzer agiert und für eingebettete Systeme programmiert ist. Embedded Software findet sich fest verbunden in unzähligen Maschinen und Geräten. Die Programme der Waschmaschine werden ebenso von dieser Software-Art gesteuert, wie die Spielkonsole im Kinderzimmer. Und in jedem Fall ist die Hardware nicht mit anderer Software kompatibel.


Was genau ist Software-Entwicklung?

Mit dem Begriff Software-Entwicklung sind alle Aktivitäten gemeint, um eine Software zu erstellen: angefangen bei der Programmierung, über das Design bis hin zum Software-Testing. Insofern umfasst Software-Entwicklung eine Reihe an wiederkehrenden Prozessen, die sich anhand eines Software-Lebenszyklus strukturieren lassen. Der sogenannte Software Development Life Cycle (SDLC) beschreibt ein Vorgehensmodell der Software-Entwicklung und gliedert die voneinander abhängigen Phasen zumeist in sechs Abschnitte: Anforderungsanalyse, Design, Entwicklung, Test, Veröffentlichung sowie Wartung & Support.

Was ist Software-Entwicklung?-1
Was ist Software-Entwicklung?-2
Was ist Software-Entwicklung?-3

Phasen der Software-Entwicklung

Ob Neuentwicklung oder Fortführung einer bestehenden Anwendung: Software-Entwicklung lässt sich in die folgenden 6 Phasen des SDLC aufteilen.

1. Anforderungsanalyse
Nachdem die grundsätzliche Planung des Software-Projekts vorgenommen wurde, geht es darum, die genauen Anforderungen an die zu entwickelnde Software zu sammeln und auszuwerten. Wer nutzt die Software zu welchem Zweck? Welche Daten werden verarbeitet? Welche Spezifikationen soll die Software aufweisen? Alle Informationen werden in einem möglichst konkreten Anforderungsprofil gebündelt, das Erwartungen an die Software-Entwicklung und die Rahmenbedingungen aufführt. Bei einer Software-Entwicklung nach dem klassischen Wasserfallmodell folgt im Anschluss die Konzeption der Anwendung in Form eines Realisierungskonzepts.

 

2. Design
Die zweite Phase umfasst den Entwurf eines grundsätzlichen Designs der Software. Hier entscheiden Entwickler und Konzeptioner sowohl über die Software-Architektur und die geeigneten Technologien als auch über den Zeitrahmen, das eingesetzte Personal und Workflows.

 

3. Entwicklung
Der Kern jedes Software-Entwicklungszyklus ist die Programmierphase. Bei einer agilen Entwicklung werden nun die Aufgaben in einzelne Module aufgeteilt und die Entwickler setzen sich ans Programmieren. In der Regel ist diese Phase am zeitaufwendigsten und schließt mit der fertig programmierten Software ab.

4. Test
Wie jedes Qualitätsprodukt sollte auch eine individuell erstellte Software vor der Bereitstellung intensiv getestet werden. In der Testphase geht es darum, die Software nach einem festen Testkonzept umfassend auf den Prüfstand zu stellen. Manuelle und automatisierte Testabläufe identifizieren und beheben Fehler und Bugs. Mit verschiedenen Testmethoden wird die Code-Qualität, die Benutzerfreundlichkeit, die Datensicherheit und vieles mehr getestet. Erst nachdem alle Mängel behoben sind und die Software genau dem Anforderungsprofil entspricht, wird die Anwendung bereitgestellt.

 

5. Veröffentlichung
In dieser Phase wird die neue oder weiterentwickelte Software ausgerollt. Jetzt können die Kunden mit der Anwendung arbeiten.

 

6. Wartung & Support
Trotz umfangreichen Software-Testings kommt es immer wieder vor, dass erst bei der Nutzung Fehler und Schwachstellen an der Software auftauchen. In dieser Phase kümmert sich das Entwicklerteam darum, diese Mängel zu beheben und der Anwendung den letzten Feinschliff zu geben.

Übrigens: Kunden von trinidat erhalten volle 24 Monate Gewährleistung mit kostenfreiem Support und Fehlerbehebung.


Vorgehensmodelle der Software-Entwicklung

Vorgehensmodelle strukturieren den Prozess der Software-Entwicklung und legen fest, in welcher Abfolge Aufgaben entlang des Software-Lebenszyklus ausgeführt werden. Die Modelle beschreiben die Rollen aller Projektbeteiligten und deren Aktivitäten in den Phasen der Software-Entwicklung. Zudem bieten sie standardisierte Zieldefinitionen für Zeit-, Budget- und Kapazitätsaufwände. Es gibt mehr als 50 Vorgehensmodelle, die je nach Einsatzzweck jedes für sich Vor- und Nachteile mit sich bringen. Grundsätzlich kann zwischen klassischen Modellen, wie dem Wasserfallmodell, und agilen Modellen, wie etwa Scrum, unterschieden werden.

Klassisches Modell: Beispiel Wasserfallmodell

Der Klassiker unter den Vorgehensmodellen ist das Wasserfallmodell. Dieses sequenzielle Vorgehensmodell der Software-Entwicklung teilt das Projekt in fest aufeinanderfolgende Phasen ein. Anhand des Software Development Life Cycle (SDLC) werden Analyse und Planung, Programmierung, Testing und Wartung der Reihe nach ausgeführt. Die nächste Phase beginnt jeweils erst, wenn die vorherige abgeschlossen wurde. Eine Anpassung der Entwicklungsschritte während der Entwicklung ist nicht vorgesehen. Der Vorteil des Wasserfallmodells besteht darin, die Software-Entwicklung nach genau konzipierten Anforderungen zu erledigen und streng im Zeit- und Kostenplan zu bleiben. Bei kleineren und übersichtlichen Software-Entwicklungen oder bei Projekten mit strengen oder starren Anforderungen (z.B. rechtliche Richtlinien) kann dieses Modell von Vorteil sein. Der große Nachteil des Wasserfallmodells in der Software-Entwicklung ist die fehlende Flexibilität während der Entwicklungsphasen.

Agile Modelle: Beispiel Scrum

Im Gegensatz zu klassischen Vorgehensmodellen der Software-Entwicklung haben sich agile Modelle etabliert und werden heute von einem Großteil der Unternehmen bevorzugt. Während klassische Modelle eine feste Reihenfolge haben, sind agile Modelle iterativ. Die Software-Entwicklung folgt also einem wiederkehrenden und schrittweisen Prozess. Agile Software-Entwicklung ist flexibel und schlank angelegt und bricht die starren Phasen des Software-Lebenszyklus auf. Bei einem der beliebtesten agilen Methoden, der Scrum-Methode, wird das gesamte Software-Entwicklungsprojekt in Iterationen (bei Scrum „Sprints“) aufgeteilt. Dieses kleinteilige Vorgehen bezieht für jeden Projektschritt das Feedback des Kunden mit ein und greift Analyse und Bewertung des Sprints auf. Sprints dauern in der Regel zwischen zwei und vier Wochen und ermöglichen so, in kurzen Zeitabschnitten flexibel auf geänderte Anforderungen oder Probleme bei der Entwicklung einzugehen.


Individuelle Software-Entwicklung

Software-Entwicklung kann für individuelle Software oder für Standardanwendungen erfolgen. Standardsoftware wird in der Regel für einen großen Nutzerkreis entwickelt und gewissermaßen als Massenprodukt vermarktet. Bekannte Anwendungen wie Microsoft Word oder Photoshop von Adobe sind Standardsoftware, die breit angelegte Features und Funktionen enthalten. Nutzer von Standardsoftware können die Programme meist nur geringfügig auf die eigenen Anforderungen anpassen.

Im Gegensatz zu Standardsoftware wird eine individuell entwickelte Software speziell für den Auftraggeber entwickelt und ist somit einzigartig. Bei der Entwicklung von Individualsoftware liegt der Fokus auf den konkreten Kundenanforderungen. Neue Produktionsprozesse oder geänderte Geschäftsabläufe können Anforderungen hervorrufen, bei denen eine Standardsoftware nicht mehr ausreicht. Individuelle Software kann außerdem als Bestandteil eines eigenen Produkts notwendig werden. Zudem kommt Individualsoftware in Frage, wenn es um die Modernisierung, Weiterentwicklung oder Ablösung von bestehender Software geht.

Der große Vorteil von individueller Software-Entwicklung ist die Passgenauigkeit. Die gesamte Software-Entwicklung folgt genau den individuellen Kundenanforderungen. Ergebnis: Kunden erhalten exakt die Programmfunktionen und Features, die für ihr Projekt auch wirklich nötig sind. Individuelle Software kann klassisch nach Konzept oder agil entwickelt werden.

Häufig wird Individualsoftware im Vergleich zu Standardsoftware als besonders kostspielig betrachtet. Bei einer längeren Nutzung wird individuelle Software allerdings häufig günstiger als Standardanwendungen. Denn bei individuellen Lösungen erhalten Kunden neben dem Quellcode und der Möglichkeit zum customizing als Eigentümer der Software auch eine unbegrenzte Anzahl an Lizenzen und eine unbeschränkte Nutzungsdauer – ohne Extra-Kosten.

Möchten Sie mehr über individuelle Software-Entwicklung erfahren?

Vereinbaren Sie jetzt Ihr kostenloses Beratungsgespräch.
Wir freuen uns auf Ihre Anfrage.


Dies ist ein Pflichtfeld
Dies ist ein Pflichtfeld
Dies ist ein Pflichtfeld
Dies ist ein Pflichtfeld

Weitere Beiträge aus unserem Wiki