|<    <     >    >|  Zertifizierung ISAQ F 2020 Generated by CoCoDiL
Lernziel 2
Lernziel 2
Entwurf

Wesentliche Begriffe:

Lernziel 2.1
Lernziel 2.1
Vorgehen und Heuristiken zur Architekturentwicklung auswählen und anwenden können(R1-R3)

Softwarearchitekten können grundlegende Vorgehensweisen der Architekturentwicklung benennen, erklären und anwenden, beispielsweise:

  • Top-down- und Bottom-Up-Vorgehen beim Entwurf
  • Sichtenbasierte Architekturentwicklung
  • iterativer und inkrementeller Entwurf
    • Notwendigkeit von Iterationen, insbesondere bei unter Unsicherheit getroffenen Entscheidungen
    • Notwendigkeit von Rückmeldungen zu Entwurfsentscheidungen
  • Domain-Driven Design (R3)
  • Modellgetriebene Architektur (R3)
Lernziel 1 Dokumentation
Word
Vorgehensweise
Lernziel 2.2
Lernziel 2.2
Softwarearchitekturen entwerfen (R1)

Softwarearchitekten können:

  • Softwarearchitekturen auf Basis bekannter funktionaler und Qualitätsanforderungen für nicht sicherheits- oder unternehmenskritische Softwaresysteme entwerfen und angemessen kommunizieren und dokumentieren
  • Strukturentscheidungen hinsichtlich Systemzerlegung und Bausteinstruktur treffen, dabei Abhängigkeiten zwischen Bausteinen festlegen
  • gegenseitige Abhängigkeiten und Abwägungen bezüglich Entwurfsentscheidungen erkennen und begründen
  • Begriffe Blackbox und Whitebox erklären und zielgerichtet anwenden
  • schrittweise Verfeinerung und Spezifikation von Bausteinen durchführen
  • Architektursichten entwerfen, insbesondere Baustein-, Laufzeit- und Verteilungssicht
  • die aus diesen Entscheidungen resultierenden Konsequenzen auf den Quellcode erklären
  • fachliche und technische Bestandteile in Architekturen trennen und diese Trennung begründen
  • Risiken von Entwurfsentscheidungen identifizieren.
Lernziel 1 Dokumentation
Word
Architekturen entwerfen
Lernziel 2.3
Lernziel 2.3
Einflussfaktoren auf Softwarearchitektur erheben und berücksichtigen können (R1-R2)

Softwarearchitekten können Einflussfaktoren (Randbedingungen) als Einschränkungen der Entwurfsfreiheit erarbeiten und berücksichtigen. Sie erkennen und berücksichtigen den:

  • Einfluss von Qualitätsanforderungen
  • Einfluss technischer Entscheidungen und Konzepte
  • (möglichen) Einfluss organisatorischer und juristischer Faktoren (R2)
  • Einfluss verschiedener Stakeholder (R2)
Lernziel 1 Dokumentation
Word
Einflussfaktoren beschreiben
Lernziel 2.4
Lernziel 2.4
Querschnittskonzepte entwerfen und umsetzen (R1)

Softwarearchitekten können:

  • die Bedeutung von Querschnittskonzepten erklären
  • Querschnittskonzepte entscheiden und entwerfen, beispielsweise Persistenz, Kommunikation, GUI, Fehlerbehandlung, Nebenläufigkeit
  • mögliche wechselseitige Abhängigkeiten dieser Entscheidungen erkennen und beurteilen.

Softwarearchitekten wissen, dass solche Querschnittskonzepte systemübergreifend wiederverwendbar sein können.

Lernziel 1 Dokumentation
Word
Querschnittskonzepte erklären
Lernziel 2.5
Lernziel 2.5

Softwarearchitekten kennen diverse Architekturmuster und können diese bedarfsgerecht einsetzen:

  • Schichten (Layer) (R1)
  • Pipes und Filter (R1)
  • Client/Server (R1)
  • Adapter und Facade (R1)
  • Proxy (R1)
  • Plugin (R1)
  • Blackboard (R2)
  • Model-View-Controller und Varianten (R2)
  • Broker (R2)
  • Remote Procedure Call (R2)
  • Messaging (R2), z.B. mit Events und Commands

Softwarearchitekten kennen wesentliche Quellen für Architekturmuster, beispielsweise die POSA-Literatur (z.B. [Buschmann+ 1996]) und PoEAA ([Fowler 2003]) (für Informationssysteme) (R3)

Lernziel 2.5 PDF
Word
Entwurfsmuster der Gang of 4
Lernziel 1
Word
Architekturmuster
Lernziel 2.6
Lernziel 2.6
Entwurfsprinzipien erläutern und anwenden (R1)

Softwarearchitekten können die folgenden Entwurfsprinzipien erläutern und anwenden:

  • Abstraktion
  • Modularisierung, unter Berücksichtigung von:
    • Geheimnisprinzip (Information Hiding) und Kapselung
    • Trennung von Verantwortlichkeiten (Separation of Concerns)
    • Hoher Kohäsion
  • Single-Responsibility-Prinzip
  • Offen-Geschlossen-Prinzip (Open-/Closed-Principle)
  • möglichst lose, aber funktional ausreichende Kopplung der Bausteine
  • Umkehrung von Abhängigkeiten durch Schnittstellen oder ähnliche Abstraktionen (Dependency Inversion)
  • konzeptioneller Integrität zur Erreichung der Gleichförmigkeit (Homogenität, Konsistenz) von Lösungen für ähnliche Probleme (R2)

Softwarearchitekten verstehen die Einflüsse der Entwurfsprinzipien auf Quellcode und können diese gezielt einsetzen.

Lernziel 2.9 Word
CoCoDiL
Eigen geschriebene Schulung SOLID Prinzipien
Lernziel 1
Word
Entwurfsprinzipien
Lernziel 2.7
Lernziel 2.7
Abhängigkeiten von Bausteinen planen (R1)

Softwarearchitekten verstehen Abhängigkeiten und Kopplung zwischen Bausteinen und können diese gezielt einsetzen. Sie:

  • kennen unterschiedliche Arten der Abhängigkeiten von Bausteinen (beispielsweise strukturelle Kopplung über Benutzung/Delegation, Schachtelung, Besitz, Erzeugung, Vererbung, zeitliche Kopplung, Kopplung über Datentypen oder über Hardware)
  • können solche Arten der Kopplung gezielt einsetzen und die Konsequenzen solcher Abhängigkeiten einschätzen
  • kennen Möglichkeiten zur Auflösung bzw. Reduktion von Kopplung und können diese anwenden, beispielsweise:
    • Muster (siehe Lernziel 2-5)
    • Grundlegende Entwurfsprinzipien (siehe Lernziel 2-6)
    • Externalisierung von Abhängigkeiten, d.h. konkrete Abhängigkeiten erst zur Installations- oder Laufzeit festlegen, etwa durch Anwendung von Dependency Injection.
Lernziel 2.6 Word
Word
Abhängigkeiten planen
Lernziel 2.8
Lernziel 2.8
Qualitätsanforderungen mit passenden Ansätzen und Techniken erreichen (R1)

Softwarearchitekten kennen und berücksichtigen den starken Einfluss von Qualitätsanforderungen in Architektur- und Entwurfsentscheidungen, beispielsweise für:

  • Effizienz / Performance
  • Verfügbarkeit
  • Wartbarkeit, Modifizierbarkeit, Erweiterbarkeit, Adaptierbarkeit

Sie können:

  • Lösungsmöglichkeiten, Design Tactics, angemessene Praktiken sowie technische Möglichkeiten zur Erreichung wichtiger Qualitätsanforderungen von Softwaresystemen (unterschiedlich für eingebettete Systeme bzw. Informationssysteme) erklären und anwenden
  • mögliche Wechselwirkungen zwischen solchen Lösungsmöglichkeiten sowie die entsprechenden Risiken identifizieren und kommunizieren.
Lernziel 2.8 Word
Word
Qualitätsanforderungen erreichen
Lernziel 2.9
Lernziel 2.9
Schnittstellen entwerfen und festlegen (R1-R3)

Softwarearchitekten kennen die hohe Bedeutung von Schnittstellen. Sie können Schnittstellen zwischen Architekturbausteinen sowie externe Schnittstellen zwischen dem System und Elementen außerhalb des Systems entwerfen bzw. festlegen. Sie kennen:

  • wünschenswerte Eigenschaften von Schnittstellen und können diese beim Entwurf einsetzen:
    • einfach zu erlernen, einfach zu benutzen, einfach zu erweitern
    • schwer zu missbrauchen
    • funktional vollständig aus Sicht der Nutzer oder nutzender Bausteine.
  • die Notwendigkeit unterschiedlicher Behandlung interner und externer Schnittstellen
  • unterschiedliche Implementierungsansätze von Schnittstellen (R3):
    • ressourcenorientierter Ansatz (REST, REpresentational State Transfer)
    • serviceorientierter Ansatz (wie bei WS-*/SOAP-basierten Webservices).
Lernziel 2.9 Word
Word
Dokument von Joshua Bloch ¨ber API Design
Lernziel 2.9 Word
Word
Schnittstellen entwerfen

 |<    <     >    >|  Zertifizierung ISAQ F 2020 Generated by CoCoDiL