ITパスポート試験 用語辞典
【Prototyping Model】
(Wikipedia プロトタイピングより)
プロトタイピング(Prototyping)とは、実働するモデル(プロトタイプ)を早期に製作する手法およびその過程を意味する。その目的は、設計を様々な観点から検証するためだったり、機能やアイデアを形にすることでユーザーから早めにフィードバックを得るためだったり様々である。プロトタイピングはシステム設計工程の一部として組み込まれることも多く、それによってプロジェクトのリスクと費用を低減させると考えられている。反復型開発では1つ以上のプロトタイプが作られ、欠陥や問題が徐々に解決されていく。プロトタイプの改善が十分なされ、機能/堅牢性/製造の容易さといった設計目標に達したとき、製品としての製造が可能となる。
利点と欠点
利点
- プロトタイプは容易に変更可? 資金を集めるために必要な概念実証(Proof of Concept)を提供可? プロトタイプを早期に目に見える形で実現することで最終的にどういうシステムになるのかユーザーが予想できる
- ユーザーと製作者の間で活発な意見交換が行われる可能性がある
- ユーザーに対してより高度な製品を提供する
- 費用対効果が高い(開発費用が抑えられる)
- システム開発が加速される
欠点
- 製作者は組織全体の必要性に適合しないシステムを作る可能性がある
- 製作者がプロトタイプに固執する可能性
- 柔軟性の欠如
- 大規模アプリケーションには不向き
- プロジェクトマネジメントが困難
ソフトウェアにおけるプロトタイピング
ソフトウェアプロトタイピング
ソフトウェア開発工程のモデルの1つとしてプロトタイピング・モデルがある。要求を集め、プロトタイピングを行い、ユーザーがそれを検証する。エンドユーザーは何が必要か明確に意識していないことが多く、要求分析フェーズで明確な要求や目的を開発者に伝えられないことがある。このためにプロトタイプが使われる。ユーザーがプロトタイプを検証した後、そのフィードバックに基づいて新たなプロトタイプが作られ、再度ユーザーがその検証を行う。各サイクルはユーザーから聞き出すところから始まり、それに基づいてプロトタイプが作られ、それをユーザーがテストし、最初に戻る。
1980年代中ごろ、プロトタイピングはソフトウェア工学における要求分析問題の解決策として導入された。この場合のプロトタイプはアプリケーションの画面のモックアップ(原寸模型)であり、ユーザーはそれによって未だ開発されていないアプリケーションを頭に描くことができる。これによって開発されるシステムに何が必要かという設計上の決定をユーザーが行うことが容易になる。プロトタイプが導入された当初、その結果は驚異的だった。プロトタイプの導入によってユーザーと開発者のコミュニケーションは劇的に改善された。最初に画面を提示することで後からの変更が少なくなり、全体としての費用もかなり低減される。
しかし、その後の10年でプロトタイピングによっても解決できない次のような要求分析問題があることが明らかとなった:
- 管理者クラスがプロトタイプを見たとき、製品がすぐにできないことを理解するのが難しいことがある。
- 設計者は時間を浪費しないことを心がけているため、プロトタイプのコードを製品に使わざるをえないと感じ、(実装の選択肢を)強制されていると感じることがある。
- プロトタイプは設計上の決定やユーザインタフェース設計に有効であるが、本来の要求が何であったかはプロトタイプからはわからない。
- 設計者やエンドユーザーがユーザインタフェースにかかりきりになり、システムの本体であるはずのビジネスプロセスが放って置かれる傾向がある。
電子工学におけるプロトタイピング
電子工学では、理論設計が実際に動作することを検証するための回路を実際に作ることをプロトタイピングと呼ぶ。そして、もし動作しない場合、プロトタイプをデバッグすることになる。プロトタイプでは、ワイヤラッピングやブレッドボードなどを使って電子的に正しい回路を作るが、物理的には製品とは異なるものである。そのような手法で作られたプロトタイプは変更も容易だが、製品で使われるプリント基板の方が費用的には安価となる。これはちょうど、詩をいくつか書くには手で書くのが速いが、大量に配布するには印刷するほうが早いのと同じことである。
出題例
- ウォーターフォール
- オブジェクト指向
- 共通フレーム
- プロトタイピング
正解
- オブジェクト指向
- データ中心アプローチ
- プロセス中心アプローチ
- UML
- DevOps
- ウォータフォールモデル
- スパイラルモデル
- プロトタイピングモデル
- RAD
- リバースエンジニアリング
- アジャイル
- XP
- テスト駆動開発
- ペアプログラミング
- リファクタリング
- スクラム
- 共通フレーム
- CMMI
このページのWikipediaよりの記事は、ウィキペディアの「プロトタイピング」(改訂履歴)の記事を複製、再配布したものにあたり、このページ内の該当部分はクリエイティブ・コモンズ 表示 - 継承 3.0 非移植 ライセンスの下 に提供されています。