Startseite
Themen
Softwareentwicklung
Softwareentwicklung bezieht sich auf eine Reihe von Informatikaktivitäten, die sich mit dem Prozess der Erstellung, des Designs, der Bereitstellung und der Unterstützung von Software befassen.
Software selbst beschreibt die Anweisungen oder Programme, die einem Computer sagen, was er tun soll. Sie ist unabhängig von Hardware und macht Computer programmierbar. Es gibt drei grundlegende Arten von Software:
Systemsoftware für Kernfunktionen wie Betriebssysteme, Festplattenverwaltung, Dienstprogramme, Hardwaremanagement und andere, für den Betrieb notwendige Funktionen.
Programmiersoftware gibt Programmierern Tools wie Texteditoren, Compiler, Linker, Debugger und andere Werkzeuge zur Erstellung von Code an die Hand.
Anwendungssoftware (Anwendungen oder Apps), die Benutzern bei der Ausführung bestimmter Aufgaben helfen. Beispiele sind Produktivitätssuites für den Bürobetrieb, Datenverwaltungssoftware, Mediaplayer und Sicherheitsprogramme. Der Begriff „Anwendungen“ bezieht sich auch auf Web- und mobile Anwendungen, wie sie beim Kauf auf Amazon.de, dem Austausch auf Facebook oder dem Veröffentlichen von Bildern auf Instagram verwendet werden.1
Eine mögliche vierte Art ist die eingebettete Software. Software für eingebettete Systeme wird zur Steuerung von Maschinen und Geräten verwendet, die normalerweise nicht als Computer bezeichnet werden – unter anderem Telekommunikationsnetze, Autos und Industrieroboter. Diese Geräte und ihre Software können im Rahmen des Internets der Dinge (IoT) miteinander verbunden sein.2
An der Softwareentwicklung sind in erster Linie Programmierer, Softwaretechniker und Softwareentwickler beteiligt. Die Verantwortlichkeiten überschneiden sich dabei und die Dynamik der Zusammenarbeit kann je nach Entwicklungsabteilung und Community stark variieren.
Programmierer oder Coder schreiben Quellcode, um Computer für bestimmte Aufgaben zu programmieren, etwa das Zusammenführen von Datenbanken, die Bearbeitung von Online-Bestellungen, das Weiterleiten von Kommunikation, die Durchführung von Suchvorgängen oder die Anzeige von Text und Grafiken. In der Regel interpretieren Programmierer Anweisungen von Softwareentwicklern und -technikern und verwenden für die Umsetzung Programmiersprachen wie C++ oder Java.
Softwaretechniker wenden Grundsätze aus dem Ingenieurwesen an, um Software und Systeme zur Problemlösung zu erstellen. Sie setzten eine Modellierungssprache und andere Tools ein, um Lösungen zu entwickeln, die oft allgemein auf Probleme angewendet werden können, im Gegensatz zu situations- oder kundenspezifischen Lösungen. Lösungen für die Softwaretechnik basieren auf wissenschaftlichen Methoden und müssen in der Praxis funktionieren, wie etwa bei Brücken oder Aufzügen. Sie tragen heute mehr Verantwortung, da Produkte durch die Verwendung von Mikroprozessoren, Sensoren und Software immer intelligenter werden. Produkte sind nicht mehr nur zu Zwecken der Marktdifferenzierung auf Software angewiesen. Vielmehr muss die entsprechende Softwareentwicklung mit der mechanischen und elektrischen Produktentwicklung koordiniert werden.
Softwareentwickler übernehmen im Vergleich zu Technikern eine weniger feste Rolle und können sich im Detail mit bestimmten Projektbereichen befassen, einschließlich der Programmierung von Code. Gleichzeitig steuern sie den gesamten Lebenszyklus der Softwareentwicklung – einschließlich der Zusammenarbeit zwischen funktionalen Teams, um Anforderungen in Funktionen umzuwandeln, Entwicklungsteams und -prozesse zu verwalten und Softwaretests sowie -wartungen durchzuführen.3
Die Arbeit der Softwareentwicklung beschränkt sich jedoch nicht auf Programmierer oder Entwicklungsteams. Auch Fachleute wie Wissenschaftler, Gerätehersteller und Hardwareproduzenten erzeugen Softwarecode, auch wenn sie nicht in erster Linie Softwareentwickler sind. Es beschränkt sich auch nicht auf traditionelle Branchen der Informationstechnologien wie Software- oder Halbleiterunternehmen. Laut dem Brookings Institute (Link befindet sich außerhalb von ibm.com) ist es sogar so, dass diese Unternehmen „weniger als die Hälfte der Unternehmen darstellen, die Software entwickeln“.
Wichtig ist die Unterscheidung zwischen kundenspezifischer Softwareentwicklung und kommerzieller Softwareentwicklung. Kundenspezifische Softwareentwicklung ist der Prozess des Konzipierens, Erstellens, Bereitstellens und Wartens von Software für eine bestimmte Gruppe von Benutzern, Funktionen oder Unternehmen. Im Gegensatz dazu wird Standardsoftware (Commercial Off-the-Shelf Software, COTS) für eine breite Palette an Anforderungen entwickelt und kann daher kommerziell vermarktet und vertrieben werden.
Lesen Sie, wie Unternehmen mit Desktop-as-a-Service (DaaS) das gleiche Maß an Leistung und Sicherheit erreichen können wie bei der lokalen Bereitstellung der Anwendungen.
Die Entwicklung von Software umfasst normalerweise die folgenden Schritte:
Die Schritte des Softwareentwicklungsprozesses passen in das Application Lifecycle Management (ALM). IBM® Engineering Management ist eine übergeordnete ALM-Lösung, welche die Verwaltung der parallelen Entwicklung von Mechanik, Elektrik und Software ermöglicht.
Die Schritte des Softwareentwicklungsprozesses können in die Phasen des Lebenszyklus eingeteilt werden, aber das Wichtige am Lebenszyklus ist, dass er sich wiederholt, um eine kontinuierliche Verbesserung zu ermöglichen. So können beispielsweise Benutzerprobleme, die in der Wartungs- und Supportphase auftreten, die Anforderungen für den Beginn des nächsten Zyklus sein.
Softwareentwicklung ist auch deshalb wichtig, weil sie allgegenwärtig ist. IBM Vice President und Blogger Dibbe Edwards erklärt dazu: „Software hat sich bei vielen Produkten – von Autos über Waschmaschinen bis hin zu Thermostaten – als wichtiges Unterscheidungsmerkmal erwiesen, wobei sie durch ein wachsendes Internet der Dinge miteinander verbunden sind.“
Nachfolgend einige Beispiele:
Der Einsatz von Softwareentwicklung zur Differenzierung von Marken und zur Erzielung von Wettbewerbsvorteilen setzt voraus, dass man die Techniken und Technologien beherrscht, die die Bereitstellung, die Qualität und die Effizienz von Software beschleunigen können.
Ganz gleich, ob es um die Bereitstellung, die Entwicklung neuer cloudnativer Anwendungen, das Refactoring oder die Umstellung bestehender Anwendungen geht – Cloud Pak for Applications (CP4Apps) deckt alles ab.
Automatisieren Sie Ihren Softwarebereitstellungsprozess für mehr Produktivität und betriebliche Effizienz.
Wechseln Sie nahtlos von den Anforderungen zum Systemdesign, Workflow und Testmanagement, mit Erweiterungen der Funktionalität von Lebenszyklus-Management-Tools für eine verbesserte Entwicklung komplexer Systeme.
Code, Inhalte, Community und mehr.
Melden Sie sich für Ihre bevorzugten Themen an.
Erfüllen Sie komplexe Geschäftsanforderungen schnell und flexibel, indem Sie Ihre Softwareentwicklungstools miteinander verbinden.
Unsere Informatikforschung konzentriert sich derzeit darauf, bahnbrechende Entwicklungen in den Bereichen Automatisierung, Informationsverarbeitung und Berechnungen zu finden.
1 Software, Techopedia (Link befindet sich außerhalb von ibm.com)
2 Embedded Software, Wikipedia (Link befindet sich außerhalb von ibm.com)
3 Software Engineer vs. Software Developer – What’s the Difference? Fullstack Academy (Link befindet sich außerhalb von ibm.com)
4 The Forrester Wave™: Low-Code development Platforms for AD&D Pros, Q4 201 John R. Rymer, Forrester Research, Inc. 23. Oktober 2017 (Link befindet sich außerhalb von ibm.com)