2009年11月21日土曜日

SWE619 OO Software Specification and Construction

早いもので、もう11月下旬になってしまいました。遅くなってしまいましたが、2009年度Fallセメスターで履修している二つのコースを紹介します。今日はそのうちの一つ、SWE619です。

SWE619
講義名は「OO Software Specification and Construction」です。以下、シラバスからの引用です。
To give the students a solid understanding of modern software construction. To prepare students to construct sequential and concurrent programs. To encourage the construction of software systems of high quality. In-depth study of software construction in a modern language including control structuring and packaging. Concepts such as information hiding, data abstraction, and object-based and object-oriented software construction are discussed and illustrated. This course is part of the core of the SWE program. This section of 619 uses Java.
講師はDr. Ammann。Dr. Offuttと同じくソフトウェアテスティングを専門とされている先生で、次回ご紹介するテスティングのクラスで使われている教科書の著者でもあります。

教科書について
この講義では、Javaを例にソフトウェアの実装について学びます。より具体的には、アカデミック界および産業界の双方から見出された実装のベストプラクティスを学ぶ、と言ってよいのではでしょうか。というのは、この講義では以下の2冊を教科書とし、ほぼその内容を学ぶからです。
以下の2冊を教科書としてそれらの内容を学びます。
  • Program Development in Java, Barbara Liskov
  • Effective Java 2nd Edition, Joshua Bloch
2冊ともとても有名な本ですね。1冊目はアカデミック界からMIT教授のLiscov氏による著書、一方2冊目は産業界から元Sun MicrosystemsのBloch氏による著書。

実は、1冊目については、以前勤めていた会社の研修において「設計論」というタイトルで、コンパイラで有名な法政大学の中田先生から学んだことがあります。一方、2冊目については、1st Editionの日本語版を読んだことがあり、良い復習になっています。振り返ると、日本語版は小難しく書かれていて、英語版の方が読みやすい気がします。

講義の内容
前半はLiskovの本を中心に、ソフトウェアモジュール(メソッド、クラス)の仕様(Precondition, Postcondition, Invariant等)の定義および同仕様に対する実装方法等について学びました。時折、2冊目の教科書を用いて、Exception、Generics、Concurrency等を学びました。先週、デザインパターンを学んだところです。

毎週宿題が出題され、全て個人プレーで取り組みます。また、毎回講義の最初にクイズが出題され、前回学んだ内容について確認します。特にグループワークはありません。

上記のように、このコースでは私の大好きな実装について学ぶので、とても楽しんで受講しています。しかも、使用している教科書からもお分かりのように、このコースの内容は、信頼性・保守性の高いプログラムを作成する上で学ぶべき内容が盛りだくさんで、とても素晴らしいコースだと思います。

0 件のコメント: