时序图,是相互作用图的一种。相互作用图有如下两种: - 时序图 (シーケンス図): 表达方法比通信图丰富。Msg的流程、时间顺序明确。 - 通信图 (コミュニケーション図): 适合于在黑板上做讲解。对象的书画顺序随意。Msg流程的表达比较困难。
下面的内容来自: http://www./contents/development/uml/sequence.html シーケンス図とは、クラスやオブジェクト間のやりとりを時間軸に沿って表現する図です。機能ごとに相互作用(Interaction)と呼ばれる下記のようなフレーム内に処理内容を記述します。
記述例下の図は、在庫管理システムの一機能を表したものです。 【要件定義】
メッセージと呼ばれる矢印で各オブジェクト間の応答を表し、縦軸(上から下)を時系列として応答の順序を表現しています。 これにより、ある機能(例では在庫一覧)を実現する各オブジェクトが時間に沿ってどのように相互作用しているかがわかります。 構成要素シーケンス図は次の要素で構成されます。
制御構造の記述シーケンス図では、制御構造を表現するために「複合フラグメント」を使用します。種類および、記述例は次の通りです。 複合フラグメントの種類複合フラグメントには、次の種類があります。
参照(REF)下の図は、あるシステムのログイン処理をを表した例です。 【解説】 ログイン画面からの権限チェック処理は、別で定義されてるシーケンス図「権限チェック」を参照します。
条件分岐(ALT)下の図は、社員が出張のため、交通手段の選択処理を表した例です。 【解説】 出張先が国内の場合は鉄道のチケットを購入し、海外の場合には飛行機のチケットを購入します。 分岐する各処理は点線で区切り、選択条件を、[ ](ガードと呼ばれる括弧)内に記述します。
条件判断(OPT)下の図は、レンタルショップでDVDをレンタルする処理を表した例です。 【解説】 DVDをレンタルする際、もしその店の会員でなければ、先に会員登録の処理を行う必要があります。既に会員である場合は、会員登録処理を行わずDVDのレンタル処理を行います。 処理が行われる条件は、[ ](ガードと呼ばれる括弧)内に記述します。
並列処理(PAR)下の図は、主婦が朝食を作る処理を表した例です。 【解説】 パンを焼いている間に、サラダの盛り付けを行っています。つまり、パンを焼く処理とサラダの盛り付け処理を平行で行っています。 並列で行われる各処理は、点線で区切ります。
反復処理(LOOP)下の図は、買い物客がレジを通したときの処理を表した例です。 【解説】 店員オブジェクトは、客オブジェクトから商品を受け取り、商品の数だけレジ打ち処理を繰り返します。 ループ回数は、Loop[開始, 終了](開始、終了共に省略可能)の書式で指定します。
中断(BREAK)下の図は、未成年者に酒類を販売しない処理を表した例です。 【解説】 店員オブジェクトは、未成年オブジェクトから商品を受け取り、商品の数だけレジ打ち処理を繰り返しますが、もし商品が酒類だった場合は処理を中断して、販売を拒否するメッセージを返すようになっています。 中断する条件は、[ ](ガードと呼ばれる括弧)内に記述します。
クリティカルセッション(CRITICAL)下の図は、学生が教員に許可を取り、体育館を使用する処理を表した例です。 【解説】 使用許可申請処理と体育館の使用は随時並行処理されていますが、体育館使用中の処理は保護されています。
アサート(ASSERT)下の図は、ATMによる入金処理を表した例です。 【解説】 入金後の通帳記載処理は、「残高合計 = 元の残高 + 入金額」が成り立たなければならないことを定義しています。 妥当性を定義する内容は、{}内に記述します。
不正なシーケンス(NEG)下の図は、ATMによる入金処理を表した例です。 【解説】 入金後の通帳記載処理で、「残高合計 ≠ 元の残高 + 入金額」のとき、エラーを返す処理を行いますが、この処理は通常、起こりえない処理であることを示しています。
無効(IGNORE)下の図は、ユーザ登録処理を表した例です。 【解説】 登録画面オブジェクトからデータベースオブジェクトへの「ユーザ数取得」メッセージは、ユーザ登録処理において、重要な処理ではないことを示しています。 「無効」のメッセージは、「ignore{メッセージ名,…}」の書式で指定します。
有効(CONSIDER)下の図は、ユーザ登録処理を表した例です。 【解説】 登録画面オブジェクトからデータベースオブジェクトへの「情報登録、アクセスログ登録」メッセージは、ユーザ登録処理において、重要な処理であることを示しています。 「有効」のメッセージは、「consider{メッセージ名,…}」の書式で指定します。 |
|
来自: instl > 《software engineering》