背景と批判
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/07/01 09:01 UTC 版)
「ソフトウェアフレームワーク」の記事における「背景と批判」の解説
ソフトウェアフレームワークは、システム構築に必須な標準的かつ下位レベルの詳細を設計者やプログラマが検討する時間を省き、上位レベルの要求仕様(ビジネスロジック)の実現に多くの時間を割けるようにし、ソフトウェア開発を容易にすることを目指している。例えば、銀行のWebサイト構築にWebアプリケーションフレームワークを使っている開発チームは、要求処理や状態管理の機構を検討する時間を削減して、口座からの引き落としといった操作に注力できる。また、このような差分プログラミングの用途に適しているという理由で、フレームワークの実装にオブジェクト指向言語が選ばれることが多い。 批判としては、フレームワークは全体的なコードを肥大化させるという主張もある。これは複数のフレームワークで重複・競合する部分や補い合う部分があり、APIも複雑に絡み合っているためでもある。 フレームワークの使い方を学ぶ時間がかかるという主張もある。ただし一度フレームワークの使い方を学べば、同じフレームワークを利用する次のプロジェクトからはより素早く確実な応用が可能となる。また、多くのフレームワークは基本的な設計が似通っていることが多く、類推(アナロジー)により別のフレームワークにも考え方が応用できることが多い。 フレームワークは他のプラットフォーム製品(OS、DBMSなど)と同様に、特定のフレームワーク・ベンダーや、特定のバージョンに依存(ロックイン)されるリスクがあるとの主張もある。このため機能内容や代替製品などの確認も必要である。フレームワークのバージョンアップによって動作仕様が変わったり、API/ABIの互換性がなくなってしまったりすることもある。 移植の手間を減らして様々なOSに展開しやすくするための、クロスプラットフォームなフレームワークの開発も盛んである。特にGUIアプリケーションは通例OS固有のウィンドウシステムを利用する必要があり、またウィンドウの表示や2D/3Dグラフィックスの表示に必要となる準備(初期化や後始末)に手間がかかり、定型コードの量も多くなるため、詳細を隠蔽して抽象化したクロスプラットフォームなフレームワークが威力を発揮する。 フレームワークのソースコードが公開されていないプロプライエタリな製品では、不具合が見つかったときに原因の特定と解消が遅れるリスクもある。一方、オープンソースのフレームワークや内製フレームワークであっても、ユーザー数や実績が少なく未成熟な場合は、相対的に多数のバグが残されている可能性が高い。 いずれにしても、適切なフレームワークの選定は特に重要である。開発途中で、選択したフレームワークが開発要件を満たさないと判明した場合や、そのフレームワークの開発・提供が打ち切られた場合などは、開発途中で別のフレームワークに移行して(場合によっては基本設計から)再開発する必要が発生するためである。
※この「背景と批判」の解説は、「ソフトウェアフレームワーク」の解説の一部です。
「背景と批判」を含む「ソフトウェアフレームワーク」の記事については、「ソフトウェアフレームワーク」の概要を参照ください。
- 背景と批判のページへのリンク