キーワード
» 2011年09月09日 00時00分 公開

情報システム用語事典:ソフトウェア開発方法論(そふとうぇあかいはつほうほうろん)

software development methodology

[@IT情報マネジメント編集部,@IT]

 体系化されたソフトウェアの作り方のこと。何らかの原理・意図・観点に基づいて、各種の方法・手順・手段を統合した知的体系として定義される。

 ソフトウェアの開発はおおむね、分析・設計・実装という流れで進められる。それは「システム化する対象をどのようなものと見るか」「それをどのような構造とするか」「どうやって効率的かつミスなくプログラムを作るのか」を考えていくことである。これらを行う「発想」「視点」「方法」「プロセス」「技術」「ノウハウ」「ルール」「ツール」の整合的な組み合わせが方法論である。

 ソフトウェア開発にはソフトウェア危機が叫ばれた時代(あるいはそれ以前)からさまざまな課題があり、常に解決策が模索されてきた。ソフトウェア開発方法論は、「生産性と品質の向上」「コストの削減」「変化への対応」「ユーザー要件の実現」「イノベーション」といった各種の課題に対する“解答”である。

 ソフトウェア開発方法論には、一般書籍などの形で公開されているもの、詳細なマニュアル集として販売されているもの、ソフトウェア開発会社が独自に開発・運用しているものなど、数々あるが、それぞれに価値観やコンセプト――何を解決するために何を重視するかが異なり、それに応じて手段や手順が組み立てられている。その意味では方法論は一種の“思想”である。

 広く知られている方法論だけでもさまざまなものがあるが、現実の開発プロジェクトはそれ以上に多種多様である。ひとくちにソフトウェアといっても業務アプリケーションから、事務処理パッケージ、金融系システム、科学計算ソフト、組み込みソフト、オペレーティングシステムまで幅広く、プロジェクトごとに開発規模や難易度が異なり、求められる解決策が違ってくる。

 そのため、実際の開発現場では既存の方法論を参考や規準にしながら、開発組織やチーム、プロジェクトごとに「発想」「視点」「方法」「プロセス」「技術」「ルール」「ツール」を選択していくことになる。すなわち、知識・マニュアル・開発基準としてまとめられた方法論は“ひな型”として用いられるものである。

 多種多様な方法論だが、一般に分析の視点/ソフトウェア構造の違いから「プロセス中心手法」「データ中心手法」「オブジェクト指向」に大別される。また、開発プロセスの違いから「ウォーターフォール・モデル」「反復型モデル」「アジャイル開発」という分類法もある。ただし、これらの分類に収まらない方法論もある。

 「方法論」はもともとは哲学用語で、真理に至るための方法(method)を考察する哲学分野(論理学の一部)をいう。近世以降ではイマニュエル・カント(Immanuel Kant)の『純粋理性批判』が出発点とされる。哲学以外にも、科学、芸術、教育における真実到達、理想達成へのアプローチ体系も方法論という。語源的には“方法の研究”だが、研究の結果得られた“方法の体系”もまた方法論と呼ばれる(※)。ソフトウェア開発方法論は実践の中で洗練されていくもので、“正しい作り方を考察中”というニュアンスが込められているのかもしれない。

※ 誤用だとする声もある

参考文献

▼『ソフトウェアの考え方・作り方』 松本吉弘=著/電気書院/1981年8月

▼『ビッグ6の戦略情報システム構築方法論――広範な経験と事例の一般化による体系的方法論』 戦略情報システム研究会=著/ダイヤモンド社/1992年5月

▼『ソフトウェア管理の落とし穴――アメリカの事例に学ぶ』 エドワード・ヨードン=著/松原友夫=訳/トッパン/1993年5月(『Decline & Fall of the American Programmer』の邦訳)

▼『システム再構築プロジェクトの計画と管理――システム企画者・プロジェクト管理者へ新「システム開発手法」を提示する』 木ノ下勝郎=著/丸山学芸図書/1994年11月

▼『方法論工学と開発環境――プロセスと環境トラック』 鯵坂恒夫、佐伯元司=著/共立出版/2001年11月

▼『ソフトウェア開発――55の真実と10のウソ』 ロバート・L・グラス=著/山浦恒央=訳/日経BP社/2004年4月(『Facts and Fallacies of Software Engineering』の邦訳)


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ