9

私と他の数人の開発者は現在、レガシーコードベースをクリーンアップしており、主にビジュアルレイヤーとデータレイヤーを分離しています。このリファクタリングに関与していない開発者がモデルを理解できるように、各クラスのスコープと望ましい使用法についてのコメントを含む(非公式の)クラス図を紹介したいと思います。私は怠け者なので、そのためにUMLGraphを使用したいと思います。

ただし、小さな問題があります。perlコードベースがあり、リファクタリングではMooseの役割が広範囲に使用されます。今、私は役割の適切な抽象化を見つけるのに十分なUMLを知りません-私の最初の推測はインターフェースですが、それらには実装も含まれています。多重継承もそれを完全にカットしません。

クラス図で役割を適切に表現するにはどうすればよいですか(またはどのように表現しますか)?

4

2 に答える 2

8

私はUMLの専門家ではありませんが、元の論文では特性は次のように表現されていました

特性図http://img.skitch.com/20100422-8iey4atkkama53ni81c3pca562.jpg

于 2010-04-22T12:48:55.657 に答える
3

«role»ステレオタイプを持つUMLクラスとしての役割を表します。その場合、役割を構成するクラスは、ステレオタイプを持つ役割に関連付けられ«does»ます。

シンプルな構成http://img820.imageshack.us/img820/5665/simplecomposition.png

«adaptation»エイリアスまたは除外を使用して役割をさらに調整する必要がある場合は、適切に注釈が付けられたメンバーとステレオタイプを使用して、関連付けクラスとして作成します。アソシエーションクラスの名前は、デザインの実際のタイプではないため、重要ではありません。だから私はそれを無名のままにしておきます。

競合解決を伴うコンポジションhttp://img828.imageshack.us/img828/244/conflictcomposition.png

(コンポジションに関連する適応「クラス」とそれが適応する役割を示したことに注意してください。私が本当にやりたかったのは、との間の関連付けに接続することでしたMyCompositionMyRole1使用したツールが関連付けクラスをサポートしていなかっただけです。 )。

于 2010-07-27T17:31:35.983 に答える