H29 技術士(情報工学)ソフトウェア工学 III-1:人口知能(AI)技術を応用したソフトウェア開発


(1)人工知能を応用したソフトウェア
人工知能(以下、AI)技術を応用したソフトウェアには将棋や囲碁のようなゲームと株式や先物取引などの投資判断ソフトがある。
これらは、過去のデータを分析して、現在の状況から未来を予測して結果を出力するソフトウェアであり、ソフトウェアが出力した結果と実際の結果を比較して、正しければそれを実績としてデータ化し、異なっていた場合にはなぜ異なったかを分析して結果の予測方法などを変化させていくところに特徴がある。

(2)AI技術を応用したソフトウェア開発の課題
これまでのソフトウェアも与えられたデータを処理して結果を出力するというのは普通の内容であるが、AI技術を応用したソフトウェアに求められるのは限られた時間の中で与えられたすべてのデータの処理が終わっていない状態でもその時点での最適解を出力する機能である。
そのため、データ処理を行いながら常にその時点の最適解をもっていて、要求があったときにその結果を出力するような機能にする必要がある。
したがって、ソフトウェア技術者はすべてのデータを処理して出てくる結果と、各時点時点での結果を比較しながら、結果の導出方法(アルゴリズム)が適切であるかを確認する必要がある。
また、その導出アルゴリズムは処理を繰り返すことで進化していくため、その進化過程が正しいかを確認することが求められる。
どちらも、従来のソフトウェア開発では要求されるものではないため、ソフトウェア開発手法そのものを再検討する必要があるほどの変化である。

(3) AI技術を応用したソフトウェア開発の課題への取り組み
AI技術を応用したソフトウェアが持つ限られた時間で与えられたデータの処理途中で結果を出力したり、処理アルゴリズムをソフトウェア自身が進化させていくという機能はこれまでのソフトウェアにはなかったものなので、これらのAI技術を応用したソフトウェア独自の機能の確認には新しい手法での確認が求められるが、これについてはこれまでもビッグデータを処理して行うデータマイニングのように似たようなソフトウェア開発の経験があるので、それ等の経験を活用して新しい課題に臨んでいくことは可能である。
また、AI技術を応用していてもソフトウェア自体が勝手に進化していくものではないので、ソフトウェアの動作そのものについての不具合などの課題については従来のソフトウェア開発技術を適用することが可能なはずである。
また、AI技術特有の処理アルゴリズムの進化についても、継続してソフトウェアをどう支えることで徐々に進化するものなので、個々の変化点を確認し検証することでソフトウェアの動作を確かさを確認することは可能であり、この確認方法についても従来のソフトウェア開発技術を利用することが可能である。
AI技術を応用したソフトウェア開発では、AIという新しい技術分野であるため、ソフトウェア開発に要求される内容が変わっていくのは間違いないが、それによってこれまでのソフトウェア開発の経験が使えなくなるということはなく、これまでの技術を中心に開発をしていくとこが可能であり、これまでと同じように要求定義から仕様決定、設計、プログラミング、テスト、機能変更、機能追加といった開発工程についても変わることはないので、AI技術を応用するソフトウェア開発であるがための新しい課題についての対策を検討する必要はあっても、これまでのソフトウェア開発と同じように進めることが可能である。


[Intermission]
この問題は技術的な課題を技術的な内容で書くのではなく、AI技術という新しい課題への技術者としての向き合い方を書くというちょっと変わったものでした。
そのため、書きながらもその内容が期待されるものかどうか自信がなく、取っ散らかった内容になってしまったような気がします。

その結果、この問題の評価はCでした。内容として技術士を名乗るにはレベルが低すぎるという結果ですね。
今、考えるとフィードバック制御のテストを従来技術として、その応用としてAIソフトテスト(評価)を行うというストーリー展開で書けば結果が変わってきたのではと思います。



戻る 一覧へ