Ex07 Klassendiagramme/Packetdiagramme

mdesa
Erstie
Erstie
Beiträge: 20
Registriert: 1. Jul 2009 14:26

Ex07 Klassendiagramme/Packetdiagramme

Beitrag von mdesa »

Hallo,

1. Sollen wir bei der ersten Aufgabe 1.a eine Abhängigkeit der Klassen im Paket einzeichnen?
2. Was ist der Unterschied zwischen Dependency und Import? Was bewirke ich wenn ich ein Package mit Dependency verbinde und was mit Import?

Vielen Dank für die Antworten
Mijat Desa

Sebastian Hartte
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 236
Registriert: 15. Apr 2004 17:57

Re: Ex07 Klassendiagramme/Packetdiagramme

Beitrag von Sebastian Hartte »

Hallo,
1. Sollen wir bei der ersten Aufgabe 1.a eine Abhängigkeit der Klassen im Paket einzeichnen?
Ja
2. Was ist der Unterschied zwischen Dependency und Import? Was bewirke ich wenn ich ein Package mit Dependency verbinde und was mit Import?
Eine Dependency ohne weiteren Stereotyp entspricht laut UML Spezifikation (7.3.15) einer Dependency mit <<import>> Stereotyp. Das macht also keinen Unterschied. (<<access>> und <<import>> ändern nur die Sichtbarkeit des importierten Elements im importierenden Namespace. Laut Spezifikation ist die Default-Visibility eines importierten Elements effektiv Public).

Gruß,
Sebastian

fklar
Windoof-User
Windoof-User
Beiträge: 40
Registriert: 10. Okt 2008 20:42

Re: Ex07 Klassendiagramme/Packetdiagramme

Beitrag von fklar »

mdesa hat geschrieben:2. Was ist der Unterschied zwischen Dependency und Import? Was bewirke ich wenn ich ein Package mit Dependency verbinde und was mit Import?
Um das noch mal etwas genauer aufzudröseln: Dependency und Import (Package Import oder Element Import) sind laut UML beides gerichtete Beziehungen (DirectedRelationship) und werden ähnlich visualisiert (gestrichelter Pfeil mit Pfeilspitze).

Eine Dependency sagt aus, dass (irgendeine) Abhängigkeit zu dem Element an der Pfeilspitze besteht. Über die Semantik der Abhängigkeit wird jedoch keine Aussage getroffen. Die Dependency wirkt sich aber nur auf das Modell aus ist also rein informativ für den Modellierer. An die Dependency kann ein Stereotyp gehängt werden, der aber nur für den Modellierer eine Semantik hat.

Ein Import (man muss zwischen Package Import und Element Import unterscheiden) ist eine spezielle Art von Dependency. Dies ist nicht strukturell in der UML erkennbar, wird aber durch die ähnliche Visualisierung deutlich. Der Import sieht genauso aus, wie eine Dependency, hat aber zusätzlich noch den prädefinierten Stereotypen <<import>> bzw. <<access>>. Dieser hat Semantik, nämlich genau die Semantik des Imports (Element(e) dürfen verwendet werden, ohne den voll qualifizierten Namen zu verwenden).

Fazit: "Dependency" ist allgemeiner. "Import" sehr speziell.
In der Aufgabe sollen Dependencies (= Abhängigkeiten) verwendet werden.


Zitate aus der UML 2.2 Superstructure:
7.3.12 Dependency (from Dependencies)
...A dependency is a relationship that signifies that a single or a set of model elements requires other model elements for their specification or implementation...


7.3.15 ElementImport (from Kernel)
An element import identifies an element in another package, and allows the element to be referenced using its name without a qualifier...


7.3.39 PackageImport (from Kernel)
A package import is a relationship that allows the use of unqualified names to refer to package members from other
namespaces.

fklar
Windoof-User
Windoof-User
Beiträge: 40
Registriert: 10. Okt 2008 20:42

Re: Ex07 Klassendiagramme/Packetdiagramme

Beitrag von fklar »

Sebastian Hartte hat geschrieben:Eine Dependency ohne weiteren Stereotyp entspricht laut UML Spezifikation (7.3.15) einer Dependency mit <<import>> Stereotyp.
Wo hast Du das denn gefunden? Kannst Du bitte die entsprechende Passage zitieren?

Sebastian Hartte
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 236
Registriert: 15. Apr 2004 17:57

Re: Ex07 Klassendiagramme/Packetdiagramme

Beitrag von Sebastian Hartte »

fklar hat geschrieben:
Sebastian Hartte hat geschrieben:Eine Dependency ohne weiteren Stereotyp entspricht laut UML Spezifikation (7.3.15) einer Dependency mit <<import>> Stereotyp.
Wo hast Du das denn gefunden? Kannst Du bitte die entsprechende Passage zitieren?
Für den Element Import unterhalb von 7.3.15 (UML Superstructure 2.2):
visibility: VisibilityKind
Specifies the visibility of the imported PackageableElement within the importing Package. The default visibility is
the same as that of the imported element. If the imported element does not have a visibility, it is possible to add
visibility to the element import. Default value is public.
Für den Package Import (7.3.39):
visibility: VisibilityKind
Specifies the visibility of the imported PackageableElements within the importing Namespace, i.e., whether imported
elements will in turn be visible to other packages that use that importingPackage as an importedPackage. If the
PackageImport is public, the imported elements will be visible outside the package, while if it is private they will not.
By default, the value of visibility is public.
Wenn ich die Spec richtig verstehe, sollte er ja auf die Default Value zurückgreifen, wenn ich es nicht weiter spezifiziere, oder?

Gruß,
Sebastian

ps: Ich habe gerade nochmal in UML 2.1.2 geschaut, da ist die Definition auch schon drin.

pps: Ich glaube ich habe fälschlicherweise die Annahme gemacht, dass Visual Paradigm im Modell einen Import ohne <<access>>/<<import>> Qualifier auch als PackageImport oder ElementImport instanziert und nicht als Dependency ;-)
Zuletzt geändert von Sebastian Hartte am 14. Dez 2009 12:21, insgesamt 3-mal geändert.
Grund: Nicht relevanten constraint entfernt.

fklar
Windoof-User
Windoof-User
Beiträge: 40
Registriert: 10. Okt 2008 20:42

Re: Ex07 Klassendiagramme/Packetdiagramme

Beitrag von fklar »

In dem Fall bezieht sich die Visibility darauf, ob <<import>> oder <<access>> an den Pfeil gezeichnet wird. Default wäre dann <<import>>.
Ein Pfeil ohne einen Stereotyp wäre nur eine Dependency. Ein (Element / Package)Import benötigt laut Spec ein keyword (=Stereotypen), der angibt, ob es ein public oder private import ist. Kann schon sein, dass verschiedene Tools das anders handhaben und auch bei einem Import das keyword weglassen.

Antworten

Zurück zu „Archiv“