Diskussion:Praktikum Software Performance Engineering mit Eclipse SS2009

Aus SDQ-Wiki

Diese Seite dient für Fragen und Diskussionen, die das Praktikum betreffen. Die Seite wird von Michael Kuperberg monitort. Sollten sich antworten zu sehr verzögern, schreiben Sie bitte eine Email an ihn. Bitte

  1. Frage: wie soll ich hier posten?
    • Antwort: die Frage klar formulieren, notwendigen Voraussetzungen auflisten, Vor- und Nachnamen und Posting-Zeit anfügen
  2. Frage: wie kann ich diese Seite überwachen?
    • Antwort: legen Sie sich zunächst bei unserem Wiki ein Login an, indem Sie die Anmeldeseite benutzen
    • wenn Sie angemeldet sind, finden Sie ein Tab namens "beobachten" oben auf der Seite; Sie bekommen dann Emails, wenn sich die Seite geändert hat
    • Nach Versand der ersten Benachrichtigungsemail meldet sich die Wiki-Seite erst wieder, wenn Sie (als angemeldeter Nutzer!) die überwachte Seite besucht haben, oder auf den "see changes"-Link in der Email geklickt haben

PCM-Types und SEFFs

Anteo Caliqi 18:54 07.05.09

bin ich jetzt der erste oder wie? Ich hoffe, dass das hier der richtige Platz ist, um die Fragen zu stellen. zu der theoretische Frage 2. Meiner Meinung nach sind DigitalWatermarking und AudioDB Provider Types. Wieso werden die aber im PCM als Basic Types angezeigt(in mediastore.repository als Baum Ansicht). Sie haben doch keine Required role. Und wo müssen SEFFs geschrieben werden und wo nicht? um es klarer zu machen SEFFs kommen in den Folien vor nur ab dem BasicComponent und von was ich verstanden habe die gibt nur erst dann wenn man Provided und Required Interfaces hat. Daraus kommt jetzt die nächste Frage wieso haben DigitalWatermarking und AudioDB SEFFs? Was habe ich da falsch verstanden?

Michael Kuperberg 10:15 08.05.09

Hallo Anteo,

du bist der erste, und du bist richtig hier.

Die verschiedenen Typen und Komponenten werden zu unterschiedlichen Zeitpunkten in der Entwicklung verwendet. Es geht darum, zuerst ein abstrakteres Modell des Systems zu entwerfen, das nach und nach verfeinert wird. Um sicherzustellen, dass ein Modell konform bleibt zu früheren Versionen, gibt es die verschiedenen Typen.

Wenn man während des Entwurfs feststellt, dass man eine gewisse Funktionalität mit einer Komponente erfüllen muss, erstellt man einen ProvidedType, der die entsprechende Schnittstelle anbietet. Man hat sich hier ggf. noch keine Gedanken darum gemacht, welche weiteren Komponenten benötigt werden, um die Funktionalität zu erfüllen. Daher sind required-Schnittstellen noch optional und können später hinzugefügt werden. Alle später entwickelten CompleteTypes, BasicComponents und CompositeComponents, die die gleichen Schnittstellen anbieten, sind konform zu diesem ProvidesType, d.h. sie können später an Stelle des ProvidedTypes eingesetzt werden (unabhängig davon, welche Schnittstellen sie benötigen). Mit der Modellierung eines ProvidedTypes sagt man also aus, dass dieser Typ von Komponente bestimmte Dienste anbietet, man aber noch nicht sicher ist über die benötigten Dienste.

Beim CompleteType hat man sich weitergehende Gedanken gemacht, welche anderen Dienste benötigt werden, um die Funktionalität zu erfüllen. Man hat sich aber noch nicht festgelegt, wie dieser Typ von Komponente im Inneren funktioniert, d.h. sie haben, ebenso wie der ProvidedType keinen SEFF. Mit der Modellierung eines CompleteTypes sagt man also aus, dass dieser Typ von Komponenten genau die angegebenen Dienste anbietet und benötigt. Insbesondere kann man sich auch entschieden haben, dass keine weiteren Dienste benötigt weden, dann hat der Typ keine required Schnittstellen. BasicComponents und CompositeComponents sind konform zu diesem Typ, wenn sie genau die gleichen Schnittstellen anbieten und benötigen.

Bei der BasicComponent und der CompositeComponent hat man dann eine konkrete Konponente spezifiziert und sich auf "die Innereien" der Komponente festgelegt, also entweder die SEFF beschrieben oder wie die Komponente innen aus anderen zusammengesetzt ist. Auch hier kann es sein, dass keine Dienste benötigt werden, also keine Required-Schnittstellen vorliegen.

Es kann also z.B. verschiedene BasicComponents geben, die zu einem CompleteType konform sind. Und ebenso verschiedene CompleteTypes, die zu einem ProvidedType konform sind.

Viele Grüsse,

Michael Kuperberg

Ein Tipp zur Aufgabe 1, Teilfrage 6

Anteo Caliqi 13:12 8.5.09 (editiert von Michael Kuperberg um 13:18)

Für diejenigen, die vielleicht nicht viel aufgepasst haben. In Bezug auf die 6. Frage: Man muss auf die Zeile unter RessourceDemand doppelt klicken. Die Zahl 0,0 davor ist gekürzt geschrieben (im Diagramm).

Hinweis von Michael Kuperberg: nehmen Sie zur Vereinfachung trotzdem an, dass der Resource Demand "0.0 * StoredFiles.NUMBER_OF_ELEMENTS + 0.01" lautet. Nehmen Sie ausserdem an, dass die Zeiteinheit im PCM (also auch bei Processing Demands) 1 Sekunde ist.

Wiki Account anlegen

Philipp Merkle 18:45 8.5.09

Über die Anmeldeseite lässt sich kein neuer Account anlegen, oder habe ich etwas übersehen?

Michael Kuperberg 19:00 8.5.2009 Das ist richtig, in der Tat. Auf der Wiki-Eingangsseite ist die Seite zum Anlegen des Accounts verlinkt: http://sdqweb.ipd.uka.de/mediawiki/index.php?title=Spezial:Anmelden&type=signup