Dienstag, 18. November 2008

Beginning XML


Auch wenn wir in der Vorlesung in Sachen XML doch schon ein wenig vorangeschritten sind, so kann ich doch dieses Buch nur wärmstens empfehlen.
Es deckt sämtliche Themenbereiche ab, die bisher in der VO erklärt wurden und liefert dazu noch viele praktische und hilfreiche Beispiele.

Aus dem Inhalt
Neben der grundsätzlichen Klärung, was XML überhaupt ist, wie es aussieht und was wohlgeformtes XML bedeutet behandelt es auch sehr ausführlich die Validierungsmöglichkeiten via DTD, XML Schema und RelaxNG.
Es bietet eine Einführung in XSLT und XPath, XML als Datenbank und so weiter.
Auch Progrommierung mit SAX und DOM werden darin angeschnitten, und ebenso spielen auch Communication (RSS, Atom, SOAP, WSDL und AJAX) sowie Display (CSS, SVG, XForms) eine Rolle.

Ganz ehrlich: selten konnte ich ein Buch so sehr weiterempfehlen wie dieses.

LINKS:

WROX.com (Verlag) - http://www.wrox.com/WileyCDA/WroxTitle/Beginning-XML-4th-Edition.productCd-0470114878.html

Google-Buch - http://books.google.at/books?id=E__5CaOqSuAC&printsec=frontcover&dq=beginning+xml#PPP1,M1

Amazon.de - http://www.amazon.de/Beginning-XML-Programmer-to/dp/0470114878/ref=sr_1_1?ie=UTF8&s=books-intl-de&qid=1227031292&sr=8-1

Thalia.at - http://www.thalia.at/shop/at_tha_buch_startseite/suchartikel/beginning_xml/david_hunter/ISBN0-470-11487-8/ID14245371.html?jumpId=158582

Montag, 17. November 2008

P3: Architektur

Haben heute Nachmittag in einer Marathonsitzung versucht, dieses Komponentenmodell auf die Reihe zu bringen. Leider stellte es sich heraus, dass wir trotz all der geforderten Aufgaben, die bisher abzugeben waren, noch nicht einmal selbst alle Komponenten/Aspekte unseres Projektes kennen.

Ständig kehrten wir zum Anfang zurück um alles vom Beginn an neu aufzurollen. Startend bei der Anmeldemaske haben wir überlegt, was der angemeldete User von dort aus machen kann. Dabei ertappten wir uns ständig, dass wir aus dem statischen Komponentendiagramm ausbrechen und in das dynamische Aktivitätsdiagramm eindringen wollten.

So hatte zumindest ich während der Erstellung des (bisherigen) Diagramms das Gefühl, dass wir wesentliche Schritte der Objektmodellierung ausgelassen hätten. Zum anderen muss man aber auch dazu sagen, dass wir womöglich unter den Folgen eines schlecht modellierten Use-Case-Diagramms leiden, welches wir für diesen Arbeitsschritt nicht wirklich zu Hilfe nehmen konnten.
Folglich lautet hier die einzig richtige Lösung, dass wir zum Use-Case-Diagramm zurückkehren und dieses noch einmal überarbeiten sollten. Aber natürlich fehlt dazu wieder einmal die Zeit (schließlich ist ja morgen Abgabetermin).

Obwohl wir im Grunde rechtzeitig mit der Aufgabe angefangen hatten (Donnerstag vor einer Woche) erleben wir nun doch dieselben Probleme, als wenn wir auf den letzten Drücker angefangen hätten.

Unser bisheriges Workingdraft ist über Theresas Blog zu bewundern, doch dieses wurde bereits wieder wesentlich abgeändert. Über das neue Diagramm werde ich dann hoffentlich bald berichten können.

Samstag, 15. November 2008

Lehrbuch der Objektmodellierung


Ich habe mir dieses Buch gekauft, da es den praktischen Ablauf der Erstellung eines Softwareprodukts beschreibt und mir die Inhalte auf einen flüchtigen Blick mit den Unterlagen der Vorlesung deckungsgleich schienen. Zudem befindet sich darin ein kurze und prägnante Beschreibung über das Komponentenmodell, welches der ausschlaggebende Grund für den Erwerb des Buches war. mir sehr praktisch erschien.

Leider ist es aus lizenzrechtlichen Gründen nicht möglich, die relevanten Seiten über das Komponentenmodell einzuscannen und den Teilnehmern dieser LV zur Verfügung zu stellen (selbst in geschlossenen Bereichen nicht gestattet).

Als mich mich dann daran machte, daraus eine Zusammenfassung zu erstellen, welche ich dann meinen Kollegen zur Verfügung stellen hätte können ist mir etwas aufgefallen: es wäre beinahe dasselbe gewesen wie die Vorlesungsunterlagen! Einige (sehr kurze) praktische Beispiele hätten ergänzt werden können, aber wirkliche Neuerungen wären dabei nicht zu Tage getreten.

Jedoch muss ich dazu sagen, dass sich das Buch dennoch auszahlt! Wie die (Beinahe-)Zusammenfassung bewiesen hat, sind die grundlegenden Konzepte des Komponentenmodells im Buch und in den VO-Unterlagen gleich. Dennoch bekommt man durch das Buch eine völlig neue Perspektive präsentiert, die durch eine Zusammenfassung im wesentlichen erst wieder verloren ginge.

Somit kann ich dieses Buch nur wärmstens an alle LV-Besucher weiter empfehlen. Es wird mit Sicherheit auch noch in den kommenden Übungsaufgaben (und auch für das Projekt selbst) von Nutzen sein und das Preis-Leistung-Verhältnis (mehr als 500 Seiten, verständlich geschrieben und das für knapp €20) spottet jeder Beschreibung.

Freitag, 14. November 2008

F-PrOT - Layers

Ausgehend von den allgemeinen Anforderungen an das System und von den Use-Cases (welche in unserem Fall noch einmal einer Überarbeitung bedürfen) haben wir versucht, die Architektur auf das Layersystem umzulegen.

Herzlichen Dank hierbei an Theresa, die sich bei dieser Aufgabe besondere Mühe gemacht hat.

Don't forget: Requests are welcome!


1. Layer: HTML-GUI


  • Anzeige eines Protokolls

  • Protokoll auswählen

  • Protokoll eingeben

    • Unterteilt nach Einstellungen/Transitionen (von Schnitt zu Schnitt)
    • einzelne Einstellungen werden weiter unterteilt in Zeilen
  • Userprofil ansehen
  • eigenes Profil bearbeiten

  • Anmelden

  • Registrieren

  • Forum (Protokollabhängig)

  • verschiedene Versionen ansehen

  • verschiedene Versionen erstellen

  • E-Mail Funktion

  • intern Nachrichten versenden


Dafür benötigte HTML Seiten:

  • Formular für Registrierung

  • Anmeldemaske

  • Usermenu zum Navigieren zu „Userprofil bearbeiten“, „eigenes Userprofil ansehen“, „Postfach“, „Freunde“

  • Userprofil bearbeiten

  • Userprofil: Daten, erstellte Protokolle, Möglichkeiten zur Kontaktaufnahme (E-Mail, interne Nachrichten verschicken)

  • Postfach: Ansehen der empfangenen und gesendeten Nachrichten, weiterleiten und verfassen von Nachrichten

  • Suchmaske für Protokolle

  • Ansicht eines Protokolls: Möglichkeit zur Druckansicht, Ansicht älterer Versionen, Link zu www.imdb.com, Kommentare

  • Bearbeiten eines Protokolls → Erstellen einer neuen Version: Identisch mit Erstellen eines neuen Protokolls nur mit der Option die Inhalte der alten Version hinein zukopieren

  • Bearbeiten eines Protokolls → Geringfügige Änderungen: Bearbeitung mit Ajax Zeilenweise (oder Abschnittsweise) möglich

  • Erstellen eines Protokolls: HTML Tabellen und Ajax zum Strukturieren und Autovervollständigung


2. Layer: ruft die Datenoperationen auf (Schnittstelle)


  • Ausgeben des gefundenen Protokolls (verwendet: search, wird benötigt für: Ansicht und Bearbeiten eines Protokolls

  • Speicherung neuer Protokoll-Versionen (verwendet: add, benötigt für: Eingabemaske)

  • Bearbeiten eines Protokolls (verwendet: search, edit; benötigt für: Bearbeiten)

  • Ajax Autovervollständigung (benötigt für: Bearbeiten)

  • Versenden von Nachrichten (verwendet: add, edit, search; benötigt für: Postfach)

  • Erstellen von links zu anderen Versionen

  • Userprofil bearbeiten (edit, search)

  • Userprofil ansehen (search)

  • Registrierung (add, search)

  • Anmelden (search, benötigt für: Anmeldemaske)



3. Layer:


  • Datenbanken: Userverwaltung + Kommunikation, Protokolle

  • Funktionen:

    • add

    • search

    • delete

    • edit


    • move

Donnerstag, 6. November 2008

Again about Use-Case

Nachdem ich in der LV die Use-Case Diagramme der Kollegen gesehen hatte habe ich erst verstanden, wie dieses logisch auf mehrere Diagramme aufgeteilt werden konnte. Die Präsentation wird auf diese Art viel flexibler.

Ich habe heute mit Florian Schwarz und Werner Robitza darüber gesprochen, ob es nicht sinnvoll wäre, unsere Use-Case-Diagramme in diesen Blogs zu veröffentlichen. Da die Abgabetermine nun ja vorbei sind würde dadurch ja niemandem mehr "Arbeit abgenommen", sondern interessierte Leser könnten auf diese Art ihr Wissen vertiefen.

Mittwoch, 5. November 2008

PHP Hacks & PHP/MySQL-Lernkurs

Um mich ausreichend auf die nächste Aufgabe vorzubereiten habe ich mir heute das Buch "PHP Hacks" von Jack D. Herrington in der deutschen Übersetzung von Jorgen W. Lang gekauft.
Auf einen ersten Blick sieht es sehr vielversprechend aus. Auf der Amazon-Website habe ich jedoch gerade gesehen, dass die englische Originalausgabe schlecht bewertet wurde (wenn auch nur von einem User).
Wir werden ja sehen, als wie praktisch sich das Buch herausstellen wird.

Ausserdem habe ich einen PHP-Lernkurs von Boris Gedat wieder aus den Regalen hervorgeholt. Dabei handelt es sich um einen sehr vielversprechenden Kurs auf DVD im Gesamtumfang von ca. 22 (!) Stunden. Der einzige Nachteil ist, dass diese Schulungs-DVD nur unter Windows lauffähig ist.

Notizen zur 2. Gruppenaufgabe

Die Erstellung des Zieldiagramms hat sich als Herausforderung dargestellt. Über die Qualität sind wir uns im Augenblick noch nicht bewusst.
Aufgrund von diversen Änderungen, die während des Erstellens des Use-Case-Diagramms aufgetreten sind musste das Zieldiagramm im Anschluss noch einmal leicht abgeändert werden.
Aber es lässt sich jetzt bereits sagen, dass im Zieldiagramm noch einige (wichtige) Aspekte des Tools noch nicht integriert sind. Dafür sind unwichtige Features viel zu hoch gereiht.

Zusatzeintrag


Haben in der Übung festgestellt, dass die präsentierenden Gruppen ihre Use-Case-Diagramme alle aufgesplittet haben. Während wir versucht haben, die ganze Anwendung in ein Use-Case-Diagramm aufzuteilen, haben sie verschiedene Diagramme für verschiedene Anwendungen modelliert.

Die Kollegen haben diese Aufgabe sicher besser gelöst als wir. Ehrlich gesagt war mir während des Erstellens nicht klar, in welcher Weise diese Use-Case-Ding hilfreich sein soll. Nun scheint die Antwort schon etwas klarer zu werden.

Eventuell werde ich mir noch einmal ein Buch zu den Themen UML-Modellierung und Softwarearchitekturen besorgen. In diesen beiden Fällen lässt meine Bibliothek derzeit noch zu wünschen übrig.