- Softwarearchitekt
-
Softwarearchitekt ist ein Begriff zur Stellenbeschreibung für Menschen, die – egal mit welcher Ausbildung – im Bereich der Softwaretechnik an der Softwarearchitektur und deren Implementierung arbeiten.
Der Begriff "Softwarearchitekt" entstand aus der empfundenen Ähnlichkeit zwischen der technischen Planung einer Software und der architekturellen Planung von Gebäuden.[1]
Mit der Verbreitung der Objektorientierten Programmierung in der Informatik Ende der 1990er Jahren etablierte sich der Begriff zusehends. Die Objektorientierung erlaubte wesentlich größere und komplexere Softwarearchitekturen, welche einen Überblick und Entscheidungen auf Architekturebene nötig machten. Das Aufkommen von Open Source Frameworks und die damit notwendige Entscheidung zwischen möglichen Alternativen wurde eine weitere Aufgabe, die das Berufsbild der Softwarearchitekten ergänzte.
Inhaltsverzeichnis
Aufgaben
Trotz Fehlens einer gemeinhin akzeptierten Definition der Rolle eines Softwarearchitekten kann davon ausgegangen werden, dass diese üblicherweise für einen Teil der Prozesse der Softwaretechnik zuständig sind:
Planung
Bei der Planung von Softwareentwicklungsprojekten sind Architekten üblicherweise bei der Erstellung von Pflichtenheften, insbesondere der Findung, Beschreibung und Begründung der für die Umsetzung gewählten technischen Ansätze, beteiligt. Darüber hinaus werden Architekten oft federführend in der Aufwandsschätzung und Bestimmung des Vorgehensmodelles eingesetzt.
Analyse
Bei der Analyse kommen Softwarearchitekten üblicherweise nur bei der etwaig notwendigen Erstellung von Mock-ups zum Einsatz. Diese dienen dazu bestimmte Techniken und Technologien der Architektur genauer kennen zulernen um entscheiden zu können, inwieweit diese praktikabel sind.
Entwurf
Softwarearchitekten sind üblicherweise für alle Prozesse des Entwurfes verantwortlich. Insbesondere verantworten sie die Erstellung, Beschreibung und Kommunikation der Softwarearchitektur, beispielsweise unter Verwendung der Unified Modeling Language und geeigneten Entwurfsmustern. Architekten haben meist noch ein Mitspracherecht bei der zu verwendenden Laufzeitumgebung, selten auch bei der Plattform. In den wenigsten Fällen befassen sich Architekten aber mit der Systemarchitektur der Hardware.
Programmierung
Bei der Programmierung verantworten Architekten üblicherweise die korrekte Umsetzung der definierten Architektur, sowie den geeigneten Einsatz von Programmbibliotheken und Frameworks. Zudem sind sie oft für den zu verwendenden Programmierstil verantwortlich und geben die zu verwendenden Tools für die Entwicklung wie IDE, Build-Management-Tool, Versionsverwaltungs-Tool vor bzw. haben bei deren Auswahl ein bedeutendes Mitspracherecht.
Test
Im Rahmen des Tests verantworten Architekten meist den Modultest und seltener auch den Integrationstest. System- und Akzeptanztests unterstützen sie zumeist nur durch Entwurf und Umsetzung von Testtreibern und -Schnittstellen.
Unterstützungsprozesse
Bei den Unterstützungsprozessen der Softwaretechnik sind Architekten meist nur für einzelne technische Aufgaben und nie für ganze Prozesse verantwortlich. Meistens sind Architekten für die Statische Code-Analyse, sowie die Software- und Technische Dokumentation sowie das Betriebshandbuch verantwortlich.
Arten von Software- Architekten
Enterprise- Architekten treffen organisationsweite, meist Software-System-übergreifende Software Entscheidungen. Diese Entscheidungen betreffen meist mehrere Entwicklungsteams bzw. Standorte. Beispiele für solche Entscheidungen sind:
- Einführung von systemübergreifenden Architekturen wie Serviceorientierte Architektur
- Entscheidung für den Einsatz von systemübergreifenden Entwicklungsumgebungen oder Frameworks
Applikationsarchitekten treffen architekturelle Entscheidungen für eine bestimmte Applikation und somit genau ein Entwicklungsteam. Beispiele für solche Entscheidungen sind:
- Entscheidung für einen bestimmten OR-Mapper (so diese Entscheidung nicht global vom Enterprise Architekten vorgegeben ist)
- Definition der Applikationsarchitektur
Ähnliche Stellenbeschreibungen sind im Umlauf, so beispielsweise:
- Solutions Architekt, beschreibt meist die Rolle einer Person, die eine bestimmte Business Lösung über mehrere Softwaresysteme hinweg betreut.
- Systemarchitekt, wird meist als Synonym für Applikationsarchitekt verwendet.
- Systems Architect (Plural), wird meist als Synonym für Enterprise Architekt oder Solutions Architekt verwendet.
Die folgende Tabelle zeigt die meisten der Unterschiede zwischen den unterschiedlichen Arten von Software- Architekten:
Art Strategische Ausrichtung System Interaktionen Kommunikation Design Enterprise Architekt projektübergreifende Architekturen Hoch Abstrakt Organisationsweit Wenn, dann high level Design Solutions Architekt Architekturen für eine Lösung Detailliert Über mehrere Teams Grobes bis detailliertes Design Applikationsarchitekt Komponenten, Wiederverwendung, Wartbarkeit Auf eine Applikation fokussiert Innerhalb eines Projektes Detailliertes Design In der Praxis gibt es auf Grund der unklaren Trennung der Bereiche der unterschiedlichen Architekten oft unterschiedliche Auffassungen bezüglich der Ziele der Architekten[2].
Ausbildung
Softwarearchitekten haben meist ein Studium in einem Informatikstudiengang an einer Hochschule oder einer Berufsakademie absolviert. Auch ein Studium in einem ingenieur- bzw. naturwissenschaftlichen Studiengang bietet Einstiegsmöglichkeiten in die Softwareentwicklung.
Des Weiteren gibt es die Möglichkeit, sich über eine Ausbildung in einem informationstechnischen Ausbildungsberuf z. B. zum Fachinformatiker für Anwendungsentwicklung an einer Berufsfachschule, an einer Fachschule für Datenverarbeitung und Organisation (z. B. ADV Böblingen) oder einem Berufskolleg zum Softwareentwickler, Softwareingenieur oder Software-Architekten zu qualifizieren.
Die schulische oder akademische Ausbildung alleine befähigt meist noch nicht zur Ausübung des Berufsbildes eines Softwarearchitekten. Die meisten Softwarearchitekten müssen jahre- bis jahrzehntelange Praxiserfahrung aufweisen, bevor sie die Rolle des Softwarearchitekten in größeren Entwicklungsprojekten wahrnehmen können.
Beschränkungen
In Deutschland ist die Verwendung des Begriffes "Softwarearchitekt" als Berufsbezeichnung nicht erlaubt. Aufgrund der Bestimmungen der Landesgesetze darf den Titel Architekt oder sprachliche Abwandlungen davon nur führen, wer in die Architektenliste einer Architektenkammer eingetragen ist.[3]
In Österreich darf die Berufsbezeichnung Architekt nur von Ziviltechnikern geführt werden. Ziviltechniker sind mit öffentlichem Glauben versehene Personen gemäß Paragraph 292 der österreichischen Zivilprozessordnung.
In der Schweiz ist die Verwendung des Begriffs „Softwarearchitekt“ keinen Restriktionen unterworfen und von keiner Berufsordnung oder Gesetzgebung geschützt.
Metapher
Der Begriff Softwarearchitekt wurde Anfang der 2000er Jahre auch außerhalb der IT-Welt bekannt als Bill Gates, damals President und CEO von Microsoft, sich auf die Rolle Chief Software Architect zurückzog. Dieser Titel reflektierte seine neue Aufgabe als Überwacher und Berater für viele Softwareentwicklungsprojekte bei Microsoft, Aufgaben die sonst einem Chief Technical Officer zufallen.
Siehe auch
Weblinks
- International Software Architecture Qualification Board (ISAQB)
- International Association of Software Architects (IASA) (engl)
- Software Architect online book (engl)
- Role of the Software Architect, James E. Fitch 1972
- So Now I'm A Software Architect. What Do I Actually Do?, Nick Rozanski und Eóin Woods, 6. Oktober 2005
- Who needs an Architect?, Martin Fowler 2003
Einzelnachweise
- ↑ WWISA Philosophy
- ↑ Anecdote about an interaction between Solution and Enterprise Architect
- ↑ beispielsweise Architektengesetz Baden Württemberg § 2 Berufsbezeichnung
Wikimedia Foundation.