【IT】ソースコードの不備をAIで見つける富士通、新しい診断ツール
■ このスレッドは過去ログ倉庫に格納されています
人工知能(AI)などを活用し、システム開発プロジェクトのプロセス改革に取り組む富士通。この改革のために、2017年11月から本格活用するツールの1つが「ソース診断」だ。このツールでは、英数字や記号といった文字列の固まりであるソースコードを、テキストデータとしてではなく、画像として分析するという。
どのような仕組みでソースコードの不備を見つけるのか。ツール活用により、開発プロセスをどう改善するのか。ツールの開発責任者である富士通アプリケーションズの森崎雅稔取締役兼ソフトウェアエンジニアリングセンター長に聞いた。
関連記事:できの悪いソースコードをAIで発見、富士通が不採算案件の抑制へ
保守性の低いコードを見逃しやすい
ソース診断は、ソースコードのレビュー作業の効率化と精緻化を支援するツール。画像化されたソースコードを基に、AIが主に可読性を診断する。ツールで可読性が低い箇所に当たりを付け、該当箇所を集中的にレビューすることによって、レビュアーは作業の効率化と精緻化が見込める。
ソースコードのレビュー作業を支援するツールとしては、以前からFindBugs、PMDといった静的解析ツールがある。静的解析ツールは、不具合が発生しそうな箇所や、コーディング規約を順守しているかどうか、セキュリティ上の不備がないかなどのチェックに役立つ。ただし、「人間にとっての可読性の観点は検出しにくい」と森崎氏は指摘する。テストで不具合が検出されず、コーディング規約を守っていても読みにくいコードは少なくないという。
可読性が低いコードを見過ごすと、システム稼働後の保守作業などが難しくなる。とはいえ、ツールでは見つけにくいため、目視によるレビューに頼る部分が多くなる。結果として、大規模なプログラムの場合はどうしても見過ごしが発生しやすかった。
また、可読性を落とす原因に関する指摘も「レビュアーのセンス任せになりがちだった」(森崎氏)。レビュアーごとの重視する観点の違いによって、指摘の内容がばらつくなどの問題が生じやすかった。これらの課題にメスを入れる狙いで、森崎氏らはソース診断を開発した。
40行単位の画像で善しあしを分析
ソース診断は、機械学習の手法の1つであるディープラーニング(深層学習)を応用している。ソースコードを画像データに変換し、それをあらかじめ約1万件の教師用データで学習させておいたモデルと照合。AIが可読性の善しあしを分析して、結果を出力する仕組みである。
画像化に当たっては、まずキャラクターコード1文字ごとに色を付与しているという。そのうえで、色付けした1文字分を1ピクセルの画像にする。色付けによって、単純に画像化するよりも、ソースコードの「特徴」を把握しやすくしている。
AIに診断させる画像データは、40ピクセル×120ピクセル(ソースコード40行×120桁分)を基本単位とした。理由は、人間の可読性の判断に近くするためだという。「プログラマとレビュアーがPCを利用してレビューをする場合、40行程度のソースコードを画面に表示・共有して進めることが多い。そこでAIにも40行単位で可読性を診断させるようにした」(森崎氏)。
この40行分ごとに、可読性が高い箇所を「1」、低い箇所を「0」として分析結果を出力する。可読性が低い原因としては、複雑なネスト構造や、if文やfor文の直前にコメントがあるかどうかなどを検出している。原因を分析しやすくするため、ソース診断ツールでは「複雑度」と「コメント密度」については、全体の可読性とは別にそれぞれ表示している。
以下ソース
http://itpro.nikkeibp.co.jp/atcl/column/14/346926/122501258/ スケジュールの不備を見つけて訂正してくれませんかね 誰が喜ぶの?
だって、日本のソフトウェアに信頼性なんて定義されてねえんだからさ
動きゃいい奴らしかいない 1位が驚きの結果に…「美人度が高い国ランキング」トップ10
http://zxgzacbh.xyz/ 作業工数を見積もれる営業AI作れよ
文系バカ営業を救ってやれ 画像診断だとw
つまり適当にチェックするって事じゃw あぁ、これ欲しいわ。
複雑になると抜けたり間違ったりするもんなあ。 どこかのバカ上司が、これでok出ないとダメとか言って、まともなソースを糞ソースにさせるわけだ 全面的に依存するのは危険だと思うけど、
ちょいとツールに通せば短時間で診断してくれるなら
コーディングの工程に追加すればいいよね。
軽いならIDEに組み込んで常時監視してもいい。
このツールでの評価点を上げるために変な書き方が工夫されるようなら
本末転倒だけどな。 >>10
何色が密集しているかで測定するんだろうね。
何が書かれているかは一切見ない。
まるで富士通の品証みたいじゃないか。 これはかなり大胆なアルゴリズムだな。だが巷間言われる「特徴量まで勝手に学習」を
台無しにしているとも取れる。前処理によほど自信があるのか、実際に効果が出ているのか。 >>2
ハイワカリマシタ。
アナタハ1230カラ0103マデ、リユウナシ デヤスムノデスネ。
バグ トシテ トリケシマシタ。 >>13
実質IDEに組み込んでるツールと大して変わらないとなぜ思わないの?
40行程度の判断なんだから、プログラムやモジュール全体を見て判断なんかしていない。
要するにtypo発見ツールでしかない。
そしてそれは今もある。 >>17
>要するにtypo発見ツールでしかない。
全く違う。typo発見なら通常の言語処理を行うはず。何も分かっていないな。 とりあえずAIって言っておけ感
はやり言葉に乗っかるだけで成功したの見たことない >>20
>キャラクターコード1文字ごとに色を付与しているという。そのうえで、色付けした1文字分を1ピクセルの画像にする。
ということなんで全部日本語だとすぐはじかれるだろうな。 >>1
でも、仕様書がバグってるんだからどうしようもないじゃないですか? >if文やfor文の直前にコメントがあるかどうかなどを検出している。
//コメント入れないといけないのでとりあえず、
みたいなの乱立してよけい可読性落ちるだろ >>21
キャラクターコード一文字なら2byte文字でもええやん AIを活用すれば無能役人や偏向記者を無くせるのにな >>18
言語処理なんて不要だよ。
タイプのパターン登録して逸脱見てれば良い。
パターン登録を学習させるというのがこれの売りだが、正直学習より登録の方が手間が少ないと思うよ。 なんでITに明るい人って
性格悪い人多いの?
プログラムに心壊されたの? この程度のことならディープラーニングいらないし
この程度のこと言われても役に立たない Webページを
・ユーザーが選択した商品の情報
・常に表示されるメニュー
・関連商品へのリンク
で色分けしてネットショッピングのページの見易さ、有用さを数値化してくれ。
1番目の情報がページ面積の何%とか。 >>37
ダメなケースを全部考慮しないと気が済まないからねw こういうのって、わかってる人からするとマイナスにしかならないんだよね
わかってない人達が
自称管理者を名乗って
「何かをした」つもりになれる
それだけのためのツール >>39
それもあるけど
あまりの無理解と無理強いで
人間不信になるよ >>34
暗い人が逃げの一手で来る場合もあるけど
環境が劣悪で人間不信がどんどん酷くなるんだよ AI「全部、コメントにしちゃえば不備がなくなります」 >>44
なんで?
教師データの良し悪しを誰がどう定義してるかわかってるの? 世の中に何の良い影響も与えてない会社っていうイメージ 念じるか希望を述べるだけで
最適アルゴリズムとサンプルコードのサイトを表示する
AIとかにして
最終的にしたいことを云うだけで勝手に実装してくれる
統合開発環境用AIを作ってw 警告件数が多すぎて「動いてるからいいや」って嫌気がさすパターンだわ 不備判定されたとして
どう直せってアドバイスするのかな 人工知能が機能や文脈を理解できない以上無意味
逆にそれができるなら自動でプログラム組める 用件定義からして矛盾、無駄を弾き出して
IT化すべきか否かも判断してくれれば
営業から必要なくなるw 富士通は昔からソース解析ツール出してたし、正統進化かね。 >>54
どっちに進んでも進化って呼べるところがすごいな
無敵じゃん なんでも自動で行わせることをなんでもAIって付けてるだろ >>56
>デバックツールの利点難点を言ってみ?
横レスだけど、マウントとってdisるだけの奴って自分から意見いわないで相手に言わせてから粗探しするよな
性格悪い aは赤、bは青とかで色つけるの?
シンタックスカラーリングでなくて。 診断をAIでできるんなら、ソースの記述そのものをAIにやらせろよ。 AI活用は賛成だが富士通と聞くと胡散臭い
自分とこのプロジェクトの管理も出来ないデスマ大好きプロパーを先に何とかしろ ここにみずほ銀行勘定系システムのソースコードがあるじゃろ 画像認識プログラムに傾倒して何か出来ますなアピールは最早、IT屋のインスタ映えだな
勝手にプログラム作ってくれないなら自社lint整備したほうが早いだろ すげーな,マーケットにリリースされてもいないツールの内容を知っていたり,
批判したり擁護したりwwww COBOLって、変数名を「XH558Z6」とかしちゃうんだろ。
そして変数名とその意味の照合表作って管理するんだよな。 糞コードをAIに置き換えるから
プログラマなんてイラネ
って話じゃなかったんかい >>1
彡⌒ ヾ
( ^ω^)あんでもAI言えばいいと思っている馬鹿か
彡⌒ ヾ
( ^ω^)一定のパターンに合致したのを見つけるだけだろが、ばーーーーか >>3
彡⌒ ヾ
( ^ω^)要するに、富士通は馬鹿なんだよ >>11
いや、これで正しいと思う。
糞ソースにするのは不具合修正で手抜きすると糞ソースになるからな。 頑張れば100年後にはRubocop先生くらい使えるようになってるだろう… >>84
素晴らしいソースをわざわざ糞コードにさせられる作業が発生する可能性があるって意味で書いたんだけども
さすがに40行とかだと分割して欲しいが、分割するとわかりづらくなる場合もあるし AIと言えるようなもんじゃないだろこれ
本文読む限り、コード読み込んでパターンに合ってなかったらエラー吐くだけ その前に要求仕様の不備を指摘してくださいお願いします
誰のせいで何度も仕様がひっくり返ってスパゲッティになったと思ってるんですか >>1
AIを使えてない事が
如実に理解できる事例 日本の大手電機メーカーが、こんなどこにも知能がないものをAIだと宣伝する。
こういうことをするから、ブームの終焉に拍車がかかる。 > もう1つの理由としては米グーグルの2012年の研究発表を挙げる。大量の画像を学習させることで、ネコを識別できるようになったもので、ここからツール開発の着想を得た。
これが全てだろ
完全に素人の発想
グループのAIやってる部署に相談しなかったんだろうか まぁ誰も使わないんだろうけど、なんか作らんと怒られるんだろうなぁ
ほんと糞だな AIに自己診断させたら「私はバグばっかりです」って崩壊するのか? 要するに富士通は世に出回っとる画像の統計処理を猿真似する事しかできんわけやな。 富士通が作るツールが果たしてちゃんと動くのか?
ツールの診断ツールが必要になるな コメントの内容まで見てないだろうなw
あと、試行錯誤して増築増築してるソースはクソなんだが、
そういうのもコメントさえまともならOKなのか? >>109
コメントがメンテされてなくて実際の処理と違ってて、
AIでも誤判断する事案が多発しそうだな。 これは上からAIをソース分析に利用しろって命令がきて、
今でも使ってんだよバカヤローって言えなくて、
素人目にもディープラーニングっぽく見えるやり方で
適当にやり過ごそうとしたら、
逆に幹部の注目を集めちゃって公式発表されちゃったのかな。 とりあえず 自分自身のソースコードでやってみようや 理想論かもしれんけど
コメント無くても読みやすいのがいいソースコードだと思うの ちがうね
テストコードがあるのが
よいソースコードだよ ソースコードの可読性を下げたくなくてCOBOLから逃れられない人類 なんのことか解らんが、海上自衛隊のいじめで使ってたコードは
もともと死んだ叔父さん時代にテレビが設置されてた場所だ
なにがAIかさっぱり解らんテレビ >>115
プロジェクトに関わってるうちはコメントなくても平気だけど
2、3ヶ月も別のことやってから前のコード見ると
仕様とか諸々ど忘れしていることあるから
コメントは入れておくべき
異論は認める >>119
コメントは調味料みたいなものだと思ってる。
まず素材の味ありき。
調味料どばっとかけなきゃ食えないのなら作り直した方がいい。
調味料間違えたら素材の味が死ぬこともある。 >>120
お前、筋が良さそうだな
一緒に仕事したいわ ソースコードに不備を持ったAIが導入されたらどうなるんだ?
不備AIともうひとつのAIが喧嘩しそうだなw >>99
ちゃんとした研究じゃ、上層部やIRが理解できんから発表できないじゃん。 前からコード診断するのあるだろう。AI言いたいだけやん。 >>125
ネストの深さはそうだけど適量なコメントというのは確かにAIの出番かも
静的解析で問題なしと判断されたソースからプログラマの個性による粗を検出できるものなんだろう
好意的に解釈すれば
絶対にそんな大したものでは無いだろうけど >>126
あれ案外静的解析としては優秀なんだよな
人的リソース費やすよりコスト安くつくし
ただそういうツールをグループ会社内でもフリーで使わせるわけではないあたりがけち臭いんだよなあ
子会社の作ったものなんだからそこは潤沢にライセンス料支払ってやって使えるシステム全部で使えばいいものを >>38
楽天「うちのページを標準規格として採用します」 AIが今後進化すると人が必要なくなります
その結果大量リストラが発生します
ご注意ください 昔は知らないソースをぼんやり眺めてなんとなくバグのあるところってのは分かる気がしたからこういうのもありかもな。 ちゃんとシステム設計していたらソースの不備など大したことではないよ
富士通さん なんでこうダメな方向にだけ力注ぐんだ
AI言いたいだけだろ うじつうって
変数名を連番をつけてexcelとかと一緒に管理しているような
はぁ?
みたいなことしている
企業イメージしかないんだけど 可読性って、不備じゃ無い。
そして可読性のチェックならAI使わなくてもできる。 さあ出番だぞ!
http://kabumatome.doorblog.jp/archives/65910595.html 👀
Rock54: Caution(BBR-MD5:f2c519fe5384e767e1c9e99abdcfc293) >>84
アホらしい。
40行程度がAIのパターンマッチに通るか通らないかなんて、単に学習データの問題に過ぎない。
今そこにあるソースコードが判断できないなら、そんな無能は上司にいらない。 >>134
このAI程度なら、AIを作る人、学習させる人、AIの実際の導入を手助けする人、結局使えないAIのお守りする人で雇用増大が捗るな。 富士通って時点で失敗すると分かる
わかりやすくていい 富士通さん
無能な社員を新しいプロジェクトに突っ込んでも
有能社員に変化するわけないんですよ
無能からは無能しか出てきません ■ このスレッドは過去ログ倉庫に格納されています