Softwarearchitekt

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

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 architektonischen Planung von Gebäuden.[1]

Mit der Verbreitung der Objektorientierten Programmierung in der Informatik Ende der 1990er Jahre 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.

Aufgaben[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

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 kennenzulernen, um entscheiden zu können, inwieweit diese praktikabel sind.

Entwurf[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

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 Softwarearchitekten[Bearbeiten]

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 architektonische 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.
  • System-Architekt, 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 Softwarearchitekten:

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[Bearbeiten]

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 oder einem Berufskolleg zum Softwareentwickler, Softwareingenieur oder Softwarearchitekten 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[Bearbeiten]

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[Bearbeiten]

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[Bearbeiten]

Weblinks[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. WWISA Philosophy
  2. Anecdote about an interaction between Solution and Enterprise Architect
  3. beispielsweise Architektengesetz Baden Württemberg § 2 Berufsbezeichnung