Software Engineering: Professionelle Software-Entwicklung durch fundierte Entwickler

thumbnail

©123rf.com

Software Engineering ist mittlerweile eine bedeutende Teildisziplin der Informatik mit besonderer praktischer Relevanz. Synonyme des Software Engineerings sind Softwaretechnik und Softwareentwicklung. Einer Definition von Helmut Balzert zur Folge handelt es sich beim Software Engineering um die Bereitstellung und Verwendung von Prinzipien, Methoden und Werkzeugen für die Entwicklung und Anwendung von umfangreichen Softwaresystemen. Diese Definition bestätigt also die Vermutung, dass dem Software Engineering zahlreiche Inhalte der Informatik zugeschrieben werden können.

Software Engineering: Das Berufsbild des Softwareentwicklers

Informatiker programmiert am Computer

©123rf.com

Typischerweise erfolgt das Software Engineering in Teams, da je nach Art und Umfang der zu entwickelnden Software Fachkenntnisse aus unterschiedlichsten Teilbereichen der Informatik benötigt werden. Ein Softwareentwickler ist also meist ein ausgebildeter Informatiker und etwa Spezialist auf einem bestimmten Gebiet. Dieses Gebiet entspricht etwa dem beherrschen bestimmter Programmiersprachen oder die Entwicklung von Datenbanken. Eine genaue Abgrenzung des Berufsbildes des Softwareentwicklers existiert jedoch nicht. Im Rahmen des Software Engineering ist lediglich davon auszugehen, dass auf Personen zurückgegriffen wird, die die nötigen Fachkenntnisse mitbringen.
Da das Software Engineering häufig integraler Bestandteil von Informatik-Studiengängen ist, sind die meisten Softwareentwickler studierte Informatiker. Ebenso existieren klassische Berufsausbildungen, wie die zum Fachinformatiker für Anwendungsentwicklung oder Softwareingenieur. Auch ein Quereinstieg ist bei vorhandenen Fachkenntnissen möglich.

Die Teilbereiche des Software Engineerings

Die Softwareentwicklung ist hoch komplex und umfasst dementsprechend zahlreiche Aufgaben, die in Kern- und Unterstützungsprozesse eingeteilt werden. Typisch ist das Vorgehen an Hand eines strukturierten Projektplans, welcher den Zweck hat, das Software Engineering in übersichtliche und zeitlich begrenzte Phasen aufzuteilen. In der Praxis haben sich analog dazu spezielle Verfahren etabliert. Auf eines dieser Verfahren, die agile Softwareentwicklung wird zu einem späteren Zeitpunkt noch eingegangen. Um ein grundlegendes Verständnis für die Teilbereiche des Software Engineerings zu gewinnen, folgt eine Erklärung der Kernprozesse:
•Planungsprozess: Während der Planung stellt das Projektteam in Zusammenarbeit mit dem Auftraggeber fest, welche Anforderungen dieser an eine Software stellt und verfasst in Zusammenarbeit ein Lasten- und Pflichtenheft. Auch auf eine bestimmte Vorgehensweise wird sich geeinigt und eine erste Aufwandseinschätzung vorgenommen.
•Analyseprozess: Im Analyseprozess werden die zu Grunde liegenden Systeme und Prozesse analysiert und in einer strukturierten Analyse und einer objektorientierten Analyse spezifiziert. Auch die Erstellung eines Mock-Ups kann erfolgen.
•Entwurfsprozess: Während des Entwurfs wird zunächst die Softwarearchitektur festgelegt, der das Software Engineering folgen soll. Außerdem wird das Design der Software hinsichtlich der Struktur und Objekte spezifiziert.
•Programmierung: An den Entwurf schließt sich die Programmierung der Software an. Dabei werden unterschiedliche Programmiersprachen für jeweils unterschiedliche Zwecke eingesetzt.
•Validierungsprozess: Abschließend erfolgen zahlreiche Tests, die die Funktion der Software überprüfen sollen. Diese können sich sowohl auf die Überprüfung der Funktionen, als auch auf die verwendeten Systeme oder die Akzeptanz der Anwender beziehen.
Begleitet werden diese Kernprozesse von zahlreichen Unterstützungsprozesse, die vor allem betriebswirtschaftlichen Anforderungen gerecht werden. Typische Unterstützungsprozesse im Rahmen des Software Engineerings sind etwa:
•Projektmanagement: Das Projektteam bedient sich klassischer Methoden des Projektmanagements, die einen reibungslosen Projektablauf garantieren sollen. In der Regel wird in jedem Projekt ein Projektmanager benannt, der als zentraler Ansprechpartner für die Projektmitglieder, Kunden und andere Stakeholder fungiert. Er überwacht die Erreichung von Teilzielen, dokumentiert den Projektfortschritt und wird bei unerwarteten Entwicklungen tätig. Auch das Risikomanagement kann im Rahmen eines Projekts dem Projektmanager übertragen werden.
•Qualitätsmanagement: Häufig ist der Projektmanager auch Qualitätsmanager, der für die Einhaltung von Standards ebenso zuständig ist, wie für den Umgang mit Problemen und der Analyse von Schwachstellen.
•Softwareeinführung: Wird besonders umfangreiche Software programmiert, so ist deren Einführung mit erheblichem betrieblichem Aufwand verbunden. Um Ausfallzeiten so kurz wie möglich zu halten und eine möglichst schnelle Integration der Software in die bestehenden Arbeitsabläufe zu gewährleisten, ist eine sorgfältige Einführung neuer Software ein bedeutender Unterstützungsprozess des Software Engineerings.

Software Engineering in der Praxis: Die agile Softwareentwicklung

Code im Editorfenster

©123rf.com

Eine klassische Vorgehensweise des Software Engineerings ist die agile Softwareentwicklung. Ziel dieser Vorgehensweise ist es den oftmals langwierigen und schwierigen Entwicklungsprozess flexibler und schlanker zu gestalten. Die agile Softwareentwicklung folgt einigen Grundsätzen und zeichnet sich durch selbstorganisierte Teams und ein inkrementelles Vorgehen aus. So kann den häufig wechselnden Anforderungen im Rahmen des Software Engineerings angemessen begegnet werden.
Bei tornadosoft sind zahlreiche Lösungen verfügbar, die das Software Engineering unterstützen. Als klassische Projektmanagement-Software steht beispielsweise Microsoft Project zur Verfügung, welches seinen Verwendern effektiv dabei hilft, den Fortschritt von Projekten zu kontrollieren und einzelne Projektschritte in die Wege zu leiten. Auch Datenbanksoftware wie Microsoft Server 2016, die für die Softwareentwicklung benötigte Daten bereitstellt sind in unterschiedlichen Ausführungen verfügbar. Durch den Kauf via Download haben Unternehmen die Möglichkeit, benötigte Software innerhalb kürzester Zeit zu installieren und einen erfolgreichen Projektabschluss im Auge zu behalten.

Tornadosoft.de