メトリクスとは何か
今、メトリクスが最新な理由
モデリングの最新動向を紹介する本連載の最後は、モデル化の最新技法ではなく、モデルのメトリクス(評価尺度)を取り上げ、Javaを例に代表的なメトリクスの解説とツールの紹介、開発現場での適用について解説します。
モデルのメトリクスとは、モデルを構成するクラスやメソッド、クラス間の関係、パッケージ間の関係などを、複雑さや結合度、凝集度などの観点から測定し、数値として表すものです。メトリクスを利用することで、モデルを簡単に評価することができるようになります。
コード行数や欠陥除去率など多くのメトリクスは、1970年代に確立されています。本記事で紹介するモデルのメトリクスの考え方は主に1990年代に確立されていますが、組み込み系のごく一部を除いて、現在に至るまであまり話題になることもなく、開発の現場でもほとんど利用されていないという状況にあります。
しかし、今後はモデルのメトリクスを開発の現場で取り入れることが、最新の流行となってくると予想されます。
その理由の1つは最近、システム開発や保守における、ソフトウェア品質に大きな注目が集まっており、モデルのメトリクスはソフトウェア品質を可視化することに非常に役立つからです。
現在、ソフトウェアは社会インフラとなりつつあります。ソフトウェアの障害が人々の社会生活に与える影響の大きさから、システムの開発と保守におけるソフトウェア品質の管理にはさまざまな企業が頭を痛めています。なにしろ効率よくソフトウェア品質を管理するためには、ソフトウェアを何らかの形で測定できなければいけないからです。
今までもソフトウェアの品質は測定されてきました。しかし、それは不完全で、テスト項目の数だけ、あるいは障害の数だけを集めたものであったり、良くてテストのカバレッジ率を保証しただけに過ぎませんでした。
ソフトウェアのモデルは複雑過ぎないか、テストしやすいモデルなのか、保守しやすいモデルになっているかの観点は完全に抜け落ちていましたが、ソフトウェア品質とは本来このような要素も含まれていなければならなかったはずです。モデルのメトリクスを利用すれば、そのような観点からもソフトウェアを測定できるようになります。
メトリクス測定のためのツールの登場
さらにもう1つの理由として、モデルのメトリクスを測定するためのさまざまなツールが、最近になって登場したことがあげられます。メトリクスの測定というのはエンジニアが自らの手で測定できるようなものではありません。例えばコード行数でさえもツールを使わずに数えることは苦痛です。コード行数よりも複雑なメトリクスになると、たとえそれが優れた理論で、かつ品質を管理するのに有効であったとしても、ツールなしに利用することは非現実的です。現在までメトリクスが開発の現場で普及しなかった大きな理由もそこにありました。
しかし、そのメトリクスを測定する優れたツールが今や有料、無料といろいろあります。ツールを使うことでモデルのメトリクス測定を自動化し、それを開発工程に組み込むことで、モデルを管理することができるようになります。
モデルのメトリクスを利用して、開発の初期段階から、モデルを管理することは、単にソフトウェア品質を高め維持するだけではありません。モデルのメトリクスを使いモデルを適切な状態にすることで、生産性の向上や開発/保守コストの削減も期待できます。
さて、次のページからは、モデルのメトリクスについて具体的に解説していきます。モデルのメトリクスは大きく分けて、パッケージ、クラス、メソッドの3つに分類することができると思います。それぞれの代表的なメトリクスについて解説しましょう。