Wie wird man Software-Architekt?

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Ich kann dir nur den Tipp geben, UML nicht als das Allheilmittel für alles zu sehen, und es mit dem Umfang deiner UML-Aktivitäten nicht zu übertreiben. UML-Diagramme sind zwar schon wichtig. Sie dienen allerdings mehr der Kommunikation, Erklärung und dem Verständnis des Entwurfs und der Problemstellung, und nicht dazu das gesamte System zu zeigen oder gar die Implementierung zu ersetzen. Sie sollten zu diesem Zweck minimal und informal sein, und ausgesuchte Konzepte mit ca. 3 bis 5 Elementen und deren Beziehungen zeigen. Diagramme sind ein unterstützendes Medium für die Kommunikation aller Beteiligten und um sich einen Überblick über bestimmte Teile des Entwurfs zu verschaffen, aber mindestens genauso wichtig ist die verbale Kommunikation, da viele Konzepte durch UML einfach nicht erklärt werden können, und kein Kunde Lust hat, sich riesige UML-Diagramme und/oder solche ohne Erläuterungen anzusehen.

Daher stehe ich auch der Vision vom "Executable UML" eher skeptisch gegenüber. Eine komplizierte, streng reglementierte UML-Variante würde eine Kommunikation stark erschweren. Der Trend geht in den agilen Vorgehensweisen doch in die andere Richtung. Außerdem ist UML als 1:1-Vorlage für eine konkrete Implementierung in vielen Bereichen zu ausdrucksarm.

Software-Architekt ist eine Rolle, die ein Entwickler zumeist phasenweise einnimmt, nämlich dann, wenn es um den Architekturentwurf geht. In einer Architekturentwurfsphase geht es um die grundlegenden Komponenten des Systems und deren Zusammenspiel. In einem realen Projekt, welches nicht nach dem Wasserfall-Modell abgearbeitet wird (...und das sollte heutzutage selbstverständlich sein), gibt es zumeist viele solcher Abschnitte wo man sich mit der Architektur befassen muss. In einem Vorgehensmodell wie SCRUM z.B. beschäftigt man sich zu Beginn eines jeden Sprints eigentlich immer auch mit Architekturfragen.

Es kann also jeder Entwickler situationsbedingt auch die Rolle des Software-Architekten wahrnehmen, wenn es erforderlich ist. Das hat zunächst einmal gar nichts mit einem bestimmten Berufs- und Bildungsweg zu tun. Es gibt große Organisationen, welche sich explizit "hauptberufliche" Software-Architekten leisten. Das kann gut gehen, wenn die entsprechenden Personen nicht abgehoben, wie von einem Elfenbeinturm, agieren und den Entwicklern ihre heiligen Konzepte zur Implementation nur "vor die Füße" werfen, sondern wenn diese in die Teams integriert sind und sich auch als Coaches verstehen. Ein guter Architekt entwickelt nämlich auch sehr viel, z.B. Prototyping, ein schlechter Architekt malt nur Kästchen oder UML-Diagramme...

Noch einmal zur UML: die UML ist nur eine Sprache; sie ist keine Methodik und auch kein Vorgehensmodell. Man kann diese Sprache in unterschiedlichsten Ausprägungen verwenden: als Kommunikationsmittel am Whiteboard oder Flipchart im Team, bis hin zu einem durchgestylten model-driven Software-Development Ansatz inkl. Code-Generierung. Wichtig ist aber zu verstehen, das es eine Sprache ist, und eine Sprache muss man erlernen!

1) Informatik studieren

2) Programmieren lernen

3) UML lernen

UML ist ein visuelles Hilfsmittel, das dabei hilft, die (speziellen) Funktionalitäten eines Programms darzustellen. Wie das GUI und andere Schnittstellen funktionieren sollen, hängt von der Programmiersprache und der verwendeten IDE ab.

Natürlich ist UML sprachunabhängig und in sehr guten Ansätzen in xCode und Eclipse sogar integriert! xCode bietet hierbei seit etwa 2005 die Möglichkeit, mit integrierten Hilfsmitteln Core Data-basierte Programme zu erstellen. Man erzeugt Entitäten und die daraus folgenden Programmklassen und hat damit das komplette Grundgerüst für die Programmfunktionalität. Im MVC-Schema wäre damit das Modell fertig. Jetzt muß das GUI (die View), die Controller und Delegates zu den Modellklassen gebunden werden, was noch immer reichlich Arbeit ist.

wolfgang1956  17.05.2011, 11:03

UML war aber nie dazu gedacht, das Programmieren zu ersetzen! Hier noch ein Link zum Umgang mit xCode: http://www.x02100.de/ Der Podcast ist wirklich sehenswert!

Natürlich kann man sich bei Apple und der Apple Developer Connection noch mehr Beispiele ansehen!

0
kriechstrom 
Fragesteller
 21.05.2011, 15:46
@wolfgang1956

Danke für die Antworten. UML habe ich schon häufig genutzt, nur ist es schwer, reine UML Entwürfe auf ihre Qualität hin zu überprüfen, denn sie haben ja keinerlei Funktionalität.

0

Ich weiss zwar nicht was UML mit der ursprünglichen Frage zu tun hat, aber Software-Architekt wird man in dem man Programmieren lernt, und UML ist eigentlich nur dazu da, die Abläufe eines Programmes grob zu visualisieren - welche Klasse am Ende welche Funktionen bereit stellt ist dabei ziemlich schnuppe.

kriechstrom 
Fragesteller
 16.05.2011, 19:57

Ein Bekannter meines Vaters ist Softwarearchitekt, aber er programmiert nicht, sondern entwirft nur das Design. Klingt für mich eigenartig, daher die Frage.

0
yobabyyobabyyo  16.05.2011, 20:16
@kriechstrom

Softwarearchitekt, der haufenweise UML macht klingt irgendwie stark nach RUP oder ähnlichem

0

Zur eigentlichen Frage ("Wie wird man Software-Architekt?"):

  • Informatik studieren, Vertiefungsrichtung Softwaretechnik/-engineering einschlagen
  • Praktika in großen Softwarefirmen, Softwareprojekte mitmachen
  • viel lesen (Standardliteratur zum Thema besorgen) und viel selbst drüber nachdenken und ausprobieren
  • Begeisterung an der Sache und Austausch mit Gleichgesinnten