コードレビューやリファクタリングの落とし穴とは?
しかし、目視のコードレビューにも問題がある。一つは人力で行うので工数がかかること。そして正確性に劣ることだ。
特に急ぎの案件では、ルールチェックに時間をかけられず、おざなりになってしまうこともある。「人間関係の問題も絡んでくる」と平井氏。前職で車載システムのアプリケーション開発に従事していた平井氏は、「例えばチーム内でコードレビューをする際、先輩のコードに指摘をするのには、心理的抵抗感も生まれやすいのでは」と言う。
もう一つの方法として挙げられるのがリファクタリングだ。だがリファクタリングにも課題がある。リファクタリングはソースコードの挙動を変えずに内部構造を整理することだが、「その作業もやっぱり時間がかかり、大変。それに、大規模なリファクタリングには新たな不具合を作りこむリスクもあります」と平井氏は言う。小幡氏も「時間がなくて、そこまで手が回わらないことが多い。また意思決定者の視点でも、リファクタリングは機能追加やバージョンアップなどのような、市場に対して魅力を提供するものでもないので、どうしても後回しにしがち」だと付け加える。リファクタリングも手直しの作業なので、さらに不具合を作り込んでしまうリスクもある。年数を経たコードだと複雑すぎて、リファクタリングに手を付けられない場合もある。
Axivion Suiteでコードレビューとリファクタリングを自動化
これまで挙げたようなソフトウェアの劣化を防ぎ、長期間にわたって健康的なソースコードを保てるようにするのが、Axivion Suiteである。Axivion Suiteを使用すると、これまで目視で行っていた確認を自動化できるようになる。
検知された問題はWebブラウザベースのAxivionのGUI上で確認される。ソースコードの変更によって新しく追加された問題が表示され、さらに誰がいつその問題を作り込んだのか、誰がいつその問題を直したのかなども見ることができる。
一般的な静的解析ツールとの大きな違いは、検知された問題の差分のみを表示できることだ。他のツールは一度解析にかけると、大量の問題が表示され、どこから対処すればよいのかわからなくなることも多い。
だがAxivion Suiteなら、「この時点で追加したもの」というように時間軸を絞って確認できるという。Axivion SuiteはVisual StudioやVisual Studio Code、EclipseなどのIDEのプラグインを提供しており、IDEと統合することもできる。これを使うとローカルのIDE上で開発者自身が解析を実行できるようになる。
よって、まず各開発者がローカルにおいて自身がコーディングした範囲の解析を実行し、問題がないかどうか確認する。問題がなければ全体のリポジトリにプッシュして、システム全体としてAxivion Suiteで解析する。そこで問題があれば再度ローカルに戻し、各開発者が修正を行うという運用方法を採れるようになる。これにより、毎回毎回すべての開発者のコードが揃うまで解析を実行することができない、ということもなくなり開発効率が向上する。解析結果のレポートはPDFやCSV、Excelなどさまざまな形式で出力できる。
またAxivion Suiteは、Gravis(グラビス)というアーキテクチャモデリングツールを提供していることも大きな違いといえよう。そのツールを使ってソースコードからアーキテクチャモデルを作ることで、変更要求がでた際に、影響の検討と変更の反映を計画。エンジニアはそれを見て実装し、最後に実装結果がアーキテクチャモデルと一致しているかを自動チェックできるようになる。こうすることで「あるべきアーキテクチャ」と「実装されたコード」が常に一致した状態となるので、アーキテクチャモデルを基にしたソフトウェア変更の計画やソフトウェアの理解が容易になる。アーキテクチャ違反が防げるわけだ。
メトリクス違反であれば、Axivion SuiteならHIS(Hersteller Initiative Software)で推奨されているメトリクスやオブジェクト指向のメトリクスなども自動でチェックでき、違反があればすぐ修正可能だ。スタイル違反についても、Axivion Suiteならスタイルを設定することで、違反を自動でチェックする。開発者のスキルを平準化し、コード品質を高い水準で担保できるようになる。
Axivion Suiteの事例を公開中
Axivion Suiteは、世界的な大企業で広く採用されています。以下より、自動車関連、エレクトロニクス、医療業界の4社の事例をまとめたPDFをダウンロードいただけます。ぜひご覧ください!