Consideration Geschrieben 17. März 2006 Geschrieben 17. März 2006 Hi, ich würde gerne wissen, was für Datentypen UML z.B. durch Klassendiagramme darstellen kann ? Speziell Datentypen der Sprache ASN.1 möchte ich gerne in UML darstellen lassen, nur wird in den meisten UML Büchern kaum über Datentypen geredet, sondern fast nur über Diagramme ... VIELEN DANK im Voraus Zitieren
Rumo Geschrieben 17. März 2006 Geschrieben 17. März 2006 Du kannst jedem gefunden Attribut einer Klasse, seinen Datentyp, Initialwert, Zusicherung festlegen. Hierfür kannst du Standarddatentypen wie Int, String usw verwenden du kannst aber auch eigene Datentypen definieren. wie bsp. den Datentyp Postleitzahl der den Initialwert 00000 hat. Solltest du ein sogenantes UML-Case Tool benutzten kann es sein das du durch die Sprachauswahl auf die betreffenden Datentypen der Sprache festgelegt bist. Hoffe das hilft Dir...ansonsten spezifiziere Deine Frage mal genauer Lieben Gruß Rumo Zitieren
Consideration Geschrieben 18. März 2006 Autor Geschrieben 18. März 2006 ... kannst aber auch eigene Datentypen definieren. wie bsp. den Datentyp Postleitzahl der den Initialwert 00000 hat. Heisst das, dass ich einen eigenen Datentyp z.B. "Postleitzahl" definieren kann mit einem eigenem Werteberech ? Der Datentyp "Postleitzahl" soll kein Integertyp sein sondern ein selbst kreierter! Das ist also ohne Probleme möglich ? Gibt ein UML zu SDL Compiler dabei keine Fehlermeldung aus, da ihm der Datentyp nicht bekannt ist ? Wie ist das mit Stereotypen ? Was kann ich genau darunter verstehen (im Zusammenhang mir selbst erstellten Datentypen) ? Zitieren
kingofbrain Geschrieben 18. März 2006 Geschrieben 18. März 2006 Die eigenen "Datentypen" sind der eigentliche Sinn der Objektorientierung und damit der Klassendiagramme von UML. Klassen sind nichts anderes als Deine "Datentypen", nur können sie mehr als die bekannten primitiven Datentypen (int, float, boolean), denn sie sind Objekte mit Eigenschaften und Verhalten. Deine Postleitzahl wäre z.B. so eine Klasse mit der Eigenschaft "Wert". Dieser folgt bestimmten Regeln (5 numerische Zeichen, fester Wertebereich). Das Verhalten dieser Klasse könnte sein, den Wert zu übernehmen oder abzugeben (die typischen get- und set-Methoden, die auch den Inhalt prüfen und ggf. zurückweisen). Weiteres Verhalten einer Klasse Postleitzahl fällt mir im Moment zwar nicht ein, aber da gibt es bessere Beispielklassen (z.B. Auto). An Deiner Stelle würde ich anfangen, bei Wikipedia die Grundlagen der Objektorientierten Programmierung zu lernen, dann kannst Du leichter bei UML einsteigen. Peter Zitieren
Consideration Geschrieben 19. März 2006 Autor Geschrieben 19. März 2006 Da man Datentypen durch Klassendiagramme definieren kann, würd ich aber gerne noch wissen, warum Stereotypen existieren. Eigene Datentypen kann man doch ganz normal durch eine Klasse in einem Klassendiagramm erstellen (Mit einem Rechteck und Attributen innnerhalb des Rechtecks). Wofür dann Stereotypen nutzen ? Versteh nur den Sinn & Zweck des Stereotyps noch nicht. Hab im Wiki gelesen, bin aber nicht schlauer geworden. Prinzipiell kann eine Klasse doch dasselbe. Warum braucht dieses Beispiel das Schlüsselwort <<stereotype>> ? Kann mir jmd ein gutes Beispiel geben, um die Existenz von Stereotypen zu begründen ? Zitieren
kingofbrain Geschrieben 19. März 2006 Geschrieben 19. März 2006 Servus, das Beispielbild von Dir macht keinen Sinn, da es angibt, die "Einheit" Organisationseinheit wäre ein Stereotype. Ich mach mal ein kleines Beispiel: Du hast in Deinem Projekt Datenklassen (Objekte, die Daten haben und get- und set-Methoden anbieten, aber keine eigentliche Geschäftslogik). Wenn Du jetzt eine Klasse Person in UML anlegst, dann ist das eine Klasse. Gibst Du ihr das Stereotyp "DataObject" (<<DataObject>>) und definierst woanders, was ein DataObject ist (nämlich nur eine "Transporthülle", um Daten von A nach B zu bringen), dann ist für jeden Leser klar, was Klassen sind, die das Stereotyp <<DataObject>> haben. Du bringst also Metadaten innerhalb der Definition Deiner "Elemente" unter, die über die eigentliche Aussagekraft von Standard-UML hinausgehen. In Java gibt es seit der Version 5 die Möglichkeit, mit Annotations so etwas in der Art zu machen. Da wird aus einer einfachen Klasse Person mit der Annotation @Entity plötzlich eine EntityBean. Die Klasse ist immer noch die selbe, aber der Leser und - noch wichtiger - beteiligte Komponenten in der Software - wissen, das es sich um ein Objekt handelt, das Datenbanktupel abbildet. Ich hoffe, das macht es etwas klarer Peter Zitieren
Consideration Geschrieben 19. März 2006 Autor Geschrieben 19. März 2006 Bedeutet das, dass bei der Klasse Person mit dem Stereotyp <<DataObject>> zu den bereits in der Klasse Person definierten Datentypen zusätzlich die in der Klasse DataObject definirten Datentypen hinzukommen ? Das heisst, wenn die Klasse Person 3 Datentypen beinhaltet, und die Klasse DataObject 2, dann beinhaltet die Klasse Person mit dem Stereotyp <<DataObject>> insgesamt 5 Datentypen ? Verstehe aber immer noch nicht, wieso Stereotypen existieren. Man definiere eine Klassen, dann noch eine zweite Klasse die von der ersten Klasse erbt ... Wozu dann noch Stereotypen ? (Habs wohl immer noch nicht geschnallt .. ) Zitieren
Klotzkopp Geschrieben 19. März 2006 Geschrieben 19. März 2006 Stereotypen erweitern Metaklassen. Das ganze läuft eine Abstraktionsebene über den Klassen ab. Zitieren
kingofbrain Geschrieben 19. März 2006 Geschrieben 19. März 2006 Klotzkopp hats schon richtig gesagt, es geht um Metainformationen, also um Informationen, die nichts mit der "Syntax" der Klasse zu tun haben. Ein Stereotyp hat keine Attribute und auch kein Verhalten, sondern es ist eine Beschreibung für einen bestimmten Typ. Nochmal ein Beispiel (nicht formal, sondern so, wie ich es machen würde): Stereotyp DataObject: contains attributes with its get- and set-methods to transfer data between client and server. Diese Beschreibung ist alles. Du als Entwickler weisst, wenn Du die Beschreibung kennst, was ein DataObject ist. Du kannst Stereotypen auch nicht im Code abbilden - ausser, die Sprache kennt Metainformationen wie z.B. Java mit seinen Annotations. Versuche, das Prinzip von Metainformationen zu verstehen, dann hast Du den Stereotypen gerafft. Peter Zitieren
Consideration Geschrieben 20. März 2006 Autor Geschrieben 20. März 2006 Ein Stereotyp hat keine Attribute Im Wiki steht aber folgendes : Ein Stereotyp ist eine spezielle Klasse. Um ihn von anderen Klassen zu unterscheiden, wird er mit dem Schlüsselwort «stereotype» markiert. Wie jede Klasse kann er über Attribute verfügen, die bei Stereotypen jedoch auch als Eigenschaftsdefinitionen (engl. tag definition) bezeichnet werden. Hab jetzt ungefähr verstanden wofür Stereotypen genutzt werden, da ich nachgeschaut habe, was Metainformationen sind. Stereotypen sind nur zur Beschreibung von Klassen und Datentypen dar, die für den Leser hilfreich sind, also sind Stereotypen sogar mit Kommentaren vergleichbar. Den Einsatz von Stereotypen in der Praksis würde ich gern noch besser verdeutlicht haben. @kingofbrain : In deinem Beispiel ist der Stereptyp <<DataObject>> folgendermaßen definiert worden : Stereotyp DataObject: contains attributes with its get- and set-methods to transfer data between client and server. Diese Beschreibung hinter dem Doppelpunkt von DataObject ist aber ein ganzer Satz, den ich eher als Kommentar verstehen würde. Inhaltlich habe ich zwar verstanden was DataObject für eine Eigenschaft beschreibt, würde aber gerne noch wissen wollen wie man diesen Stereotyp in einem UML2 Klassendiagramm darstellt und definiert. Einfach ganze Sätze in das Rechteck setzen ? Zitieren
kingofbrain Geschrieben 20. März 2006 Geschrieben 20. März 2006 Servus, wie das in UML2 notiert wird, kann ich Dir nicht sagen, da ich Klassendiagramme eigentlich nur als Scribbles verwende und zur Team-Kommunikation, um kurz Sachverhalte zu veranschaulichen. Da müsstest Du Dir die Spezifikation genauer anschauen. Aber aus der Praxis kann ich Dir sagen, wenn Du das zur Veranschaulichung brauchst und nicht für eine Prüfung, dann solltest Du Dir aus dem UML-Standard ein Subset an Notationen für Deine Verwendung rausnehmen. Was Du nicht brauchst, kannst Du prinzipiell auch vergessen. Den Rest machen wir hier über Freitexterklärungen usw. Das ist auch kein Problem, da unsere UML-Software ein Whiteboard ist, das im Büro hängt. EDIT: Ach ja, das mit den Attributen. Das kenne ich von meinem Stereotypenverständnis her nicht, macht aber prinzipiell keinen Unterschied. Man kann das dann so auffassen, das ein Stereotyp gleich eine Superhierarchie mitbringt. Im Beispiel DataObject ist das evtl. die ID, da die in jedem DataObject vorhanden ist. Ich würde hier zwar in UML eine Superklasse definieren, die das Stereotyp (also die Metainformation) DataObject hat, aber das ist wahrscheinlich Geschmackssache. Peter Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.