AIを教育してDSPFソースを設計させることに
成功しました。
AIにあるデータ・ベースのDDSソースを示して
そのデータ・ベースを保守するための
DSPFソースを生成させる実験です。
社内にある既存のDSPFソースを参考に示して
それをモデルとして完全に実行可能な
DSPFソースを生成させることに成功しました。
■ 最初からは成功しない
AIと言えども最初から完璧なDSPFソースを
作ることはできません。
何度か誤りを訂正することによって
正しいソースを生成させることが
できるようになります。
ということは最初から誤りやすい点を注意しておいて
模範となるソースを示してやれば
最初の生成で正しいソースを生成することができます。
■ データ・ベースのDDSソースを提示
マスターテァイルの保守の対象とするデータ・ベースの
DDSソースをAIに教えます。
今回は商品マスターの保守の作成を指示します。
①商品マスター(QTRFIL/SHOHIN)のDDSソースを示す。
商品マスターを保守するためのDSPFを作成することを
AIに宣言します。
A**********************************************
A* SHOHIN : 商品マスターファイル *
A**********************************************
A UNIQUE
A R SHOHINR TEXT(' 商品マスターレコード ')
A*
A SHCODE 10A COLHDG(' 商品コード ')
A SHNAME 24O COLHDG(' 商品名 ')
A SHTANK 7S 0 COLHDG(' 単価 ')
A EDTCDE(1)
A SHSCOD 4A COLHDG(' 品種コード ')
A*
A K SHCODE
AIはこの商品マスターを保守するためのDSPFソースの生成を
目的として認識します。
②次に参考DSPFソースを模範として示してこれに
従って生成するように指示します。
参考モデルとして指示したのは次の「品種マスターの登録」のための
DSPFソースです。目的とする商品マスターとは全くの別物です。
③AIに生成の開始を指示します。
すると次のように正しいDSPFソースが生成されました。
A DSPSIZ(27 132 *DS4 24 80 *DS3)
A *DS3 MSGLOC(24)
A *DS4 MSGLOC(27)
A PRINT
A HELP
A HLPSCHIDX(*LIBL/QHPW1)
A ALTHELP(CA01)
A HLPTITLE(' 商品マスター入力画面 ')
A HLPPNLGRP('DFU/DESL/GEN' QHDZDF1)
A R DSPHEAD TEXT(' 初期画面レコード ')
A CHANGE(01)
A CF03(03 ' 終了 ')
A CF05(05 ' 再表示 ')
A CF06(06 ' 様式の選択 ')
A CF09(09 ' 挿入 ')
A CF10(10 ' 入力 ')
A CF11(11 ' 変更 ')
A ROLLUP(07 ' ROLLUP')
A ROLLDOWN(08 'ROLLDWN')
A 1 2' 商品マスターの登録 '
A* 表示モード記述
A 1 49' モード . . :'
A DSPMOD 14A O 1 66
A 2 2' 様式 . . . . :'
A RECORD 10A O 2 21
A 2 49' ファイル . :'
A FILE 10A O 2 66
A* キー・フィールド記述
A 4 2' 商品コード :'
A SHCODE 10A B 4 16
A 43 DSPATR(RI)
A CHECK(FE)
A 12 14' 必要な項目を入力して,実行キーを +
A 押してください。 ' COLOR(BLU)
A* 機能キーの記述
A 22 2'F3= 終了 ' COLOR(BLU)
A 22 26'F5= 最新表示 ' COLOR(BLU)
A 22 51'F9= 挿入 ' COLOR(BLU)
A 22 71'F10= 入力 ' COLOR(BLU)
A 23 2'F11= 変更 ' COLOR(BLU)
A R DSPDTA01 TEXT(' 明細画面レコード 01')
A CHANGE(01)
A CF03(03 ' 終了 ')
A CF05(05 ' 再表示 ')
A CF09(09 ' 挿入 ')
A CF10(10 ' 入力 ')
A CF11(11 ' 変更 ')
A CF12(12 ' 前画面 ')
A CF23(23 ' 削除 ')
A ROLLUP(07 ' ROLLUP')
A ROLLDOWN(08 'ROLLDWN')
A SETOF(99)
A 1 2' 商品マスターの登録 '
A* 表示モード記述
A 1 49' モード . . :'
A DSPMOD 14A O 1 66
A 2 2' 様式 . . . . :'
A RECORD 10A O 2 21
A 2 49' ファイル . :'
A FILE 10A O 2 66
A* フィールド記述
A 4 2' 商品コード :'
A SHCODE 10A B 4 16
A 43 DSPATR(RI)
A DSPATR(PR)
A 32 DSPATR(UL)
A CHECK(FE)
A 5 2' 商品名 :'
A SHNAME 24A B 5 16
A 43 DSPATR(RI)
A 30 DSPATR(PR)
A N30 DSPATR(UL)
A CHECK(FE)
A 6 2' 単価 :'
A SHTANK 7S 0B 6 16
A 43 DSPATR(RI)
A CHECK(FE)
A 7 2' 品種コード :'
A SHSCOD 4A B 7 16
A 43 DSPATR(RI)
A CHECK(FE)
A* 機能キーの記述
A 22 2'F3= 終了 ' COLOR(BLU)
A 22 26'F5= 最新表示 ' COLOR(BLU)
A 22 51'F9= 挿入 ' COLOR(BLU)
A 22 71'F10= 入力 ' COLOR(BLU)
A 23 2'F11= 変更 ' COLOR(BLU)
A 23 26'F23= 削除 ' COLOR(BLU)
A 23 51'F12= 前画面 ' COLOR(BLU)
A R ENDOPT TEXT(' 終了画面 ')
A CSRLOC(LIN POS)
A 1 33' データ入力の終了 ' DSPATR(HI)
A 3 4' 処理されたレコード数 '
A 30 DSPATR(ND)
A 5 6' 追加 . . . . . :'
A 30 DSPATR(ND)
A ADDRCD 5Y 0O 5 35EDTCDE(1)
A 30 DSPATR(ND)
A 6 6' 変更 . . . . . :'
A 30 DSPATR(ND)
A CHGRCD 5Y 0O 6 35EDTCDE(1)
A 30 DSPATR(ND)
A 7 6' 削除 . . . . . :'
A 30 DSPATR(ND)
A DLTRCD 5Y 0O 7 35EDTCDE(1)
A 30 DSPATR(ND)
A 12 2' 選択項目を打鍵して,実行キーを押 +
A してください。 ' COLOR(BLU)
A 14 5' データ入力の終了 . . . . . .'
A ANS 1A B 14 39VALUES('Y' 'N')
A 14 53'Y=YES, N=NO'
A 23 2'F3= 終了 ' COLOR(BLU)
A 23 15'F12= 前画面 ' COLOR(BLU)
A LIN 3S 0H
A POS 3S 0H
[解説]
AIは参考として提示したDSPFソースのどこが見出しやデータ部分であるかを読み取って
理解して正確にDSPFソースを生成しました。
まるで優秀な生徒のように正確に位置も計算しますので
適切なモデルさえ与えてやれば正確なDDSソースを生成してくれます。
このようにサンプル・ソースを教えてやることで
AIは非常に目的を具体的に理解したようです。
■ 今回のAI生成実験で重要なのは
DDSの仕様やDSPFソースの構造を事細かに指定しなくても
お手本となるソースを示して「このとおりに」と
人間に指示するようにAIに指示するだけで
AIは正しく生成することができることです。
つまり
①AIが間違いやすいエラーをあらかじめ警告して
注意しておく。何度かの生成の実験でAIがどのような
間違いを起こすのかをわく理解した上で
注意と警告を促しておきます。
②模範とするモデルのソースを示してやることで
書き方を理解して学習させる。
の二つの点を抑えておけばAIは正しいソースを
生成できることがわかりました。
■ 模範となるモデル・サンプル・ソースを示してやれば
これまでリリースされてきた生成ツールや
簡易言語では生成せのためのパラメータなどの
指示はすべてユーザーが入力して指示する必要が
ありました。
つまりすべてツールに指示を与える必要が
ありましたし結果として生成されるソースは
そのツールの規定どおりのものしか生成することは
できませんでした。
しかし今回のAIへの指示は先輩プログラマーが
後輩の新人プログラマーにやるように
参考とするソースをAIに程場するだけの指示です。
さらにAIが間違いそうな箇所だけは
AIに注意しておきます。
■ 社内ルールに従って生成可能
このように参考書としての既存のDSPFソースを
示すだけでAIはそのとおりに真似てソースを
生成してくれました。
このようにこの技術を製品化すれば
お客さまもAIを使って指示するときは
社内ルールに基づいたいつものDSPFソースを
AIに示せばAIはそのお手本どおりに作ってくれることに
なります。
つまりこれまでの社内規則を模倣して正確に
作ってくれる正確で優秀な新入社員が増えたことになります。
■ 人手不足、退職者に伴う人員不足などにもAIが解決
_
これまで人手不足に派遣社員や社外の協力会社などで
補おうとしてきましたがAIならば短期間のうちに
社内ルールを理解して社内規則や慣習のとおりの
プログラム開発を行うことができます。
ある会社ではフィールドをひとつ増やすときも
協力会社に依頼するために毎月高額な保守料を
払っていると聞いたことがあります。
AIを利用すればこんな無駄な費用は必要ありません。
■ IBM i開発の将来は
AIまかせでプログラムを生成したり修正することが
できるようになればプログラムを知らない担当者であっても
AIを使えるのであればRPGソースは大した問題ではなくなります。
ソースをくわしく追跡しなくてもAIに適切な指示を出せれば
十分です。
このようにAIを十分活用できる企業は競争力が高まり
利益率も大幅に向上することでしょう。
AIの活用なくては今後のIBM iの開発も考えられなくなります。
■ IBM iの歴史の転換点
今回のAIによる自動生成は長いIBM iの開発歴史の
転換点です。
RPGソースの生成実験も既に行っています。
AIはILE-RPG, フリー・フォーマットやRPG IIIであっても
生成することができます。
しかも標準的なRPGソースだけでなく
お客さまの社内でこれまで使用しているRPGソースの書き方に
従った書き方をそのまま踏襲してくれます。
社内はまだRPG IIIで開発しているというお客さまでも
違和感なくAIが生成したRPGソースを利用することができます。
もちろんCOBOLやCLP, CMD の生成も可能です。
このようにIBM iの世界でも急速にAIの利用が進んでいます。
人手不足や教育問題もAIで急速に解決することができる
時代になりました。
この成果は次回の技術ショート・セミナーで発表致します。
お見逃しのないようにお申込みください。