静的コード解析をCOBOLに対してやる場合は
SonarCubeでCOBOLプラグインを買って、静的コード解析をするのが、王道っぽい。
だけど、COBOLで作られているシステムは、手作業をCOBOLで置き換えたような、儲かる業務をシステム化したパターンが多い。また、そういう業務の場合、基本的に伝統を守っていくのが重要で、変化は望まれないことが多い。
でも、なぜか生産性がと言い出す人がいるので、なんかしてみることにした。
SonarCubeのCOBOLプラグインのルール全部をチェックすると大量のダメだしがでて、本当に何がだめかわからないので、ルールのうちどれを適用するか、厳選することになる。
すると、厳選に異様に時間がかかる。
そして、厳選したものを、すべてのエンジニア(COBOLのコーダー)に理解させるのってできるのだろうか?
そもそも、既存のソースありきで、文化遺産の修復のように、壊さないように、がんばってメンテしているので、コードがいまいちと言われても、もとからそうなんだからしょうがないで終わる。
ということで、わかりやすく、キーワードの登場回数とステップ数と分岐・繰り返しのネストの深さだけを測ることにした。
そのレベルならば、AWKでスクリプト作って流せばできる!しかもメンテがとても簡単で、実行速度も大してチェックしないので早い。
そして、エンジニア(COBOLのコーダー)にも伝わりやすい。
ということで、IFとEND-IF EVALUATEとEND-EVALUATE UNTILとEND-PERFORM CALL COPY COMPUTE AND OR の数を数えるだけのAWK用スクリプトを作って、静的コード解析をやってみた。
ステップ数のわりになにもしてなくない?っていうのが一目瞭然になる。
フリーダム
最新記事 by フリーダム (全て見る)
- 池袋東口のスターバックス - 2025-08-23
- iPhoneアプリ開発 - 2025-08-20
- OpenAIのAPIキーを使って利用する方法 - 2025-08-20
