メトリクスとは何か

今、メトリクスが最新な理由 モデリングの最新動向を紹介する本連載の最後は、モデル化の最新技法ではなく、モデルのメトリクス(評価尺度)を取り上げ、Javaを例に代表的なメトリクスの解説とツールの紹介、開発現場での適用について解説します。

長谷川 裕一

2008年4月28日 20:00

今、メトリクスが最新な理由

 モデリングの最新動向を紹介する本連載の最後は、モデル化の最新技法ではなく、モデルのメトリクス(評価尺度)を取り上げ、Javaを例に代表的なメトリクスの解説とツールの紹介、開発現場での適用について解説します。

 モデルのメトリクスとは、モデルを構成するクラスやメソッド、クラス間の関係、パッケージ間の関係などを、複雑さや結合度、凝集度などの観点から測定し、数値として表すものです。メトリクスを利用することで、モデルを簡単に評価することができるようになります。

 コード行数や欠陥除去率など多くのメトリクスは、1970年代に確立されています。本記事で紹介するモデルのメトリクスの考え方は主に1990年代に確立されていますが、組み込み系のごく一部を除いて、現在に至るまであまり話題になることもなく、開発の現場でもほとんど利用されていないという状況にあります。

 しかし、今後はモデルのメトリクスを開発の現場で取り入れることが、最新の流行となってくると予想されます。

 その理由の1つは最近、システム開発や保守における、ソフトウェア品質に大きな注目が集まっており、モデルのメトリクスはソフトウェア品質を可視化することに非常に役立つからです。

 現在、ソフトウェアは社会インフラとなりつつあります。ソフトウェアの障害が人々の社会生活に与える影響の大きさから、システムの開発と保守におけるソフトウェア品質の管理にはさまざまな企業が頭を痛めています。なにしろ効率よくソフトウェア品質を管理するためには、ソフトウェアを何らかの形で測定できなければいけないからです。

 今までもソフトウェアの品質は測定されてきました。しかし、それは不完全で、テスト項目の数だけ、あるいは障害の数だけを集めたものであったり、良くてテストのカバレッジ率を保証しただけに過ぎませんでした。

 ソフトウェアのモデルは複雑過ぎないか、テストしやすいモデルなのか、保守しやすいモデルになっているかの観点は完全に抜け落ちていましたが、ソフトウェア品質とは本来このような要素も含まれていなければならなかったはずです。モデルのメトリクスを利用すれば、そのような観点からもソフトウェアを測定できるようになります。

メトリクス測定のためのツールの登場

 さらにもう1つの理由として、モデルのメトリクスを測定するためのさまざまなツールが、最近になって登場したことがあげられます。メトリクスの測定というのはエンジニアが自らの手で測定できるようなものではありません。例えばコード行数でさえもツールを使わずに数えることは苦痛です。コード行数よりも複雑なメトリクスになると、たとえそれが優れた理論で、かつ品質を管理するのに有効であったとしても、ツールなしに利用することは非現実的です。現在までメトリクスが開発の現場で普及しなかった大きな理由もそこにありました。

 しかし、そのメトリクスを測定する優れたツールが今や有料、無料といろいろあります。ツールを使うことでモデルのメトリクス測定を自動化し、それを開発工程に組み込むことで、モデルを管理することができるようになります。

 モデルのメトリクスを利用して、開発の初期段階から、モデルを管理することは、単にソフトウェア品質を高め維持するだけではありません。モデルのメトリクスを使いモデルを適切な状態にすることで、生産性の向上や開発/保守コストの削減も期待できます。

 さて、次のページからは、モデルのメトリクスについて具体的に解説していきます。モデルのメトリクスは大きく分けて、パッケージ、クラス、メソッドの3つに分類することができると思います。それぞれの代表的なメトリクスについて解説しましょう。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30