2010年2月24日水曜日

ソフトウェア工学教育の問題点(2)

ここ最近,複数の方とソフトウェア工学の教育について議論する機会がありました.

前回指摘した問題点で示唆されるのが,大学で行われているソフトウェア工学の教育は企業で求められる水準を満たしていないという点です.では大学で教えるべきソフトウェア工学の教育とはどのようなものでしょうか?

大学も産業界も納得しそうな落としどころとしては大学はすぐに陳腐化しない普遍的な基礎について教えるべきであるという考え方です.実際,他の工学分野ではそのような教育方針がとられており,うまく機能していると考えられます.

しかしソフトウェア工学の場合には,ここに本質的な問題点があると僕は考えます.情報とりわけソフトウェアの分野ではそもそも「陳腐化しない普遍的な基礎」と,それを教育する方法が確立されていないのではないかということです.

たとえば,他の工学から推論すると,古典的な構造化設計で重要視される原理・原則と,(ちょっと古いですが)オブジェクト指向設計で重要視される原理・原則は,何かしらの一貫性をもって説明できると考えられます.もし,それらに一貫して存在する原理・原則があれば,それは陳腐化しない普遍的な基礎である可能性が高いと思います.

しかし古典的な理論と最新の理論をそのように関連づけて一貫性をもって論じている大学がどれほど存在するのでしょうか.コンピューター関連分野の技術進歩は日進月歩なので,古典的な理論との一貫性を考慮している暇がないのでしょう.

それでもソフトウェア工学を自らの議論ですすめている欧米ならば,最新理論も古典的な理論での議論を背景に積み上げているので,彼らの世界の中では一貫性を保っているのでしょう.しかし,それをキャッチアップする立場である日本ではついていくのが精一杯で,キチンと考察するのをサボってきたのだと思います.

産学連携がうまくいかなかったことも大きな要因だと思います.もし産と学が日常的に議論していれば,最新技術と既存技術の整合性についても議論されただろうと思います.その結果,理論・教育と実践に大きなギャップがあります.

とても遠い道のりですが,SWEBOK などを参考に,ソフトウェア工学理論の再解釈をしていく必要があるのでは,と思っています.それを踏まえた上で,最適な教育方法を議論していくのが本筋だと思います.

とはいうものの,今年OOP演習の教材を作らなければならない身としては,そんな悠長なことは言っていられないのも事実です.うまく落としどころを見つけて,ベストではないにしてもベターな教材を開発するしかないと思っています.この大きな問題を認識はしますが,完全な解決を性急に求めないようにしようと思います.