Folien AuOS Vorlesung 2...

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Folien AuOS Vorlesung 2…
… sind jetzt online vorerst hier: http://osr.cs.fau.de/lehre/ws09/auos/

Kommentare erwuenscht.


Ich habe mir (leider etwas spät) die Arbeitsversion von Vorlesung 2 durchgelesen. Anbei ein paar Kommentare.

1. Softwareentwicklung als Verfeinerung (Folie 6)
Müsste es nicht eine (zusätzliche) direkte Verbindung von “Programm” zu “Anforderungsbeschreibung” geben? Beispielsweise könnte der Kunde feststellen, dass in der aktuellen Version des Programms etwas fehlt oder falsch ist. Wurde dies in den bisherigen Anforderungen nicht berücksichtigt, müsste die Anforderung geändert werden. Vielleicht denke ich hier aber auch um zuviele Ecken oder mir ist die Intention der Abbildung nicht ganz klar.

2. Tell-A-Friend Anforderung (Folie 7)
Als Tester dieser Anforderung hätte ich einige Fragen an den Verfasser der Anforderung: Wie verhält sich das System wenn einer der Punkte (E-Mail, URL, Text) nicht angegeben wird? Was für eine URL ist damit gemeint? Eine URL z.B. zum Blog des Senders? Oder die URL zum Bild? Letzteres hätte ich eigentlich vom System erwartet. Falls es sich dabei nur um einen (exemplarischen) Teil einer Anforderung handelt, würde ich darauf hinweisen.

3. Tell-A-Friend Softwareentwurf (Folie 8)
Warum hat ein TellFriendHandler “2…3” Assoziationen mit “EmailAddress”? “2” (Empfänger + Sender) und “2…*” (n Empfänger + Sender) würde ich verstehen. Auch hat mich das Klassendiagramm etwas erschlagen, bis mir klar wurde, dass die WebPart-Teile für das Verständnis erstmal nicht relevant sind. Daher evtl. das Diagramm etwas reduzieren.

4. Tell-A-Friend Implementierung (Folie 9)
Gibt es einen Grund, warum der Konstruktor und die EmailServer-Instanz nur “protected” sind?

  1. Verwendung von UML in der Dokumentation (Folie 14)
    Gleiche Folie wie Folie 8 => Gleiche Fragen/Hinweise

6. Die Schichtenarchitektur von Wahlzeit (Folie 17)
Ich bin erstmal über POJOs gestolpert. Da ich von J2EE nicht soviel kenne, waren mir Plain Old Java Objects erstmal nicht bekannt. Wo liegt der Unterschied zwischen Jetty Servlets und Java Servlets?

7. Anwendungsmodell von Wahlzeit (Folie 19)
Ohne Kenntnis der Anwendung ist das Klassendiagramm nicht ganz klar. Z.B. was genau mant ein PhotoCase? Welche Aufgaben haben PhotoTagCollector und PhotoFilter? Auch die Komposition zwischen Model.PhotoFilter bzw. Model.Photo und Model.Tags verstehe ich nicht so ganz. Ich hätte erwartet, dass das System über eine Anzahl von (evtl. benutzerdefinierten) Tags verfügt und diese durch eine Aggregation verknüpft sind. So sieht es aus, als hätte jedes Photo bzw. jeder PhotoFilter seine “privaten” Tags.

8. Paketierung und Code-Schichten (Folie 21)
Ich persönlich finde Paketdiagramme meist nicht sehr aufschlussreich. Was mich haber hier interessiert: Wie ist die Kopplung zwischen den Paketen realisiert? Wird ein Fassadenmuster verwendet?


Oops, sorry, hatte das Feedback nicht gesehen. Danke, wird bei der naechsten Iteration/Release beruecksichtigt. --Dirk Riehle