最新版で追加された3つの新領域
アーキテクチャ領域は、基礎概念/記述/設計/評価の4本柱で整理されており、利害関係者との分析・統合、設計、評価を繰り返すという基本的な考え方も含めた内容だ。鷲崎氏は「技術動向の先行きが見えない時代だからこそ、根底にある基本的な原理原則を押さえることが重要」と、基礎力を培う意義を再確認した。
悪意を持つ第三者の攻撃を想定したソフトウェアセキュリティ領域では、基礎概念はもちろん、マネジメントやプロセス、具体的技法の紹介、ドメイン特化のセキュリティをカバー。とくに脆弱性攻撃はプラットフォームなどの環境に強く依存する部分が大きいため、「抽象的なセキュリティの概念理解だけでは不十分」だといい、実証的な知見の重要性を強調する。
同領域では環境特性を扱うことの重要性を鑑みて、コンテナやクラウド、IoTや機械学習アプリケーションの分野も押さえている。鷲崎氏は、「Internet of Everything、すなわち『他のデバイスやサービスと繋がらないソフトウェアはほぼありえない』という時代だからこそ、今や品質の一角を担うセキュリティを外すことはできないと考えた」と語る。
継続的なソフトウェアエンジニアリングの実現に主眼を置く運用領域では、基本的な用語や概念から解説。さまざまな知識領域を横断するものとして、アジャイル開発とDevOpsも内容を拡充させた。そのうえで継続的なビルドやインテグレーション、テストやデリバリーを行うための基礎概念を押さえつつ、コンテナ化や仮想化、ツールの種類などを参照できるよう構成している。
これらの知識体系を活用することで、アーキテクチャ設計やセキュリティ対策・運用管理など、各領域での具体的な技術や手法を参照しながら開発現場での実践力を高めることが可能だ。鷲崎氏は「複雑で不確実なソフトウェア開発の時代においても、まっとうなエンジニアリングを実現することができる」と胸を張る。
ちなみに、ホットトピックであるAIのソフトウェアエンジニアリングへの応用については、品質予測やコード補完など実践されつつあるものの、本格的な扱いは見送られた。
「機械学習ベースのアプローチには、十分にラベル付けされたデータセットを用意する必要がある」としたうえで、「Ver.5や6で、AIに特化した知識領域が追加される可能性がある」というのが鷲崎氏の見立てだ。また、ソフトウェアエンジニアリングのAIシステム開発への応用についても同様に、独立した知識領域としては設けられないものの、プラクティスの文書化や機械学習デザインパターンなどの実践されつつある分野については項目が記載される見込みだという。