3.3. Warum ist ArgoUML anders

In der Einleitung listeten wir vier Dinge auf, die ArgoUML anders machen:

  1. es macht Gebrauch von den Ideen der kognitiven Psychologie,

  2. es basiert auf offenen Standards;

  3. es ist 100% reines Java; und

  4. es ist ein Open-Source-Projekt.

3.3.1. Kognitive Psychologie

3.3.1.1. Theorie

ArgoUML ist teilweise durch die drei Theorien der kognitiven Psychologie inspiriert:

  1. Reflektion-w??hrend-Aktion,

  2. Opportunistisches Design und

  3. Verst??ndnis und Probleml??sung.

  • Reflektion-w??hrend-Aktion

    Diese Theorie unterstellt, dass sich die Designer eines komplexen Systems das vollst??ndig ausgeformte Design nicht vorstellen k??nnen. Stattdessen m??ssen Sie ein Teil-Design entwerfen, evaluieren, es reflektieren und ??berarbeiten, bis Sie soweit sind, dieses zu erweitern.

    Da sich die Entwickler sehr intensiv mit dem Design besch??ftigen, verbessert sich auch ihr mentales Modell der Problemsituation. Und dies f??hrt zur Verbesserung Ihres Designs.

  • Opportunistisches Design

    Eine Theorie innerhalb der kognitiven Psychologie besagt, dass obwohl Designer ihre Arbeit in einer geordneten, hierarchischen Art und Weise beschreiben, sie in der Realit??t aufeinanderfolgende Aktivit??ten auf der Basis kognitiver Kosten w??hlen.

    Einfach ausgedr??ckt, Designer folgen nicht ihrer selbst geplanten Reihenfolge, sondern w??hlen Schritte, die mental weniger aufw??ndige Alternativen darstellen.

  • Verst??ndlichkeit und Probleml??sung

    Eine Design-Visualisierungstheorie innerhalb der kognitiven Psychologie. Die Theorie beschreibt, dass Designer eine Br??cke zwischen Ihrem mentalen Modell des Problemes oder der Situation und dem formalen Modell einer L??sung oder eines Systems ??berwinden m??ssen.

    Diese Theorie besagt, dass Programmierer Vorteile haben von:

    1. Mehreren Darstellungsweisen wie die syntaktische Programmzerlegung, Zustands??berg??nge, Steuer- und Datenfluss. Diese erlauben es dem Programmierer die Elemente und Beziehungen innerhalb des Problemes und der L??sung besser zu identifizieren und daher die Abbildung zwischen deren Situationsmodellen und den funktionierenden Systemmodellen leichter herstellen zu k??nnen.

    2. Vertraute Aspekte eines Situationsmodelles, welche die F??higkeiten des Designers verbessern, L??sungen zu formulieren.

3.3.1.2. Praktische Anwendung in ArgoUML

ArgoUML implementiert diese Theorien durch eine bestimmte Anzahl von Techniken.

  1. Das Design der Anwenderschnittstelle, die es dem Anwender erlaubt, das Design aus unterschiedlichen Sichten zu betrachten und es dem Anwender erm??glicht, Ziele ??ber alternative Wege zu erreichen.

  2. Die Verwendung von im Designtool parallel ablaufenden Prozessen, die das aktuelle Design gegen Modelle wie „best practice “-Designs ??berpr??fen. Diese Prozesse sind als Design-Kritiken bekannt.

  3. Die Nutzung von zu bearbeiten“ Listen , die dem Anwender Vorschl??ge aus den Designkritiken unterbreiten und es ihm auch erlauben, k??nftige Aktionsbereiche aufzuzeichnen.

  4. Die Verwendung von Checklisten, um den Anwender durch einen komplexen Prozess zu f??hren.

3.3.2. Offene Standards

Die UML selbst ist ein offener Standard. ArgoUML hat ??berall versucht, offene Standards f??r alle seine Schnittstellen zu verwenden.

Der Hauptvorteil am Festhalten an offenen Standards ist, dass es die einfache Zusammenarbeit zwischen Anwendungen erlaubt und die M??glichkeit er??ffnet, von einer Anwendung zu einer anderen ??berzugehen, sofern dies notwendig ist.

3.3.2.1. XML Metadata Interchange (XMI)

XML Metadata Interchange (XMI) ist der Standard f??r das Speichern der Metadaten, die ein bestimmtes UML-Modell bilden. Im Prinzip erlaubt er, das in ArgoUML erstellte Modell in ein anderes Tool zu importieren.

Dies hat klare Vorteile, die es der UML erlaubt, ihr Ziel, der Standard f??r die Kommunikation zwischen Designern zu sein, zu erreichen.

Die Realit??t ist nicht sehr gut. Vor UML 2.0 enthielten die XMI-Dateien keine Informationen ??ber die grafische Darstellung der Modelle, so dass das Diagramm- Layout verloren ging. ArgoUML umgeht dies, indem es die grafische Information separat vom Modell speichert. (siehes Abschnitt 3.4.3.1, „Laden und Speichern“).

3.3.2.2. Grafik-Formate - EPS, GIF, PGML, PNG, PS, SVG

  • Die Encapsulated PostScript (EPS)-Datei weist zus??tzliche Einschr??nkungen auf. Diese Einschr??nkungen sind dazu gedacht, es der Software einfacher zu machen, eine EPS-Datei in ein anderes PostScript-Dokument einzubetten.

  • Das Graphics Interchange Format (GIF) ist ein patentiertes Format, obgleich die Patente im August 2006 ausliefen.

  • Precision Graphics Markup Language (PGML) ist eine XML-basierte Sprache zur Darstellung von Vektorgrafiken. Sie war ein W3C-Entwurf, der aber nicht als Empfehlung ??bernommen wurde. PGML und VML, andere XML-basierte Vektor- Grafik-Sprachen wurden sp??ter miteinander verkn??pft und verbessert, um daraus SVG (siehe unten) zu erzeugen.

  • Portable Network Graphics (PNG) ist ein ISO/IEC-Standard (15948:2004) und auch eine W3C- Empfehlung. PNG ist ein Bitmap-Bildformat, das eine verlustlose Datenkompression verwendet. PNG wurde eingesetzt, um das GIF- Format durch ein Bildformat zu ersetzen, das bei seinem Einsatz keine Patentlizenz erforderlich macht. PNG wird offiziell "ping" ausgesprochen, wird aber auch sehr oft buchstabiert — wahrscheinlich, um eine Verwechslung mit dem Netzwerktool ping zu vermeiden. PNG wird durch die libpng-Referenzbibliothek unterst??tzt, eine plattformunabh??ngige Bibliothek, die C-Funktionen f??r die Anwendung von PNG-Bildern enth??lt.

  • PostScript (PS) ist eine Seitenbeschreibungs- und Programmiersprache, die prim??r im elektronischen und Desktop-Publisching-Bereichen eingesetzt wird.

  • Scalable Vector Graphics (SVG) ist eine XML-Markup-Sprache f??r die Beschreibung zweidimensionaler Vektorgrafiken, sowohl statisch als auch animiert und entweder deklarativ oder in Schriftform. Sie ist ein offener Standard, der durch das World Wide Web Konsortium erstellt wurde. Der Verwendung von SVG im Web befindet sich in seinem Anfangsstadium. Es gibt eine grosse Tr??gheit hinsichtlich der langandauernden Nutzung reiner Raster- und anderer Formate wie Macromedia Flash oder Java-Applets. Aber auch die Browserunterst??tzung ist uneinheitlich, mit eingebauter Unterst??tzung im Opera und Firefox, w??hrend Safari und der Internet Exlorer ein Plugin ben??tigen. Siehe PGML weiter oben.

3.3.2.3. Object Constraint Language (OCL)

Die Object Constraint Language (OCL) ist eine deklarative Sprache zur Beschreibung von Regeln, die auf UML-Modelle angewendet werden. Sie wurde durch IBM entwickelt und ist jetzt Teil des UML-Standard. Urspr??nglich war OCL nur als formale Spezifikationssprachen- Erweiterung von UML gedacht. OCL kann jetzt mit jedem Meta-Object Facility (MOF) konformen Metamodell einschliesslich UML angewendet werden. Die Object Constraint Language ist eine pr??zise Textsprache, die Randbedingungen und Objekt-Abfrageausdr??cke f??r jedes MOF- oder Meta-Modell enth??lt, die nicht auf andere Art durch eine Diagramm- Notation ausgedr??ckt werden k??nnen.

3.3.3. 100% reines Java

Java wurde als interpretierende Sprache erdacht. Sie hat keinen Compiler, der Code f??r jede beliebige Zielmaschine erzeugt. Sie ??bersetzt den Code f??r sein eigenes Ziel, der Java Virtual Machine (JVM).

Das Schreiben eines Interpreters f??r eine JVM ist sehr viel leichter, als das Schreiben eines Compilers und solche Maschinen sind jetzt in fast jedem Web Browser eingebaut. Im Ergebnis k??nnen die meisten Maschinen Java, ohne dass es weiterer Arbeiten bedarf.

(F??r den Fall, dass Sie sich wundern, warum nicht alle Sprachen so sind wie diese. Dies ist so, weil interpretierende Sprachen langsamer sind als ??bersetzende Sprachen. Mit der hohen Leistung moderner PC's und dem Handlungszwang nach Portabilit??t ist diese Einschr??nkung f??r viele Applikationen trotzdem lohnenswert. Dar??ber hinaus k??nnen moderne Multi-Cache-Systeme bei dichteren Code produzierenden interpretierenden Sprachen bedeuten, dass Sie nicht mehr viel langsamer sind.

Durch die Wahl, ArgoUML in reinem Java zu schreiben, wird ArgoUML f??r sehr viele Anwender mit einem minimalem Aufwand unmittelbar verf??gbar.

3.3.4. Open Source

ArgoUML ist ein Open Source-Projekt. Das bedeutet, jeder kann eine freie Kopie des Quellcodes haben, diesen ??ndern und f??r neue Zwecke einsetzen usw.. Die einzige (Haupt-) Bedingung ist, dass Sie Ihren Code auf die gleiche Weise anderen zur Verf??gung stellen. Die genaue Auspr??gung, was Sie tun k??nnen und was nicht, variiert von Projekt zu Projekt, aber das Prinzip ist das gleiche.

Der Vorteil ist, dass ein kleines Projekt wie ArgoUML immer f??r zus??tzliche Unterst??tzung offen ist. Insbesondere f??r diejenigen, die Ihre Ideen einbringen, wie das Programm verbessert werden kann. Jederzeit k??nnen 10, 15, 20 oder mehr Personen signifikante Beitr??ge zu ArgoUML leisten. Dies kommerziell zu machen, w??rde mehr als 1 Mio. $ pro Jahr kosten.

Es ist aber nicht nur der Geist reiner Uneigenn??tzigkeit. Mitzuarbeiten ist ein Weg „nebenbei“ mehr ??ber f??hrende Software zu lernen. Es ist ein Weg, eine Menge Sichtbarkeit (??ber 1.125.000 Personen haben ArgoUML Ende 2005 heruntergeladen) zu erhalten. Als Res??me ist das eine sehr gute Erfahrung und eine Menge Arbeitgeber sehen Sie!

Und es ist hervorragend f??r Ihr Ego!

Open Source schliesst das Geld verdienen nicht aus. Gentleware www.gentleware.com verkauft eine kommerzielle Version von ArgoUML: Poseidon. Deren Angebot ist nicht ein St??ck privaten Codes. Es ist der kommerzielle Support, der das Risiko bei der Nutzung von ArgoUML in einer kommerziellen Entwicklung reduziert und es dem Kunden erlaubt, die Vorteile von ArgoUML's f??hrender Technologie zu nutzen.