開発方法論のまとめ 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/
に移りたい・・・移らせたい?になっているみたいです。
各工程について書こうと思ったんですけど、あまりにも長すぎるので、ここで、切ります。