AI Flashcards
Was sind Ziele der Softwarearchitektur Vorlesung?
- Was ist Softwarearchitektur?
- Große Systeme gut aufbauen und entwickeln.
- Wie dokumentiert man und bewertet man Architekturen?
Was sind keine Ziele der Softwarearchitektur Vorlesung?
- Die perfekte Architektur festzulegen.
- Sich in technische Details von Frameworks zu verlieren.
- Noch mehr UML Vorlesungen zu halten.
Woher stammt der Begriff Architektur und wofür steht er?
Architektur stammt ausdem Mittelalter und steht für die Baukunst.
Welches Ziel verfolgt Architektur?
- Ordnung und Strukturierung von Produkten des Bauwesens
- Erfahrungen und Wissen der Baukunst verallgemeinern.
Welchen Zweck hat Architektur in der Baukunst?
Verschiedene:
- Macht demonstrieren
- Verteidigen
- Verkehr lenken
- Mobil sein
Was sind Definitionen von Softwarearchitektur?
- Softwarearchitektur ist ein Gerüst aus Komponenten und Beschreibungen aus Software mit Ingenieurs Prinzipien
- Softwarearchitektur ist durch die Aspekte bestimmt, welche man am schwersten im nachhinein ändern kann
- Es geht darum eine Lösung für Anforderungen zu erstellen
- Softwarearchitektur ist das WAS WIE WARUM
In welcher Reihenfolge entsteht eine Softwarearchitektur im Idealfall?
- Vorwärts und nicht rückwärts durch Reverse-Engineering
Woraus besteht Softwarearchitektur?
- Nacheinander getroffene, weitreichende Entwurfsentscheidungen
- Besteht aus Strukturen (Bausteine, Eigenschafte dieser Komponenten und Beziehungen der Komponenten untereinander)
Ist mit der Erstellung der Architektur für Software bereits der Job getan?
- Nein, denn die Architektur sorgt nur für die Grundpläne.
- Erst die Implementierung der Schnittstellen und Komponenten erschafft ein echtes System.
Auf welchen Entwurfsentscheidungen basiert Softwarearchitektur?
- Entscheidungen über Entwürfe der Komponenten
- Entscheidungen über benutzte Technologien
Sind die Konsequenzen bei Entscheidungen in Softwarearchitektur leicht abschätzbar?
- Nein, die Konsequenzen werden erst während der Umsetzungen bewusst.
- Getroffene Konsequenzen schränken die Möglichkeiten immer weiter ein.
Sollte man Entscheidungen in der Softwarearchitektur auch nach dem besten Gewissen treffen?
Ja, da man Entscheidungen oftmals nicht komplett abschätzen kann.
Laufen heutige Softwaresysteme eher isoliert?
Nein, viele haben Abhängigkeiten zu Drittsysteme oder müssen bestimmte Anforderungen liefern.
Welche Sicht beschreibt das Zusammenspiel eines Softwaresystems?
Die Laufzeitsicht
Welche Sicht beschreibt die Zusammenhänge eines Softwaresystems?
Die Bausteinsicht
Welche Sicht beschreibt die ob ein Softwaresystem zentral oder dezentral aufgebaut ist?
Die Verteilungssicht
Warum ist eine Dokumentation einer Softwarearchitektur wichtig?
- Remotearbeiter müssen auch informiert sein
- Wartungsteams bekommen später das System vorgesetzt und sollen es aktualisieren oder performanter machen, was nur mit Planen geht
- Der Betreiber möchte auch wissen was auf welchem System läuft
- Dokumentation entscheidet ob ein System weiterentwickelbar ist oder nicht
Was muss alles dokumentiert werden?
- Alles was man benötigt um das System zu verstehen
- Alles andere kann auch weggelassen werden
Für was ist Softwarearchitektur der Übergang?
Es ist der Übergang von der Analyse zur Architektur zur technischen Realisierung
Dokumentiert eine Architektur ein gesamtes System?
Nein, eine Architektur dokumentiert immer sehr spezifische einzelne Aspekte eines Gesamtsystems.
Ist eine dokumentierte Architektur für jeden Stakeholder interessant?
Nein, je nach Dokumentationsart/Sicht ist diese für einen anderen Stakeholder mit verschiedenen Anforderungen interessant.
Was stellt das Nutzen von Softwarearchitektur sicher?
- Flexibilität
- Erweiterbarkeit
Warum ist Softwarearchitektur Abstraktion?
- Weil ganz bewusst nicht benötigte Informationen weggelassen werden
- Informationen müssen lesbar und nachvollziehbar sein
Gibt es eine All-In-One Architekturlösung?
Nein
Was zeichnet die Qualität eines Systems aus?
Die Summe seiner nicht-funktionalen (schwierigen) Eigenschaften wie:
- Performance
- Verständlichkeit
- Flexibilität
- Wartbarkeit
Wie sieht die Grenze zwischen Entfurf/Design und Architektur aus?
Sehr fließend, man wird auch Designentscheidungen treffen, welche die Architektur einschränken.
Was ist NICHT Architektur?
Nur ein Diagramm. (“Das hier ist unsere Architektur”)
Denn das sind nur Striche und Buchstaben, welche Dutzende Fragen aufkommen lassen.
Welche Fragen lassen Diagramme zur Architektur aufkommen?
Welche Verbindungen zwischen den Komponenten gibt es? Welche Richtungen haben diese?
Warum machen sie es so?
Was ist der Vertrag oder die Schnittstelle zwischen diesen?(Bei REST wichtig!)
Welche Entscheidungen trifft ein Architekt?
- Brauche ich ein Framework und wenn ja welches?
- Nach System in Komponenten gebrochen -> Baut man es selber oder kauft man es ein? Oder kann man etwas Open-Source bestehendes nutzen? (Mittelweg)
- Wer arbeitet woran?
- Naming (Namen sind schnell vergeben aber extrem wichtig)
*
Was hat es mit den Konsequenzen aus Entscheidungen mit sich?
- Oftmals werden sie erst Monate oder Jahre später bekannt
- Oftmals sind Frameworks/Technologien unbekannt und die Auswirkungen nicht abschätzbar
*
Wie sollte man mit Entscheidungen bei der Architektur verantwortungsvoll umgehen?
- Die Entscheidungen iterativ treffen
- Entscheidungen mit großer Tragweite sehr gut dokumentieren
Wie garantieren Architekten die Machbarkeit von Anforderungen?
- Durch Prototypen (PoC), Framework testen, Performancetests
- Dafür sorgen das funktionale und nichtfunktionale Anforderungen eingehalten werden
- Einen angemessenen Kostenrahmen einhalten (Lizenzen)
Wen beraten Architekten?
- Management und Auftraggeber für Planung/Organisation
- Auftraggeber zu Machbarkeit, Kosten, Realisierung, Betrieb
- Projektleiter bei Steuerung des Implementierungsteams
- Implementierungsteam bei Umsetzung
- Qualitätssicherung zu Testbarkeit und Bewertung
Sollten Architekten Kosten für ein Projekt genau abschätzen können?
Nein, aber zumindest eine Größenordnung oder Hausnummer sollte planbar sein.
Woran sollte das Ausmaß einer Dokumentation gemessen sein?
Wer es lesen soll.
- Manchmal reicht eine Skizze am Kaffeetisch
- Manchmal eine ausführliche API Dokumentation
Was sollten Projekte immer bleiben?
- Agil
- Flexibel
- Kurzfristig wandelbar
(Architekten sind verantwortlich ob dies möglich ist)
Was sind die Anforderungen an ein Projekt?
Anforderungen müssen immer abgewägt werden. (Performance gegen Wartbarkeit etc)
Es gibt keine Architektur die sehr günstig, performant, flexibel und wartbar ist.
Wie müssen Architekten kommunizieren?
- Architekturen für verschiedene Stakeholder unterschiedlich aufbereiten
- Stakeholder das Konzept verkaufen
- Team coachen
Was sind die Werkzeuge eines Architekten?
- Modelle: Zeigen nie das große Ganze in allen Details
(Alle Modelle sind falsch, aber meist hilfreich) - System-Dokumentationen
- Erfahrungen, Regeln
- Muster (Lösungen zu bestimmten Problemen)
- Partition und Aggretation von Problemen
- Iteratives Vorgehen (Sehr wichtig!) Nicht nur wasserfallmäßig linear arbeiten
*
Was ist Conways Law?
Das Gesetz von Conway basiert auf der Überlegung, dass für die Definition der Schnittstellen zwischen getrennten Softwaremodulen zwischenmenschliche Kommunikation notwendig ist. Daher haben die Kommunikationsstrukturen der Organisationen einen großen Einfluss auf die Strukturen dieser Schnittstellen
Wie sieht ein Architekten-Team am besten aus?
- Ein eher kleines Team (Nicht alleine)
- Erfahrungen in Softwareentwicklung vorhanden
- Erfahrungen in Fachbereich vorhanden!
Wie sieht ein iterativer Ansatz in der Softwarearchitektur aus?
- Man trifft immer wieder eine Entscheidung und driftet in eine Richtung ab.
- Durch die getroffene Entscheidung wird man in der neuen Richtungsauswahl eingeschränkt
- Wenn man alles richtig gemacht hat, ist man am Ende nicht am Ziel der Planung sondern da wo der Kunde wirklich hin wollte (es nur nicht wusste)
Was sollte Softwarearchitektur organisatorisch nicht entstehen?
- Nur an bestimmten Tagen/Zeitpunkten Entscheidungen treffen und nicht kontinuierlich
- Abkapseln und im stillen Kämmerlein arbeiten
- Nur auf Marketing fokusiert sein
- Sich nur am Namen der Architektur festmachen. (Wir machen React)
Ist der Beruf Softwarearchitekt ein Status?
Nein, das sollte er nicht sein.
Gute Architekten sind sehr gute Softwareentwickler mit gutem Überblick, die Menschen führen können und Wissen über das System haben.
In welchem Kontext steht Softwarearchitektur im Unternehmen bzw mit was steht es alles im Kontakt.
- Projektplanung
- Qualitätssicherung
- Betrieb
- Hardwareentwicklung
- Designs/Implementierung
- Risikoanalyse
Woher stammt der Begriff Architektur?
- Aus dem Mittelalter für Baustil/Baukunst
Was sind die Ziele von Architektur?
- Erfahrungen und Wissen verallgemeinern
- Ordnung und Verallgemeinerung von strukturellen Beziehungen im Bauwesen
Zitate
- The software architecture of deployed software is determined by those aspects that are the hardest to change
- Das Leben von Software-Architekten besteht auf einer langen und schnellen Abfolge suboptimaler Entwurfsentscheidungen, die meist im Dunkel getroffen werden
- Die zuverlässigste, preiswerteste und robusteste Komponente eines Systems ist diejenige, die erst gar nicht realisiert werden muss
Woraus besteht Architektur?
- Bausteine/Komponenten des Systems
- Wesentliche extern sichtbare Eigenschaften der Bausteine
- Beziehungen zwischen den Bausteinen/Komponenten untereinander
Auf welchen Entwurfsentscheidungen basiert Architektur?
- Entscheidungen zum Entwurf der Komponente
- Entscheidungen für Technologien
Was tut eine Sicht der Architektur?
- Dokumentiert Aspekte eines Gesamtsystems
- Ist nützlich für einen bestimmten Stakeholder
Warum ist Architektur Abstraktion?
- Weil die Aufgabe von Architekten das Weglassen von nicht benötigten Informationen ist
- Diese werden bewusst gefiltert, um Darstellungen verständlich zu halten
Wo ist der Unterschied zwischen Architektur und Entwurf/Design?
- Fließende Grenze
- Design/Entwurf ist der Prozess der Erstellung von Architektur
Wie beraten Architekten?
- Management und Auftraggeber bei Projektplanung
- Auftraggeber zu Machbarkeit, Kosten, Anforderungen, Betrieb
- Projektleiter bei Organisation und Steuerung des Implementierungsteams
- Projektleiter bei Risikomanagement
- Hardwarearchitekten bei Hardwareanforderungen
- Qualitätssicherung bei Testbarkeit von Systemen
Wie dokumentieren Architekten?
- Nach den Bedürfnissen der Adressaten
- Pragmatisch (Manchmal reicht eine Skizze auf einem Umschlag)
- So das Projekte, agil, flexibel und kurzfristig bleiben
Wie bewerten Architekten?
- Wann sind nicht funktionale Anforderungen riskant oder kritisch?
Seit wann gibt es den Begriff Softwarearchitektur?
- In einer Natokonferenz in Rom 1980 ist der Begriff das erste Mal aufgetreten.
Warum ist der Begriff Softwarearchitektur enstanden?
- Nach 1960 wurden System so komplex, dass ein einzelner nicht mehr alle Infos wissen konnte und Teams daran arbeiten mussten.
- In Systemen wurde die Software teurer als die Hardware und Projekte verzögerten sich immer mehr und wurden viel teurer als angenommen.
Was machen Mainframes heute?
- Verarbeiten 80% aller Unternehmensdaten mit 30 Mrd Transaktionen pro Tag
Wann entstanden die ersten Softwarearchitekturen?
- Dekomposition, Zerlegung, Entwurf:
1970er Jahre mit The Mythical Man Month - Schnittstellen und Konnektoren:
1990er Jahre mit Software Architecture Analysis Method - Anwendung und Verbreitung:
2000er Jahre mit IEEE Standards, UML 2.0
Was waren Pioniere der Softwarearchitektur?
- Davis Parnas
- Frederick Brooks
- Tony Hoare
- Edsge Dijkstra
- Per Brinch Hansen
- Friedrich Bauer
- Niklaus Wirth
*
Was hat David Parnas erfungen?
- Geheimnisprinzip
- Grundlagen OOP
- Modulkonzept
Was hat Frederick Brooks erfunden?
- Schrieb das erste ehrliche Buch über Softwareentwicklung:
The Mystical Man Month, Essays über Software Engineering - Brooks Law:
Adding Manpower to a late software project makes it later
Was hat Tony Hoare erfungen?
- Quicksort Algorithmus
- Hoare-Kalkül zum Beweisen von Algorithmen
- Grundlage der Programmiersprachen Ada, Occam und Go
Was hat Edsge Dijkstra erfunden?
- Dijkstra Algorithmus zum Berechnen des kürzesten Weges in einem Graphen
- Semphoren für Synchronisation von Threads
- Erstes Betriebssystem mit Schichtenarchitektur
- Prägte Begriffe der strukturierten Programmierung der Softwarekrise
Was hat Per Brinch Hansen erfunden?
- Erste Implementierung des Mikrokernkonzepts
- Monitorkonzept für paralelle Programmierung
- Erste parallele Programmiersprache
Was hat Friedrich Bauer erfunden?
- Stack-Konzept (Kellerspeicher) erfunden
- Hielt die erste Informatikvorlesung in DE
- Autor in Kryptologie
Was hat Niklaus Wirth erfunden?
- Wirthsche Gesetz:
Software verlangsamt sich schneller, als Hardware sich beschleunigt - Programmiersprache PL360 für IBM Mainframes
- Programmiersprache Pascal
- Erweiterte Backus Nauer Form als formale Sprache
- Computermaus import, der Logitech gründete
Was erkennt man an der Entwicklung des Linux Kernels und Ruby on Rails?
- Die Komplexität von Software hat über die Jahre immer weiter zugenommen
- LInes Of Code, Klassen, Methoden stiegen stark an
Warum braucht man Sichten?
- Eine Darstellung alleine kann alle Komplexitäten für alle Perspektiven ausdrücken (Grundriss reicht nicht für Hausbau)
*
Was müssen Architekten den Projektbeteiligten erklären?
- Entworfene Strukturen
- Getroffene Entscheidungen
- Konzepte, Begründungen, Vorteile, Nachteile
- Mit den verschiedenen Sichten viele Aspekte verständlich darstellen
Wie lautet der Kreislauf in dem Architekten in einem Team für gemeinsames Verständnis sorgen?
->
Anforderungen klären ->
Entwerfen ->
kommunizieren ->
Bewerten ->
Wie heißen die 4 Sichten der Softwarearchitektur?
- Kontextabgrenzung
- Laufzeitsicht
- Bausteinsicht
- Verteilungssicht
Was beschreibt die Kontextabgrenzung (kurz)?
- Vogelperspektive & Nachbarsysteme
Was beschreibt die Laufzeitsicht (kurz)?
- Wie arbeiten Bausteine zusammen?
Was beschreibt die Bausteinsicht (kurz)?
- Statische Struktur von Bausteinen und Beziehungen
Was beschreibt die Verteilungssicht (kurz)?
- In welchem Umgebungen läuft es ab?
Was zeigt die Kontextsicht?
- Wie System in Umgebung eingebettet ist
- Zeigt System als Blackbox im Kontext aus Vogelperspektive
Welche Informationen enthält die Kontextsicht?
- Schnittstellen zu Nachbarsystemen
- Interaktionen mit Stakeholdern
- Teile der Infrastruktur
Wie sehen Beispiele für die Kontextsicht aus?
Wie sehen Beispiele für die Kontextsicht aus?
Wie sehen Beispiele für die Kontextsicht aus?
Wie sehen Beispiele für die Kontextsicht aus?
Was zeigt die Bausteinsicht und wem hilft es?
- Wie ist ein System intern aufgebaut?
- Hilft einem Auftraggeber und Projektleiter bei Projektüberwachung
- Hilft bei Arbeitspaketzuteilung
- Referenz für Softwareentwickler
Welche Informationen enthält die Bausteinsicht?
- Statische Strukturen der Bausteine eines Systems
- Subsysteme
- Komponenten und Schnittstellen
Wie sehen Beispiele für die Bausteinsicht aus?
Wie sehen Beispiele für die Bausteinsicht aus?
Wie sehen Beispiele für die Bausteinsicht aus?
Wie sehen Beispiele für die Bausteinsicht aus?
Was zeigt die Bausteinsicht?
- Wie das System abläuft
- Welche Beusteine zur Laufzeit existieren
- Wir wirken die Bausteine zusammen?
Wie sehen Beispiele für die Laufzeitsicht aus?
Wie sehen Beispiele für die Laufzeitsicht aus?
Wie sehen Beispiele für die Laufzeitsicht aus?
Wie sehen Beispiele für die Laufzeitsicht aus?
Was zeigt die Verteilungssicht?
- In welcher Umgebung läuft das System ab?
- Zeigt es aus Betreibersicht
Welche Informationen enthält die Verteilungssicht?
- Hardwarekomponenten(Rechner, Prozessoren)
- Netzprotrokolle/Netztopologien
- Physische Bestandteile der Systemumgebung
Wie sehen Beispiele für die Verteilungssicht aus?
Wie sehen Beispiele für die Verteilungssicht aus?
Wie sehen Beispiele für die Verteilungssicht aus?
Gibt es weitere Sichten außer den 4?
- In der Literatur findet man noch ein paar, jedoch sind das meist nur abgewandelte Sichten ohne Mehrwert.
- Man sollte darauf verzichten mehr zu benutzen
Warum sollte man auf weitere Sichten verzichten?
- Zusätzlicher Erstellungs- und Wartungsaufwand.
- Grundlegende Aspekte werden bereits durch die 4 abgedeckt.
Was ist ein Beispiel einer sehr speziellen und meist nicht nützlichen “Sicht”?
- Karte über Lichteinfall in die Wohnung, ist für Pflanzenzüchter interessant, aber für wenig andere sonst.
Gibt es noch weitere Sichtenmodelle in der Literatur?
- Ja
- 4+1 Sicht
- Modulstandpunkt
-> Im Endeffekt sind alle keine Neuerfindungen des Rades, sondern abgeänderte Kopien.
Wie sollten Sichten entstehen?
- Entwurf von Sichten hat Abhängigkeiten
- Software sollte iterativ entstehen da manche Auswirkungen erst über Grenzen von Sichten spürbar sind
Welche Sichten haben untereinander Wechselwirkungen?
- Jede Sicht hat mit jeder Sicht eine Wechselwirkung
In welcher Reihenfolge sollte man Sichten erstellen?
- Oftmals parallel erstellt und verbessert
Wann sollte man die Bausteinsicht zuerst erstellen?
- Bei Erstellung eines ähnlichem Systems mit Vorstellung von benötigten Komponenten
- Ein bestehendes System ändern muss und Teile der Sicht vorgegeben sind
Wann sollte man die Laufzeitsicht zuerst erstellen?
- Bei Vorstellungen von wesentlichen Bausteinen und man möchte die Verantwortlichkeit und Zusammenspiel klären
Wann sollte man die Verteilungssicht zuerst erstellen?
- Bei vielen Randbedingungen und Vorgaben durch technische Infrastruktur, Rechenzentrum oder Admins
Wieviel Aufwand fließt in welche Sicht?
- 60-80% der Zeit für die Sichten wird in die Bausteinsicht fließen, da sie viel detailliert ausgeführt wird als die anderen Sichten
Sollte man nur die Bausteinsicht erstellen und die anderen Sichten vernachlässigen?
- Nein, man sollte auf jeden Fall alle Sichten erstellen
- Das ist für das Gesamtprojekt wichtig und für verschiedene Stakeholder
Sollte man Entwurfsentscheidungen und Beschreibungen die Sichten beeinflussen dokumentieren?
- Ja, z.B. eine zentrale Datenhalung ist noch wichtig für den weiteren technischen Verlauf der Infrastruktur
Was sind die Vorteile wenn man Wechselwirkungen der Sichten dokumentiert?
- Bessere Nachvollziehbarkeit von Entscheidungen
- Änderungen werden vereinfacht
- Zusammenhänge und Übersicht der Architektur wird besser
Wie entwirft man die Sicht Kontextabgrenzung?
- Ist Ergebnis der Anforderungsanalyse
- Zeigt sämtliche Nachbarsysteme
- Alle Ein/Ausgehenden Daten und Ereignisse müssen erkennbar sein
Wie entwirft man die Bausteinsicht?
- Bausteinsicht ist Kern der Architekturbeschreibung
- Man beschreibt exakt wie das System strukturell aufgebaut ist
- Zuerst beginnt man mit der Vogelperspektive der Implementierungsbausteine
- Man zerelgt ein System in große Elemente wie Teilsysteme
- 60-80% der Arbeit!
Wie entwirft man die Laufzeitsicht?
- Die Elemente der Laufzeitsicht sind Elemente für die Bausteinsicht
- Daher kann man die Bausteinsicht für die Erstellung der Laufzeitsicht nutzen
- Man beschreibt die Dynamik der statischen Bausteine und beginnt bei den wichtigsten Use-Cases des Gesamtsystems.
- Man kann auch von der Verteilungssicht starten
Wie entwirft man die Verteilungssicht?
- Verteilungssicht ist eine Landkarte der Hardware und externen Systemen
- Genügen die verfügbare Hardware, Kommunikationskanäle, gibt es Engpässe?
- Falls ein System verteilt laufen soll müssen Kommunikationsmechanismen, Protokolle und Middleware in die Infrastruktursicht aufgenommen werden.
Was ist Qualität?
- Beschaffenheit, Güte, Wert
- Wenn der Kunde wiederkommt nicht das Produkt
- DIN/ISO Norm die es genau spezifiziert (Funktionalität, Zuverlässigkeit, Benutzbarkeit, Effizienz etc)
Wie sieht das magische Dreieck der Qualität aus?
Was sind die Probleme mit Qualität?
- Qualität ist nur indirekt messbar
- Qualität ist relativ und subjektiv, für jeden Betrachter anders
- Qualität von Architektur ist nicht notwendigerweise Codequalität
- Erfüllung aller funktionalen Anforderungen heißt nicht Erfüllung von Qualität
Beispiel funktionale Anforderungen anhand von Sortieren von Daten:
- Funktional kann es erfüllt sein, aber nicht funktional?
- Was ist bei:
Große Datenmengen (TB)?
Sonderzeichen?
Parallele Benutzer?
Sortierung anhaltbar?
Erweiterbarkeit?
Entwicklung mit verteilten Teams?
Welche Qualitätsmerkmale hält der DIN/ISO 9126 Norm fest?
- Funktionalität:
Satz von Funktionen mit spezifizierten Eigenschaften - Zuverlässigkeit:
Fähigkeit, Leistungsniveau konstant über Zeitraum - Benutzbarkeit:
Aufwand zur Benutzung - Effizienz:
Leistung im Gegensatz zu eingesetzte Betriebsmittel - Änderbarkeit:
Aufwand für Änderungen - Übertragbarkeit:
Eignung zur Übertragung in andere Umgebung
Was sind Architekturmuster?
- Muster für Softwarearchitekturen die erprobte Generallösungen für wiederaufkehrende Probleme beschreiben. Die Lösung beschreibt Komponenten und Beziehungen.
- Bewährte Lösung für ein wiederholt auftretendes Entwurfsproblem
- Ein Architekturmuster definiert den Kontext für die Anwendbarkeit der Lösung
Warum gibt es Architekturmuster?
- Erfolg -> Weisheit, Weisheit -> Erfahrung, Erfahrung -> Fehlern.
- Dummer Fehler zwei Mal gemacht? Reale Welt, Hundert Mal gemacht? Softwareentwicklung
- Aus Fehlern kann man gut lernen, aber kaum Kunden akzeptieren Fehler
*
Was sind Heuristiken im Kontext der Architekturmuster?
- Heuristiken sind Abstraktionen von Erfahrungen anderer Architekten und Projekte
- Heuristiken sind Regeln zur Behandlung von komplexen Problemen für die es viele Lösungen gibt, indem sie Komplexität reduzieren.
- Heuristiken sind Regeln, Muster, Prinzipien, es sind abstrakte Verallgemeinerungen.
- Heurisitiken bieten Orientierung wie Wegweise oder Straßenschilder, die Verantwortung, Auswahl und Umsetzung bleibt bei einem selbst.
Worin liegt die Kunst der Architektur in Zusammenhand mit Heuristiken?
- Bei der Weisheit die passende Heuristik für das aktuelle Projekt zu wählen.