開発方法論のまとめ 2
前回の開発方法論で全体的な流れを書いたので、今回は、(ウォーターフォールにおける)開発の各工程の流れについて書いてみたいと思います。
●全体的な流れ
まず、全体的な流れを書くと、
提案依頼(RFP)→提案→開発会社決定
↓------------------(外部)
要求分析(SA)
↓
外部設計(UI・SS)
↓
詳細設計(PS)
↓
プログラミング&単体テスト(PG・PT)
↓
結合テスト(IT)
↓
総合テスト(ST・OT)
↓-------------------(外部)
検収
↓
運用
提案依頼書から、開発会社決定までは、開発の範囲には入りません。
また、検収以降も開発会社からみると、開発の範囲には入りません。
なので、上記の工程を含む内側の開発工程について書きます。
●提案依頼(RFP)→提案→開発会社決定
発注元(=お客さん)が、受託見込み会社(=開発会社(ただし見込み))に対し、
RFPを示して、開発の提案(開発内容、費用、期間など)をしてもらい、
発注元が、チェックシートなどをもとにチェックして?(いや、テキトーに)
開発会社を決めるという工程です。
なお、RFPの日本語訳として、
民間の場合は、「提案依頼書」と訳し、
国、自治体の場合は、「調達仕様書」と訳します。
提案依頼書の見本としては、ITコーディネーター協会が、
RFP/SLA見本
http://www.itc.or.jp/foritc/useful/rfpsla/rfpsla_doui.html
として、見本がダウンロードできるようになっています。
また、調達仕様書の記載内容は
http://www.duo.co.jp/images/topics/20090225seminar_02arakane.pdf
の14枚目のシートをみるとはやいです。
また、そこにでてくる、「情報システムに係る政府調達の基本指針」は
http://www.soumu.go.jp/main_sosiki/gyoukan/kanri/pdf/070301_1.pdf
でしょうか?18ページから、調達仕様書について書かれています。
理想的には、このRFPにおいて、
・今回開発しようとしている内容
・ドメインモデル(ER図で)
などが、示されることが理想です。
なお、国の調達の場合、まだ生きてるんでしょうかね?EAというものがあって
EAポータル
http://www.meti.go.jp/policy/it_policy/ea/index.html
における、最適化計画などが、考慮されます。
民間などでは、情報処理試験的には、BSC(バランススコアカード)などに基づいて
何を開発すべきか考えることになっていますが。。。勢いで決めているかも?
とここまで書いてきましたが、現実問題、中小企業の発注では、RFPはないこともあります
(提案してもらう必要がない:もともと1社にきまっているから)
●要求分析(SA)
上記のRFPに書かれた開発内容にもとづき、何を開発するかを規定します
(どうやって?はこの後の設計工程になります)
やるべきことは以下の(1)〜(5)です
-
-
- -
-
(1)なにを開発するかを挙げる→ユースケース
かならず開発したいものはあるはずです。なければ、その時点でプロジェクト終了です。
開発したいもの1つを1ユースケース(=利用場面)とします。
できれば、ここで、入出力を定義したいものです。
このまとめ方ですが、
UMLの場合は、ユースケース図と、ユースケースシナリオ(言葉で書く)
国の場合は、DMM(機能構成図)にまとまります。
-
-
- -
-
(2)開発したいものを、現在どう行っていて、それをどう変えたいかを決める
→業務フロー/アクティビティ
上記のユースケースに対して、どうやって、仕事をしていくかということを、業務フローとしてまとめます。ユースケースに手順がある場合、ユースケース間の手順を業務フローにまとめることもあります。
このまとめかたですが、
国のEAの場合は、業務流れ図(WFA)にまとまります。
UMLの場合は、アクティビティ図にまとまります。
その他、BPEL、BPMNなどにまとめることもあるかもしれません。
-
-
-
- -
-
-
(3)業務に使うデータをしらべまとめる
上記の各業務では、データを取り扱うはずです。入力と出力データのほかに、作業用にデータを参照することもあるかもしれません。
そして、データ間には、関係があり、構造があります。
そこで、
あ.プロセスの入出力データを確認する
い.プロセスで入出力データのほかに、補助的に必要なデータも考える
う.そのデータ間の関係やデータの構造を考える
ということをします。
この表現として、
国のEAの場合は、ER図または概念クラス図にまとまります。
UMLの場合は、クラス図にまとめざるをえません。
-
-
-
- -
-
-
(4)その他、今回の開発に必要な要件を挙げる
上記までのもの、つまり業務とデータを機能要件といいます。
それに対して、ユーザーインターフェースはどうのこうのとか、レスポンスは3秒以内といった、業務とデータではなく、使いやすさや信頼性にかかわる要件というのがあります。
これを、非機能要件といいます。
そして、これを挙げていきます。
-
-
-
- -
-
-
(5)上記の内容を、要求仕様書としてまとめます。
-
-
-
- -
-
-
ちなみに・・
プロセスとデータの関係をしらべて確認する方法として、国の場合、DFDを作成すれば気づきます。
なので、DFDも作成します。
UMLの場合、後述するICONIXを採用すれば、データとプロセスに矛盾があれば、破綻するので気づきます(後じゃ、だめジャン ^^;)。
ただし、この段階では、あくまでも概念的、ざっくりとしたものです。
結局、
機能要件として
何をしたいか(ユースケース)がまとまり、
その業務フロー概要と、
概念データモデルができます。
また、非機能要件がまとまります。
-
-
- -
-
この部分の標準として、
国の場合にはもちろん、EAがありますが
世界的には、IEEE 830− 1998があります。
富士通の場合、前回のダウンロードできる資料の「SA」のところをみてください。
やまのように、ドキュメント書かないといけませんねえ(^^;)
また、ここの部分は、各社の要求仕様書をまとめた?標準的なもの
というか、ノウハウ集があります。
機能要件に関しては
発注者ビューガイドライン
http://sec.ipa.go.jp/reports/20080710.html
非機能要件に関しては、チェックリストとして
非機能要求グレード
http://sec.ipa.go.jp/reports/20100416.html
があります。また、JUASでは、両方のガイドラインをセットとして売ってます。
要求仕様定義ガイドライン&非機能要求仕様定義ガイドライン
http://www.juas.or.jp/product/detail/product.asp?id=445006
ながい、ながすぎます。ここで、切らせてください。
お昼食べるので
P.S・・・銀行行かなきゃ(^^;)