swe


Jasmin Lienhard
Diese Lernkarten behandeln fortgeschrittene Themen des Softwareentwurfs auf Universitätsniveau. Sie konzentrieren sich auf Module, Objekte, Klassen und deren Beziehungen, sowie auf Prinzipien wie Vererbung, Arbeitsteilung und GRASP-Muster. Der Entwurf von Softwarearchitekturen, die Rolle des Softwarearchitekten und die Anwendung von Modularität und Schnittstellen werden detailliert erklärt. Diese Lernkarten sind ideal für Studierende und Entwickler, die ihre Fähigkeiten im Softwareentwurf vertiefen und professionelle Standards anwenden möchten.
Flashcards
56
Students
1
Language
German
Category
Computer Science
Level
University
Created / Updated
13.01.2014 / 10.03.2014

Cartes-fiches

Module

  • Best Practices
  • Warum Arbeitsteilung?
  • Evolution
  • Was ist ein Modul?
  • Klassen vs. Module

  • Reduktion der Komplexität
  • Spezialisierungen
  • Parallelisierung
  • Einbindung vorhandener Bausteine

Module

  • Best Practices
  • Warum Arbeitsteilung?
  • Evolution
  • Was ist ein Modul?
  • Klassen vs. Module

  • Wartbarkeit (Maintainability)
    • spätere Änderungen an Software sind mit erträglichem Aufwand machbar
  • Übertragbarkeit (Portability)
    • Software läuft auf verschiedenen Plattformen
  • Erweiterbarkeit (Extensibility)
    • Zusätzliche Funktionen können hinzugefügt werden, ohne dass bestehende Teile geändert werden müssen.

Module

  • Best Practices
  • Warum Arbeitsteilung?
  • Evolution
  • Was ist ein Modul?
  • Klassen vs. Module

  • In sich geschlossenes Bauelement
  • versteckt Details hinter Schnittstelle
  • enthält ein Geheimniss (z.b.: Set mit Baum oder Hastable implementiert ist)
  • Module werden seperat entwickelt, getestet, ausgetauscht

Module

  • Best Practices
  • Warum Arbeitsteilung?
  • Evolution
  • Was ist ein Modul?
  • Klassen vs. Module

Klassen:

  • instanzierte Objekte
  • modelliert reale Welt
  • Vererbung möglich
  • Modellierung:
    • kleinste Einheit
    • Daten/Funktionen

Modul:

  • keine Instanzen
  • Kompilations- / Installations-Einheit
  • Kann mehrere kooperierende Klassen enthalten
  • Modellierung:
    • Abstraktionseinheit
    • Arbeitspaket zur unabhängigen Herstellung

 

Module

Modul als Java Klasse implementieren

  • nur statische Methoden, Variablen und Klassen verwenden
  • keine Vererbung zulassen,. Klasse als Final deklarieren.
  • innere Klassen und Interfaces, public oder private

OSGi Bundles

  • Definition
  • Sichtbarkeit
  • Namespace

Open Services Gateway initiative

Basis von Eclipse Plug-Ins

Modul = OSGi Bundle = .jar Datei mit Manifest

OSGi Bundles

  • Definition
  • Sichtbarkeit
  • Namespace

  • innerhalb eines Bundles kann normale Java Sichtbarkeit verwendet werden (public, private, protected)
  • im Manifest gibt es zusätzliche Einschränkungen zu normalen Java Sichtbarkeitsregeln

OSGi Bundles

  • Definition
  • Sichtbarkeit
  • Namespace

jedes Bundle hat eigenen ClassLoader und damit eigenen ClassPath

Zyklische Modulabhängigkeiten

  • Definition
  • Zyklen auflösen

zyklische Abhängigkeit entsteht, wenn Modul A von B importiert wird. oder:

wenn B von einem anderen Modul importiert wird, von dem A abhängig ist.

Zyklische Modulabhängigkeiten

  • Definition
  • Zyklen auflösen

existieren Dinge die von beiden Modulen A und B benötitgt werden. diese können nur durch zyklischen Import erreicht werden:

Die gemeinsam verwendeten Ding in ein neues Modul C auslagern. A und B imporiteren C.

Rolle SW Architekt

  • Aufgaben
  • Freiheitsgrade
  • Variations vs. Evolution

  • Entwurf
  • Planung / Organisation
  • Überwachung

Rolle SW Architekt

  • Aufgaben
    • Entwurf
    • Planung / Organisation
    • Überwachung

Systemstrukturen und Schnittstellen definieren

Rolle SW Architekt

  • Aufgaben
    • Entwurf
    • Planung / Organisation
    • Überwachung

  • Abhängigkeiten identifizieren
  • Teams auswählen
  • Arbeitsreihenfolge und Termine festlegen

Rolle SW Architekt

  • Aufgaben
    • Entwurf
    • Planung / Organisation
    • Überwachung

  • Korrektheit der Implementierung überwachen
  • Qualitätssicherung
    • Component Hell vermeiden
    • Unit Tests
  • Entwurf anpassen
    • wenn sich Anforderungen ändern
    • wenn Planungsfehler sichtbar werden
  • Architekten ermöglichen Arbeitsteilung

Rolle SW Architekt

  • Aufgaben
  • Freiheitsgrade
  • Variations vs. Evolution

Oppurtunity-Driven

  • Welche änderungen werden durch die zufällig vorhandenen Freiheitsgrade vereinfacht?

Gaol-Driven

  • Welche Freihetisgrade müssen geplant werden, um bestimmte Änderungen zu unterstützen?

Rolle SW Architekt

  • Aufgaben
  • Freiheitsgrade
  • Variations vs. Evolution

Variation Point:
Variationen, di im aktuellen System bereits benutzt werden, oder bei denen sicher ist, dass entsprechende Varianten kreiert werden.

Evoultion Point:
spekulative Variationen die vielleicht in der Zukunft benötigt werden.

Étudier