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
- 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.