表1●UMLの9種類の図
表1●UMLの9種類の図
[画像のクリックで拡大表示]
図1●システム開発の工程とUMLの各図を使う目安<BR>図のように使わなければならない,というわけではない。UMLの各図を使う目安として参考にしてほしい
図1●システム開発の工程とUMLの各図を使う目安<BR>図のように使わなければならない,というわけではない。UMLの各図を使う目安として参考にしてほしい
[画像のクリックで拡大表示]
図2●前回作成した「顧客情報管理システム」のUML図
図2●前回作成した「顧客情報管理システム」のUML図
[画像のクリックで拡大表示]
図3●顧客管理システムのステート・チャート図
図3●顧客管理システムのステート・チャート図
[画像のクリックで拡大表示]

システムの状態の変化を表すUML図は,ステート・チャート図とアクティビティ図である。これらの図を作成する際は,ユーザー・インタフェースなどの実装をイメージすると書きやすい。WindowsアプリケーションとするならGUIのボタンなどを想定し,UML図を徐々に詳細化していく。コンポーネント図やデプロイメント図は,システムのセットアップを行う際に役に立つ。また,UML設計ツールを使えばソース・コードの一部を自動生成し,必要であればソース・コードを読み込んでクラス図などを再作成することができる。

 情報システムの設計に有用なモデリング言語「UML*」を,初心者向けに解説するセミナーの最終回である。これまでの連載で,UMLの基礎となるオブジェクト指向*の考え方,UMLの9種類の図(表1[拡大表示])の基礎,システム開発の各工程とUMLの各図の関係(図1[拡大表示])を解説した。

 前回から実際のシステム開発での活用方法を説明しており,今回は前回の続きである。ここでは,開発者である皆さんが,ユーザーから以下のような「顧客管理システム」の依頼を受けたと仮定して話を進める。

【ユーザーのヒアリング結果】

 当社は,社長,3名の営業員,事務員からなる事務機の販売店です。これまでは顧客情報を営業員が個別に管理してきましたが,それをコンピュータで一元管理したいと思います。事務員がシステム管理者となって,営業員の持つ顧客情報をコンピュータに登録します。営業員は,顧客情報の閲覧と印刷だけができるようにして下さい。社長は,すべての操作ができるようにして下さい。顧客は,大きく分けて企業と個人です。

 このヒアリング結果を基に,前回はユース・ケース図,クラス図,シーケンス図,コラボレーション図(図2[拡大表示])を作成した。ユース・ケース図ではシステムの利用者やシステムの機能を,クラス図ではクラスの属性や操作とクラス間の関係を,シーケンス図とコラボレーション図ではオブジェクト間のメッセージ・パッシングの概要を表した。

 今回は,オブジェクトの状態の変化を表す「ステート・チャート図」と「アクティビティ図」,ファイルなどの物理的な配置を表す「コンポーネント図」や「デプロイメント図」を作成する。また,Windowsアプリケーションで実装する場合のUML図の書き方や,UML設計ツールを活用したプログラムの開発方法などを解説する。

要求分析の続き●ステート・チャート図の作成

 ではまず前回の続きで,システムの状態の変化を示す「ステート・チャート図」を作成する。ステート・チャート図は,システム全体を対象として作成することもオブジェクトごとに作成することもできるが,ここではシステム全体のステート・チャート図を作成する。

 例題として取り上げた「顧客管理システム」のユース・ケース図とクラス図を参考にすると,例題システムの動作状態には,「登録」,「閲覧」,「印刷」,「バックアップ」がある。このシステムをWindowsアプリケーションで実装するのであれば,「メイン・メニュー画面表示」,「顧客情報登録画面表示」,「顧客情報閲覧画面表示」,「顧客情報印刷画面表示」,「バックアップ画面表示」という動作状態とするのが適切だろう。これらの状態間の遷移関係を矢印で示し,状態が変化する要因を矢印の上に書き添えれば,ステート・チャート図が完成する(図3[拡大表示])。図3では,状態が変化する要因を[○○ボタン]と記したが,これは,WindowsのGUIのボタンをクリックすることを意味している。


矢沢 久雄
グレープシティ(旧文化オリエント) アドバイザリースタッフ