1

Papyrus (+ Eclipse)を使用しているときに、最初は矛盾と見なしていた問題に直面しました。しかし、それについて疑問に思った後、UML設計の基本的な概念に「バグ」があるのではないかと思い始めました。

さて、とがの特殊化である基本的なクラス継承問題を考えてみましょう。(つまり、とのスーパークラスです)。ManWomanPersonPersonManWoman

次に、ステレオタイプ Worker(パラメーターjobなどを含むsalary)をに適用する場合Person、サブクラスも同じステレオタイプを受け取るべきではありませんWorkerか?それらはパラメータを含むべきではありませんjobか?salary

ステレオタイプもスーパークラスから継承されたのですが、このデザインをPapyrusツールで実装すると、継承されたjobまたはが表示されませんsalary。すべてのサブクラスは、ステレオタイプが適用されていない場合と同じです。

前もって感謝します!

======================詳細については編集========================

サブクラスでのステレオタイプの継承に関して、UMLv1.3の問題が2000年に開かれたことがわかりました。

問題3210:ステレオタイプの継承(uml-rtf)

私の解釈では、ディスカッションで提供された例は、まさに私が上で尋ねたものです。ただし、レビュー担当者は、問題がステレオタイプのサブタイプを要求していることであり、ステレオタイプ化されたクラスからそのサブクラスへの制約の伝播ではないことを理解しているようです。

これは、UMLv1.3に追加されたポイントです。

ステレオタイプはGeneralizableElementsです。ステレオタイプが別のステレオタイプのサブタイプである場合、そのステレオタイプスーパータイプからすべての制約とタグ付きの値を継承し、同じ種類の基本クラスに適用する必要があります。ステレオタイプは、それが適用される可能性のある基本クラスを追跡します。

その後、UML v1.4で非推奨になり、UML2で削除されました。

それで、基本的に、私の解釈によれば、質問は存在しました...しかし、UML仕様はまだそれを指定していません。

4

1 に答える 1

1

ステレオタイプも継承されていると思いますが、WebやUML標準でこの点についての言及を見つけることができませんでした。しかし、あなたの説明から、おそらく多重継承またはインターフェースのいずれかを使用する必要があります。

ステレオタイプは、クラスを拡張するために使用されます。インスタンスではなく、クラス要素により多くのプロパティを与えます。UML のクラスには、名前、プロパティ (フィールド)、およびメソッドがあります。クラスにステレオタイプを追加すると、実際には別のプロパティ セットがクラスに追加されます。たとえば、MVC (Model-View-Controller) システムを作成していて、どのクラスがビューで、どのクラスがモデルで、どのコントローラーがコントローラーであるかを指定したい場合、プロパティを記述しているため、ステレオタイプを使用するのが適切な答えです。特定のインスタンスではなく、クラスの。これはあなたの場合ではないようです。

于 2012-10-23T10:07:31.737 に答える