Softwaretechnik
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 |
|
Integrationstest |
|
Systemvalidierung |
|
Abnahmetest |
|
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.