Softwaretechnik

Softwaretechnik wird per Definition oft mit den Begriffen Softwareentwicklung oder Anwendungsentwicklung gleichgesetzt. Es handelt sich jedoch vielmehr um eine IT-Disziplin, welche die Entwicklung von Software als Tätigkeit beinhaltet. Die Softwaretechnik ist ein sehr komplexes Thema. Sie beinhaltet Kernprozesse, die zum Beispiel den Entwurf der Softwarearchitektur oder das Software Testing umfassen und begleitende Prozesse wie das Qualitätsmanagement.
Softwaretechnik
© Deagreez
Teilen

Was ist Softwaretechnik?

In der Informatik ist Softwaretechnik gleichbedeutend mit dem Begriff Softwaretechnologie. Aus dem englischen Sprachraum stammt die populäre Bezeichnung Software Engineering. Kern der Softwaretechnologie ist das Entwerfen und technische Entwickeln von Software. Darüber hinaus beinhaltet sie jedoch verschiedene Teilbereiche. Dazu gehören unter anderem:

  • Design
  • Management von Datenstrukturen
  • Testen und Wartung von Software
  • Software-Analyse
  • Betrieb und Konfiguration von Software-Systemen
  • Nutzung von System- und Entwicklungssoftware
  • Einführung von Software und benötigten Netzwerken

Die Softwaretechnologie ist somit nicht nur auf Aspekte der Technik beschränkt. Neben der Herstellung von Software beinhalt sie auch die Planung des Herstellungsprozesses, die Weiterentwicklung und die Wartung von Software und Software-Komponenten. Sie umfasst u.a. die Identifizierung des Bedarfs, das Management des Projektablaufs und nutzerorientierte Abnahmetest. Neben den funktionalen Anforderungen gehört also auch die Auswertung subjektiver Benutzererfahrungen zu den Methoden der Softwaretechnik. Laut ISO sind die sechs wichtigsten Kriterien in Bezug auf die Qualität beim Software Engineering:

  • Benutzerfreundlichkeit
  • Funktionalität
  • Zuverlässigkeit
  • Effizienz
  • Wartungsfreundlichkeit
  • Kompatibilität zu anderen Hardwarekomponenten

Ist Programm und Software das Gleiche?

Obwohl die Bezeichnungen Programm und Software oft synonym genutzt werden, ist es technisch gesehen nicht das Gleiche. In der Informatik ist ein Programm eine logisch aufgebaute Menge an Anweisungen zur Ausführung von Prozessen durch eine Maschine. Der Begriff Software umfasst auch alle weiteren Komponenten, die keine Programme sind. Dazu gehören zum Beispiel Datenbanken, Readme-Dateien oder Nutzerschnittstellen. Eine Software kann zwar allein aus einem Programm bestehen, in der Regel ist sie jedoch oft die Summe mehrerer Programme und anderer Komponenten, die zur Nutzung benötigt werden.

In der Informatik wird zwischen drei grundlegenden Arten von Software unterschieden:

  • Systemsoftware

    Diese Software beinhaltet sämtliche Programme und Dateien, die den Betrieb eines Rechners oder Mobilgerätes steuern.

  • Entwicklungssoftware

    Sie wird in der Softwaretechnik zur Entwicklung von Anwendungen und Datenbanken verwendet.

  • Anwendersoftware

    Diese Definition umfasst sämtliche Software, die dem Endnutzer beim Ausführen von Aufgaben und Funktionen hilft. Der Endnutzer kann sowohl eine Firma als auch eine Privatperson sein.

Wird im Zusammenhang mit Softwaretechnologie von Softwareentwicklung gesprochen, steht meistens das Entwickeln von Anwendersoftware im Mittelpunkt.

Kernprozesse der Softwaretechnik

Die Kernprozesse der Softwaretechnik liegen in der Peripherie der Entwicklung von Programmen und anderer Softwarekomponenten. Am Anfang der Entwicklung erfolgt eine Planung für die technische Umsetzung. Am Ende steht der Prozess der Validierung. Die einzelnen Entwicklungsschritte können strukturiert nacheinander bis zur kompletten Fertigstellung ausgeführt (Wasserfallmodell) oder im Sinne der agilen Softwareentwicklung flexibel angepasst werden.

Im Groben lassen sich die Kernprozesse der Softwaretechnologie in folgender Form unterteilen:

  • Planung und Aufwandsschätzung
  • Anforderungsanalyse
  • Entwurf der Softwarearchitektur
  • Programmierung
  • Validierung und Verifikation

Planung und Aufwandsschätzung

Die Planung umfasst eine möglichst detaillierte Einschätzung aller Handlungsschritte, die zum Erreichen des Ziels nötig sind. In der Softwaretechnik definiert dieses Ziel, alle Anforderungen des Auftraggebers an die zu entwickelnden Projekte zu erfüllen. Um diese Anforderungen zu ermitteln und zu strukturieren, erfolgt eine sogenannte Anforderungsanalyse. Dies Analyse fußt u.a. auf dem Grundsatz, dass alle Anforderungen des Auftraggebers explizit beschrieben, präzise definiert und verständlich beschrieben sein müssen. Ein Prozess, der nicht vom Auftraggeber gefordert wird, ist keine Anforderung.

Jede Anforderung wird einzeln dokumentiert, damit sie nachvollziehbar ist. Das geschieht zum Beispiel über einen Anforderungskatalog. Diese auch Lastenheft genannte Auflistung beschreibt für alle Beteiligten transparent sämtliche Anforderungen in Bezug auf Technik, Funktionalität und Design.

Alternativ wird in der Softwaretechnik auch ein Backlog zum Management verwendet. Hierbei können Anforderungen in einer Plattform erstellt und verwaltet werden. Sie lassen sich u.a. priorisieren und bestimmten Mitarbeitern zuweisen. Außerdem ist der jeweilige Bearbeitungsstatus für jede Person sichtbar, die Zugang zum Backlog hat.

Sind alle Anforderungen identifiziert, erfolgt eine Aufwandseinschätzung. So können Kosten für eine Entwicklung im Bereich Softwaretechnik kalkuliert werden. In die Kalkulation fließen verschiedene Variablen ein. Dazu gehören zum Beispiel:

  • Personalkosten
  • Rechenzeiten
  • Netzwerkkosten
  • Benötigte Infrastruktur
  • Softwarelizenzen für Betriebssysteme und Tools

Eine Aufwandseinschätzung in der Softwaretechnik sollte im laufenden Prozess der Entwicklung aktualisiert und angepasst werden. So lassen sich wirtschaftliche Faktoren wie Ausgaben, Gewinn und Verlust im Blick halten.

Auf Grundlage dieser Einschätzung wird ein Entwicklungsplan erstellt, der als Blaupause für die technische Umsetzung dient. Das genaue Vorgehen bei der Entwicklung richtet sich nach der Softwareentwicklungs-Philosophie. Hier gibt es verschiedene Ansätze wie Extreme Programming, Software Prototyping oder Scrum.

Anforderungsanalysen in der Softwaretechnik

Auf der Basis des Entwicklungsplans können weitere hilfreiche Analysen durchgeführt werden:

  • Systemanalyse

    In der Informatik stellt diese Analyse die erste Phase des Entwurfsprozesses in Bezug auf neu begonnene Projekte dar. Betrachtet werden alle relevanten Systemelemente und ihre Beziehung zueinander. Im Fokus steht bei der Softwaretechnik die Frage, was die zu entwickelnde Software leisten soll.

  • Strukturierte Analyse

    Im Zusammenhang mit der Softwaretechnologie ist die strukturierte Analyse eine grafische Form der Systemanalyse. Ziel ist es, ein komplexes Softwarekonstrukt auf immer einfachere Funktionen und Prozesse zu reduzieren.

  • Objektorientierte Analyse

    Diese Form der Software-Analyse im Anfangsstadium der Entwicklung setzt objektorientierte Techniken ein. Der objektorientierte Ansatz dient in der Informatik dazu, einen Zustand mit einem Verhalten zu verbinden. In der Softwaretechnik stehen der „Zustand“ für die Daten und das „Verhalten“ für die Funktionen, die auf diesen Daten fußen. Die Funktionen des Programms werden als Zusammenspiel von Objekten und deren Interaktion betrachtet. Vorbild sind Interaktionen zwischen Objekten in der realen Welt.

    Ziel dieser Analyse-Technik ist es, funktionale Anforderungen der Software zu identifizieren und zu beschreiben. Auf diese Weise wird ein Produktmodell erstellt. Das ähnelt dem Konzept eines Bauplans. Das Produktmodell kann aus Texteinträgen, Diagrammen oder Darstellungen bestehen, die bereits das Design der Software umreißen.

Entwurf der Softwarearchitektur

Seit den Neunzigerjahren ist die Softwarearchitektur ein unabhängiges Teilgebiet im Bereich Software Engineering. Technisch gesehen handelt es sich um eine Zerlegung der zu entwickelnden Software in einzelne Komponenten. Jedes Element wird einer Architekturkomponente zugewiesen. Dann erfolgen eine hierarchische Anordnung der Komponenten und eine Beschreibung ihrer Eigenschaften und Beziehung untereinander. Die so entstehende Grobstruktur soll Entwicklern und Auftraggebern ein grundlegendes Verständnis von Aufbau und Funktion der Software vermitteln

Beim Entwurf der Softwarearchitektur wird zumeist mit einer inkrementellen Technik gearbeitet. Bei diesem Vorgehensmodell der Softwaretechnologie soll anhand von kleinteiligen Entwicklungsschritten eine kontinuierliche Verbesserung erreicht werden. Dazu werden unterschiedliche Elemente der Software zu unterschiedlichen Zeiten in der jeweils notwendigen Geschwindigkeit entwickelt. Jedes Element wird nach Abschluss seiner Entwicklung in das Gesamtsystem integriert.

In der Regel basiert der Entwurf einer Softwarearchitektur auf Architekturmustern, die einem Rahmen für die Strukturierung vorgeben. Funktionale Anforderungen werden bei der Entwicklung der Softwarearchitektur zwar berücksichtigt, im Fokus stehen jedoch Anforderungen an Qualität und Design der Software. Das sind zum Beispiel:

  • Performance
  • Sicherheit
  • Modifizierbarkeit

Während beim Software Engineering die Funktionen einer Software zumeist im gesamten Prozess der Entwicklung angepasst werden können, lassen sich diese grundlegenden Qualitätskriterien später nur schwer ändern. Die Festlegungen in puncto Qualität und Design der Software sind daher an dieser Stelle die kritischsten Punkte.

Programmierung

In der Softwaretechnik ist der Prozess der Programmierung die technische Umsetzung der Anforderungen und/oder des Entwurfs der Softwarearchitektur. Dabei werden die Anforderungen in Bezug auf Qualität, Design und Funktion der Software mithilfe einer Programmiersprache in Code übersetzt. Für das Programmieren werden beim Software Engineering Entwicklungssoftware und diverse Tools genutzt. Dazu gehören u.a. Codegeneratoren und Frameworks.

Der Prozess der Programmierung ist nicht rein technisch. Er besteht nicht nur aus dem Schreiben von Code, sondern berührt auch unterstützende Prozesse der Softwaretechnik. Dazu gehören zum Beispiel:

  • Qualitätsmanagement
  • Konfiguration
  • Dokumentation

Validierung und Verifikation

Ein ungeschriebenes Gesetz der Softwaretechnik in Bezug auf die Entwicklung lautet: Bevor Projekte finalisiert werden, muss eine fachgerechte Validierung erfolgen. Im Bereich Softwaretechnologie besteht diese aus vier Stufen, die sicherstellen sollen, dass alle im Vorfeld identifizierten Anforderungen erfüllt werden. Das bezieht sich sowohl auf die Technik und das Design als auch auf die Benutzerfreundlichkeit.

Validierungsstufen in der Softwaretechnik

Unittest
  • Getestet werden in diesem Bereich der Softwaretechnik ein Modul oder mehrere Module, Unterprogramme und Klassen
  • Getestet wird auf die Korrektheit der Ergebnisse der Programmierung und auf die technische Lauffähigkeit
  • Durchführung erfolgt durch den Entwickler
Integrationstest
  • Validiert wird das Zusammenspiel einzelner Komponenten
  • Schwerpunkt liegt auf den Schnittstellen
Systemvalidierung
  • Getestet werden die gesamten Anforderungen an die Software
  • Das Programm wird in einer Testumgebung ausgeführt
  • Durchführung erfolgt durch Entwickler oder Softwaretester
Abnahmetest
  • Finale Validierung der Software durch den Kunden auf einer Produktionsumgebung
  • Ist Voraussetzung für die vertragsrechtliche Erfüllung des Software Engineerings seitens der Entwickler

Softwaretechnik im Studium erlernen

Fachkräfte im Bereich Software Engineering werden dringend gebraucht. Ein Studium zum Bachelor oder Master im Fachgebiet Softwaretechnik ist daher eine gute Investition in die berufliche Zukunft. Voraussetzungen für diesen Studiengang sind gute Kenntnisse in Mathe, Physik und Englisch und in der Regel zumindest ein Fachabiturabschluss. Im Bereich Softwaretechnik lautet die Berufsbezeichnung nach einem Bachelor-Abschluss: Fachinformatiker.

Besonders beliebt im Bereich Softwaretechnik ist der duale Studiengang. Neben der Theorie wird hier auch die praktische Technik der Softwareentwicklung gelehrt. Das geschieht auf Basis Praktika in Unternehmen, die im Dualsystem neben dem Studium absolviert werden.

Zusätzlich zum eigentlichen Programmieren lernen angehende Fachinformatiker auch unterstützende Prozesse und Themenbereiche kennen. Dazu gehören zum Beispiel Betriebswirtschaft, IT-Sicherheit und Datenschutzrichtlinien.

Ein Studium in der Softwaretechnik ist die Ausgangsbasis für viele spannende Berufe. Dazu gehören zum Beispiel:

  • Fachinformatiker Anwendungsentwicklung
  • Web-Entwickler
  • Mobile Developer
  • Problemanalytiker
  • Scrum Master in der agilen Softwareentwicklung

TenMedia bietet Jobs im Bereich Softwaretechnologie

Wir sind eine renommierte IT-Agentur im Bereich Softwaretechnik und Softwareentwicklung und immer auf der Suche nach neuen Talenten, die uns helfen, die Visionen unserer Kunden zu verwirklichen. Vornehmlich suchen wir Fachinformatiker in der Anwendungsentwicklung. Wir machen keinen Unterschied darin, ob ein Informatiker die Programmierung von Software im Studium oder in der Ausbildung erlernt hat. Auch Quereinsteiger sind willkommen. Eine hohe technische Qualität im Bereich Softwareentwicklung ist jedoch Voraussetzung.

Wir bieten abwechslungsreiche Projekte, familienfreundliche Gleitzeit und die Möglichkeit, die Entwicklung von Skills beständig zu erweitern. Auch Praktikanten im Bereich Anwendungsentwicklung sind bei uns willkommen. Bewerbungen oder Anfragen beantworten wir per E-Mail oder telefonisch. Kontakt: jobs@tenmedia.de oder +49(0)30 5490650-0

Softwaretechnik ist unser Element

Als etablierter IT-Dienstleister entwerfen wir im Herzen Berlins Softwarearchitektur für komplexe Anwendungen. Unsere Kerngebiete im Bereich Softwaretechnik sind die Datenbankprogrammierung und das Entwickeln von Individualsoftware. Darüber hinaus bietet TenMedia auch Services wie Relaunch, Hosting oder Monitoring an. Für eine kostenlose Erstberatung stehen unsere IT-Experten gern zur Verfügung.

Bleibe auf dem Laufenden in Sachen Software, IT und Start-ups mit unserem Newsletter.
Jetzt abonnieren!
Bleibe auf dem Laufenden in Sachen Software, IT und Start-ups mit unserem Newsletter.
Jetzt abonnieren!
Gefällt dir was du siehst? Teile es!
Kontaktperson
Anica Piontek
+49 (0) 30 5 490 650-0
anica.piontek@tenmedia.de
Du hast auch ein spannendes Projekt?
Gerne bespreche ich ganz unverbindlich alle Projektdetails in einem persönlichen Gespräch.

Zufällige Beiträge

UI und UX Designer einer Agentur programmieren eine App und planen diese mit ihrem Tablet und verschiedenen Entwürfen. Glossar > Services
Der Stadtkern Hamburgs von oben mit seiner Elbphilharmonie ist auch Heimat für viele Webagenturen. Glossar > Städte
Junger Mann sitzt vor einer Tastatur. Er blickt verblüfft in die Kamera. Glossar > Begriffe

Zufällige Glossareinträge

UI und UX Designer einer Agentur programmieren eine App und planen diese mit ihrem Tablet und verschiedenen Entwürfen. Glossar > Services
Eine dynamische junge Geschäftsfrau freut sich über ihren guten EDV Support. Glossar > Services