ChatGPTなどAI機能を活用しC言語ソースの再利用に有効なC言語ドキュメント作成システムの新展開を発表
[24/09/29]
提供元:@Press
提供元:@Press
株式会社ユニバーサルコンピュータ研究所(所在地:大阪市中央区、代表取締役:横山 雅俊、以下 UCL)は、ChatGPTなどのAI機能を活用しC言語ソースの再利用に有効なC言語ドキュメント作成システムの新展開を発表しました。
■C言語ドキュメント作成ツール
UCLでは、C言語のソースプログラムを入力し、各種ドキュメントを自動作成する「C言語ドキュメント作成ツール」を提供しています。
当ツールは、ソースに書かれたコメントを重視してわかりやすいドキュメントを作成することが可能です。
タイミングチャート作成機能対応C言語ドキュメント作成ツール
http://ucl.jp/cds/tivwp01.html
■AI機能の活用
従来CDS製品では、コメントの無いソースプログラムからは処理説明の無いドキュメントしか出ませんでした。昨今、利用しやすくなってきたChatGPTなどを活用すればコメントの無いソースプログラムにも処理コメントを付加したり、関数の説明コメントを自動的に追加することが可能です。
■処理例
以下に処理例を示します。
【ChatGPTへの入力】
以下のソースにC言語でコメントをつけてください
Doxygenの日本語関数説明をしてください
int Character::Type_chk(int chr) { int ret;
if ( 'a' <= chr && chr <= 'z'
|| 'A' <= chr && chr <= 'Z' ) {
ret = LETTER;
} else if ('0' <= chr && chr <= '9') {
ret = DIGIT;
} else {
ret = chr;
}
return(ret);
※Doxygenとは、ソフトウェアのドキュメント化を自動で行うことができるオープンソースソフトウェアです。
【ChatGPTの出力】
下にC言語のコメントとDoxygen形式の日本語関数説明を追加しました。
/**
* @brief 文字の種類をチェックする関数
*
* この関数は、与えられた文字が英字(小文字または大文字)、
* 数字、またはその他の文字のいずれかであるかを判断します。
*
* @param chr チェックする文字(整数値として表現される)
* @return 文字の種類を示す整数値
* - LETTER: 英字
* - DIGIT: 数字
* - chr: その他の文字(そのまま返す)
*/
int Character::Type_chk(int chr)
{
int ret;
// 英字の範囲をチェック
if ( 'a' <= chr && chr <= 'z'
|| 'A' <= chr && chr <= 'Z' ) {
ret = LETTER; // 英字の場合
}
// 数字の範囲をチェック
else if ('0' <= chr && chr <= '9') {
ret = DIGIT; // 数字の場合
}
// その他の文字
else {
ret = chr; // その他の文字はそのまま返す
}
return(ret); // 結果を返す
}
このコードは、与えられた文字の種類を判定し、対応する値を返す機能を持っています。Doxygenコメントにより、関数の目的や引数、返り値を明確に説明しています。
■CDSの形式に関数見出しの形式を変換
@brief、@paramなどはDoxygenの形式で出力されますので、今後ユニバーサルコンピュータ研究所が提供するAI活用ツールで以下のようにCDS形式への自動変換を行います。
//********************************************************************
// NAME : Character::Type_chk
// FUNCTION : 文字の種類をチェックする関数
// PROCESS : この関数は、与えられた文字が英字(小文字または大文字)、
// : 数字、またはその他の文字のいずれかであるかを判断します。
// INPUT : chr : 入力文字
// RETURN : 文字の型
// : == LETTER : 文字型(英字)
// : == DIGIT : 数字型
// : == その他 : 文字型以外
//********************************************************************
int Character::Type_chk(int chr)
{
int ret; // 戻り値
// 英字の範囲をチェック
if ( 'a' <= chr && chr <= 'z'
|| 'A' <= chr && chr <= 'Z' ) {
ret = LETTER; // 英字の場合
}
// 数字の範囲をチェック
else if ('0' <= chr && chr <= '9') {
ret = DIGIT; // 数字の場合
}
// その他の文字
else {
ret = chr; // その他の文字はそのまま返す
}
return(ret);
}
■CDSで自動生成される関数仕様書の例
画像1: https://www.atpress.ne.jp/releases/408278/LL_img_408278_2.png
docview 関数仕様書
■CDSで自動生成される関数ロジック図の例
これはフローチャートの出力例です。
画像2: https://www.atpress.ne.jp/releases/408278/LL_img_408278_3.png
flowchartフローチャート
これはPAD図の出力例です。
画像3: https://www.atpress.ne.jp/releases/408278/LL_img_408278_1.png
padview PAD図
■過去のソフト資産の有効活用
このように過去に作成されたコメントの無いソースプログラムもAI活用によりコメントを自動付加し、CDSに入力することによってプログラムドキュメントを自動作成することができます。
なお、機密保持の必要なソースプログラムをオープンなAI機能に引き渡すことについて、セキュリティ上そのままでは問題があります。
現在、AI機能のセキュリティを確保しつつ利用可能な環境提供を行っている法人向けAIサービスは数多く存在します。
そのようなAIサービスを利用することにより機密情報の漏洩防止は可能です。
■展望
過去のソースプログラム資産をAI活用によりCDSでドキュメント生成して再利用が可能になれば、ソフトウェア開発者不足の解消に貢献できると考えられます。
今後ユニバーサルコンピュータ研究所では、AI活用ツールの提供を含む新展開を進めてまいります。
【会社概要】
株式会社ユニバーサルコンピュータ研究所(略称UCL)
主要実績:全国のSOLAS港湾監視システム、公共監視システム、映像鮮明化システム
設立 :1984年10月
代表者 :代表取締役 横山 雅俊(大阪大学工学博士)
所在地 :大阪市中央区西心斎橋1丁目9番16号 大京心斎橋第2ビル5F
【本製品に関するお客様からのお問い合わせ先】
株式会社ユニバーサルコンピュータ研究所(略称UCL)
URL : http://www.ucl.co.jp/
E-Mail: cds-contact@ucl.co.jp