静的コード解析を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 フリーダム (全て見る)
- 藤元健太郎著『ニューノーマル時代のビジネス革命』を読んだ。読み辛いが、網羅的に新しいサービスが書かれていた。 - 2020-12-21
- ケリー・マクゴニガル著『スタンフォード式人生を変える運動の科学』 - 2020-12-21
- やまぐちせいこ著『シンプル思考ですっきり身軽に暮らす』に夫婦の会話のコツを学んだ - 2020-12-17