BREWのシリーズ BREWで複数画面を開発する場合の方法論のちょっとわき道(プラスアルファ程度の関係)
そのシリーズで書いているように、画面ごとに担当が違い、並行して開発するような場合は、構成管理の方法として、
・サーバー側に、出来上がったものを置き
・自分のほうに、開発中のものをおく。
というようにする。しかし、「出来上がったもの」というのがくせものである。どこを出来上がったものと見るか。。
開発のステップにおいては、
・プログラム&単体テスト(PG&PT)
・結合テスト(IT)
・総合テスト(ST)
とわかれ、結合テストは、自分の単体プログラムと呼び出し、値わたしなど、直接の入出力があるものに対して、ちゃんと、思ったとおり値を受け渡しているかを調べるIT1と、要求仕様の内容を展開し、システムに落としてきた機能レベルでのテストを行うIT2にわかれる。つまり、ITは、外部仕様(機能設計書)の確認になるが、その機能の最上位の確認がIT2,最下位の詳細設計書に分割する寸前の、インターフェース(API)の確認がIT1になる。したがって、IT1が確認していない状態で、サーバーに公開していると、インターフェースが取れていないものをアップしてしまう危険がある。最悪このとき、コンパイルができないので、構成管理に失敗する(新規バージョンを構成できない。コンパイルエラーになるから)。
そこで、サーバーにはIT1が完了したことを確認したソースを入れないといけないが、IT1を確認するためには、そのソースが公開されていないと、関連した人がコンパイル、リンクできないので、IT1のテストができない。でも、IT1の前に公開すると、上記理由によりコンパイルできない(けど、公開しないとIT1のテストができないから。。。)
つまり、結果として、以下の機能を持たなければいけないことになる。
・サーバーは、IT1確認ずみ、つまり、コンパイルして実行したときに、期待される
値が帰ってくること(それまでは、ダミーを入れておく)
・IT1確認のために、一部の関係者には、ソースを公開できること。
ただしこのとき、すぐにサーバーのIT1確認済みのソースに戻せること
・ローカルは自分(だけで)修正できること
この条件を、いままで紹介した方法とVC++のBREW環境で実現することは、可能だ。
どうやるかというと、
・サーバー側に、IT1が完了したものをおく。
このとき、IT1が完了していなければ、全体のソース作成で書いたような、ダミー関数をおく。
・クライアント(開発者側)は、このサーバーのファイルがはいったフォルダを
(フォルダの)共有して、参照できるようにする
・VC++のプロジェクトにおいて
自分の担当画面は、ローカルにおいておき、
それ以外のものは、上記共有フォルダの出来上がったファイルを参照する
・PG,PTが終わって、IT1を行いたいとき、関係者にソースを渡す。
関係者は、サーバーの共有ファイルをメンバから削除し
→ても、もとのソースは当然削除されない。
そのソースを参照するようにする。
→もし、問題が生じたら、また、サーバーの共有ファイルに戻せばよい
・IT1も完了したら、出来上がったソースを、サーバーの共有フォルダに置く
これで、VisualStudioだけでできるのだが、問題がある。
この方法だと、つねにサーバーと共有していないといけない
つまり、
・ネットワークがつながっていないといけない
・サーバーがダウンしたらアウト
・ネットワークにつながっていれば、担当者以外が修正可能
となってしまう。これはまずい。
なので、サーバーに常にアクセスしなくていいような手法が必要なのだが、
これは、構成管理の分散型と集合型の2つの方法があり、CVSは、。。。とかといういろんな話を書かないといけないので、そーすると長くなるから、きょうはここまで。
![](https://mokano.main.jp/card/analsysimg.cgi?imgfname=gokusho.jpg&ID=bun061001)