開発方法論のまとめ 1

 昨日、「開発技術のまとめを書く」と書いたのですが、情報処理試験の大項目で「開発技術のまとめ」という表題で、既に書いているので

開発技術のまとめ
http://d.hatena.ne.jp/sme_okano/20110515/1305465155

 今回は、「開発方法論のまとめ」として一般的な話を書きます。


 開発方法は、現在、大きく2つの系統に分けられるといって、過言ではないと思います。
 その2つとは、

ウォーターフォール
アジャイル

 です。


ウォーターフォール

ウォーターフォールは、一般的な解釈では、要求分析→外部設計→詳細設計→実装→テストという流れが、前に戻らない(逆流しない)とする手法です(これに異議をとなえ、ウォーターフォールは逆流を許しているという先生・開発OBもいないわけではない)

 ちなみに、


要求分析              総合テスト
   
  外部設計         結合テスト
  
    詳細設計     
           単体テスト
        実装  

 と、テストと、設計工程を対応できて、そうすると、Vの字のなるので、
V字型モデルともいいます。

 そして、V字型モデルだと、後戻りできないのすが、それだと大変なので、
次の工程に行ったら、前の工程を見直すというフィードバック型V字モデル

http://www.bcm.co.jp/site/youkyu/youkyu66.html

というのもあります(たぶん、これが、先生方・OBの一部がおっしゃっている
ウォーターフォール

 また、設計時にテストしようを作ってしまうW字モデル
http://log2remember.blogspot.com/2009/08/w.html

 というのもあります。

 なお、これの変形で、部分部分をウォーターフォールで作っていき、結合する、
(在庫を作った後、販売管理を作って、その後会計を作って。。。のような)
インクリメンタルモデルや、

フェーズフェースでプロトタイプ作成などをおこなう、スパイラルモデルもあります。


アジャイル

アジャイルソフトウエア開発には、最近話題なのは2つ、
  ・XP
  ・スクラム

です。
 どちらも、いきなり全部作るのではなく、すこしづつ作っていくことが特徴です。これにより、作っては方針を変え・・・みたいなことができます。


 XPは、テスト駆動開発(実装する前に単体テストを先に作り、テストする)、ペアプログラミングによって開発を行います。
 くわしくは、 http://www.objectclub.jp/community/XP-jp/

 スクラム(Scrum)は、要求である「プロダクトバックログ」から、今回開発する「スプリントバックログ」を切り出して、開発(スプリント)、レビュー(スプリントレビュー)するというものです。
 スプリントの間は、一生懸命開発しますが、毎日、スクラム会議(あの、朝会みたいなやつ)をして、進捗確認できるようにします。
 くわしくは、
http://www.mountaingoatsoftware.com/system/asset/file/195/RedistributableIntroToScrum_JA.ppt


 そして、日本においては、各社ごとに、ソフトウエア開発工程があります。

   例えば、富士通のSDAS(SDEM21) http://jp.fujitsu.com/solutions/sdas/
       NTTデータのTERASOLUNA http://www.terasoluna.jp/

 などが挙げられます。

 しかし、各社ばらばらだと、一緒に仕事するときにこまります。
 そこで、「共通のものさし」が必要になりました。
 これが、共通フレーム SLCP-JCF2007です。

 ここに
http://sec.ipa.go.jp/press/20090930_b.html
 あるように、本として売っているのですが、
 全体像は、なぜか
http://www.meti.go.jp/policy/it_policy/si_so/slcp_2007.pdf
 に落ちてました(^^;)

 具体的に、どのような開発工程で、どのようなドキュメントを作るのかは、
 富士通の場合、見れます。先ほどのサイトの右側
 「技術情報」→「標準化規約」→「ComponentAA開発標準 」
 でいくと結局

1.ComponentAA開発標準
http://jp.fujitsu.com/solutions/sdas/technology/develop-guide/1-caa.html

にいき、ここから、
ComponentAA開発標準 ドキュメント標準編1.0a版ダウンロード
http://jp.fujitsu.com/solutions/sdas/technology/develop-guide/caa1-0a-license.html
ってかいてあるところから、ダウンロードできます。


富士通の「そこに載っている」工程と、前に

開発技術のまとめ
http://d.hatena.ne.jp/sme_okano/20110515/1305465155

で示した共通フレームの工程、ウォーターフォールの工程と比較すると、
以下のような形になります。


  要求分析(SA
     1. システム要件定義
  外部設計(UI・SS
     2. システム方式設計
     3. ソフトウェア要件定義
  詳細設計(PS
     4. ソフトウェア方式設計・ソフトウェア詳細設計
  プログラミング&単体テストPG・PT
     5. ソフトウェアコード作成及びテスト
  結合テストIT
     6. ソフトウェア結合・ソフトウェア適格性確認テスト
  総合テスト(ST・OT
     7. システム結合・システム適格性確認テスト
  検収
     8. ソフトウェア導入
     9. ソフトウェア受入れ
  運用
     10. ソフトウェア保守

(赤字がSDAS,SDEMでの呼び方、2つの工程が混在している場合、・で連結しています)

そして、開発方法を実現するための開発ツールがあります。
 富士通の場合、以前は、ComponentAA開発標準を用いた場合、
Interstageを使っていたと思います。
 現在は、INTARFRM
http://jp.fujitsu.com/solutions/afw/
に移りたい・・・移らせたい?になっているみたいです。


 各工程について書こうと思ったんですけど、あまりにも長すぎるので、ここで、切ります。