【特徴】
【課題】
ObjectFlowは、ビジネスオブジェクトによるアプリケーションのを目的として、オブジェクト指向設計と構造化設計を融合を目指しています。
【オブジェクト指向設計】
【構造化設計】
(1)概要
システムの利用のされ方を、システム外部から記述したもので、システム利用者(アクター)ごとにまとめる。システムに対する要求をユースケースという形でカプセル化する。
ユースケースでは、システムの利用のされ方を外部の視点から表現し、システム要求をカプセル化して示している。ここでは、アクターとユースケースだけを取り上げているが、ビジネス・ワークフローを包括的に記述するためには、システムで扱うデータの流れを、システムに入力されるまでの現実社会におけるフローとともに、システムから出力されたデータがどのように利用されるかまでを表現できるべきである。また、現実世界のデータの流れと、システム内部で処理されるデータの流れを、同じフローの一部として捉えることが望ましい。
ObjectFlowでは、アクターを含んだ処理ブロックを記述することも可能である。
(2)ユースケースの記法と本図式仕様
(1)オブジェクトの生存線
(2)メッセージの流れ
(3)制御
*[繰り返し句] 繰り返し ['条件句'] 分岐
(4)シーケンス図
(1)汎化
(共通の構造と振る舞いを持つオブジェクト)
UMLのクラスは四角いシンボルで表し、クラス名、属性リスト、操作リストを記述する。OFでは、OFシンボルの上にクラス名、中央に属性リスト、右に操作リストを記述する。コンポジションを表す場合、UMLでは3種類の記述法を定めているが、OFでは1修種類である。
(2)制約
(3)関連のクラス
(4)集約、複合
(5)複合オブジェクト
複合オブジェクトは、強固に束縛された部品からすくられる高水準のオブジェクトである。
UMLでは、モデル要素の集合をまとめてパッケージとして表現している。これは、パッケージの入れ子関係を表すと同時にパッケージ間のコンポジション集約でもある。
パッケージによるモデルの分割の仕方は、いろいろあって、サブジェクトや機能などの論理的分割、アクセスコントロールのための分割、ネットワークやプロセッサへの割付による分割、物理的コンポーネントに基づく分割、配布やリリースの単位での分割、ソフトウェア開発上の版管理のための分割等が考えられる。
また、パッケージ概念と依存関係を使って、クラスファイルやコンポーネントからアプリケーションやサブシステムがいかに構成されるかを表現したコンポーネント図を作成する。コンポーネントとは、コンパイルやリンクや実行単位となるものを指す。コンポーネントをグループ化したパッケージもコンポーネントである。
ObjectFlowでは、いくつかのオブジェクトが協調して1つの処理を実現するために必要なメソッドの集合をオブジェクト・ユニットとして扱うことができる。
(1)ステートチャート図
UMLによる状態遷移図は、クラスの取りうるライフサイクルを状態間での遷移とそのトリガーとなるイベント、状態の遷移に伴うアクションの記述とともに記述する。状態は入れ子とそれに伴う遷移とアクションの継承、状態履歴という概念が追加された。また、平行状態の記述も可能である。
(2)状態のライフサイクル
(3)コラボレーション図
コラボレーション図は、1つのユースケースやメソッド等を実現するために必要な一連のインタラクションの固まりを指す。ある処理に関係するオブジェクト間で受送信されるメッセージを表す。UMLにおける表現は、接続関係を詳細に表現可能であるが、時間順のトレースが分かりづらい。
アクティビティにレーンを設定してその実行責任主体を明示できる。また、オブジェクトフローで、アクティビティ間での成果物のやりとりを表現できる。これは、DFDの代用になる。
手続き指向のダイアグラムなので、ビジネス・システムの大局的なワークフローや複雑な手続きアルゴリズムなど、必要な箇所だけで利用すること。