市販既製品(COTS)とは、パッケージ化された(既製の)ハードウェアまたはソフトウェアであり、特注品やオーダーメイドのソリューションを発注するのではなく、購入組織のニーズに合わせてアフターマーケットで適合させるものです。関連用語として、Mil-COTSは、米国およびカナダ軍で使用されるCOTS製品を指します。
米国政府の文脈では、連邦調達規則(FAR)は、COTSを、政府契約に基づいて購入および使用できる、商用市場で入手可能なサービスを含む商用アイテムの正式な用語として定義しています。[ 1 ]例えば、マイクロソフトはCOTSソフトウェアプロバイダーです。物品や建設資材はCOTSに該当する可能性がありますが、バルク貨物は該当しません。商用アイテムに関連するサービスも、設置サービス、トレーニングサービス、クラウドサービスなど、COTSに該当する可能性があります。[ 2 ]
COTS(市販ソフトウェア)の購入は、カスタムソフトウェアや単発の開発(政府資金による開発か否かを問わず)の代替手段となる。
COTS製品はそのまま使用できますが、実際には、ビジネスニーズに合わせて構成し、既存の組織システムに統合する必要があります。カスタム開発によってCOTS製品の機能を拡張することも可能ですが、長期的なサポートとメンテナンスへの影響を考慮すると、この決定は慎重に検討する必要があります。このようなカスタマイズされた機能はCOTSベンダーによるサポート対象外となるため、COTS製品のアップグレード時に特有の問題が発生する可能性があります。
1990年代には、多くの人がCOTSはソフトウェア開発の時間とコストを削減するのに非常に効果的だと考えていました。COTSソフトウェアには、ソフトウェアコンポーネントの統合作業の増加、ベンダーへの依存、セキュリティの問題、将来の変更による非互換性など、初期コストと開発時間の削減という、あまり目立たないトレードオフが数多くありました。[ 3 ]
COTSの使用は、調達、開発、保守において大幅なコスト削減が見込めるため、米国の多くの政府および企業プログラムで義務付けられています。 COTSコンポーネントを使用する動機としては、システム全体のライフサイクルコストを削減したいという要望があります。供給業者にとっての潜在的なメリットとしては、「供給業者はコスト積算方式で品目の価格を設定する必要がない」ため、契約担当官による調査を受けることなく価格を指定できることが挙げられます。[ 4 ]
COTSソフトウェアおよびサービスは、通常、サードパーティベンダーによって開発・提供されます。COTSは、一般向けに購入、リース、またはライセンス供与されることがあります。
COTSは社内開発よりも低コストで入手・運用でき、業界内の専門家によって開発され、さまざまな独立機関によって長期間にわたって検証されるため、カスタム構築ソフトウェアよりも高い信頼性と品質を提供します。[ 5 ]
米国国土安全保障省によると、ソフトウェアセキュリティは市販ソフトウェアの使用に伴う重大なリスクである。市販ソフトウェアに深刻なセキュリティ脆弱性がある場合、組織のソフトウェアサプライチェーンに重大なリスクをもたらす可能性がある。市販ソフトウェアが他のソフトウェア製品と統合またはネットワーク化されて新しい複合アプリケーションまたはシステム・オブ・システムズが作成される場合、リスクはさらに増大する。複合アプリケーションは、その市販コンポーネントからリスクを引き継ぐ可能性がある。[ 6 ]
米国国土安全保障省は、COTSの使用に関連するサプライチェーンのサイバーセキュリティ問題の管理に向けた取り組みを支援してきました。しかし、 GartnerやSANS Instituteなどのソフトウェア業界のオブザーバーは、サプライチェーンの混乱が大きな脅威となっていると指摘しています。Gartnerは、「エンタープライズITサプライチェーンが標的となり侵害され、IT市場の構造と今後のIT管理方法に変化を強いられるだろう」と予測しています。[ 7 ]また、SANS Instituteは2012年12月に700人のITおよびセキュリティ専門家を対象に行った調査で、自社に導入したすべての商用アプリケーションに対してセキュリティレビューを実施している企業はわずか14%であり、その他の企業の半数以上はセキュリティ評価を実施していないことが分かりました。その代わりに、企業はベンダーの評判(25%)や法的責任契約(14%)に頼るか、COTSへの対応に関するポリシーを全く持っていないため、COTSによってソフトウェアサプライチェーンにもたらされるリスクを把握できていません。[ 8 ]
医療機器業界では、COTSソフトウェアはSOUP(出所不明のソフトウェア)として識別されることがあります。これは、既知のソフトウェア開発プロセスや方法論で開発されていないソフトウェアであり、医療機器での使用が認められていません。[ 9 ]この業界では、公正かつ安全な基準が遵守されていることを確認するための措置が講じられていない場合、ソフトウェアコンポーネントの欠陥がデバイス自体のシステム障害につながる可能性があります。規格IEC 62304:2006「医療機器ソフトウェア - ソフトウェアライフサイクルプロセス」では、SOUPコンポーネントが開発中のデバイスの安全要件をサポートしていることを保証するための具体的な手順が概説されています。ソフトウェアコンポーネントがCOTSの場合、DHSのCOTSソフトウェアリスクレビューのベストプラクティスを適用できます。[ 6 ] COTSソフトウェアであるというだけで、必ずしも欠陥履歴や透明性のあるソフトウェア開発プロセスがないことを意味するわけではありません。十分に文書化されたCOTSソフトウェアについては、明確なSOUPとして区別され、医療機器で使用できることを意味します。[ 10 ] [ 11 ]
製品の陳腐化の顕著な例として、Linux を使用して動作していたPlayStation 3 クラスターが挙げられます。ソニーは 2010 年 4 月に PS3 でのLinux の使用を無効にし[ 12 ]、動作する Linux代替ユニットを入手する手段をなくしました[ 13 ]一般的に、市販製品の陳腐化は、カスタマイズされたサポートや代替システムの開発を必要とする場合があります。このような陳腐化の問題により、政府と産業界のパートナーシップが生まれ、さまざまな企業が政府での使用のために一部の製品バージョンを安定させ、共同作業としてこれらの製品ラインの将来の機能を計画することに合意しています。そのため、一部のパートナーシップは、えこひいき、競争入札慣行の回避、実際には必要のない随意契約の使用の主張などの苦情につながっています。
また、10年以内に陳腐化してしまう交換部品(および材料)を何十年分も前もって購入してしまう危険性もあります。こうした点を考慮すると、単純な解決策で十分だったはずなのに、複雑化してルーブ・ゴールドバーグ装置のようなシステムになってしまうような過度に複雑な解決策(例えば「紙と鉛筆」)を避けるため、単純な解決策(例えば「紙と鉛筆」)と比較検討する必要があります。こうした比較検討では、COTS製品の使用に関わらず、基本的なニーズを満たす低コストのシステムを提供するのではなく、追加資金を正当化するために、グループが無駄な作業を行うシステムを作っているかどうかも考慮されます。
ロッキード・マーティンF-22ラプターで得られたプロセッサの陳腐化の教訓を活かし、ロッキード・マーティンF-35ライトニングIIは開発中にプロセッサのアップグレードを計画し、より広くサポートされているC++プログラミング言語に切り替えた。また、 ASICからFPGAに移行した。これにより、航空電子機器の設計の大部分が固定回路から、将来の世代のハードウェアに適用できるソフトウェアへと移行した。[ 14 ]
市販既製品(COTS)という用語は、産業界、調達、システムエンジニアリングにおいて依然として主流の用語ですが、より中立的で技術的に正確な用語を採用する標準化の取り組みもいくつかあります。こうした背景から、国際標準化機構(ISO)は、特定の購入者向けに事前のカスタマイズを行わずに、完全な状態でそのまま使用できるソフトウェアを指す用語として、「すぐに使えるソフトウェア製品(RUSP)」を導入しました。
例えば、ISO/IEC 25000システムおよびソフトウェア品質要求事項および評価(SQuaRE) シリーズでは、関連規格の初版ではタイトルを含めて「市販既製品 (COTS) ソフトウェア製品」という表現が使用されていました。[ 16 ]その後の版では、この表現は「すぐに使えるソフトウェア製品 (RUSP) 」に置き換えられました。[ 17 ]
改訂された用語では、ソフトウェアの商業的地位から、製品が完成品として提供され、即時使用を目的としているという事実へと重点が移されている。
商用配布を明確に指す COTS という用語とは異なり、より広範な RUSP という用語では、すぐに使用できる完全な製品として提供される限り、フリーおよびオープンソースソフトウェア (FOSS)を含む、無償で配布されるソフトウェアも対象とすることができます。このより広い範囲は、市場志向の用語 (COTS など) と品質志向または規範的な用語 (RUSP など) の間に区別が設けられる場合があることを反映しています。ただし、どちらも特注開発なしで取得および展開されたソフトウェアを指す場合に限ります。