ホームIT「SWEBOK(ソフトウエアエンジニアリング知識体系)」で見る、ソフトウエアエンジニアリングの今

IT Insight

「SWEBOK(ソフトウエアエンジニアリング知識体系)」で見る、ソフトウエアエンジニアリングの今

レンテックインサイト編集部

「SWEBOK(ソフトウエアエンジニアリング知識体系)」で見る、ソフトウエアエンジニアリングの今

業務生産性を向上させるため、‟標準化”を進めることの重要性はよく知られています。SWEBOK(Software Engineering Body of Knowledge、ソフトウエアエンジニアリング知識体系)は、その名の通りソフトウエアエンジニアリングの標準的な知識の集積であり、その内容がまとまったSWEBOKガイドは2024年に10年ぶりの改訂版(第4版)が発行されています。

この記事では、SWEBOKとは何か、第3版の概要、第4版の改定内容とそこから分かるソフトウエアエンジニアリングの変化について解説します。

「SWEBOK(ソフトウエアエンジニアリング知識体系)」とは? 第4版で加わる内容は?

2024年8月現在、IEEE(米国電気電子学会)がSWEBOKガイドを管理しており、33カ国150名近くの編集者のレビューを経てソフトウエア開発にあたって標準となる知見をまとめています。エンジニアの業務やトレーニング、評価などの基礎として1998年にプロジェクトが開始したSWEBOKは、エンジニアリングの知見の基盤としての役割を受け継ぎながら時代に合わせたアップデートが欠かせません。

2014年に公開されたSWEBOKガイド第3版は以下の15章で構成されており、ソフトウエアエンジニアリングの基礎となる知識、スコープを網羅しています。

1 Software Requirements(ソフトウエア要求)
2 Software Design(ソフトウエア設計)
3 Software Construction(ソフトウエア構築)
4 Software Tenting(ソフトウエアテスト)
5 Software maintenance(ソフトウエアメンテナンス)
6 Software Configuration Management(ソフトウエア構成管理)
7 Software Engineering Management(ソフトウエアエンジニアリング管理)
8 Software Engineering Process(ソフトウエアエンジニアリングプロセス)
9 Software Engineering Models and Methods(ソフトウエアエンジニアリングモデルと手法)
10 Software Quality(ソフトウエア品質)
11 Software Engineering Professional Practice(ソフトウエアエンジニアリングにおけるプロフェッショナルの実践)
12 Software Engineering Economics(ソフトウエアエンジニアリング経済)
13 Computing Foundations(コンピューティング基礎)
14 Mathematical Foundations(数学的基礎)
15 Engineering Foundations(エンジニアリング基礎)

上記の15章それぞれがSWEBOKガイドにおいてはKA(Knowledge Area:知識領域)という形で分けられており。SWEBOKガイド第4版では、ベータ版の時点で以下の三つのKAの追加が予告されています。

・2章:Software Architecture(ソフトウエア アーキテクチャ)
・6章:Software Engineering Operations(ソフトウエアエンジニアリング運用)
・13章:Software Security(ソフトウエアセキュリティ)

それぞれのKAではどのような内容が扱われているのか、また第4版で追加されるKAはどのようなトレンドを反映しているのか。次章からは、それらのポイントについて見ていきましょう。

SWEBOKガイド第3版を構成する15章の内容は?

SWEBOKガイド第3版を構成する15のKAはそれぞれどのような内容なのか。ここでは、手短に概要をご紹介します。

1章:Software Requirements(ソフトウエア要求)

ソフトウエア要求とは、ソフトウエアが満たすべき条件や機能を定義したものを指します。ここでは、ソフトウエア要求の領域を八つのパートに分け、それぞれについてさらに詳細に解説しています。

2章:Software Design(ソフトウエア設計)

ソフトウエア要求から一歩進んで、アーキテクチャやコンポーネント、インターフェースなどについて、八つのパートに落とし込んで解説しています。この10年でソフトウエア設計のプロセスでは見直しが進んだこともあり、第4版ではこの後に「ソフトウエアアーキテクチャ」が追加されることでさらに内容が充実すると予想されます。

3章:Software Construction(ソフトウエア構築)

いよいよ実際にソフトウエアをコーディングし、構築するまでの段階について言及する内容となっています。五つのパートに分けて、ライフサイクルモデルやAPIなどマネージャー、エンジニアにとって基礎となる事柄から知識がまとめられています。こちらも第4版における刷新に特に注目したい箇所です。

4章:Software Tenting(ソフトウエアテスト)

より標準化された視点の求められるソフトウエアテストの領域に関する知見が六つのパートでまとめられています。不具合の定義・区別やテストレベルごとの違いの解説など、実践的な知識も少なくありません。

5章:Software maintenance(ソフトウエアメンテナンス)

クラウド以降当たり前となったDevOpsの実践においても重要となる、ソフトウエアのリリース後のメンテナンスにおける知識が五つのパートで解説されています。第4版ではこの後に「ソフトウエアエンジニアリング運用」についての章が追加されることで、より開発と運用の一体化を前提とした内容となると予想されます。

6章:Software Configuration Management(ソフトウエア構成管理)

ソフトウエアの整合性を保ち、適切なコントロールやバージョン管理を行うために必要な知識が七つのパートでまとめられています。変更管理のためのフロー図なども掲載されており、SCMツールの機能や種別についても参考にすることができます。

7章:Software Engineering Management(ソフトウエアエンジニアリング管理)

ソフトウエア開発に関する活動をマネジメントするにあたって押さえるべき領域全てを要求定義段階からプロジェクトの終結に至るまで網羅し、さらに測定のプロセスにまで言及しています。ツールについて紹介するパートまで含め、七つのパートが存在します。

8章:Software Engineering Process(ソフトウエアエンジニアリングプロセス)

ソフトウエア開発におけるプロセスの定義から実践、測定に至るまでが工学的な観点から五つのパートにまとめられています。プロセスの評価と改善やプロダクト自体の測定についても言及されており、実践的な内容となっています。

9章:Software Engineering Models and Methods(ソフトウエアエンジニアリングモデルと手法)

ソフトウエア開発の具体的なモデルと手法について四つのパートで解説されています。そもそもモデルを構築することの意義から、モデルタイプの分析、さらに具体的なメソッドとモデルの紹介まで行われています。

10章:Software Quality(ソフトウエア品質)

ソフトウエアファーストと呼ばれるほど製品におけるソフトウエアの価値が高まった現在、さらに重要になったと考えられるソフトウエア品質について解説されています。四つのパートに分けて、品質の定義や品質マネジメントのプロセスなどについて言及しています。第4版ではこの後に「ソフトウエアセキュリティ」のKAが追加されます。

11章:Software Engineering Professional Practice(ソフトウエアエンジニアリングにおけるプロフェッショナルの実践)

ソフトウエア開発のプロフェッショナルとして忘れてはならない知見、スキル、態度についてまとめられています。三つのパートでソフトウエアエンジニアの役割からチームでの役割、コミュニケーションスキルについてまで解説されています。

12章:Software Engineering Economics(ソフトウエアエンジニアリング経済)

エンジニア・開発目線で行われてきたこれまでの解説からさらに領域を広げ、ビジネス的な視点で押さえるべきソフトウエアエンジニアリングの知見について五つのパートでまとめられています。

13章:Computing Foundations(コンピューティング基礎)

ソフトウエア開発において土台ともいえるコンピューティングの知識について、17のパートで解説されています。ノイマン型コンピューターの構成など基礎の基礎から知識を押さえ直すことができます。

14章:Mathematical Foundations(数学的基礎)

プログラミングやアルゴリズムなど、‟ソフトウエア開発にあたって必要となる”という観点から有用な数学的基礎知識が11のパートで解説されています。数式やグラフなどを用いながら具体的な例を挙げて解説されます。

15章:Engineering Foundations(エンジニアリング基礎)

最後に用意されたこの章では、エンジニアリングの基礎的なスキルとテクニックが七つのパートに絞って解説されています。エンジニアのスキルセットを抽象化した上で整理し直すにあたって有用と考えられます。

SWEBOKガイド第4版に追加される内容が示すトレンドは?

すでに述べた通りSWEBOKガイド第4版では、下記の3章が追加される予定です。

2章:Software Architecture(ソフトウエア アーキテクチャ)
6章:Software Engineering Operations(ソフトウエアエンジニアリングオペレーション)
13章:Software Security(ソフトウエアセキュリティ)

その背景にはこの10年でソフトウエアエンジニアリングにおいて、より柔軟かつ運用を見越した取り組みが求められるようになったことや、企業のIT利用が進展したことでDXの重要性が増したことなどがあります。追加された三つのKAはソフトウエア開発の上流から運用・保守フェーズまで幅広くカバーしており、各領域で共通基盤のアップデートが求められるようになった実態を反映しています。

昨今、注目を集めるソフトウエア開発へのAIや機械学習の応用は部分的に言及される可能性はありますが、独立したKAとして記述されるのは第5版以降となることが見込まれます。SWEBOKを共通のレファレンスとして活用しつつ、新技術にもキャッチアップすることが今後も求められるでしょう。

SWEBOKの原典は無償でアクセス可能。日本語資料の活用も

10年ぶりの改訂版ガイドのリリースを見越し、『SWEBOK』の価値や意義についてご紹介しました。実際の活用にあたっては、SWEBOKの原典(英語版PDF)にあたりつつ、日本語訳版やIPA(独立行政法人情報処理推進機構)が公開している解説資料などを参考にすることが推奨されます。

IT Insightの他記事もご覧ください

Prev

Next