ITArchitecture (Subject) / Prüfung 1. Semester (Lesson)

There are 34 cards in this lesson

Semesterstoff des 1. Semesters

This lesson was created by elju272.

Learn lesson

This lesson is not released for learning.

  • Aus welchen Komponenten besteht eine Softwarearchitektur? Bausteine Schnittstellen Konfiguration Sie wird abgebildet in 4 Sichten: Kontextsicht Bausteinsicht Laufzeitsicht Verteilungssicht
  • Welche Sichten gibt es in der Software Architektur? Kontextsicht Bausteinsicht Laufzeitsicht Verteilungssicht
  • Was ist ein Baustein im Bereich der Softwarearchitektur? Eine Zerlegung in überschaubare Teile. Er verfügt über Schnittstellen Abhängigkeiten, dient der Kapselung und erleichtert die Austauschbarkeit Jeder Baustein hat Namen Verantwortlichkeit Zweck/Funktion Schnittstellen
  • Welche Eigenschaften/Beschreibung hat ein Baustein? Jeder Baustein hat Namen Verantwortlichkeit Zweck/Funktion Schnittstellen
  • Welche Arten von Schnittstellen kennen Sie? Schnittstellen sichern die Kommunikation zwischen Bausteinen. Es gibt folgende Schnittstellen: Standardschnittstellen angeforderte Schnittstellen angebotene Schnittstellen Adapter = unabhängige Schnittstelle
  • Was ist eine Blackbox im Kontext der Softwarearchitektur? Eine Blackbox ist ein Teil oder Baustein eines Systems, in das man nicht hineinsehen kann. Man weiß nicht, was drinnen passiert. Es sind lediglich die Schnittstellen (siehe Schnittstellen) und die Funktionen definiert. Eine Blackbox ist die abstrahiert Ebene einer Whitebox. Die oberste Blackbox ist die Kontextabgrenzung des Systems, um das System von anderen Systemen abzugrenzen.
  • Welche Arten von Sichten kennen Sie und welchen Aspekt der Architektur beleuchten diese? KontextsichtZeigt Schnittstellen zu umliegenden Systemen Darstelleung durch KontextdiagrammzB: Use-Case-Diagramm immer aus der Sicht eines ‚Beteiligten‘ zB. Admin, Kunde,… Bausteinsichtzeigt die einzelnen Bausteine in die das System zerlegt wurde, zeigt ihre Schnittstellen und Abhängigkeiten. Unteschiedliche Komplexität kann durch die Verwendung von Black- und Whiteboxes in dieser Darstellung erreicht werden.zB: Klassendiagramm, Kompositionsdiagramm, Paketdiagramm,… Laufzeitsichtbeschreibt die Reihenfolge der Bausteine im AblaufzB: Aktivitätsdiagramm, Sequenzdiagramm Verteilungssichtbeschreibt die physische Verteilung der Systemkomponenten. Idealerweise sind die Bausteine zu sinnvollen Bereichen zusammengefasst.zB: Verteilungsdiagramm
  • Nennen Sie 4 Problemkategorien die sich nicht mittels Abstraktion lösen lassen. Komplexität Konformität - Anpassbarkeit Änderbarkeit Nichtangreifbarkeit
  • Welche Probleme stellt die Changeability für Softwarearchitekten da? SW wird als unendlich formbar betrachtet.Bei der Architektur muss berücksichtigt werden, dass zukünftige Änderungen (zB hervorgerufen durch Änderung von HW, Gesetze, Benutzer,…) durchgeführt werden können, ohne alle Teile des Systems anpassen zu müssen.Das System muss so erstellt werden, dass beim Tausch einzelner Bestandteile nur die Schnittstellen angepasst werden müssen. 
  • Was beschreibt die Kontextsicht? Sie beschreibt die Systemabgrenzung nach außen, die Schnittstellen zu umliegenden Systemen und das Umfeld zu externen Komponenten. Darstellung durch Kontextdiagramm immer aus Sicht der Akteure (zB Admin, Benutzer,…)
  • Wofür steht das V in MVC und was ist seine Aufgabe? V = View (M Model V View C Controller) Die View ist für die Bereitstellung der Ausgabedaten verantwortlich (zB Bildschirmausgabe) die sie vom Model erhält.
  • Observer: Welcher Teil hat welche Methoden? Observerpattern ist ein Entwicklungsmuster. Subjekt bietet eine Schnittstelle zur An- und Abmeldung von Beobachtern und benachrichtigt alle Beobachter bei einer Zustandsänderung Beobachter implementiert die Aktualisierungsmethode und entscheidet wie auf die Veränderung reagiert wird. Push-Modell Subjekt schickt detaillierte Info über Änderungen als Parameter Pull-Modell Subjekt schickt nur Referenz und Info über Änderung, Observer muss Daten über Referenz auf Subjekt holen
  • Softwarearchitektur beschäftig sich mit:  Abstraktion  Zerlegung  Zusammenbau Stil Ästhetik hat Eigenschaften und verschiedene Sichtweisen ist Übergang von Analyse --> Realisierung
  • Wozu benötigt man SW-Architektur? Systeme zu verstehen System flexibel zu machen für die Zukunft Qualität zu schaffen Design zu schaffen
  • grundlegende Schwierigkeiten bei der SW Entwicklung Komplexität (Complexity) keine Bausteine sind gleich steigt mit der Größe Konformität (Conformity) muss sich anpassen (z.B. HW) Änderbarkeit (Changeability) als unendlich formbar angesehen durch HW, Standards, Gesetze, Benutzer,… Nichtgreifbarkeit (Intangibility) existiert nicht physisch keine greifbare Form KNÄK
  • Warum ist SW-Architektur wichtig? Kommunikation mit Steakholdern Dokumentation von Designentscheidungen Übertragbare Abstraktion (Wiederverwendbarkeit)
  • Dokumente der SW-Architektur Architekturprozess Anforderungsanalyse (Requirements-Analysis) funktionale AnforderungenEigenschaft oder Leistung muss erfüllt werden nicht-funktionale Anforderungen (non functional requirements=NFR)-       Zuverlässigkeit-       Benutzbarkeit-       Leistung & Effizienz-       Wartbarkeit-       Portierbarkeit Beschreibungselemente-      Diagramme in UML-Notation-       Boxes and Arrows Architekturdesign Validierung
  • Regeln der Dokumentation aus der Sicht des Lesers (kein Fachjargon) Wiederholungen vermeiden (aus unterschiedlichen Sichten, aber nur unbekannte Funktionalitäten beschreiben) keine Mehrdeutigkeiten Dokumenten- und Organisationsstrukturstandards wesentliche Entscheidungen immer schriftlich dokumentieren Gebrauchstauglichkeit testen (Benutzertests mit Zielgruppe) übersichtliche Diagramme (nicht zu groß) regelmäßige Aktualisierungen (dynamischer Prozess –> Änderungen)
  • Kategorien von Anforderungen Funktionale Anforderungen Qualitätsmerkmale Constraints (nicht verhandelbare Beschränkung)Vollkommen unnachgiebige Bedingung- zB Gesetzesvorgaben- interne Vorgaben (zB nach Stromausfall im KH wieder Strom nach spätestens 3h)
  • Definition Qualitätsmerkmal Ein Qualitätsmerkmal ist eine messbare oder testbare Eigenschaft eines Systems, welche benutzt wird, um zu zeigen wie gut die Anforderungen der Stakeholder erfüllt werden. 
  • Bewertung von Softwarearchitekturen In Softwareprojekten können Sie prinzipiell zwei Arten von „Dingen“ bewerten: Prozesse (Entwicklungs- oder Betriebsprozesse) Artefakte (Anforderungen, Quellcode, andere Dokumente) Nicht alle Artefakte lassen sich quantitativ bewerten und müssen daher qualitativ bewertet werden.
  • ISO 25000(vormals: ISO/IEC 9126) bezieht sich ausschließlich auf die Produktqualität, nicht auf die Prozessqualität und definiert sechs Hauptmerkmale: Funktionalität Zuverlässigkeit Benutzbarkeit Effizienz Änderbarkeit Übertragbarkeit Jedes dieser Hauptmerkmale wird durch Teilmerkmale verfeinert.
  • Architekturmuster dienen unter anderem folgenden Zwecken Einsparung von Zeit durch die Verwendung vorgefertigter Bausteine Verminderung von Unsicherheiten. Architekturmuster kommen meist mit einer Beschreibung von möglichen Risiken und Problemzonen Verminderung des Projektrisikos. Bei den beschriebenen Mustern und Bausteinen handelt es ich um praktisch erprobte Vorlagen.
  • Aspekte von Software-Entwürfen PersistenzBearbeitete Daten müssen dauerhaft auf Speichermedien abgelegt oder von diesen gelesen werden. Dies ist mit dem Hauptspeicher eben nicht dauerhaft möglich. IntegrationWie geht man mit bereits vorhandenen Systemen um? Verteilungwenn sich das System über mehrere Hardware-Plattformen erstreckt (Wo liegt was, auch Cloud ) ProtokollierungLogging (jeder funktionale Aufruf wird protokolliert) undTracing  (zusätzlich werden Variablen und Werte f. Entwickler protokolliert) Sicherheit VIPPS
  • Welche Aspekte beim SW-Entwurf bei der Integration von Legacy-Systemen gibt es? Erweiterung oder Ergänzung der bestehenden Software Ablösung von Altsystemen Entwicklung von Software mit Schnittstellen zu Altsystemen !!! Bestehende Daten müssen in das neue System eingepflegt werden !!! Reorganisation von Altsystemen bei der Fusion von Unternehmen
  • Entwurfsmuster zur Integration bestehender alter Systeme Wrapper/Adapter/GatewayLegacy-System ist ein altes etabliertes nicht mehr modifizierbares System in der Firmensoftware, welches aber nach wie vor gut läuft und nicht ersetzt werden soll oder kann. Integration von Legacy-Systemen wird durch Wrapper oder Gateways ermöglicht. In beiden Fällen wird das Legacy-System als eine Blackbox betrachtet.  Ein Wrapper liegt auf der selben Plattform wie das Legacy System. (läuft auf dem alten System mit) Ein Gateway liegt auf einer eigenen Plattform. (ist ein eigenständiges System) Ein Wrapper / Gateway ist wie eine funktionale Schnittstelle. (Daten vom alten System werden aufbereitet für das neue System und umgekehrt) Das DAO ist eine Art von Wrapper/Gateway (wie Schnittstelle, DAO spricht SQL mit DB und andere Sprache mit System)
  • N-Tier Systeme Eine physikalische Aufteilung auf unterschiedliche Plattformen unterschiedliche Layer = Schichten/Ebenen laufen auf unterschiedlichen Umgebungen jede ist auch alleine lauffähig, zB; Presentation Layer, Application Layer, Data Layer Komponenten werden in logischen Gruppen zusammengefasst den (Tiers) 
  • Konkrete Architektur Muster Schichtenarchitektur - Layered Pattern MVC - Model-View-Controller DAO - Data Access Object
  • Schichtenarchitektur - Layered Pattern Layers trennen eine Architektur in verschiedene Schichten Jeder Layer hat einen speziellen Aufgabenbereich zu erfüllen Die Anzahl der einzelnen Schichten und ihre Aufgaben sind nicht standardmäßig vordefiniert jede Schicht für sich funktioniert eine Änderung betrifft maximal die angrenzende Schicht, jedoch keine andere Schichte
  • Ziele der Schichtenarchitektur Änderungen am Quellcode sollten möglichst wenige Ebenen betreffen Schnittstellen sollten stabil (und möglicherweise standardisiert) sein Teile (= Ebenen) sollten austauschbar sein Jede Ebene soll separat realisierbar sein
  • Funktionsweise eines Layer-Musters Schicht x Stellt Dienste bereit für Schicht x + 1 Delegiert Aufgaben an Schicht x - 1
  • Wofür steht das M im MVC und was ist seine Aufgabe? Model: Zuständig für die Verarbeitung (berechnet, verändert) Kapselt Daten und Funktionalität Ist unabhängig von der Darstellung Benachrichtigt registrierte Komponenten (Observer) bei Datenänderung
  • Wofür steht das C im MVC und was ist seine Aufgabe? Controller: Zuständig für die Eingaben / Verarbeitung von Aktionen (= Steuermann) Verarbeitet den User-Input Ruft benötigte Services oder Funktionen des Models auf Jeder Controller ist einer View zugeordnet Es kann jedoch mehrere Controller pro Model geben
  • Struktur des MVC Für jedes Modell kann es mehrere Observer geben. Für jede View gibt es einen eigenen Controller Controller können miteinander kommunizieren Bei Veränderung der Daten werden die Observer benachrichtigt und diese können die Ansicht updaten.