web-dev-qa-db-ja.com

クラスを含まない(非オブジェクト指向の)プロジェクトのUMLダイアグラム(または類似のもの)をどのように作成できますか?

私はpython=プロジェクトに取り組んでおり、クラスを使用しませんでしたが、異なるモジュールを作成し、それらに関数を追加しました。

次に、紙のプロジェクト/アプリケーションを説明する図を描く必要があります。すでにコンテキストレベルの図とアクティビティの図があります。しかし、今度はアプリケーションの機能実装を図で説明する必要があります。

私はたくさん検索しましたが、単一の(広く受け入れられている)方法が見つかりません!

これは、Django LTI(Learning Tools Interoperability)を使用してCanvas、Open edX。 ..などのMOOCと統合可能なクイズアプリケーションのプロジェクトです。

コードはオブジェクト指向ではありませんが、アプリケーションの特定の機能に関連するすべての機能を含むモジュールがそこにあることに注意してください。たとえば、Studentsを処理するファイルstudent.pyがあり、教師のビューを管理する別のモジュールTeachers.pyがあります。

クラス名の代わりにモジュール名を使用してクラス図のようなUMLを作成し、関数をモジュールに配置できますか?研究論文用だと知ってそれでいいのか!?

1
prime_hit

UMLは統一モデリング言語であり、クラス図だけでなくOOだけでなく、プログラミングのさまざまなパラダイムをサポートします。ドキュメントに価値を追加する図を使用するか、ホワイトボードまたはレビュー。

構造図

  • クラス図-ダイアグラム作成の目的で、各モジュールをクラスとして扱うことができます。
  • パッケージ図-モジュールの名前空間、階層、相互作用。
  • オブジェクト図-データまたはコードの構造を表示できます。
  • コンポーネント図/複合構造図-モジュールを組み合わせる方法
  • 配置図-システムのコンポーネントが複数のサーバーに配置される方法

行動UML図

  • アクティビティ図-ビジネスプロセス
  • シーケンス図-呼び出し階層
  • ユースケース図-ユーザーインタラクション/ストーリーの概要
  • 状態図-関連する場合のビジネスオブジェクトの状態
  • コミュニケーション図-コードの相互作用なし
  • タイミング図-リアルタイムシステムインターフェイス

UMLや非常に古い手法であるJackson構造化データ図は、バイナリとテキストの両方のファイルの構造を文書化する最良の方法の1つです。

1
Martin Spamer

したがって、アプリケーションの機能実装を図で説明したい

シーケンス図を使用して、モジュール間の機能フローを表すことができます。これは、コンポーネントレベルではもう少しです。

特定のロジックともう少し詳細について話している場合は、状態図

乾杯..

0
Rakesh

クラス名の代わりにモジュール名を使用してクラス図のようなUMLを作成し、関数をモジュールに配置できますか?

はい、これはUMLクラス図を使用する有効な方法です。 UML用語では、関数は「操作」と呼ばれます。クラスは通常、3つのコンパートメントを持つ長方形で表されます。上部のコンパートメントにはクラス名が含まれ、中央のコンパートメントには属性(該当しない場合は?)が含まれ、下部のコンパートメントには操作が含まれます。

クラスAがクラスBを呼び出す場合、これは依存関係と呼ばれるAからBへの破線の矢印によってUMLで表されます。

あなたの場合、クラスは実際にはモジュールであり、インスタンスは1つしかありません。クラスシンボルの右上隅に1を書き込むことで、UMLでそれを示すことができます。 [〜#〜] edit [〜#〜]:これは、UMLの最新バージョンでは無効です。代わりに、独自のステレオタイプ《 singleton》を定義できます。

例: http://ptgmedia.pearsoncmg.com/images/ch16_9780131489066/elementLinks/16fig17.jpg

singleton

シングルトンパターンを見つけることができます。 「UMLとパターンの適用」のCraig Larman。 UMLクラス図でのモジュール間の依存関係の使用については、たとえば、 "UMLを使用したソフトウェアアーキテクチャの記述"、C。ホフマイスター

0