Lernkarten

Karten 58 Karten
Lernende 2 Lernende
Sprache Deutsch
Stufe Grundschule
Erstellt / Aktualisiert 31.03.2018 / 31.03.2018
Lizenzierung Keine Angabe
Weblink
Einbinden
0 Exakte Antworten 58 Text Antworten 0 Multiple Choice Antworten
Fenster schliessen

Was versteht man unter Architekturstile und -muster

  • beschreibt Dekomposition eines einzelnen Software-Sytems
  • Definieren Richtlinien und Vorgaben
Fenster schliessen

Was sind klassische Architekturstile?

  • Layer
  • Peer-To-Peer
  • Pipes-And-Filter
  • Shared Data
  • Client-Server
Fenster schliessen

Architektur Elemente

  • Elemente können hierarchisch angeordnet sein
  • Zugriff auf Funktionen erfolgt über Interfaces
Fenster schliessen

Wie können Interaktionen stattfinden?

  • lokal
  • Verteilt
  • durch Mittlerkomponente
Fenster schliessen

Was sind Direktiven?

Sind zusätzliche Eigenschaften, Richtlinien und Einschränken welche sich nicht unmittelbar aus der Dekomposition ergeben.

Oft durch: Qualitätsanforderungen, technische Anforderungen, grundlegenden Architekturstil, organisatorische Rahmenbedingungen

Fenster schliessen

Was sind technische Schulden?

  • Qualitätseinbußen, (un)bewusst falsche oder suboptimale technische Entscheidungen
  • Implementationsschulden (Code-Smells), Architekturschulden, Testschulden, Dokumentationsschulden
Fenster schliessen

Was ist die Idee und das Ziel der Komponentenorientierung?

  • Idee: Erstellung von Software durch Komposition von vorgefertigten, unabhängigen Software Komponenten
  • (Zusammenbau von Systemen aus einzelnen Teilen)
  • Ziel: Reduktion von Kosten und Zeit
Fenster schliessen

Wie wird eine Komponente implementiert?

  • wird implementiert durch ein Objekt
  • kann mehrere Interfaces besitzen
  • weißt Abhängigkeiten aus
Fenster schliessen

Was zeichnet einen Microservice aus?

  • besitzt eine Implementierung
  • kann ein UI besitzen
  • kann mehrere REST-Interfaces besitzen
  • besitzt einen Datenhaushalt
  • hat eine Laufzeitumgebung
Fenster schliessen

Welche Rollen gibt es bei der Entwicklung von Komponenten?

  • -Entwickler
  • -Zusammensteller (zum Teil Endanwender)
    • Entwickelt Applikation durch (Wieder)verwendung von Komponenten
  • System-Architekt
    • Setzt LFU für Komponenten auf
    • Einhaltung von Qualitätsanforderungen
Fenster schliessen

Welche Eigenschaften hat eine Komponente?

Deployment ist wichtigste Eigenschaft einer Komponente!

Standardisiert Müssen standardisierten Komponentenmodell entsprechen; Vorgabe von Schnittstellen, Metadaten, Dokumentation, Zusammenstellungsart, Bereitstellung

Unabhängig Sollte ohne Abhängigkeiten auskommen; falls benötigt sollte die Abhängigkeit spezifiziert sein

Einsetzbar (deployable)Kann in LZU eingesetzt werden; liegen in Binärform vor; LZU baut auf OS auf

Dokumentiert Vollständig dokumentiert, damit Benutzer entscheiden können ob Ansprüche erfüllt sind; Beschreibung Syntax und Semantik

Zusammenstellbar Kann mit (mehreren) anderen zu höherwertigen Komposition zusammengestellt werden; Interaktion über öffentliche Schnittstellen

Fenster schliessen

Was sind die Grundparadigmen der Objektorientierung?

  • Kapselung des Zustands
  • Abstraktion
  • Generalisierung und Spezialisierung
  • Polymorphie
Fenster schliessen

Unterscheide Klasse und Komponente

  • Komponenten legen keine Datentypen fest
  • Implementierung von Komponenten sind verschlossen
  • Komponenten sind sprachunabhängig
  • Komponenten sind standardisiert

Komponente:

  • Binärform
  • Wird in LZU deployed
  • kann aus LZU entfernt werden
  • Deployment während der Laufzeit

Objekt:

  • Source Code
  • Java: nur Kompolierung der Klasse, dann flexibles Einsetzen in Classpath möglich, keine Verlinkung
Fenster schliessen

Wofür stehts COTS und was zeichnet es aus?

Commerciall Off-the-Shelf

  • seriengefertigte Komponenten, gleichartig aufgebaut
  • geringe bis gar keine Konfiguration
  • vollständige Software-Lösung
Fenster schliessen

Was zeichnet ein Framework aus?

  • Rahmenwerk
  • Definiert Software-Architektur
  • Enthält Klassen, Bibliotheken und LZU
  • nicht unmittelbar ausführbar, hohe Anpassung notwendig
Fenster schliessen

Inwiefern lassen sich Komponentenmodelle unterscheiden?

Serverseitig und Clientseitig
 

Fenster schliessen

Erzähle was zu serverseitigen Komponentenmodellen.

  • auf Application Server eingesetzt
  • oft hohe Sicherheitsanforderungen
  • Entwickler kann sich auf Geschäftslogik konzentieren
  • Qualitätsanforderungen: hohe Skalierbarkeit, hohe Möglichkeit der Anpassung
  • Transaktionsverarbeitung; Daten-Persistenz
  • Bekannte Modelle: EJB, CORBA, .NET, OSGi
Fenster schliessen

Wie lassen sich clientseitige Komponentenmodelle unterscheiden, was zeichnet die Unterscheidungen aus?

Thin-Client

  • Darstellungs-Komponenten realisieren interaktive UI
  • oft webbasiert
  • Deployment auf Presentation Server; reine Darstellungs- und Interaktionslogik
  • Bekannte Vertreter: Java Server Pages, Java Server Faces, AngularJS

Fat-Client

  • ClientKomponenten realisieren interaktive UI; zum Teil mit Geschäftslogik
  • Komponenten werden in Client-Umgebung eingesetzt
  • Desktop-Anwendungen, Entwicklungsumgebungen
  • Bekannte Vertreter: OSGi, JavaBeans, Active X, Adobe Flex, W3C Web Components, Rich Internet Applikation (RIA)
Fenster schliessen

Wie lassen sich Schnittstellen differenzieren?

  • required vs provided Interfaces
  • operation vs port based
  • drei Interface Levels zur Verifikation
  • Kommunikation: Request-Response und Pipe & Filter
Fenster schliessen

Differenziere Required und Provided Interfaces

  • Required Interface (Halbkreis)
    • Definiert Schnittstellen, welche die Komponente verwendet
    • Wird zur Laufzeit ausgelesen und übergeben (Dependency Injection)
    • Alternativ: aktive Einholung der Dependency
  • Provided Interface (Lolipop)
    • Was wird bereitgestellt
Fenster schliessen

Differenziere operation und Port based Interfaces

  • Operation-based
    • Schnittstelle wird durch Reihe von Operationen mit Eingabe- und Ausgabeparametern definiert
  • Port-based
    • Ports sind Eintrittspujnkte für das Versenden und Empfangen von Daten
    • Anwendung: Verarbeiten von Sensor-Daten in eingebetteten Systemen
    •  
Fenster schliessen

Welche drei Interface Levels zur Verifikation der Kompatibilität kennst du?

  • Syntaktisch (Signatur des Interface, Datentypen)
  • Semantisch (Werte innerhalb entsprechenden Rahmen)
  • Verhalten (Angabe über Reihenfolge, wie Operationen aufgerufen werden)
Fenster schliessen

Differenziere zwischen Request-Response und Pipe&Filter

  • Request Response (bidirektional)
    • Sub-Varianten: Synchron vs Asynchron
  • Pipe & Filter (unidirektional)
    • Koponenten sind Filter, welche Daten verarbeiten
    • Verbindungen sind die Pipes, welche Daten zur nächsten Komponente transportieren
    • Vor allem für datenfluss-basierte Architekturen
Fenster schliessen

Was weißt du zur JAR Hell?

  • JAR kann nicht ausdrücken, zu welchen JARs Abhängigkeit existiert
  • zu viele JARs säumen Classpath
  • Fehlende Abhängigkeiten erst zur Laufzeit bekannt
  • Überdeckung (Shadowing) Typ-gleicher Klassen aus verschiedenen JARs
Fenster schliessen

Was weißt du zum Binding von Komponenten?

  • Vertical Binding: Verbindung von zwei Interfaces vom gleichen Typ

  • Horizontal Binding: Verbindung von Required und Provided Interface

  • First-Party: Verbindung durch Entwickler

  • Third-Party: wird vom Anwender verbunden

Fenster schliessen

Differenziere Exogenous und Endogenous Composition

Exogenous

  • explizite Verwendung von Konnektoren zur Interaktion zwischen Komponenten

Endogenous

  • Binding ohne Konnektoren
  • Binding, Interaktionsprotokolle und Fehlerhandling sind Bestandteil der Komponente
Fenster schliessen

Welche Eigenschaften hat eine Laufzeitumgebung?

  • Grundlegende Kommunikation zwischen Komponenten
  • Konfiguration von einzelnen horizontalen Services (bspw. Datenbanken)
  • Konfiguration von sicherheitstechnischen Einstellungen
  • Konfiguration von Qualitätsanforderungen an die LZU
  • Kontrolle des Lebenszyklus der eingesetzten Komponenten
Fenster schliessen

Was macht die Management Schnittstelle einer LZU?

  • Dynamisches Deployment
  • Definition von Bindungen
  • Testen von Komponenten
  • Status-Anzeige von Komponenten
  • Konfiguration der LZU
Fenster schliessen

Welche Phasen gibt es bei der Entwicklung einer komponentenbasierten Applikation?

  1. Requirements Specification
  2. Component Analysis
  3. Requirements Modification
  4. System Design with Reuse
  5. Development and Integration
  6. System Validation
Fenster schliessen

Erzähle etwas zu den einzelnen Phasen der Entwicklung einer komponentenbasierten Applikation

  • Requirements Specification
  • Component Analysis:
    • Suche nach Komponenten, die (Teile) der Anforderungen erfüllen
    • meistens kein exakter Match möglich
  • Requirments Modificatoion: Überarbeitung der Anforderungen; Berücksichtigung der gefundenen Komponenten
  • System Design with Reuse: Entwicklung Software-Architektur; Berücksichtigung der gefunden Komponenten; Auswahl Komponentenmodell und LZU
  • Development and Integration: Integration der Software-Komponenten (mit Entwicklung)