1: ノチラ ★ 2017/12/26(火) 17:21:11.16 _USER
zu1
人工知能(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/
引用元: http://egg.5ch.net/test/read.cgi/bizplus/1514276471/


2: 名刺は切らしておりまして 2017/12/26(火) 17:26:36.00
スケジュールの不備を見つけて訂正してくれませんかね

3: 名刺は切らしておりまして 2017/12/26(火) 17:29:13.55
AIでもなんでもないと感じるが・・・

4: 名刺は切らしておりまして 2017/12/26(火) 17:29:22.78
コメント密度ってw

5: 名刺は切らしておりまして 2017/12/26(火) 17:31:59.63
誰が喜ぶの?
だって、日本のソフトウェアに信頼性なんて定義されてねえんだからさ
動きゃいい奴らしかいない

6: 名刺は切らしておりまして 2017/12/26(火) 17:33:52.22
プログラミングも全部AIでやれや

9: 名刺は切らしておりまして 2017/12/26(火) 17:53:09.02
画像診断だとw

つまり適当にチェックするって事じゃw

10: 名刺は切らしておりまして 2017/12/26(火) 17:55:04.63
あぁ、これ欲しいわ。
複雑になると抜けたり間違ったりするもんなあ。

14: 名刺は切らしておりまして 2017/12/26(火) 17:59:38.45
>>10
何色が密集しているかで測定するんだろうね。
何が書かれているかは一切見ない。
まるで富士通の品証みたいじゃないか。

13: 名刺は切らしておりまして 2017/12/26(火) 17:58:37.67
全面的に依存するのは危険だと思うけど、
ちょいとツールに通せば短時間で診断してくれるなら
コーディングの工程に追加すればいいよね。
軽いならIDEに組み込んで常時監視してもいい。

このツールでの評価点を上げるために変な書き方が工夫されるようなら
本末転倒だけどな。

17: 名刺は切らしておりまして 2017/12/26(火) 18:08:22.83
>>13
実質IDEに組み込んでるツールと大して変わらないとなぜ思わないの?

40行程度の判断なんだから、プログラムやモジュール全体を見て判断なんかしていない。

要するにtypo発見ツールでしかない。

そしてそれは今もある。

18: 名刺は切らしておりまして 2017/12/26(火) 18:10:49.49
>>17
>要するにtypo発見ツールでしかない。

全く違う。typo発見なら通常の言語処理を行うはず。何も分かっていないな。

32: 名刺は切らしておりまして 2017/12/26(火) 18:33:24.13
>>18
言語処理なんて不要だよ。

タイプのパターン登録して逸脱見てれば良い。
パターン登録を学習させるというのがこれの売りだが、正直学習より登録の方が手間が少ないと思うよ。

15: 名刺は切らしておりまして 2017/12/26(火) 18:04:22.39
これはかなり大胆なアルゴリズムだな。だが巷間言われる「特徴量まで勝手に学習」を
台無しにしているとも取れる。前処理によほど自信があるのか、実際に効果が出ているのか。

19: 名刺は切らしておりまして 2017/12/26(火) 18:13:06.19
とりあえずAIって言っておけ感
はやり言葉に乗っかるだけで成功したの見たことない

24: 名刺は切らしておりまして 2017/12/26(火) 18:27:12.84
>if文やfor文の直前にコメントがあるかどうかなどを検出している。

//コメント入れないといけないのでとりあえず、
みたいなの乱立してよけい可読性落ちるだろ

27: 名刺は切らしておりまして 2017/12/26(火) 18:30:55.86
ソフト開発の契約の不備を見つけるAIツールは?

30: 名刺は切らしておりまして 2017/12/26(火) 18:33:09.27
どうせ糞MISRA

34: 名刺は切らしておりまして 2017/12/26(火) 18:37:31.80
なんでITに明るい人って
性格悪い人多いの?
プログラムに心壊されたの?

43: 名刺は切らしておりまして 2017/12/26(火) 18:53:52.89
>>34
暗い人が逃げの一手で来る場合もあるけど
環境が劣悪で人間不信がどんどん酷くなるんだよ

37: 名刺は切らしておりまして 2017/12/26(火) 18:43:15.69
プログラミングをすると
考え方がネガティブになる

39: 名刺は切らしておりまして 2017/12/26(火) 18:46:48.95
>>37
ダメなケースを全部考慮しないと気が済まないからねw

42: 名刺は切らしておりまして 2017/12/26(火) 18:53:00.52
>>39
それもあるけど
あまりの無理解と無理強いで
人間不信になるよ

38: 名刺は切らしておりまして 2017/12/26(火) 18:46:40.62
Webページを
・ユーザーが選択した商品の情報
・常に表示されるメニュー
・関連商品へのリンク
で色分けしてネットショッピングのページの見易さ、有用さを数値化してくれ。
1番目の情報がページ面積の何%とか。

41: 名刺は切らしておりまして 2017/12/26(火) 18:52:10.15
こういうのって、わかってる人からするとマイナスにしかならないんだよね

わかってない人達が
自称管理者を名乗って
「何かをした」つもりになれる

それだけのためのツール

44: 名刺は切らしておりまして 2017/12/26(火) 18:59:38.66
>>41
頭悪そ

46: 名刺は切らしておりまして 2017/12/26(火) 19:06:01.61
>>44
なんで?
教師データの良し悪しを誰がどう定義してるかわかってるの?

56: 名刺は切らしておりまして 2017/12/26(火) 19:19:12.90
>>46
デバックツールの利点難点を言ってみ?

59: 名刺は切らしておりまして 2017/12/26(火) 19:26:02.02
>>56
>デバックツールの利点難点を言ってみ?
横レスだけど、マウントとってdisるだけの奴って自分から意見いわないで相手に言わせてから粗探しするよな
性格悪い

61: 名刺は切らしておりまして 2017/12/26(火) 19:28:17.15
>>59
なんか指南書とかあるのかな

45: 名刺は切らしておりまして 2017/12/26(火) 19:05:07.69
AI「全部、コメントにしちゃえば不備がなくなります」

49: 名刺は切らしておりまして 2017/12/26(火) 19:09:41.31
念じるか希望を述べるだけで
最適アルゴリズムとサンプルコードのサイトを表示する
AIとかにして
最終的にしたいことを云うだけで勝手に実装してくれる
統合開発環境用AIを作ってw

52: 名刺は切らしておりまして 2017/12/26(火) 19:11:51.18
人工知能が機能や文脈を理解できない以上無意味
逆にそれができるなら自動でプログラム組める

54: 名刺は切らしておりまして 2017/12/26(火) 19:13:11.88
富士通は昔からソース解析ツール出してたし、正統進化かね。

55: 名刺は切らしておりまして 2017/12/26(火) 19:14:22.88
>>54
どっちに進んでも進化って呼べるところがすごいな
無敵じゃん

58: 名刺は切らしておりまして 2017/12/26(火) 19:25:04.38
なんでも自動で行わせることをなんでもAIって付けてるだろ

62: 名刺は切らしておりまして 2017/12/26(火) 19:31:31.29
aは赤、bは青とかで色つけるの?
シンタックスカラーリングでなくて。

64: 名刺は切らしておりまして 2017/12/26(火) 19:37:18.84
AI活用は賛成だが富士通と聞くと胡散臭い
自分とこのプロジェクトの管理も出来ないデスマ大好きプロパーを先に何とかしろ

66: 名刺は切らしておりまして 2017/12/26(火) 19:42:04.46
ここにみずほ銀行勘定系システムのソースコードがあるじゃろ

71: 名刺は切らしておりまして 2017/12/26(火) 20:04:56.99
>>66
ワロタwww

79: 名刺は切らしておりまして 2017/12/26(火) 21:37:15.91
>>66
あれは無事終ったんだろうか。

68: 名刺は切らしておりまして 2017/12/26(火) 19:50:40.09
画像認識プログラムに傾倒して何か出来ますなアピールは最早、IT屋のインスタ映えだな
勝手にプログラム作ってくれないなら自社lint整備したほうが早いだろ

74: 名刺は切らしておりまして 2017/12/26(火) 21:10:44.59
もうAIがコード書けば不具合ないだろうに。

80: 名刺は切らしておりまして 2017/12/26(火) 21:39:40.80
なんつーか「富士通」ってだけで頼りない感

85: 名刺は切らしておりまして 2017/12/26(火) 22:31:27.96
まず、このAIのバグを発見するAIが必要だな

89: 名刺は切らしておりまして 2017/12/26(火) 23:37:50.76
プログラマーが見つけられないからAI使うんだな。

92: 名刺は切らしておりまして 2017/12/27(水) 07:09:00.58
仕様変更に対応する設計をしろ
ドヤ顔

94: 名刺は切らしておりまして 2017/12/27(水) 08:28:59.47
ますます社員が働かなくなるな

スポンサード リンク