SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

開発生産性向上に寄与するツール大研究(AD)

目視のコードレビューまかせにしない!静的解析ツール「Axivion Suite」で業界最高水準のソフトウェア品質を担保

  • このエントリーをはてなブックマークに追加

コードレビューやリファクタリングの落とし穴とは?

 しかし、目視のコードレビューにも問題がある。一つは人力で行うので工数がかかること。そして正確性に劣ることだ。

 特に急ぎの案件では、ルールチェックに時間をかけられず、おざなりになってしまうこともある。「人間関係の問題も絡んでくる」と平井氏。前職で車載システムのアプリケーション開発に従事していた平井氏は、「例えばチーム内でコードレビューをする際、先輩のコードに指摘をするのには、心理的抵抗感も生まれやすいのでは」と言う。

 もう一つの方法として挙げられるのがリファクタリングだ。だがリファクタリングにも課題がある。リファクタリングはソースコードの挙動を変えずに内部構造を整理することだが、「その作業もやっぱり時間がかかり、大変。それに、大規模なリファクタリングには新たな不具合を作りこむリスクもあります」と平井氏は言う。小幡氏も「時間がなくて、そこまで手が回わらないことが多い。また意思決定者の視点でも、リファクタリングは機能追加やバージョンアップなどのような、市場に対して魅力を提供するものでもないので、どうしても後回しにしがち」だと付け加える。リファクタリングも手直しの作業なので、さらに不具合を作り込んでしまうリスクもある。年数を経たコードだと複雑すぎて、リファクタリングに手を付けられない場合もある。

Axivion Suiteでコードレビューとリファクタリングを自動化

 これまで挙げたようなソフトウェアの劣化を防ぎ、長期間にわたって健康的なソースコードを保てるようにするのが、Axivion Suiteである。Axivion Suiteを使用すると、これまで目視で行っていた確認を自動化できるようになる。

 検知された問題はWebブラウザベースのAxivionのGUI上で確認される。ソースコードの変更によって新しく追加された問題が表示され、さらに誰がいつその問題を作り込んだのか、誰がいつその問題を直したのかなども見ることができる。

 一般的な静的解析ツールとの大きな違いは、検知された問題の差分のみを表示できることだ。他のツールは一度解析にかけると、大量の問題が表示され、どこから対処すればよいのかわからなくなることも多い。

 だがAxivion Suiteなら、「この時点で追加したもの」というように時間軸を絞って確認できるという。Axivion SuiteはVisual StudioやVisual Studio Code、EclipseなどのIDEのプラグインを提供しており、IDEと統合することもできる。これを使うとローカルのIDE上で開発者自身が解析を実行できるようになる。

Axivion SuiteのCI(継続的インテグレーション)への連携例。解析結果はWeb画面のほか、IDEでも確認ができる
Axivion SuiteのCI(継続的インテグレーション)への連携例。解析結果はWeb画面のほか、IDEでも確認ができる

 よって、まず各開発者がローカルにおいて自身がコーディングした範囲の解析を実行し、問題がないかどうか確認する。問題がなければ全体のリポジトリにプッシュして、システム全体としてAxivion Suiteで解析する。そこで問題があれば再度ローカルに戻し、各開発者が修正を行うという運用方法を採れるようになる。これにより、毎回毎回すべての開発者のコードが揃うまで解析を実行することができない、ということもなくなり開発効率が向上する。解析結果のレポートはPDFやCSV、Excelなどさまざまな形式で出力できる。

 またAxivion Suiteは、Gravis(グラビス)というアーキテクチャモデリングツールを提供していることも大きな違いといえよう。そのツールを使ってソースコードからアーキテクチャモデルを作ることで、変更要求がでた際に、影響の検討と変更の反映を計画。エンジニアはそれを見て実装し、最後に実装結果がアーキテクチャモデルと一致しているかを自動チェックできるようになる。こうすることで「あるべきアーキテクチャ」と「実装されたコード」が常に一致した状態となるので、アーキテクチャモデルを基にしたソフトウェア変更の計画やソフトウェアの理解が容易になる。アーキテクチャ違反が防げるわけだ。

Axivion Suiteが提供するアーキテクチャモデリングツール「Gravis」を使用することで、アーキテクチャの作成とソースコードへのマッピングが可能になる
Axivion Suiteが提供するアーキテクチャモデリングツール「Gravis」を使用することで、アーキテクチャの作成とソースコードへのマッピングが可能になる

 メトリクス違反であれば、Axivion SuiteならHIS(Hersteller Initiative Software)で推奨されているメトリクスやオブジェクト指向のメトリクスなども自動でチェックでき、違反があればすぐ修正可能だ。スタイル違反についても、Axivion Suiteならスタイルを設定することで、違反を自動でチェックする。開発者のスキルを平準化し、コード品質を高い水準で担保できるようになる。

Axivion Suiteの事例を公開中

 Axivion Suiteは、世界的な大企業で広く採用されています。以下より、自動車関連、エレクトロニクス、医療業界の4社の事例をまとめたPDFをダウンロードいただけます。ぜひご覧ください!

次のページ
各業界のソフトウェア安全基準に積極的に対応、機能安全プロジェクトにも使用可能

関連リンク

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
開発生産性向上に寄与するツール大研究連載記事一覧

もっと読む

この記事の著者

中村 仁美(ナカムラ ヒトミ)

 大阪府出身。教育大学卒。大学時代は臨床心理学を専攻。大手化学メーカー、日経BP社、ITに特化したコンテンツサービス&プロモーション会社を経て、2002年、フリーランス編集&ライターとして独立。現在はIT、キャリアというテーマを中心に活動中。IT記者会所属。趣味は読書、ドライブ、城探訪(日本の城)。...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

関口 達朗(セキグチ タツロウ)

フリーカメラマン 1985年生まれ。東京工芸大学芸術学部写真学科卒業。大学卒業後、小学館スクウェア写真事業部入社。契約満期後、朝日新聞出版写真部にて 政治家、アーティストなどのポートレートを中心に、物イメージカットなどジャンルを問わず撮影。現在自然を愛するフリーカメラマンとして活動中。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

提供:The Qt Company Tokyo

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/18103 2023/08/30 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング