株 式 会 社 チェンジビジョン 使 用 バージョン:astah* 6.0, 6.1 astah* チュートリアル [ ] 目 次 要 求 を 整 理 してみよう 2 SysML の 概 要 2 SysML とは 2 誕 生 の 背 景 2 SysML の 概 要 2 SysML での 各 図 2 astah*での 要 求 周 りの 機 能 の 利 用 3 要 求 3 テストケース 3 要 求 テーブル 3 導 出 コピー 満 足 検 証 洗 練 トレース 5 要 求 テーブルを 使 用 しての 要 求 モデリングしよう[ 組 み 込 み 系 サンプル] 8 要 求 テーブルを 使 用 しての 要 求 モデリングしよう[WEB 系 サンプル] 14
要 求 を 整 理 してみよう SYSML の 概 要 SYSML とは Systems Modeling Language の 略 で OMG(Object Management Group)によって 策 定 されたハードウェアも 含 め たシステム 全 体 を 記 述 するためのモデリング 言 語 です 誕 生 の 背 景 特 に 組 み 込 み 分 野 でのハードウェアも 含 めたモデリングにおいて 従 来 のモデリング 手 法 では 問 題 点 を 抱 えたまま でした 特 に 分 析 設 計 において 有 効 とされていた UML においても 仕 様 策 定 時 には 想 定 していなかった 領 域 での 問 題 や 仕 様 の 曖 昧 さ 表 現 力 の 不 足 といった 問 題 が 指 摘 されるようになりました また UML はあくまでソフ トウェアを 分 析 設 計 する 表 記 法 で ハードウェアなどは 対 象 外 でした UML の 配 置 図 など 一 部 ハードウェアを 表 現 可 能 なものもありますが ソフトウェアからの 観 点 であり ハードウェアそのものを 表 現 できず 表 現 力 の 拡 張 が 望 まれていました それを 打 破 するべく OMG により SysML が 策 定 され 今 日 に 至 り 最 新 の 仕 様 書 は 1.1 です (2009 年 10 月 29 日 現 在 ) SYSML の 概 要 SysML は 図 のように UML 2 を 拡 張 した 仕 様 になっていて UML2 の 全 ての 仕 様 を 包 含 しているのではなく 一 部 は SysML 独 自 の 仕 様 となっています 引 用 :OMG SysML1.1 仕 様 書 P7 SYSML での 各 図 SysML 図 類 は Figure 4.4 に 示 されます ピンクの 点 線 で 囲 まれた 要 求 図 (Requirement Diagram),パラメトリック 図 (Parametric Diagram)が 新 規 図 で 太 枠 の アクティビティ 図 が UML2 の 拡 張 太 枠 で 文 字 が 緑 のブロック 定 義 図 (Block Definition Diagram)は UML2 のクラス 図 の 拡 張 の 新 規 図 内 部 ブロック 図 (Internal Block Diagram) は UML2 の 合 成 構 造 図 の 拡 張 の 新 規 図 です 2 / 21
引 用 :OMG SysML1.1 仕 様 書 P11 ASTAH*での 要 求 周 りの 機 能 の 利 用 astah* professional では SysML の 要 求 に 関 連 した 部 分 をソフトウェア 開 発 の 現 場 で 汎 用 的 に 使 用 できるよう 実 現 しました 要 求 およびテストケースの 階 層 派 生 関 係 の 設 定 要 求 テーブルを 用 いた 管 理 を 容 易 にし 工 程 間 のギ ャップを 減 らします 要 求 使 用 できるエディション: astah* professional システムの 要 求 を 記 述 するモデルです 名 前 ID テキスト 等 を 設 定 でき 階 層 をツリーとして 表 現 します また 導 出 コピー 満 足 検 証 洗 練 トレースといった 派 生 関 係 を 設 定 できます その 他 の 機 能 として 要 求 からユ ースケースやマインドマップのトピックへの 変 換 もサポートしています テストケース 使 用 できるエディション: astah* professional システムのテストケースを 記 述 するモデルです 名 前 ID 定 義 等 を 設 定 でき 階 層 をツリーとして 表 現 します また 満 足 検 証 洗 練 といったテストケースからの 派 生 関 係 も 設 定 可 能 です テストケースからユースケースや マインドマップのトピックへの 変 換 もサポートしています 要 求 テーブル 使 用 できるエディション: astah* professional デモ 動 画 :http://astah.change-vision.com/ja/movie.html#requirement-table 表 形 式 で 要 求 を 編 集 したり 階 層 を 指 定 して 要 求 の ID 名 前 テキストを 表 示 したりできます Excel への 入 出 力 も 可 能 です 3 / 21
要 求 図 使 用 できるエディション: astah* professional デモ 動 画 :http://astah.change-vision.com/ja/movie.html#requirement-diagram どんな 要 求 があるかと 要 求 間 の 関 係 を 定 義 する 図 です 4 / 21
導 出 コピー 満 足 検 証 洗 練 トレース 使 用 できるエディション: astah* professional 導 出 <<DERIVEREQT>> 引 用 :OMG SysML1.1 仕 様 書 P144 導 出 は クライアント 要 求 がサプライヤ 要 求 に 導 き 出 される 二 つの 要 求 間 の 依 存 関 係 です 例 えば システム 要 求 はビジネス 要 求 に 由 来 するかもしれません あるいは より 低 レベルの 要 求 はシステム 要 求 に 由 来 するかもしれません 他 の 依 存 関 係 と 同 様 に 矢 方 向 はクライアント 要 求 からそれが 導 き 出 されるサプライ ヤ 要 求 まで 指 します astah*では 要 求 から 要 求 に 引 くことができます 要 求 のプロパティビューの 依 存 元 タブ 依 存 先 タブ もしくは 要 求 テーブルの 要 求 のポップアップメニュー 依 存 元 の 設 定 依 存 先 の 設 定 から 追 加 できます A DeriveReqt relationship is a dependency between two requirements in which a client requirement can be derived from the supplier requirement. For example, a system requirement may be derived from a business need, or lower-level requirements may be derived from a system requirement. As with other dependencies, the arrow direction points from the derived (client) requirement to the (supplier) requirement from which it is derived. 引 用 :OMG SysML1.1 仕 様 書 P149 コピー<<COPY>> 引 用 :OMG SysML1.1 仕 様 書 P144 コピーは クライアント 要 求 とサプライヤ 要 求 間 の 依 存 関 係 で クライアント 要 求 のテキストがサプライヤ 要 求 の 読 み 取 りコピーであることを 示 しています 異 なる 状 況 で 再 利 用 する 目 的 で クライアント/サプライヤ 関 係 を 維 持 します クライアント 要 求 は コピーの 矢 印 の 先 のサプライヤ 要 求 の 読 み 取 り 専 用 コピーです astah*では 要 求 から 要 求 に 引 くことができます 要 求 のプロパティビューの 依 存 元 タブ 依 存 先 タブ もしくは 要 求 テーブルの 要 求 のポップアップメニュー 依 存 元 の 設 定 依 存 先 の 設 定 から 追 加 できます 5 / 21
A Copy relationship is a dependency between a supplier requirement and a client requirement that specifies that the text of the client requirement is a read-only copy of the text of the supplier requirement. A Copy dependency created between two requirements maintains a master/slave relationship between the two elements for the purpose of requirements re-use in different contexts. When a Copy dependency exists between two requirements, the requirement text of the client requirement is a read-only copy of the requirement text of the requirement at the supplier end of the dependency. 引 用 :OMG SysML1.1 仕 様 書 P149 満 足 <<SATISFY>> 引 用 :OMG SysML1.1 仕 様 書 P144 満 足 は 要 求 とその 要 求 を 満 足 させるモデル 間 の 依 存 関 係 です 他 の 依 存 関 係 と 同 様 に 矢 方 向 はクライアントモデルからそれを 満 たすサプライヤ 要 求 まで 指 します astah*では モデル から 要 求 に 引 くことができます モデル とは 以 下 を 示 します パッケージ モデル サブシステム クラス 関 連 クラス インターフェース エンティティ コントロール バウンダリ アクター ユースケース コンポーネント 成 果 物 ノード 要 求 テストケース 要 求 のプロパティビューの 依 存 元 タブ 依 存 先 タブ テストケースのプロパティビューの 依 存 先 タブ もし くは 要 求 テーブルの 要 求 のポップアップメニュー 依 存 元 の 設 定 依 存 先 の 設 定 から 追 加 できます A Satisfy relationship is a dependency between a requirement and a model element that fulfills the requirement. As with other dependencies, the arrow direction points from the satisfying (client) model element to the (supplier) requirement that is satisfied. 引 用 :OMG SysML1.1 仕 様 書 P151 6 / 21
検 証 <<VERIFY>> 引 用 :OMG SysML1.1 仕 様 書 P145 検 証 は 要 求 とシステムが 要 求 を 満 たすかどうかを 検 証 するテストケースの 依 存 関 係 です 他 の 依 存 関 係 と 同 様 に 矢 方 向 は クライアントテストケースからそれが 導 き 出 されるサプライヤ 要 求 まで 指 します astah*では テストケースから 要 求 に 引 くことができます 要 求 のプロパティビューの 依 存 元 タブ 依 存 先 タブ テストケースのプロパティビューの 依 存 先 タブ もし くは 要 求 テーブルの 要 求 のポップアップメニュー 依 存 元 の 設 定 依 存 先 の 設 定 から 追 加 できます A Verify relationship is a dependency between a requirement and a test case or other model element that can determine whether a system fulfills the requirement. As with other dependencies, the arrow direction points from the (client) element to the (supplier) requirement. 引 用 :OMG SysML1.1 仕 様 書 P152 洗 練 <<REFINE>> 引 用 :OMG SysML1.1 仕 様 書 P145 洗 練 とは モデルから 要 求 に 詳 細 化 する 依 存 関 係 です 他 の 依 存 関 係 と 同 様 に 矢 方 向 は クライアントモデルか らサプライヤ 要 求 の 方 向 を 示 します astah*では モデル から 要 求 に 引 くことができます モデル とは 以 下 を 示 します パッケージ モデル サブシステム クラス 関 連 クラス インターフェース エンティティ コントロール バウンダリ アクター ユースケース コンポーネント 成 果 物 ノード 要 求 テストケース 要 求 のプロパティビューの 依 存 元 タブ 依 存 先 タブ テストケースのプロパティビューの 依 存 先 タブ もし くは 要 求 テーブルの 要 求 のポップアップメニュー 依 存 元 の 設 定 依 存 先 の 設 定 から 追 加 できます 7 / 21
トレース<<TRACE>> 引 用 :OMG SysML1.1 仕 様 書 P146 トレースとは 要 求 間 の 抽 象 的 なつながりを 表 す 依 存 関 係 です astah*では 要 求 から 要 求 に 引 くことができます 要 求 のプロパティビューの 依 存 元 タブ 依 存 先 タブ もしくは 要 求 テーブルの 要 求 のポップアップメニュー 依 存 元 の 設 定 依 存 先 の 設 定 から 追 加 できます 要 求 図 と 要 求 テーブルを 使 用 して 要 求 をモデリングしよう[ 組 み 込 み 系 サンプル] 使 用 できるエディション: astah* professional 以 下 は OMG から 提 供 されている SysML1.1 仕 様 書 の 要 求 図 のサンプルです [ 組 み 込 み 系 サンプル]で 自 動 車 の 舗 道 摩 擦 まわりの 要 求 を 表 したものです 引 用 :OMG SysML1.1 仕 様 書 P152 これと 同 等 のモデルを 書 いてみます 要 求 のモデルや 要 求 図 と 要 求 テーブルのそれぞれで 表 現 できますが ここ ではまず 要 求 図 を 作 成 してみましょう まず 図 メニューから 要 求 図 を 選 択 し 要 求 図 を 作 成 します 8 / 21
エディタのボタンから 要 求 作 成 ボタンをクリックし 図 上 に 要 求 を 作 成 します 要 求 名 要 求 の ID を 入 力 しま す Text の 項 目 には その 要 求 の 説 明 を 入 力 します (astah*では ID と Text の 順 序 が 例 と 異 なります) 同 様 に 他 の 要 求 も 作 成 します 次 に 要 求 間 の 関 係 を 作 成 してみましょう 要 求 間 の 導 出 関 係 とネスト 関 係 を それぞれツールバーのボタンを 押 して 作 成 します 9 / 21
ネスト 関 係 については 作 成 時 に 親 子 関 係 が 変 わることを 構 造 ツリーで 確 認 できると 思 います ここまでで 例 の 要 求 図 が 完 成 しました 図 だと 要 求 間 の 関 係 を 一 目 で 把 握 できますね 10 / 21
これらの 要 求 と 分 析 設 計 モデルとの 関 係 も 定 義 してみましょう 具 体 的 な 例 ではないですが もし UsecaseA が Pavement friction を 満 足 する 関 係 があり TestCaseA が Pavement friction を 検 証 する 関 係 である 場 合 は 次 のよ うに 図 上 で 表 現 することもできます ユースケースやクラスを 構 造 ツリーから 図 にドラッグアンドドロップして 配 置 しています また 下 の 図 のようにパッケージを 指 定 して 要 求 テーブルを 作 成 することもできます 11 / 21
要 求 図 を 書 く 時 に 作 成 されたモデルから 次 のような 要 求 テーブルが 作 成 されます 要 求 テーブルは ネームスペ ース 毎 に 一 つ 作 成 可 能 で その 配 下 に 存 在 する 要 求 が 自 動 的 にリストに 表 示 されるようになっています 要 求 図 と 要 求 テーブルでは 同 一 のモデルが 利 用 されますので 一 方 で 変 更 すればもう 一 方 にも 反 映 されます また それぞれのポップアップメニューから 図 やテーブルに 相 互 にジャンプ 可 能 になっています さて 同 等 のモデルを 始 めから 要 求 テーブルを 使 って 作 成 する 場 合 を 見 てみましょう 次 のような 手 順 です まず 図 メニューから 要 求 テーブル を 選 択 し 要 求 テーブルを 作 成 します 要 求 テーブルを 右 クリックしてポップアップメニューから 要 求 の 追 加 で Adhesion utilization, Vehicle conditions, Test and procedure conditions, Pavement friction, ASTM R1337-90 の 要 求 を 追 加 していきます 12 / 21
要 求 テーブルからは ID 名 前 テキストの 編 集 の 他 に 要 求 を 選 択 し 以 下 の 操 作 も 可 能 です 子 要 求 の 追 加 兄 弟 要 求 の 追 加 依 存 元 の 設 定 ユースケースへの 変 換 Vehicle conditions は Adhesion utilization とネスト 関 係 がありますので ポップアップメニューから 子 要 求 の 追 加 から 追 加 します Test and procedure conditions も 同 様 です また Test and procedure conditions から Pavement friction Pavement friction から ASTM R1337-90 へ 導 出 <<deriverept>>でつながっていますので ポップアップメニューから 依 存 先 の 設 定 から 追 加 します ( 依 存 元 の 設 定 でも 可 能 です ) ちなみに 導 出 <<deriverept>>とは 要 件 から 別 の 要 件 が 導 き 出 される 関 係 のことです 13 / 21
以 下 が 作 成 したモデルです 要 求 テーブルと 要 求 図 の 両 方 を 使 って それぞれの 利 点 を 活 かすといいですね 要 求 図 と 要 求 テーブルを 使 用 して 要 求 をモデリングしよう[WEB 系 サンプル] 使 用 できるエディション: astah* professional ここでは ストーリー 仕 立 てで 要 求 モデリングしていきたいと 思 います 登 場 人 物 プロジェクトマネージャー A さん 営 業 X さん 開 発 リーダー B さん 要 求 開 発 リーダー R さん プロジェクトマネージャーである A さんは 営 業 X さんと 取 引 先 に 新 案 件 の 打 ち 合 わせに 行 きました A さんは いつものように PC を 起 動 しマインドマップでヒアリングを 始 めました 14 / 21
どうやらいつもの WEB アプリケーションのようです 顧 客 はいつもおざなりになりがちな 非 機 能 要 件 周 り レス ポンスやセキュリティ 障 害 対 策 について 注 意 してほしいとのことでした 機 能 要 件 については ログイン 程 度 簡 単 なものにとどまり 打 ち 合 わせも 無 事 終 了 しました 作 成 したマインドマップは 以 下 です プロジェクトマネージャーA さんは 会 社 に 戻 り さっそく 以 下 のようなユースケースを 書 いてみました 15 / 21
その 後 プロジェクトマネージャーA さんはヒアリングした 要 求 を 機 能 要 件 非 機 能 要 件 もまとめて 要 求 の 機 能 をまとめてみることにしました 頭 のなかに 浮 かんだのは 以 下 のモデルです プロジェクトマネージャーA さんは 要 求 テーブルからネスト 関 係 を 考 慮 しながら 要 求 を 入 力 していきました 16 / 21
次 に 要 求 間 の 依 存 関 係 を 設 定 していきます 先 ほど 軽 く ユースケース 分 析 をしていました ユースケースの"ログインする"の 詳 細 は 要 求 の"ログインボタン "にあたります このように 機 能 要 件 のユースケースから 機 能 要 件 の 要 求 に 対 して 詳 細 化 するという 意 味 合 いの 洗 練 <<refine>>を 引 くことができます このように 既 存 の UML のダイアグラムと 関 連 し 合 っているため この 様 に 可 視 化 することにより 仕 様 の 共 有 化 に 一 役 買 うことにもなるでしょう 操 作 方 法 は 要 求 テーブル 上 で 依 存 を 張 り たい 要 求 を 選 択 し ポップアップメニューから 依 存 先 の 設 定 から 追 加 します ( 依 存 元 の 設 定 でも 可 能 です ) また プロジェクトマネージャーA さんは 顧 客 からログイン 時 のレスポンスやセキュリティの 要 求 に 注 意 するよう に 言 われていたのを 思 い 出 しました 非 機 能 要 件 を 満 たせないと 顧 客 から 信 頼 をなくしかねません 機 能 要 件 の 要 求 "ログインボタン"は 非 機 能 要 件 の 要 求 "レスポンス 要 求 " "セキュリティ 要 求 "を 導 き 出 しています 同 様 に 機 能 要 件 の 要 求 " 正 常 遷 移 "から 機 能 要 件 の 要 求 " XX 画 面 要 求 "へも 同 様 です このように 導 出 <<deriverept>>とは 要 件 から 別 の 要 件 が 導 き 出 される 関 係 のことを 表 します 操 作 方 法 は 要 求 テーブル 上 で 依 存 を 張 りたい 要 求 を 選 択 し ポップアップメニューから 依 存 先 の 設 定 から 追 加 します ( 依 存 元 の 設 定 でも 可 能 です ) 次 にテストケースについて 考 えています テストケースは astah* 内 でもモデルとして 生 成 できます 実 際 のそのテストケースの 内 容 ですが 自 動 テストに するか EXCEL でテスト 仕 様 書 を 書 くのか 現 段 階 では 決 まっていませんが ここは 顧 客 メンバと 話 し 合 うため 成 果 物 は 何 にするかは 懸 案 事 項 として 置 いておくとします 17 / 21
ただ 自 動 テストならソースや 結 果 のドキュメント テスト 仕 様 書 なら ドキュメントへ シナリオならフローチ ャートやアクティビティ 図 へのハイパーリンクを 張 るのか またはテストケースの 定 義 に 書 くのかなど 事 前 にプ ロジェクトで 話 し 合 ってよりよい 合 意 をとったほうがよさそうです プロジェクトマネージャーA さんは この 点 をメモしておき 開 発 リーダーB さんにテストケースの 設 計 を 指 示 し ました 開 発 リーダーB さんは まずネスト 関 係 に 注 意 しながら テストケースを 設 計 し 始 めました また テストケースと 要 求 間 では 検 証 <<verify>>といって 要 求 を 満 たすことをテストケースで 検 証 するための 依 存 関 係 をはることができます 開 発 リーダーB さんは プロジェクトマネージャーA さんが 作 ったモデルを 自 分 の モデルにマージし 検 証 関 係 を 張 っていきました 出 来 上 がったモデルは 以 下 でした 18 / 21
その 後 は プロジェクトマネージャーA さんは 要 求 開 発 リーダーの R さんに 要 求 の 詳 細 化 を 依 頼 しました 要 求 開 発 リーダーR さんは 自 身 を 中 心 に 要 求 開 発 グループで 展 開 させるために 要 求 テーブルを EXCEL で 出 力 してチーム 内 の 共 有 を 開 始 しました [ツール]-[ 要 求 ]-[ 要 求 テーブルを Excel ファイルに 出 力 ]で 出 力 できます 19 / 21
出 力 ダイアログが 表 示 されます 出 力 された Excel は 以 下 の 通 りです 要 求 テーブルを Excel 形 式 で 受 け 取 った 要 求 開 発 チームは 要 求 の 階 層 化 と 要 求 テーブルの 書 式 やルール 決 めを 行 い 要 求 をつめていきました 詳 細 化 された Excel ファイルをプロジェクトマネージャーA さんが 持 つプロジェク トファイルに Excel 入 力 の 機 能 を 使 用 し 反 映 しました [ツール]-[ 要 求 ]-[ 要 求 テーブルを Excel ファイルに 入 力 ]で 行 います 20 / 21
要 求 テーブルの 入 力 時 には まず ID が 同 じ 要 求 を 同 一 の 要 求 とし 次 に 名 前 が 等 しい 要 求 を 同 一 の 要 求 として 更 新 します 要 求 が 固 まってきたところで プロジェクトマネージャーA さんは 要 求 開 発 リーダーR さんとレビューを 繰 り 返 し 要 求 を 具 体 化 していきました その 後 明 確 化 された 要 求 を 元 に 開 発 リーダーB さん 中 心 に 実 装 とテストケー スを 作 成 していきました [ 要 求 の 機 能 のポイント] SysML では 主 に 組 み 込 み 系 を 想 定 ターゲットとしていますが それ 以 外 のソフトウェア 分 野 にも 汎 用 的 に 利 用 できるものです 忘 れられがちな 非 機 能 要 件 について 初 期 の 段 階 から 強 く 意 識 できることなども 要 求 モデリン グの 魅 力 の 一 つです また astah で 要 求 モデルを 扱 う 利 点 は 要 求 間 の 関 係 を 図 示 しやすいことと 要 求 とモデルの 間 の 関 係 につ いても 管 理 しやすくなることです 21 / 21