Web教材一覧システムの調達

システム開発技法

キーワード

ウォータフォール型、プロトタイピング型、スパイラル型


ウォータフォール型開発技法

後工程になってから前工程の不備や誤りが見つかると、手戻りが発生して多大な費用や時間がかかります。それを防ぐために、各工程ごとに関係者の承認を得てから次工程に進む開発技法をウォータフォール型開発技法といいます。
 従来から広く採用されている技法で、環境変化が比較的少ない分野での大規模なシステムに適しています。

しかし、ウォータフォール型開発技法では、次のような欠点があります。
  前工程が完成しないと次工程に進めないので、開発に時間がかかる。
  外部設計後に環境変化が起こっても、手戻りするのが困難である。
  利用者は、移行実施段階になってから実物を見て、要求の手違いがわかる。
それで、環境変化が激しい分野のシステム開発には不向きです。

ウォータフォール型の欠点を回避するために、次のような特徴を持つ開発技法が提唱されています。

アジャイル開発技法
短期間でシステム開発を行うための開発技法の総称です。
イテレーション型開発技法
イテレーションとは、要求分析から移行までの一連の活動です。ウォータフォール型開発技法では、イテレーションを1回しか行わないのに対して、短期間にイテレーションを行い繰り返す開発技法の総称です。それにより、利用者の要求と開発成果物の不一致の解消、要求変更への柔軟な対応、利用者のシステム理解の徹底などに効果があります。
インクリメンタル型開発技法
一挙にシステム全体を構築するのではなく、まず中核となる部分だけを構築し、逐次機能を追加したり、対象範囲を拡大する方法の総称です。ともかく短期間に最低限の機能を実現し、それから周辺機能の拡充や使い方の改善を図ろうとするものです。

ウォータフォール型開発技法以外の主な開発技法を示します。上記の区分は何に注目したかの視点によるものであり、以下の開発技法は複数の総称技法に属しています。

プロトタイピング開発技法
プロトタイプ(見本)を短期間に構築して利用者に見せ、要求を取り入れて逐次改善していく方法です。
スパイラル開発技法
プロトタイピング開発技法は、見方を変えれば、各工程をスパイラル(らせん)的に繰り返すことだともいえます。その意味では、スパイラル開発技法とプロトタイピング開発技法は、似たようなものだといえます。
しかし、スパイラル開発技法は中核を作ってからスパイラル的に対象を拡大することを重視しており、インクリメンタル型開発技法の一つだともいえます。
情報技術者試験問題では、後者の解釈が多いようです。「見本」ならばプロトタイピング、「繰返し」ならばスパイラル」と理解しておけばよいでしょう。

近年の開発技法

近年は、企業間競争が激しくなり、情報システムの企画から稼働までの時間短縮が重視されるようになりました。そのための開発方法論の総称をRAD(Rapid Application Development)といいます。
 比較的短期間の開発期間を決めておき、その間で開発する方法です。
 技法的には、プロトタイピング開発技法やスパイラル開発技法を発展させ、CASE技術を組み合わせています。
 体制的には、業務をよく知っているユーザと、能力の高い開発者がペアになって開発を行い、テストや文書化などの作業はまわりのスタッフが支援するような体制で行ないます。
 RADを行うための方法や体制について、多様なモデルが提案されています。

ラウンドトリップ・エンジニアリング
モデリング段階とコーディング段階を往復しながらソフトウェア開発を行う技術です。UMLのようなモデル図からソースプログラムを自動生成したり、ソースプログラムを修正するとモデル図が自動修正されるようなツールが使われます。
カンバン方式
トヨタによるジャストインタイム生産方式をシステム開発スケジューリングに応用して、何を、いつ、どれぐらいのコストで開発するかなどを管理するプロセス管理システムあるいはそれを活用した開発体制です。
XP(エクストリーム・プログラミング)
従来の開発技法は、ドキュメントが重視され、仕様が正しく定義され、正しい手順で開発すべきだとされてきました。XPの提唱者ケント・ベックらは、「変化を享受せよ」として、開発に伴う変化を当然あるべきものとして積極的に対応できることを目指しました。開発スピードの重視、ダウンサイジングなどの環境変化などにマッチし、急速に普及しました。

XPの5つの価値

開発チームが共有すべき5つの価値
 ・顧客と開発者、開発者間の円滑な「コミュニケーション」
 ・必要最小限の設計しか行わない「シンプルさ」
 ・頻繁なテストによる「フィードバック」
 ・大胆な設計変更に立ち向かう「勇気」
 ・関係者の意見や能力の「尊重」
19のプラクティス(抜粋)

XPのプラクティス

共同のプラクティス

開発のプラクティス

管理者のプラクティス

顧客のプラクティス

スクラム開発技法

システム開発でも、ラグビーのスクラムのように、各メンバーが協力し、全体が同じ目的を共有することが重要だとする、少人数によるアジャイル開発手法です。
比較的小規模なシステムを、利用者のニーズを柔軟に反映させながら、短期間で稼働させることを目的とし、テスト駆動、リファクタリンなどXPと似た特徴をもっています。


理解度チェック: 正誤問題
過去問題