ストラタジーナム メニュー

2006年7月6日木曜日

UML中級講座 第64回 第6章 アクティビティ図

早いもので、このUML中級講座を開始して3ヶ月経ちました。
もともとは、1ヶ月ほどで完了する予定でしたが、やり始めるとついつい筆が滑り、項目数で数えると、ようやく半分を終えた状況です。
今後取り上げる話題としては、次の5項目があります。

6章 アクティビティ図
7章 相互作用図
8章 ステートマシン図
9章 配備図
10章 プロファイル

これらのうち、10章を除く4項目、アクティビティ図、相互作用図、ステートマシン図、配備図に関しては、モデル図の書き方に関するものが大部分であり、この講座では、コンセプト的に面白い所を中心に解説します。
最後のプロファイルは、OCUPインターミディエート資格試験では、出題の比重としてはさほど高くないようですが、アドバンス資格試験では必ず出題される分野であり、またMDAやメタモデル構造を理解する上でのキーポイントで、かつ、コンセプト的にも面白いと思いますので、少し紙面を割きたいと思います。

6−1 アクティビティ図概要
アクティビテ図のルーツ
アクティビティ図のルーツは、コンピュータの黎明期に出現したフローチャートにまでさかのぼります。
従って、UML図の中でも、概念の発祥の最も古いものの1つとなります。
もちろん当時のフローチャートと現在のアクティビティ図では、表記法やその解釈も大きく違っていますが、根本的な部分ではかなりの共通性を持っています。
フローチャートもアクティビティ図もともに、コンピュータ・アルゴリズムやビジネスプロセス、手続きやワークフローなどを表現するのに用いられます。
従来、フローチャートは主に制御の流れを中心に記述されましたが、アクティビティ図では、制御の流れ(コントロール・フロー)とともに、データの流れ(オブジェクト・フロー)も合わせて記述されます。
現実の使用形態を見ますと、アクティビティ図を用いてコンピュータ・アルゴリズムを記述することは、初学者を除くとむしろ稀で、多くの場合、データや業務の流れを記述するために用いられています。
このため、UML2.0では、オブジェクトフローや手続き、業務フローを正確に記述できるよう拡張がなされています。

状態遷移図からトークンのフローチャートへ
以前のUML(UML 1.X版)のアクティビティ図に比べ、UML2.0では、その形式や意味が大きく変わりました。
従来のアクティビティ図が、制御の流れに重きを置いた一種の状態遷移を表す図であったのに対し、UML2.0版のアクティビティ図では、状態遷移ではなくトークンの流れに焦点を当てます。
また、フロー終了やピン、パラメータなど、新しい記法が追加され、省略時解釈も大きく変わってきています。従って、これからOCUP受験準備に取り掛かる方は、以前の慣習的解釈や類推にとらわれず、むしろ新しい図として捉えた方が効率的でしょう。
しかしながら、UML1.X版のアクティビティ図に関する知識が全くの無駄になってしまうのかというとそうではありません。
UML2.0版だけの知識を持つ方に比べると、両者の違いを知ることができ、オブジェクト指向技術の方法論の進化・変遷を深いレベルで理解することができます。
この講座でも、折に触れ、文法や表記法の表面上の違いだけでなく、なにゆえそのような形式を取ったのか、その根幹の理由、目的についても解説したいと思います。
UMLは言語ですので今後も変化を続けてゆきます。
その中で、その変化をもたらす大きな潮流を理解することは、オブジェクト指向技術を使いこなし今後の方向性を決定する上で大きく役立つでしょう。