ゼロから始めるUMLモデリング講座 (16) ステートマシン図による状態仕様のモデリング

ニュース
トップ

【連載】

ゼロから始めるUMLモデリング講座

16 ステートマシン図による状態仕様のモデリング

山内亨和  [2009/07/01]

16/29

図1 ビジネスモデリングのステートマシン図

前回から、架空の宅配便会社「まいにち宅配便」が開発を進めている「配達予約システム」を例にとり、UMLを用いてシステムの仕様をモデリングする方法について説明しています。今回は、システム仕様の中で重要な要素の1つである「状態」の仕様をモデリングする方法について解説します。

状態の検討も、ビジネスモデリングから仕様化まで一貫して行います。状態を表すステートマシン図もクラス図と同様に、ビジネスモデリングで作成した図を仕様のレベルにまで詳細化する必要があります。その際、次の5点を意識するとよいでしょう。

(1)システムの範囲に応じて不要なデータを除去

ビジネスモデリングで作成したステートマシン図にはシステム化の範囲外の状態や他システムが管理する状態も含まれているため、これらを取り除く必要があります。例えば、図1のビジネスモデリングのステートマシン図には「輸送中」状態がありますが、配達予約システムでは輸送中の状態を管理する必要がありません(図2)。

図2 状態の仕様を定義したステートマシン図

(2)エンドユーザーのための状態を定義

システムに必要な状態は主に3種類あります。1つ目はエンドユーザーのための状態です。第14回の図1の配達予定画面にある「配達予約なし」ステータスは、エンドユーザーがどの宅配を配達予約したらよいかを見分けられるように配慮して定義されたものです。図2のステートマシン図では、「待機中」状態をコンポジット状態(注1)にし、このサブ状態として「配達予約なし」状態を定義しています。

注1:複数の状態を統合した状態。複数の状態からの遷移先が同じ状態の場合に使う。

(3)他システムのための状態を定義

2つ目のシステムに必要な状態は他システムのための状態です。今回の例にはありませんが、他システムにデータの状態を提供しなければいけない場合がこれに当たります。

(4)ビジネスルールのための状態・遷移を定義

システムに必要な状態の3つ目がビジネスルールを実現するために必要になる状態、言い換えれば自システムのために必要な状態です。例えば、配達予定画面には届け済みの宅配は表示しません(予約する必要がないためです)。このビジネスルールを実現するには、宅配の状態として「届け済み」状態を管理する必要があります(図2)。

また、ビジネスルールは遷移にも影響を及ぼします。例えば、届け先が不在だった場合、配達予約ができるようになります。そのため、届け先不在の場合には「届け中」状態から「待機中」状態へ遷移する必要があります。

(5)遷移のトリガーの具体化

ビジネスモデリングで作成したステートマシン図は、業務の観点から状態遷移のトリガー(きっかけ)を定義しています。しかし、ユースケースやビジネスルールが明らかになっている仕様化の段階であれば、よりシステムの仕様を正しく反映したトリガーに定義し直すことが必要です。例えば、ビジネスモデリングのステートマシン図(図1)では、「ドライバーが配達に出発した」ら「届け中」になると定義しています。これに対し、仕様を反映したステートマシン図(図2)では、「配達開始時刻が来た」ら「届け中」になると定義しています。

『出典:システム開発ジャーナル Vol.4(2008年5月発刊)
本稿は原稿執筆時点での内容に基づいているため、現在の状況とは異なる場合があります。ご了承ください。

16/29

インデックス

連載目次
第29回 テストのインプットに利用可能なUMLのモデル
第28回 設計のためのシーケンス図の描き方
第27回 設計のためのクラス図に用いるUMLの要素(2)
第26回 設計のためのクラス図に用いるUMLの要素(1)
第25回 設計モデルを作成する前にやっておきたいこと
第24回 詳細設計工程でUMLの効力を発揮させるコツ
第23回 クラス図でモデリングするテーマ - 設計者/実装者向けのガイドライン
第22回 クラス図でモデリングするテーマ
第21回 コンポーネント図でモデリングするテーマ
第20回 配置図でモデリングするテーマ - システム間連携
第19回 配置図でモデリングするテーマ - ソフトウェアの配置
第18回 ロバストネス図の記述のポイント
第17回 ロバストネス図によるユースケース仕様のモデリング
第16回 ステートマシン図による状態仕様のモデリング
第15回 クラス図を用いるデータ仕様のモデリング
第14回 システム仕様のモデリングのポイント
第13回 UMLでは定義できないシステム要求
第12回 配置図の作成
第11回 コンテキスト図の作成
第10回 ユースケース図の作成
第9回 業務フローをモデリングする目的
第8回 UMLによるシステム要求のモデリング
第7回 ステートマシン図による状態のモデリング
第6回 クラス図による物・事のモデリング
第5回 構造図による人・役割・場所のモデリング
第4回 アクティビティ図で業務フローを記述する
第3回 UML 2.0のポイント
第2回 システム開発におけるモデリング
第1回 UMLの役割

もっと見る

関連したタグ

新着記事

転職ノウハウ

あなたの仕事適性診断
あなたの仕事適性診断

4つの診断で、自分の適性を見つめなおそう!

Heroes File ~挑戦者たち~
Heroes File ~挑戦者たち~

働くこと・挑戦し続けることへの思いを綴ったインタビュー

はじめての転職診断
はじめての転職診断

あなたにピッタリのアドバイスを読むことができます。

転職Q&A
転職Q&A

転職に必要な情報が収集できます

ドS美人面接官 vs モテたいエンジニア
ドS美人面接官 vs モテたいエンジニア

入室しようとしたら、マサカリ投げられちゃいました!?

特別企画

一覧

    人気記事

    一覧

    イチオシ記事

    新着記事

    【ハウツー】「ファクトリーイメージ」って何ですか? - いまさら聞けないAndroid
    [10:30 11/23] 携帯
    マツダ、ロードスター・アテンザ・CX-5米国仕様車もLAショーに - 画像38枚
    [10:15 11/23] ライフ
    デートにぴったり♪ コニカミノルタの技術を使ったクリスマスツリーが舞浜に登場
    [10:00 11/23] 恋愛・結婚
    【レポート】会社員とサッカー日本代表を経験した北澤豪が就活を語る!
    [10:00 11/23] キャリア
    スペック、カードが3枚収納できるiPhone 6ケース12月中旬発売
    [10:00 11/23] 携帯

    特別企画

    一覧

      求人情報