Ich bin interessiert, meine Erfahrungen in der Lehre weiterzugeben.
Deswegen unterrichte ich an Hochschulen, halte Vorträge und biete individuelle Seminare nach
Ihren Bedürfnissen.
Was machen eigentlich Software-Architekten? Sind sie Chef-Entwickler oder
Plattformspezialisten? Jedenfalls sind die Architekten in der Bauwirtschaft nicht die
Chef-Maurer!
Wir gehen der Frage nach, wie eine verbindende Rolle zwischen Technikern und
Projektleitern bzw. Auftraggebern aussehen kann und entdecken als zentrale
Aufgabe von Architekten, die technischen Voraussetzungen für Arbeitsteilung zu schaffen.
Dies betrifft sowohl das Selbstverständnis der Software-Architekten, als auch das Bild,
das sich deren Auftraggeber machen. Häufig scheinen sich die
gegenseitigen Erwartungen nämlich nicht zu decken, was immer wieder zu
projektgefährdenden Konflikten führt. Was können wir von den
Gebäudearchitekten lernen?
(mehr...)
Was sind Komponenten-Frameworks? Was leisten Sie? Was sind wichtige Eigenschaften?
Wie kann man entsprechend ein gutes Komponenten-Framework konstruieren?
Anhand eines einfachen und didaktisch übersichtlichen Beispiels zeigen wir einige
Lehren auf, aus denen sich obige Fragen beantworten lassen.
(mehr...)
Component Hell --- Blame Assignment als Schlüsselproblem der Komponentensoftware
Software-Komponenten versprechen eine Art Component Heaven. Systeme werden
aus eingekauften oder selbst gemachten Komponenten zusammengesteckt. Die einzige
Voraussetzung für das Funktionieren ist, dass die einzelnen Komponenten ihre jeweiligen
Spezifikationen und Schnittstellenstandards erfüllen.
Leider stellt sich in der Praxis
oft heraus, dass zusammengesteckte Systeme nicht funktionieren und es sehr schwierig ist,
diejenige Komponente zu identifizieren, die das Problem verursacht. Die Komponentenhersteller
schieben sich gegenseitig die Schuld zu und der Systemintegrator findet sich in
Component Hell wieder.
Es ist letztlich Aufgabe der Software-Architekten in diesen Fällen den Weg aus der
Krise zu weisen. Im Bewusstsein dessen lohnt es sich, bereits beim Entwurf der Schnittstellen
zwischen den Komponenten Vorkehrungen zu treffen, dass gewisse Fehler gar nicht mehr
möglich sind oder zumindest, wenn sie denn doch auftreten, klar einer der Komponenten
zugeschrieben werden können.