SWEBOK V3 を読んでみた。

SWEBOK V3がやっと、2014/11/21にリリースされた。4,000円だ。私も昨日購入して、ざっと眺めてみた。SWEBOK 2004版が2005年に出てから9年以上も経過しているのに、内容はあまり変化がないなというのが感想だ。これまでの10個の知識領域で比較すると、新たな記述はアジャイルプロセスや再利用に関する部分が補充されている程度だ。

SWEBOK V3のドラフト版では、ソフトウェア計量(Measurement)、ソフトウェアセキュリティ(Security)も知識領域として挙がっていたが、独立した知識領域にはならなかったようだ。そのため、10個の知識領域も大して変化のないものになっている。ただ、10個の知識領域もあらたに訳し直したようで、2004版での誤訳が多くの箇所で修正されていた。

知識領域にもう1つ「プロとしての実践(Professional Practices)」が追加され、さらに4つの教育領域が追加されている。エンジニアリング経済基礎(Engineering Economics foundations)、コンピュータ基礎(Computing foundations)、数学基礎(Mathematical foundations)、一般エンジニアリング基礎(Engineering foundations)だ。これら5つの領域も2005年にはCSDPのシラバスとしてSWEBOKとは別に存在していたので、それらがマージされただけと言える。SWEBOKは、当初よりプロ(職業人)としての拠り所となるだけでなく、ソフトウェアエンジニアリングを学ぶ学生のベースになるものとされていた。2004年版は前者にしか対応できなかった(間に合わなかった)が、V3でやっと後者にも対応できたということだろう。なお、V3での訳語はどうも気に入らない。専門技術者実践規律ではないように思うし、計算基礎よりコンピュータ基礎の方が適切だと思うな。

数学基礎

教育領域の内容は難しいな。たとえば、数学基礎の教育領域だ。日本語訳が難解すぎる。訳語が適切でない感じがする。知らないのだが「戦前」の数学ではないか。訳者が数学を知らないのかもしれない。たとえば、以下のような訳語が使われている。


×分布法則 --> ○分配則、分配律
×矛盾を使う証明 --> ○背理法
×帰納推論を使う証明 --> ○帰納法
×一致(Identity)、一致要素 --> ○単位元
×逆転(Inverse)、逆要素 --> ○逆元
distributiveは一般には「分配」だと思うが「分布」と訳されている。分配法則、分配律と呼んでほしいのに、分布法則となっている。聞いたことがない。上記のように一般的な背理法帰納法単位元、逆元といった用語も使われていないのだ。誤植もあった。矛盾律が「矛盾率」になっている。構成は以下の感じだ。以前、ドラフトで出ていた構成と変わってはいない。

14 数学基礎(Mathematical foundations)
+-- 1 関数、関係、集合(Functions, Relations, Sets)
| +-- 1.1 集合演算
| +-- 1.2 集合の性質
| +-- 1.3 関係と関数
+-- 2 論理
| +-- 2.1 命題論理(prepositional)
| +-- 2.2 述語論理(predicate)
+-- 3 証明法
| +-- 3.1 定理証明法
| | +-- 直接証明(direct)
| | +-- 背理法(contradiction)
| | +-- 帰納法(inductive)
+-- 4 計数(Basic Counting)
+-- 5 グラフとツリー(Graphs, Trees)
| +-- 5.1 グラフ
| +-- 5.2 ツリー
+-- 6 離散確率(Discrete Probability)
+-- 7 有限ステートマシン(Finite State Machines)
+-- 8 文法(Grammars)
| +-- 8.1 言語認識
+-- 9 精度と誤差(Numerical precision, accuracy, errors)
+-- 10 数論(Number Theory)
| +-- 10.1 整除性
| +-- 10.2 素数、最大公約数
+-- 11 代数(Algebraic Structures)
+-- 11.1 群
+-- 11.2 環
さらに命題論理の解説の中が、明治時代的だ。

conjunction 連言 --> 論理積(∧)
disjunction 選言 --> 論理和(∨)
implication 含意 --> 導出(→)
tautology 恒真
contradiction 矛盾
contingency 随伴
私は、連言、選言、含意、恒真、随伴という表現を知らなかった。こんな用語がソフトウェアエンジニアリングに必要なのか。「→」のマークを「含意」と呼ぶそうだ。私は「ならば」くらいにしか読んでなかった。連言、選言は、論理積論理和で十分だろう。恒真に至っては仏教用語かと思った。「常にtrue」という意味で恒真というのか。
といった感じで、SWEBOK V3の教育領域が一体何に利用できるか、悩んでいる。