« 「八合目キャンプ」からのアジャイル | トップページ | 基本設計を分担してはいけない »

2015.10.08

設計情報のバージョン管理を合理化する

 「設計情報がいかに変遷したか」は設計情報のメタ情報として重要である。複雑膨大な設計情報がどのような変遷を経て現在に至ったか。それを記録することは、設計情報管理における基本課題だ。

 ところが、業務システム開発のほとんどの現場では、設計情報はExcelやWordやパワポやVisioといった汎用ツールを用いてまとめられている。そんな現場では設計情報の変遷を人力一辺倒で管理する羽目になる。たとえばExcelを使う場合、更新履歴をまとめるための専用シートが用意され、その内容が手作業で維持される。

 このやり方はいかにも素人臭いうえに、手間がかかりすぎる。コードの変遷については今ではSubversionやGitのような専用ツールで管理されるようになったのだから、設計情報の変遷についても専用ツールにまかせたほうがいい。専用のエンジニアリングツールを使うことの意義は数々あるが、設計情報が様式化されることによってバージョン管理が楽になるという点も見逃がせない。

 拙作のOSSエンジニアリングツールX-TEA Modelerにおいて、設計情報の変遷は2つの手段によって監視される。まず、システムノードの「更新履歴」を使う方法だ。設計情報を編集・更新した後で更新履歴の行を新規追加すれば、ツールがUndo情報を収集して履歴の初期値を設定してくれる。これに変更意図などを加筆すれば、必要十分な更新履歴として残せる(次図)。

▼更新履歴の初期値が自動設定される
20151007a

 もうひとつは、任意のバージョンの設計情報ファイル間での差異を見るやり方だ。X-TEA Modelerは設計情報をXML形式のプレーンテキストとして様式化するので、diffコマンドのような手段を使えば差異を一覧できる。しかし、その形式で差異の意味を理解するには、内部仕様に精通している必要がある。知りたいのは2つのファイル間の物理的な違いではなく論理的な違いなので、diffではなく専用の分析機能がほしいところだ。

 以前から要望されていたのだが、X-TEA Modelerの最新版(1.4.26)でそれが搭載された。使い方は簡単で、比較先となる「起点ファイル」を指定するだけでよい(次図)。ただし、2つのファイルの差がありすぎると大量の差異が示されてわかりにくくなる。こまめにバックアップを取って(*1)それらを比較対象とするのがコツである。

▼2つのファイルの差異が示される
20151007b

 Excelあたりを使うやり方と比較した場合の優位性は明らかだ。差異を一覧することについては完全に機械化される。編集意図の補足を無視すれば、更新の度にバックアップを残しさえすれば、更新履歴を別途維持する必要さえなくなる。

 他にも、設計情報内の文字列を検索・置換することや、他の設計情報ファイルから定義要素の一部をインポートすることや、CRUD表等のマトリックスリストを自動出力するといったさまざまな利点がある。これらはいずれも設計情報を様式化したことでもたらされる多様な効果のひとつにすぎない。


*1.設計情報ファイル(.xeadの拡張子)のサイズは、巨大な案件でも数Mバイトで済むので、気楽にバックアップを残せる。Excelで書かれた設計情報のサイズ感やフォルダ構成の複雑さを考えると、全体が1ファイルに収まり、しかもそのサイズが数Mバイトで済むというのは驚きである。しかしこれもまた、設計情報を様式化することの効果のひとつでしかない。

|

« 「八合目キャンプ」からのアジャイル | トップページ | 基本設計を分担してはいけない »

コメント

更新履歴の自動管理は楽ちんでいいですね。
当方環境では、Excel 設計書をかいているのですが、修正対象箇所を赤ラインで消して、その付近に赤字で修正内容を記述しています。
もう、発狂しそうです(笑)

Git や Subversion と直接連携する予定はあるのでしょうか?
比較の起点ファイルをバージョン管理システムから参照できるようになればより手間が省けますね。

投稿: まるまるまる | 2015.10.08 09:25

まるまるまるさん

取消線を入れるとかフォントや背景の色を変えるとか、修正が入るたびに設計資料がどんどん雑然としてゆくんですよね。Excel仕様書を機能定義の「外部資料」として組み込むことも可能なので、Modelerの導入検討をお勧めします。

Gitとの連係ですか。設計情報にかんして「ブランチ」のような概念を取り入れても混乱が増すばかりでしょうから現時点では考えていませんが、面白そうですね。

投稿: わたなべ | 2015.10.08 12:56

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 設計情報のバージョン管理を合理化する:

« 「八合目キャンプ」からのアジャイル | トップページ | 基本設計を分担してはいけない »