Lazy Diary @ Hatena Blog

PowerShell / Java / miscellaneous things about software development, Tips & Gochas. CC BY-SA 4.0/Apache License 2.0

ソフトウェア工学分野における知識体系

satob.hatenablog.com

私が大学の頃に授業で紹介されていたComputing Curricula 1991 (CC91)は、その後2005年にComputing Curricula 2005 (CC2005)*1、2020年にComputing Curricula 2020 (CC2020)*2として改訂が行われている。内容も年を経るごとに大幅に拡充されており、CC2020ではその下にいくつかの分野(Computer Engineering, Computer Science, Cybersecurity, Information Systems, Information Technology, Software Engineering)に分かれたカリキュラム(Volume)があり、それぞれの分野ごとにカリキュラムが検討されている*3。たとえば計算機科学分野(Computer Science)では、CS2020の下にはCS2013 (Computer Science Curricular Volume)があった。現在はComputer Science Curricula 2023*4がベータ版として検討されている。

さて我らがソフトウェア工学分野はというと、CC2020から参照されている学部生向けのSoftware Engineering 2014 (SE2014)*5からその後更新はされていないように見える。院生向けにはGSwE2009*6があるようだ。

またこれとは別に、ソフトウェア工学に関する知識体系というとSWEBOK*7が思いつく。SE2014を策定する際もSWEBOKを参照しているようだ。SWEBOKはV3が最新版で、現在V4がパブリックプレビューに入っている。なおV3は日本語訳も出版されているが、Amazonには翻訳の質を問題とするレビューが並んでいる*8

また、ソフトウェア工学を含む領域としてシステム工学(Systems Engineering)を考えることもできる。今回調査して知ったのだが、ACMIEEEがまとめているわけではないが、BKCASEという組織がシステム工学に関する知識体系であるSEBoKを作成しているようだ*9。もちろん「システム工学」が対象なので、情報システム以外のシステム工学分野、たとえば医療システム分野の内容なども含まれているようだ。

なお、CC91や2005の影響を受けて日本ではどのような検討がなされているか?という点についてだが、まず1999年に情報処理学会が「大学の理工系学部情報系学科のためのコンピュータサイエンス教育カリキュラムJ97」*10を作成した。これもCC同様に改訂がされており、カリキュラム標準J07*11、カリキュラム標準J17*12が公開されている。CCと同様に、こちらも分野ごとに分かれた検討がされている。シラバスには日本語で参照できる参考文献が記載されており、学習の際の参考にできる。上記を受けた動きとして、文部科学省も「超スマート社会における情報教育の在り方に関する調査研究」*13をまとめている。

これらのまとめについて、日本語だと以下のページが概観によいだろう。 zenn.dev