2009-04-26 8 views
0

Angenommen, ich habe eine Verbund Beziehung, sagen wir ein Kunde eine Sammlung von Aufträgen mit Also, ich bin nicht (und Bestellung unter der Annahme kann nicht ohne ein „Besitz“ Kunden vorhanden sind.) sprechen über Aggregation.Terminologie - Teile eines zusammengesetzten Beziehung

Welche Begriffe werden verwendet, um die Rollen in dieser Beziehung zu beschreiben? Ich könnte sagen, der Kunde ist der "Eigentümer" eines Auftrags und vielleicht ist der Auftrag "im Besitz", aber sicherlich gibt es bessere Begriffe, die ohne Angabe der anderen Rolle angegeben werden können.

Ich versuche, diese Begriffe zu bestimmen, damit ich Attribute in einem Metamodell nennen kann. Ich kann "etwas ausdenken", möchte aber Namen verwenden, die leicht verständlich sind.

Vielen Dank im Voraus für Anregungen und/oder Hinweise zu definitiven Quellen.

Bill

Antwort

0

Dies auch genannt wird "hat eine" Beziehung. Das Customer Objekt "hat eine" Sammlung von Order Objekten. Wo in der Vererbung, würden Sie sagen, die Customer "ist ein" Person. Sie könnten auch sagen, die Sammlung Order s ist ein Feld oder Mitglied oder was auch immer Sie Sprache Mitgliedervariablen sind. Sie würden einfach das Customer Objekt (oder einen zusammengesetzten Typ) aufrufen. Die meisten Klassen sind sowieso zusammengesetzte Typen, es sei denn, es gibt keinen Zustand (d. H. Nur Methoden/Verhalten).

+0

Dies beantwortet jedoch die Frage nicht. Ich weiß * was * Zusammensetzung ist. Ich versuche, die richtige Terminologie zu bestimmen, wenn ich auf die Objekte rede, die an der Beziehung teilnehmen. Du machst einen netten Job, um zu erklären, was * Zusammensetzung ist; aber das weiß ich schon! Danke für die Post auf jeden Fall. –

+0

Ich dachte, mein Beitrag befasse mich hauptsächlich mit dem, was die Dinge heißen, aber was ich herausfand, ist, dass es eine Menge "inoffizieller" Terminologie gibt, um Teile der Komposition zu benennen. Ein Typ, der aus anderen Objekten besteht, ist ein * Objekt *, die Objekte, aus denen diese Komposition besteht, sind * members * oder * fields *, ich würde es so nennen, wie Ihre Sprache sie auch nennt oder mit denen sie sich wohl fühlt. Es ist kein Zufall, dass die OOP-Sprachen dieselben Begriffe verwenden. Bei OO geht es nur um Komposition, wenn Sie richtig handeln. –

+0

Ich dachte, mein Beitrag befasse sich hauptsächlich damit, wie die Dinge heißen, aber was ich da herausfand, ist, dass es eine Menge "inoffizieller" Terminologie gibt, um Teile der Komposition zu benennen. Ein Typ, der aus anderen Objekten besteht, ist ein * Objekt *, die Objekte, aus denen diese Komposition besteht, sind * members * oder * fields *, ich würde es so nennen, wie Ihre Sprache sie auch nennt oder mit denen sie sich wohl fühlt. Es ist kein Zufall, dass es die gleichen Begriffe sind, die OOP-Sprachen verwenden. OO dreht sich alles um Komposition, wenn Sie richtig machen –

1

Sie möchten die Beziehung "hat eine"; unser Ding "hat ein" anderes Ding angehängt, im Gegensatz zur Vererbung von "ist eine" Beziehung. Sie können ziemlich robuste Modelle nur für diese beiden Beziehungen erstellen. Aber.

Um weiter postulieren, in Topic Maps (da wir über Metamodelle sprechen) haben wir ein paar eingebaute Beziehungen, die auch globale Identifikatoren (die Sie für den globalen Wissens-/Datenaustausch verwenden könnten), die die sind Supertype-Subtype (bezeichnet Hierarchie) und die Typinstanz (bezeichnet Typisierung, eine stark typisierte "ist ein") Beziehungen. Diese sind ziemlich global (dh auch außerhalb der Topic Maps-Welt). Werfen Sie einen Blick auf das Ende der Topic Maps Data Model für mehr dazu.

+0

Bitte sehen Sie meine Kommentar zu Marks Antwort oben. Dito hier. Danke für die Antwort. –

+0

Sorry, aber du liegst falsch; darum geht es in der Zusammensetzung nicht. Vielleicht sind Sie verwirrt, weil "hat ein" und "ist ein" klingt so sehr wie eine echte Phrase?Leider werden sie so genannt, auch wenn es für dich zu real ist. :) Es tut uns leid. – AlexanderJohannesen