ソフトウェア規模のグラフ軸が対数、自然言語処理、Econometrics, MDD+TDD
半月以上経ったが、Innovate 2010で聴講してきたセッションの話。ここ(本エントリの過去エントリ)でも書いたが、途中から参加した。企業主催のカンファレンスだと少数のセッション、それぞれのセッションには大勢の聴講者が参加し、なんとなく「拝聴する」という形式が多いように思うが、プレナリセッション以外は、並行して進むたくさんのセッションに20~50人程度の聴講者が参加し、かつ、講演者が発表中でも質問できるようなカジュアルな形式。講演者というよりは、どちらかというと発表者というほうがイメージに合う。
私が聞いたセッションのうち特に気になったもの4つを紹介したい。
1. Putnam Jr. 氏の講演(パネル)
参加登録を済ませた後、最初に聞いた講演はPutnam Jr.氏のもの。Putnam氏は非常にたくさんのプロジェクトのメトリクスを計測、分析、評価しているソフトウェア計測の大家だ。パネルの前段のプレゼンテーションでもグラフの中のソフトウェア規模の軸は対数変換してある等、メトリクス研究に従事しているものとしてはグッとくることが多い。散布図にするとき等、ソフトウェアの規模はそのまま使うよりも対数変換しておいたほうが傾向が理解しやすい。非常に大きいものは他を大きく引き離して大きいことが多いからだ。「パットナム来てるんや」というインパクトも大きかった。
2. 要求文書を自然言語処理して潜在的な不具合を発見する技法(ツール)
Lexical analysis, Syntactical analysis、チェックリストを使って、要求文書の曖昧さや矛盾を検出しようとする技法とツールの紹介。ブラジルの航空機製造会社の情報部門の方がプレゼンされていた。自社内で使っている飛行機への要求を明らかにするための技法やツールを外販しようとしている。3つの方法の簡単な説明は次のとおり。
- lexical analysis: "hot"や"quickly"等の単語はどの程度かという具体的な指標がなければ、解釈が難しい場合が多い。これらの単語がある場合で、具体的な値が示されていなければ、その旨の警告を提示する。他にも、"TBD"や"if necessary"等の単語や組合せも警告の対象だそうだ。
- syntactical analysis: 要求を表す文章をcondition, actor, action, constraint, object of action, complement of objectで分類し、指定されていないものを提示する。制約条件が明示されていなかったり、文章の主語や主体が明確でないことがユーザに提示される。
- チェックリスト: 経験的にあまりよくないとされる条件にあてはまるものを警告として提示する。1文の中に"shall"が2回入っている等
3. 基調講演4日目(Software & Systems Econometrics)
ソフトウェアの価値を定量化し価値を明示的に扱っていこう、という話。ソフトウェア開発やシステムによって、生み出した価値を計測する。価値は、コスト、品質、リスクのような項目をさらに推し進めたものだそうだ。発生した利益の場合もあるし、社会貢献の度合いの場合もある。その評価尺度をSoftware & Systems Ecoometricsと呼ぶそうだ。パフォーマンスベース契約(本エントリの過去エントリ)でのソフトウェアやシステムの価値と類似の考え方だと思う。
4. MDD+TDD
アルプス電気の方のご講演。テスト駆動開発とモデルベース開発をMixしたもの。非常に興味深い組合せ。テストコードを書いて、モデルから導出したコードをテストする。モデルベースの部分が設計の検証を、テスト駆動の部分が要求にあっているかを検証する。日本文化を押し出す感じのプレゼンに欧米人が食い入るように聞く姿が印象的だった。取り組み自体も興味深い。日本語版でビデオも公開されているので、こちらをご覧いただくのも1つだと思う。