株 式 会 社 チェンジビジョン 使 用 バージョン:astah* 6.0, 6.1 astah* チュートリアル [ ] 目 次 チーム 開 発 してみよう 2 マージ 機 能 ってどんな 機 能? 2 まず 簡 単 マージを 使 ってみよう 3 参 照 プロジェクト 管 理 ってどんな 機 能? 12 参 照 プロジェクト 管 理 を 使 ってみよう 13
チーム 開 発 してみよう モデリングにも 今 やチーム 開 発 は 必 須 の 機 能 です astah*に 用 意 されている 二 つのチーム 開 発 の 補 助 機 能 を 紹 介 します マージ 機 能 ってどんな 機 能? 使 用 できるエディション: astah* professional astah* UML astah* think! デモ 動 画 :http://astah.change-vision.com/ja/movie.html#merge 現 在 のプロジェクトに 別 のプロジェクトをマージできます 他 の 人 が 作 成 したプロジェクトを 自 分 のプロジェク トにマージしたい 時 に 使 います 簡 単 マージ モデルごとに 作 業 中 取 込 中 のどちらを 優 先 するか 選 択 可 能 な 詳 細 マージ(pro UML のみ)があります [ 用 途 ] 二 つのプロジェクトファイルを 一 つにまとめる 同 一 プロジェクトの 編 集 ( 二 人 がそれぞれ 編 集 した 同 一 astah*ファイルの 変 更 点 を 合 わせられる ) [ 使 用 イメージ] 2 / 18
まず 簡 単 マージを 使 ってみよう コンフリクトがないケース 以 下 のようなプロジェクトを 新 規 作 成 してみます ファイル 名 は base.asta とします 以 下 のようなプロジェクトも 新 規 作 成 してみます ( 新 規 作 成 することで base プロジェクトのモデルの 内 部 ID と 同 一 になることがありません ) ファイル 名 は ref.asta です 3 / 18
base.asta を 開 き [ファイル]-[プロジェクトをマージ]を 選 択 し ref.asta を 選 択 します 以 下 のようなダイアログが 表 示 されます 詳 細 ボタンをクリックすると 差 分 が 表 示 されます マージの 結 果 を 細 かくカスタマイズしたい 場 合 この 画 面 でどっちを 優 先 させるか 選 択 することができます まずは 簡 単 マージするので キャンセル ボタンで 前 の 画 面 に 戻 ります ダイアログの 説 明 に 一 方 に 存 在 する 要 素 は 全 てマージします それ 以 外 の 要 素 は 以 下 のプロジェクトの 要 素 を 優 先 してマージします とあります この 場 合 のマージでは 全 て 一 方 に 存 在 する 要 素 にあたりますので 作 業 中 のプロジェクト を 選 択 しても 取 り 込 み 中 のプロジェクト を 優 先 しても 全 てマージされます ひとまず 取 り 込 み 中 のプロジェクト を 選 択 して 了 解 ボタンをクリックします 4 / 18
ref.asta のみに 存 在 していた ref クラス 図 と D クラスが 取 り 込 まれました 次 は コンフリクトがあるケースを 説 明 します コンフリクト( 内 部 ID 衝 突 )あるケース 以 下 のようなプロジェクトを 新 規 作 成 します ファイル 名 は base.asta とします 5 / 18
このプロジェクトを ref2.asta として 保 存 します さらにこのプロジェクトの を 削 除 し B を D に 名 前 変 更 します (この 操 作 により base プロジェクトの B クラスと ref プロジェクトの D と 内 部 ID が 同 一 になります ) base.asta 開 き [ファイル]-[プロジェクトをマージ]を 選 択 し ref2.asta を 選 択 します 以 下 のようなダイアログが 表 示 されます 6 / 18
詳 細 ボタンをクリックします コンフリクトがないケースの 詳 細 ダイアログの 結 果 と 少 し 異 なります 要 素 が 異 なる 理 由 が 名 前 が 異 なっています で 作 業 中 の 要 素 が B 取 込 む 要 素 が D になっています こ れはどういうことでしょうか? 簡 単 マージ ダイアログの 説 明 に 一 方 に 存 在 する 要 素 は 全 てマージします それ 以 外 の 要 素 は 以 下 のプロジ ェクトの 要 素 を 優 先 してマージします とあります このケースは 作 業 中 プロジェクト 取 込 み 中 プロジェク トの 両 方 に 同 じモデルがあり どちらかを 優 先 させるか 決 めなければならないコンフリクト( 変 更 の 衝 突 )です astah*では 各 モデルに 内 部 ID を 保 持 しており コンフリクトの 定 義 は 内 部 ID が 同 じか 同 じ 名 前 空 間 で 名 前 が 同 じものが 変 更 されたことを 意 味 しています コンフリクトの 定 義 : 両 方 のプロジェクトに 同 じ 名 前 空 間 (パッケージ)で 同 じ 名 前 か 同 じ 内 部 ID のものが 存 在 し 変 更 されているケース このケースでは 同 じ 内 部 ID のコンフリクトと 言 えます 内 部 ID は モデルの 新 規 作 成 時 例 えばクラスを 作 成 し たときに 割 り 振 られます また astah*が 持 つ 内 部 の ID は 衝 突 がないことを 前 提 としています そのため ID の 生 成 も 注 意 して 衝 突 しないようにしています 内 部 ID は 複 数 の 人 が 複 数 のパソコンで 同 時 に 編 集 したモデルであっ ても 別 々になるように 生 成 されます では 簡 単 マージ ダイアログで 取 込 み 中 プロジェクト を 優 先 でマージします クラス B が D になっています 7 / 18
[マージ 機 能 のポイント] このようにマージする 際 は 内 部 の ID と 名 前 の 衝 突 するコンフリクトに 気 をつけモデリングすることで 複 雑 なマージをよりスムーズにすることができます では 簡 単 マージ ダイアログで 作 業 中 プロジェクト を 優 先 でマージします クラス B はそのままです コンフリクト( 名 前 衝 突 )があるケース 以 下 のようなプロジェクトを 新 規 作 成 します ファイル 名 は base.asta とします 8 / 18
以 下 のようなプロジェクトも 新 規 作 成 します ( 新 規 作 成 することで base プロジェクトのモデルの 内 部 ID と 同 一 になることがありません ) ファイル 名 は ref3.asta です base.asta を 開 き [ファイル]-[プロジェクトをマージ]を 選 択 し ref3.asta を 選 択 します 以 下 のようなダイアログが 表 示 されます 詳 細 ボタンをクリックします コンフリクト( 内 部 ID 衝 突 )があるケースと 異 なる 結 果 が 表 示 されています 9 / 18
要 素 が 異 なる 理 由 が 名 前 が 同 じですが 異 なるモデルです で 作 業 中 の 要 素 が C 取 込 む 要 素 が C になっ ています コンフリクト( 内 部 ID 衝 突 )のあるケースと 異 なり 名 前 は 同 じだが 内 容 が 異 なるケースです ( 内 部 ID も 異 なる )つまり 同 じ 名 前 空 間 (パッケージ)で 同 じ 名 前 のコンフリクトと 言 えます では 簡 単 マージ ダイアログで 取 込 み 中 プロジェクト を 優 先 でマージします クラス C が 取 込 み 中 の C になっています (ref3.asth の C クラスの 定 義 に ref が 入 っています ) では 簡 単 マージ ダイアログで 作 業 中 プロジェクト を 優 先 でマージします クラス C はそのままです 10 / 18
コンフリクト( 内 部 ID 衝 突 )あるケースと 同 様 に 内 部 の ID と 名 前 の 衝 突 するコンフリクトに 注 意 してモデリング することで 複 雑 なマージをより 簡 単 にできます 図 のマージでの 注 意 点 を 押 さえておこう astah*のマージでは 図 に 対 して 完 全 にマージする 図 と 図 を 取 込 み 中 プロジェクト もしくは 作 業 中 プロジェク ト から 選 び 一 方 の 内 容 に 置 き 換 えられる 図 がありますので このルールを 理 解 したうえでマージすると 上 手 に マージできるでしょう 図 名 マージルール クラス 図 マージ ユースケース 図 マージ ステートマシン 図 アクティビティ 図 シーケンス 図 コミュニケーション 図 コンポーネント 図 マージ 配 置 図 マージ 合 成 構 造 図 マージ フローチャート データフロー 図 (DFD) ER 図 マージ CRUD マインドマップ 要 求 テーブル トレーサビリティマップ 図 のマージのルールも 知 っておくとスムーズにマージできます 11 / 18
参 照 プロジェクト 管 理 ってどんな 機 能? 使 用 できるエディション: astah* professional デモ 動 画 :http://astah.change-vision.com/ja/movie.html#reference-project 複 数 人 でモデルを 編 集 するための 補 助 機 能 が 参 照 プロジェクトです プロジェクトから 複 数 のプロジェクトを 参 照 し 取 込 み 中 プロジェクト 優 先 でマージし 参 照 するプロジェクト にあるモデルを 読 み 取 り 専 用 のモデルにする 機 構 です 参 照 先 のファイルのタイムスタンプか モデルのタイムスタンプが 変 更 されれば 参 照 元 から 更 新 できます (タイムスタンプの 設 定 は [ツール]-[システムプロパティ]-[プロジェクトのマージ]-[ 参 照 プロジェクト 更 新 時 にフ ァイルのタイムスタンプでなく モデルのタイムスタンプを 使 う] (デフォルトは OFF) で 選 択 できます ) 参 照 されているファイルを 編 集 後 保 存 すると 参 照 元 ファイルを 開 いた 時 に 更 新 を 促 される MSG が 表 示 された り [ファイル]-[ 参 照 プロジェクト 管 理 ]で 表 示 されるダイアログで 対 象 のファイルが 要 更 新 となります [ 使 用 イメージ] [ 詳 細 イメージ] 参 照 プロジェクト 機 能 を 利 用 したチームモデリングの 一 案 を PDF で 公 開 しています 日 本 語 版 http://astah.change-vision.com/ja/files/astah-ref-project.pdf 英 語 版 http://astah.change-vision.com/en/files/astah-ref-project-en.pdf 12 / 18
参 照 プロジェクト 管 理 を 使 ってみよう 例 えば 以 下 の 手 順 でプロジェクトを 分 割 すると スムーズにマージできます (A さん B さん C さんの 3 人 で 共 通 のモデルを 作 成 し チーム 開 発 する 例 ) 1. 共 通 部 分 のモデルを 早 めに 確 定 し 共 通 などとするパッケージに 退 避 する これを common.asta とする ( 例 えば クラスと 属 性 操 作 ER ドメインと ER エンティティと 属 性 ) 2. ここから 3 人 で 共 通 部 分 を 使 用 して 開 発 します A さんが 機 能 A B さんが 機 能 B C さんが 機 能 C を 担 当 するとします A さんは a.asth を 作 成 し common.asta を 参 照 する 設 定 をします プロジェクトに 機 能 A パッケージを 作 成 し 読 み 取 り 専 用 の 共 通 モデルを 使 用 しながら モデリングします B さんは b.asth を 作 成 し common.asta を 参 照 する 設 定 をします プロジェクトに 機 能 B パッケージを 作 成 し 読 み 取 り 専 用 の 共 通 モデルを 使 用 しながら モデリングします C さんは c.asth を 作 成 し common.asta を 参 照 する 設 定 をします プロジェクトに 機 能 C パッケージを 作 成 し 読 み 取 り 専 用 の 共 通 モデルを 使 用 しながら モデリングします 13 / 18
3. 場 合 によっては CVS SVN VSS などの 構 成 管 理 ツールと 組 み 合 わせると 良 いかもしれません 注 意 点 として 構 成 管 理 ツールでチェックアウトした 後 のファイルのタイムスタンプは チェックアウト 時 の タイムスタンプになっています 参 照 プロジェクト 管 理 では ファイルのタイムスタンプが 変 更 されると 更 新 を 促 されます こういうケースのために astah*ではモデルのタイムスタンプを 用 意 しています astah*で 保 存 したときのタイムスタンプを asta ファイルの 中 に 埋 め 込 み 参 照 プロジェクトでモデルのタイムスタンプを 使 用 できる 機 構 も 用 意 されています 14 / 18
[ツール]-[システムプロパティ]-[プロジェクトのマージ]-[ 参 照 プロジェクト 更 新 時 にファイルのタイムスタンプ でなく モデルのタイムスタンプを 使 う](デフォルトは OFF) モデルのタイムスタンプは プロジェクトのプロパティビュー バージョン 履 歴 の モデルのタイムスタンプ で 確 認 できます また コミットするときのコメントに プロジェクトの 簡 易 比 較 で 出 力 されるテキストのモデルの DIFF を 張 り 付 けてもいいかもしれません 4. メンバ 内 で 作 業 中 に 共 通 部 分 に 編 集 が 必 要 になった 場 合 は common.asta を 変 更 し 保 存 します 編 集 が 終 われば メンバに 通 知 し それぞれのファイルを 開 き common.asta を 更 新 します 15 / 18
5. 最 後 に A さん B さん C さんのモデリングが 確 定 したら 参 照 モデルを 解 除 し それぞれを a2.asta b2.asta c2.asta として 保 存 します 16 / 18
最 終 成 果 物 として a2.asta を fixed.asta として 保 存 します b2.asta c2.asta を 取 込 み 中 プロジェクト 優 先 で 簡 単 マージします 最 後 に fixed.asta から common.asta を 参 照 します 共 通 パッケージ 配 下 が 読 み 取 り 専 用 のアイコンが 表 示 されています これで 求 めるモデルを 作 成 できましたね 17 / 18
参 照 プロジェクトを 使 用 する 上 でのポイント 共 通 化 するモデルのスコープや 担 当 を 明 確 にし 早 期 に 共 通 モデルを FIX することが 重 要 です 構 成 管 理 ツールを 使 用 する 場 合 は モデルのタイムスタンプを 使 用 しましょう (システムプロパティで 設 定 ) 18 / 18