NAISTソフトウェア設計学講座をちょっと見学してきた

奈良先端科学技術大学院大学情報科学研究科サマーブートキャンプ2009の前日(9日)からゲストハウスせんたんに泊まらせていただいています。浴槽が広くて椅子がいいです!
きょうの午前にソフトウェア設計学講座という講座を見学しました。ソフトウェアのつくり方やその支援ツールについて研究しているところです。助教の先生にとてもていねいに対応していただきました。
現実のプロジェクトを参考にした実学指向であることが特徴的です。分析者によるシステム開発の知識共有サイクル(Knowledge Feedback Cycle)の提案や、プロジェクトの進捗をいろんな尺度や時系列で分析できるツール(プロジェクトリプレイヤ)を紹介していただきました。デザインパターンや重複コードの抽出など、設計やコーディングの品質を高める方法も研究されています。ツールのいくつかは公開されています(研究内容)。
さいきん『パターン、Wiki、XP』で刺激を得たこともあり興味深く聞けました。僕にとって理想のソフトウェア開発は、開発に関わるすべてのひとが楽しく参加できることです。たとえば、システムあるいは作業の目的をみんなが共有し、各々が目的への貢献を実感できる仕組みが有効だと思います*1。ソフトウェア開発方法論の研究は、よいソフトウェアをはやくつくるとともに、開発を楽しくするためのツールとしても可能性をもつと思いました。
Wikiばな」でもあらためて感じましたが、開発者じゃないひともよろこぶには、コーディングの支援だけでなく「欲しいひと」「つくるひと」「使うひと」が理解し合うことが大切です。設計や分析のプロセスも研究しているソフトウェア設計学講座なら、そういう観点からすてきなソフトウェア開発のあり方にアプローチできると予感します。コミュニケーション能力などといってお茶を濁さずに、方法、技術、あるいはパタンとよべる成果を生み出すことがこの分野の学問の使命でもあると勝手に感じます。
いわゆる「ソフトウェア工学」の主流がいまどういうものかは存じていませんが、ソフトウェア開発のさまざまなプロセスに注目するソフトウェア設計学講座の姿勢には強く興味を覚えました。



一日目午後:社会ネットワーク分析の基礎
二日目:ネットワークの特徴量、Pajekの使い方
三日目:バグトラッキング分析、コミュニティ抽出

*1:たとえば以下の「ユースケース」についてのやりとりは示唆的でした。必要なときにユースケースを書き、書くひとと読むひとの両方がその意味を理解し合うことができるなんていう理想を思いえがきたくなります。戯曲風味・開発研修(1) - 歩きつづける ゆり 咲きつづける