オルタナティブ・ブログ > 森崎修司の「どうやってはかるの?」 >

計測できそうでできない多くのこと。エンピリカル(実証的)アプローチで。

大規模ソースコードを読み進めるときに使うツール

»

レッドハットのコンサルタントが使っている、未知の大規模なソースコードを読み進めるときに使うツールの紹介と読み進め方のコツが紹介された記事(ThinkIT記事)がある。

レビュー時の欠陥の指摘や不具合原因の特定等、既存のソースコードを読んでいかなければならないときに使う。そのような場合には、一般には、ソースコードファイルの1行目から順番に読み進めるのではなく、欠陥や不具合に関係する部分の制御フロー(あるいはデータフロー)に従ってソースコードを読んでいくことになるだろう。

対象ソースコードの規模が大きくなると、読んでいるうちに何をしているのかが不明確になったり、さっきまで読んでいたコードの一部を忘れてしまって再度読み直すことになった経験は誰にでも一度はあるだろう。大規模なソースコードを読み進めていくためには、頭の中での記憶だけでは限界があり、メモをとるなりしながら読み進める必要がある。

記事では、読み進めていく際にソースコードの任意の場所にメモを追記したり、自分が理解したことを記録するためのツールstitchを紹介している。Emacs Lispで書かれていて、オープンソースとしてここ(SourceForge)からダウンロードできる。ソースコード理解に必要となる典型的なパターンをタグとして文字列で指定するとそれに対応する呼び出しグラフが表示される。

作者の大和氏も相当な大食いレビューアのようだ。大食いレビューアについてはここ(本ブログの過去エントリ)で紹介した。stitchは大食い用のツールの1つといえるだろう。

3月の平日は毎日、ThinkITでインスペクション/レビューの特集記事が公開される。今回紹介した記事もその特集の1つだ。

インスペクション特集の第2週目の各記事は以下のとおり(月~金の順)。第1週目の各記事はここで紹介した。

  • 技法の分類とテンプレート(基本編) (森崎 奈良先端科学技術大学院大学)
    インスペクション/レビューでの指摘例、指摘記録の例を紹介している。アドホックリーディングと呼ばれるベーシックなレビュー、チェックリストを使ったレビューの記録テンプレートをExcelのファイルとして公開している。
  • レビューの質をモデル化する!(デンソークリエイト 竹下氏)
    レビューのカイゼン方法。いつのまにか「よいレビューをする」ことが「指摘件数の帳尻あわせをしている」にすりかわっているという問題意識からはじまり、レビューの効率化とは何か、なりたい姿をモデル化する方法を紹介している。実際にレビューに携わっている人ならば「あるある」とうなづける内容だ。
  • 定量データに基づくインスペクション(細川氏 日本IBM)
    測定とインスペクションの関係を紹介している。測定が難しい品質をどうやって計測するか?直接測りにくい品質指標を何をもって計測すべきかを日本IBMのインスペクションチームでの活動をふまえて、紹介している。また、目的指向の計測が紹介されている。品質を測定する際のコツやエンピリカルアプローチへの言及もある。
  • 自分の記憶頼りにレビューしていないか?(大和氏 レッドハット)
    上で紹介したとおり。
  • 本当に役立つレビュー教育を行うには(小笠原氏 東芝)
    東芝でのソフトウェアレビュー教育を踏まえた、レビューを実施する前に気をつけておくべき点を紹介している。「作成者ではなく成果物のレビューである」という基本。レビューミーティング中の発言の例も紹介されており「…のところは~の理由で方針に従っていないと思います」といった望ましい指摘方法が紹介されている。
Comment(0)