見出し画像

[備忘録]システムの設計はChatGPTで一気通貫でできるのではないか?


私はSIのSEとコンサルタント的なことしかやったことがないので、その設計の現場にChatGPTを導入する場合の仮定です。
設計がChatGPTでどこまで自動化できるかと一気通貫でできるかについてのアイディアです。
アイディアであり実行に対する責任は持ちません。

設計は基本的に以下のフェーズを想定しています。
1.ユーザーヒアリング
2.システムのテーマ設定
3.システム構成設計
4.要件定義
5.基本設計
6.詳細設計
7.テスト設計
8.テスト項目設計

これの2から8をChatGPTで一気通貫でやることを考えています。
結論から言えばChatGPT APIを使えばできます。
今回はExcelでChatGPT for Excelで私は検証を行いました。
実装イメージ的には「4.要件定義」をやる時には前の「3.システム構成設計」のプロンプトで生成された結果を使って、その文章を読み込んで要件定義をやれというプロンプトを流します。
これを繰り返す。
Excelならセルをうまく使います。
ChatGPT for ExcelでGPT-4だとできますね。
Python、PHP、VBAでAPIを使うなら最初にプロンプトをAPIで実行してその結果を変数間を文字列連結をしてAPIでのプロンプトから生成を繰り返し呼び出します。
VBAは私はMacなのでExcel VBAがJSONが使えなくて再現ができないので机上で考えています。
VBAを使えるともっとセルで関数より制御しやすくて楽ですね。
ただ、このアドオンはどうも文字出力が2000byteが制限みたいです。
ここに関しては実際のシステムでは画面ごとに設計したりするのでそこをうまく調整すればいいと思います。
ExcelでChatGPT for Excelのアドオンならワークシートごとに機能を分割して設計書を生成したりすることができます。
あとは「1.ユーザーヒアリング」はChatGPTだと難しいと思います。
分析はできるけど意思決定ができないので、これは人間がやるしかないです。
ただ、人間でもそこの判断は難しく、それがSE、コンサルタントの仕事であり、腕です。
「2.テーマ設定」をしてそれより先はそれらしいものができました。

このChatGPTを使って設計を自動化することを使う人の前提は実はSEやコンサルタントではないです。
事業会社のユーザー部門と情シスになります。
これでテンプレートを作って外部の開発業者に発注する。
詳細な部分はプロンプトの書き方と出力を基に修正していきます。
AGIはChatGPTだと実現不可能かと思っていましたが、現時点でももどきはできますね。
あえて言うとGPT-4Vの画像分析がまだSaaSでしか使えないはずなので文字でしかできません。

理論的に気づいたのはAGIの存在を知ってからです。
もともとはRPAを使う前提で考えていましたが、AGIの存在を知って、それならコードをうまく書けばもどきは実装できると思いました。

あえて問題があるのはChatGPT APIでGPT-4を使うと高いこと。
私が見ている簡単に見積もりした感じだと2000トークンで1円ぐらいかかります。
これで6フェーズやってプロンプト修正したりすると100円の費用は簡単に突破します。
ただ、ここのコスト計算もこれで設計書を生成することで開発範囲が明確になるので、開発費用の見積もりが正確になります。
正確な見積もりで開発費用が下がれば、その分のコストをカバーできると思います。

これですね、関数を公開しないわけはシンプルで使いこなしが難しくて、そこをやるコンサルティングが難しいことです。
来ないとは思いますが問い合わせとかが来ると大変です。
生成AIのコンサルティングは現状はメソッドがないので、走りながら作っていくしかないです。

工数も計算が難しいところですが、いままでの50%は工数削減はできると思います。
あとは開発者にとっては設計がわかるので開発しやすいことです。
トータルで見れば工数削減効果は出てくると思います。

セキュリティとプライバシーが置き去りにされていますが、これはまた別の機会に調査した詳細を記します。
APIを使った場合、OpenAIは学習モデルに反映させていないようです。
あとはもともと事業会社の開発するシステムの業務ノウハウは一般的なものであり、そこまで気にするものでもないと思います。
例えば、個人情報を含んだデータそのものを投入するとかやらない方がいいです。
いまはハッシュのアルゴリズも汎用ライブラリを使います。

今回は、一応、ChatGPTが生成した文書を掲載しておきます。
検証なので会計の月次処理を自動化するシステムを想定ですが、あまり深くは考えていません。
ところでこれを書いたわけですが、最近、このレベルまでちゃんとドキュメントを書くプロジェクトが減ったことです。
画面の絵だけで開発はできないからです。
多いです画面の絵だけが出回っているプロジェクト。
これをプロの仕事と思わない方もいるでしょうけど、私自身はこのレベルの想定は当たり前にしていますし、いまでもやるべき時はもっと詳細にやっています。

"4. 要件定義:

以下の要件を満たすシステムを定義します。

Excelマクロ: ExcelのVBAを使用して、会計の月次処理を自動化するマクロを作成する。このマクロは、データの取り込み、計算、結果の出力、エラーハンドリングなどの機能を持つ必要があります。

データソース: マクロが処理するデータのソースを特定し、その形式(データベース、CSVファイル、または他のExcelファイルなど)を定義する。

出力先: マクロが生成するレポートや結果の出力先を特定し、その形式(Excelファイル、PDF、または電子メールなど)を定義する。

エラーログ: マクロがエラーを検出した場合のログを保存する場所を特定し、その形式を定義する。

ユーザーインターフェース: ユーザーがマクロを簡単に操作できるように、ユーザーフレンドリーなインターフェースを設計する。これには、マクロの起動ボタンや、設定項目の入力フィールドなどが含まれる。

セキュリティ: データのセキュリティを確保するための措置を定義する。これには、データの暗号化、アクセス制御、バックアップとリカバリーなどが含まれる。

トレーニングとサポート: ユーザーがシステムを適切に使用できるように、トレーニングマテリアルを作成し、必要に応じてサポートを提供する。

これらの要件を満たすことで、会計の月次処理を自動化するシステムを実現します。"


"5. 基本設計:

以下の基本設計を行います。

Excelマクロ: VBAを使用してExcelマクロを作成します。このマクロは、データの取り込み、計算、結果の出力、エラーハンドリングなどの機能を持つように設計します。具体的な処理フローと各機能の詳細な仕様を定義します。

データソース: マクロが処理するデータのソースを特定します。データソースの形式(データベース、CSVファイル、または他のExcelファイルなど)を定義し、それに対応するデータ取り込み機能を設計します。

出力先: マクロが生成するレポートや結果の出力先を特定します。出力先の形式(Excelファイル、PDF、または電子メールなど)を定義し、それに対応する出力機能を設計します。

エラーログ: マクロがエラーを検出した場合のログを保存する場所を特定します。ログの形式を定義し、それに対応するエラーハンドリング機能を設計します。

ユーザーインターフェース: ユーザーがマクロを簡単に操作できるように、ユーザーフレンドリーなインターフェースを設計します。これには、マクロの起動ボタンや、設定項目の入力フィールドなどを含みます。

セキュリティ: データのセキュリティを確保するための措置を設計します。これには、データの暗号化、アクセス制御、バックアップとリカバリーなどを含みます。

トレーニングとサポート: ユーザーがシステムを適切に使用できるように、トレーニングマテリアルを作成します。また、必要に応じてサポートを提供する体制を設計します。

これらの基本設計を通じて、会計の月次処理を自動化するシステムを実現します。"
"6. 詳細設計:

以下の詳細設計を行います。

Excelマクロ: VBAを使用してExcelマクロを作成します。マクロは以下の手順で動作します:

データの取り込み:指定されたデータソースからデータを読み込みます。

計算:読み込んだデータに基づいて必要な計算を行います。

結果の出力:計算結果を指定された出力先に出力します。

エラーハンドリング:エラーが発生した場合、エラーログに記録します。

データソース: マクロが処理するデータソースは、データベース、CSVファイル、または他のExcelファイルなどである可能性があります。データ取り込み機能は、これらの形式に対応するように設計します。

出力先: マクロが生成するレポートや結果の出力先は、Excelファイル、PDF、または電子メールなどである可能性があります。出力機能は、これらの形式に対応するように設計します。

エラーログ: マクロがエラーを検出した場合、エラーログは指定された場所に保存されます。エラーハンドリング機能は、ログの形式に対応するように設計します。

ユーザーインターフェース: ユーザーがマクロを簡単に操作できるように、ユーザーフレンドリーなインターフェースを設計します。これには、マクロの起動ボタンや、設定項目の入力フィールドなどを含みます。

セキュリティ: データのセキュリティを確保するための措置を設計します。これには、データの暗号化、アクセス制御、バックアップとリカバリーなどを含みます。

トレーニングとサポート: ユーザーがシステムを適切に使用できるように、トレーニングマテリアルを作成します。また、必要に応じてサポートを提供する体制を設計します。

これらの詳細設計を通じて、会計の月次処理を自動化するシステムを実現します。"

この記事が気に入ったらサポートをしてみませんか?