SWEBOK 2010版がそろそろ出るか

[2011/08/16追記]この記事は古いので注意ください。現在は
SWEBOK Version 3として改訂作業が進行中のようです。

SWEBOKの動向をご存知だろうか。今年2010年にSWEBOK 2010というバージョンがリリースされるようだ。現在一般に利用されているSWEBOKは2004版だ。当初、2008年には改訂版が出ると言われていたが、すでに2年を超過した。やっと改訂されるのだ。正確な時期ははっきりしないが2010年半ば(2010年4月〜6月あたり)にはリリースするとIEEE Computer Societyは言っているようだ。

SWEBOK 2010は、SWEBOK 2004と何が大きく変わるのか見ておく。

まず、追加される知識領域(KA)がいくつかある。Measurement(計量)とSecurity(セキュリティ)だ。計量については、ドラフト版が公開されている。既に12章だと決められているのか。とくにGQM(Goal-Question-Metric)に着目している感じがある。またセキュリティについては、Security-oriented Point-wise Changes to SWEBOKに情報がある。

また、SWEBOK 2010での改訂では、(1)プラクティスの変更、(2)新たなビューポイントの追加、(3)知識体系の洗練の3つの方針で行うとある。「(1)プラクティスの変更」では、新たなツールや手法、トピックをグッドプラクティスとして追加しているとある。変化する環境の中で新たなソフトウェアエンジニアリングのツールや手法がグッドプラクティスとなってきたし、実証されたトピックは一般化した知識として安定してきた。SWEBOKガイドでは広くて長寿命のプラクティスに焦点を当てているが、ビジネスや業務の変化の中にソフトウェアを順応できることが重要である。セキュリティに対する注目度はさらに高まっているし、経済学(Economics)にもソフトウェアエンジニアリングでのベストプラクティスな手法の影響が大きくなっている。

また、ソフトウェアエンジニアリングのディシプリンに特化したCSDP試験(Certified Software Developer Professional)というものが実施されているが、それとの融合が検討されている。SWEBOK試験と呼んでいいだろう。その試験のシラバスに関する情報も当然、SWEBOK内で提供されるであろう。特に、CSDPには「Business Practices and Engineering Economics」という知識領域があるので、それをSWEBOKに反映させる必要がある。これはPMPやCBAPにもあるプロとして仕事をするための倫理や行動指針などと思われる。「(2)新たなビューポイントの追加」の説明では、CSDP試験と、またそれとは微妙に異なるカリキュラム(Software Engineering 2004 curriculum guide)の両方を取り込んで、独立した知識領域にすることを検討しているとある。

また「(3)知識体系の洗練」としては、2004で取り上げた参照文献を見直して改訂したり、新たな文献の追加を行うそうだ。

これらの情報をもとにどういった体系になりそうか、推測を含めて整理してみる。まず、SWEBOK 2004は以下の構成であることを復習しておく。SWEBOKは、ソフトウエアエンジニアリングのディシプリンについて10個の知識領域(KA)で体系化している。ソフトウエアエンジニアリング以外に関連するディシプリンとして8個を挙げていた。今回、SWEBOK 2010ではそれらの関連ディシプリンのうち3つを吸収することになる。

SWEBOK 2004 
|
 +-- 関連ディシプリン
| +-- コンピュータ工学(Computer Engineering)
| +-- コンピュータ科学(Computer Science) # 2010でKAになる
| +-- 経営学(Management)
| +-- 数学(Mathematics) # 2010でKAになる
| +-- プロジェクト管理学(Project Management)
| +-- 品質管理学(Quality Management)
| +-- ソフトウェア人間工学(Software Ergonomics) # 2010で取りこまれる
| +-- システム工学(Systems Engineering)
 |
+-- 知識領域 (10 KAs)
+-- ソフトウエア要求
+-- ソフトウエア設計
+-- ソフトウエア構築
+-- ソフトウエアテスティング
+-- ソフトウエア保守
+-- ソフトウエア構成管理
+-- ソフトウエアエンジニアリングマネジメント
+-- ソフトウエアエンジニアリングプロセス
+-- ソフトウエアエンジニアリングのツールと手法 # 2010で手法のみとなる!
+-- ソフトウエア品質
これがSWEBOK 2010では次のようになると思われる。従来の知識領域に対してCSDPに関係する部分がProfessional Practicesの知識領域としてまとめられるようだ。Professional Practicesがどのように体系化されるかの正確なことは不明だ。

SWEBOK 2010
|
 +-- 関連ディシプリン
| +-- コンピュータ工学(Computer Engineering)
| +-- 経営学(Management)
| +-- プロジェクト管理学(Project Management)
| +-- 品質管理学(Quality Management)
| +-- システム工学(Systems Engineering)
| +-- ※Computer Science, Mathematics, Software ErgonomicsはKAとして具体化
|
+-- 知識領域 # KAは12個に増える
| +-- ソフトウエア要求
| +-- ソフトウエア設計
| +-- ソフトウエア構築
| +-- ソフトウエアテスティング
| +-- ソフトウエア保守
| +-- ソフトウエア構成管理
| +-- ソフトウエアエンジニアリングマネジメント
| +-- ソフトウエアエンジニアリングプロセス
| +-- ソフトウエアエンジニアリング手法 # ツール部分は各KAに分散!
| +-- ソフトウエア品質
 | +-- ソフトウエア計量(Measurement) # New!
| +-- ソフトウエアセキュリティ # New!
|
+-- Professional Practices知識領域 # 上記12個のKAとは区別されるだろう
|
+-- Engineering Economy Foundations # プロとしてのエンジニアの行動指針か?
+-- Computing Foundations      # 2004でのComputer Scienceに相当
+-- Mathematical Foundations  # 2004でのMathematicsに相当
+-- Engineering Foundations  # CMMI的な捉え方か?
2004での10個のKAでは、ソフトウエアエンジニアリングのツールと手法の構成が変わる。ツールについては各KAに配分して記述され、複数のKAに関係する手法のみを「ソフトウエアエンジニアリング手法」として扱うようだ。同じように計量とセキュリティに関して、他のKAに分散していたものを集約して記述するようだ。

また、SWEBOK 2004で明示されていた3つのディシプリンはKAとして吸収するとある。コンピュータ科学(Computer Science)、数学(Mathematics)は、2010ではProfessional PracticesのKAとして具体化されることになる。認知科学とか数学とか形式的手法などの学術的な部分が強化されそうだ。また、ソフトウェア人間工学(Software Ergonomics)は、HCI(Human-Computer Interfaces)に関する情報がソフトウエア設計とソフトウエアテスティングのKAに配分されて記述されるようだ。

よく分からないのがEngineering Economy FoundationsとEngineering Foundationsだ。推測だが、Engineering Economy Foundationsでは、CSDPの「Business Practices and Engineering Economics」といった知識領域の記述になると思われる。エンジニアリングのプロとして仕事をするための倫理や行動指針、一般的なビジネス知識、コミュニケーション能力やリスク管理能力などだ。見積りやROIの話も含まれる。(※なお、ネット情報にはProfessional Practicesを単独のKAとしてプロとしての行動指針などを語る、という情報もあった。その場合、Engineering Economy Foundationsには、利益に絡む意思決定、見積り、ROIなどの情報が整理されることになる。)

また、Engineering Foundationsは、システムエンジニアリングやコンピュータエンジニアリング(ハードウェアエンジニアリング)のことなのか、ソフトウェアエンジニアリングのことなのか、それらを総称した一般的なエンジニアリングなのかがはっきりしない。おそらく3番目の総称的なエンジニアリングの可能性が高い。CMMIに近いハードウェア、システム、ソフトウェアを区別しないエンジニアリングの本質が記述されるのだろう。前述の12個のKAと非常に重複するし、Computing Foundationsとの境界もはっきりしない。計量法、統計分析、根源的原因分析、シミュレーションやプロトタイピングなどの技法の応用が語られるのではないだろうか。

[2010/01/12追記]

上記のSWEBOK 2010の構成は、若干違っているかもしれない。他のニュースで、2010の改訂ではProfessional Practicesの知識領域(knowledge area)と、4つの新しい教育領域(education area)を追加するという記述が見つかった。それに従うと、以下のような構成になるだろう。

   +-- 知識領域 (12 KAs)
| ... 中略 ...
|
+-- Professional Practices知識領域(プロとしての実践)
  +-- 4つの新しい教育領域 (education area)
+-- ソフトウェアエンジニアリング経済基礎 (Engineering Economy Foundations)
+-- コンピュータ基礎 (Computing Foundations)
+-- 数学基礎 (Mathematical Foundations)
+-- 一般エンジニアリング基礎 (Engineering Foundations)
Professional Practicesは、何と訳せばいいのか分からないが、ソフトウェアエンジニアリングのプロとしての行動指針といえる。とりあえず「プロとしての実践」としておいた。これを既存の12個(2004では10個)の知識領域と同等に扱うのかどうかは不明だ。異質な感じを受けるので、上記では別物としておいた。また、知識領域ではなく、教育領域という表現で4つの領域を整理しようとしていることが記述されていた。Engineering Economy、Engineering Foundationsの中身はまだはっきりしないままだ。

[2010/01/13追記]

SWEBOK 2010の改訂の本質についての情報を「SWEBOK 2010で何を改訂しようとしているのか」に補っています。また、SWEBOK 2010版のリリースは2010年4月〜6月あたりと思われる。これはCSDPの2010版がその時期にリリースされるとの記事があり、当然SWEBOKもそれに合わせてリリースされなければならない。むしろその前にリリースされるべきだろうから早ければ2010年3月かもしれない。おそければ、2004のときのように1年遅れということもあるかもしれない。

[2010/01/15追記]
Professional Practicesの知識領域と4つの教育領域についてもかなり内容が見えてきた。「SWEBOK 2010に追加される教育領域とは」に補っています。CSDPについても「SWEBOKベースのCSDP試験とはどんなもの?」にまとめています。