目次 1.2022年度エグゼクティブ・サマリー4 2.前回のCPSQレポートの概要7 3.ソフトウェアの失敗事例と新たな欠陥モデル10 4.サイバー犯罪によるコストの上昇16 5.OSSとソフトウェア・サプライチェーン(SoftwareSupplyChains/SSC)19 6.技術的負債(TD)24 7.ソフトウェア品質標準27 8.欠陥を理解し、見つけ出し、修正する30 9.ソフトウェア・エンジニアリングにおける人工知能(ArtificialIntelligence/AI)と機械学習(MachineLearning/ML)34 10.まとめ、推奨そして次の段階へ40 11.謝辞44 付録A:2020年度版CPSQレポートの概要45 付録B:CPSQの推定方法49 図表一覧 図1-0:米国における2022年度のCPSQ4 図1-1:DevQualOpsモデル5 図2-1:2020年のCPSQ8 図2-2:ソフトウェアエンジニアのCPSQスプレッドシート8 表3-1:大規模なソフトウェアの失敗事例2021-202210 表3-2:CWEトップ2514 表3-3:CVEトップ1515 図4-1:米国におけるサイバー犯罪の傾向:過去12年16 図4-2:2020年におけるランサムウェアの影響17 図5-1:SynopsysによるOSSコンポーネントの調査結果20 図5-2:SynopsysによるOSSコンポーネントの調査結果–業種別21図5-3:SynopsysによるOSSコンポーネントの調査結果–保守されていない21図5-4:SynopsysによるOSSコンポーネントの調査結果–重大度「高」のバグのパッチ未適用21図5-5:NISTによる脆弱性調査結果–ベンダー別22 図5-6:NISTによる脆弱性調査結果–弱点別22 図6-1:SonarのDevOpsモデル25 図7-1:脆弱性、弱点およびエクスプロイト28 図7-2:CISQのDevQualOpsモデル29 図8-1:ソフトウェアの欠陥を理解し、見つけ、修正する31 図8-2:Undoによるタイムトラベル・デバッグの調査結果32 図9-1:既存のコードを理解するために費やす時間34 図10-1:米国における選挙技術の多様性:2020年総選挙42 著作権表示 ©2022ConsortiumforInformation&SoftwareQualityTM(CISQTM).Allrightsreserved.Youmaydownload,store,displayonyourcomputer,view,print,andlinktoTheCostofPoorSoftwareQualityintheUS:A2022ReportattheCISQWebsitesubjecttothefollowing:(a)theGuidancemaybeusedsolelyforyourpersonal,informational,non-commercialuse;(b)theGuidancemaynotbemodifiedoralteredinanyway;(c)theGuidancemaynotberedistributed;and(d)thetrademark,copyrightorothernoticesmaynotberemoved.YoumayquoteportionsoftheGuidanceaspermittedbytheFairUseprovisionsoftheUnitedStatesCopyrightAct,providedthatyouattributetheportionstotheCISQTheCostofPoorSoftwareQualityintheUS:A2022Report. 1.2022年度エグゼクティブ・サマリー この隔年の報告書の背景をなす主要な米国の経済指標は以下の通り: 2022年のGDPの予測値は23兆3,500億ドルで、2020年から約2%増加 2年間で15%のインフレ率 この2年間でIT労働力ベースの増加はわずか4%で、1兆5,100億ドルに 8月末の時点で、IT分野の求人数は約300,000に達している この2022年の更新レポートでは、米国でのソフトウェア品質の低下によるコストが少なくとも2.41兆ドルに増加したと推定1しますが、2020年に見られたのと同じ比率ではありません。蓄積されたソフトウェア技術負債(TD)は~1.52兆ドルに増加1しています。 図1-0米国における2022年度のCPSQ 今年のレポートでの三つの主な問題領域: 1.既存のソフトウェアの脆弱性によるサイバー犯罪の被害額が急増 損失額は2020年から2021年にかけて64%増加。2022年の損失額は未確定 いくつかの重要インフラへの攻撃は、過去2年間に甚大な痛みと苦しみをもたらした(例:コロニアルパイプライン) 2.基盤となるサードパーティ・コンポーネント(特にオープンソース・ソフトウェア/OSS)に関するソフトウェアサプライチェーンの問題が大幅に増加。 2021年、組織の77%が、オープンソースソフトウェアの使用が増加していると報告。 中規模アプリケーション(100万コード行未満)には、平均で200~300のサードパーティ・コンポーネントが含まれる。 ソフトウェア・サプライチェーンのオープンソースの弱点に起因する障害の数は、2020年から2021年の間に650%増加。 3技術的負債(TD)の増大による影響が、既存のコードベースに変更を加える際の最大の障害 TDの元本は最大1.52兆ドルに増加(欠陥が修正されていないため)。 今後10年間でコンピュータ/IT関連の職は15%増加すると予測されているが、8月末時点で、米国のIT求人の不足数は約300,000に留まっている 2019年後半には、2025年までにIT予算の40%が単にTDの維持に費やされると予測されており、これが多くのモダナイゼーション・プロジェクトが失敗する主な理由となっている。 企業の平均的な開発者が「TD」に対処するために費やす時間は13.5時間/週で全体(41.1時間/週)の約33%。 この2022年のレポートでは、現在のソフトウェア品質の低さを改善し、近い将来にCPSQの成長率を安定化/低下させるために、最近の開発と新たなソリューションに注意を向けます。 私たちが焦点を当てる3つの主要なソリューション領域には、ソフトウェアの欠陥を見つけて修正するのに役立つ最新のツールと、増大するTDを削減する機会を特定するのに役立つ標準とツールの新たなトレンドが含まれます。これら は、ソフトウェア品質の問題を制御するための最も可能性の高い方法であると考えており、以下に焦点を当てています: 品質標準/ソフトウェアの問題分類法 不具合/TDを理解し、見つけ出して修正するためのツール ソフトウェア・エンジニアリング向けのAI/機械学習(ML)ツール これらの新しいソリューション分野はすべて、2020年に導入されたDevQualOpsモデルのサポートに焦点を当てています。ソフトウェア・セキュリティはソフトウェア品質のサブカテゴリであるため、DevSecOpsはDevQualOpsのサブモデルと見なすことができます。 図1-1:DevQualOpsモデル 一連の3つのレポートで、CPSQとTD(技術的負債)は大幅に上昇しましたが、これらの問題を修正するためのテクノロジ/プラクティスの開発(解決策)も同様に大幅な上昇を見せています。 この一連のレポートで提案した推奨事項を、組織が採用する場合、全体的なCPSQの傾向は次の10年間で横ばいになる (上昇を押し留める)可能性があります。ここで提案されたソリューションが、ソフトウェアの概念、開発、生産、および進化の主流に広く採用されることを願っています。 以前のレポートの広範な推奨事項に加えて、ソフトウェア開発およびIT組織向けの次のより具体的な推奨事項を追加します: ソフトウェアの品質基準、関連する測定値、登場し始めた新しいツールを使用する システムに含まれるすべてのサードパーティ/OSSコンポーネントの品質を分析および評価し、動作中はそれらを注意深く監視し、適時にパッチを適用する 継続的な品質エンジニアリングのベスト・プラクティスとツールを含まないDevOpsやCI/CDモデルを避ける 継続的なTDの改善をSDLCに統合 ソフトウェアエンジニアのプロ意識と知識に投資 OMGが2023年後半または2024年に「DependableDeveloper(信頼できる開発者)」認定試験を提供する際、ISO/IEC5055の重要なコードとアーキテクチャの弱点に関する知識について認定を受けることを検討 次のレポートは暫定的に2024年に予定されており、このレポートで特定されたソリューションのいくつかが問題に追いつき、CPSQの傾向にプラスの変化が見られることを願っています。 脚注1–使用される詳細なコスト見積もり方法については付録Bを参照して下さい 2.前回のCPSQレポートの概要 これは、隔年のシリーズで発行している低品質のソフトウェアのコストに関する3番目のレポートになります。このテーマに関する最初の2つのレポートでは、低品質による追加コストというレンズを通して見ることができるソフトウェア品質の問題領域を特定することに焦点を当てました。そうすることで、これらのレポートは、これが実際に解決に値する大きな問題であるというニュースを広めるのに役立ちました。ただし、このレポートでは、最初の2つのレポートで特定された根本的な問題に対するより具体的な解決策の概要を説明しています。 2018年のレポート 2018年のレポートでは、ソフトウェアの品質と、ソフトウェア品質の低いカテゴリを定義することに焦点を当てまし た。これにより、品質の低い問題の領域と症状をより正確に特定できるようになりました。私たちの目的は、参考文献の広範な検索から特定したいくつかの報告されたカテゴリで既知の情報を調べることにより、米国でのCPSQの一次推定値を作成することでした。特定された主なカテゴリは次のとおりです。 1)レガシーシステムの問題 2)ソフトウェアの欠陥による損失 3)問題のあった/キャンセルされたプロジェクト 4)欠陥の発見と修正 5)ソフトウェアのTD(技術的負債) レポートでは、アップデートで参照した基本的な概念と定義を定めました。それらの定義と概念は次のとおりです。 使用される一般的な略語:IT、US、LOC、CoSQ、CPSQ(p.3) ソフトウェアとは何か(p.6) IT/ソフトウェアにどれだけ費用をかけたか(p.7) 隠れたソフトウェア品質のコストの氷山モデル(p.10) レガシーソフトウェアの保守コスト(p.12) 主要なソフトウェア障害のニュースの概要(p.16) ソフトウェアのTD(技術的負債)とは何か(p.19) 利用可能な人材がソフトウェアの品質とコストに与える影響(p.21) ソフトウェア品質とは何か(p.28) ソフトウェア品質のコストモデルの定義(p.30) 分析されたカテゴリーのCPSQ全体に関する結論(p.36) その後の4年間でソフトウェア品質の定義がより標準化され、より測定可能になったことを除けば、これらの定義と概念は依然として有効です。 2020年のレポート より多くの注目を集めた2020年のレポートでは、ソフトウェア品質の問題の重大性を強調するために、公に知られている多くの失敗に関するレポートを詳しく説明しました。組織が使用できる首尾一貫したアプローチを介して問題に取り組むために使用できる戦略、戦術、モデル、およびベストプラクテ