背景
この取り組みでは生成 AI を用いて、システム開発をどのように効率化できるかを考察していきます。
前提条件
この活動で利用している環境は次の通りになります。
- LLM: Azure OpenAI サービス
- モデル名: GPT4 32K
また、この取り組みでは、 Swift で電卓アプリを作成していきます。この電卓アプリは単に四則演算ができるだけでなく、指定した日の為替レートに基づいた通貨の変換や長さや重さなどの単位を変換することも可能です。
仕様書の作成
生成 AI に対して「システムのひな型を作成してください。」と問いかけた時の回答は次のようになりました。
- イントロダクション
- 目的: このシステム仕様書の目的を説明します。
- 範囲: このドキュメントがカバーするシステムの範囲を定義します。
- 定義、略語、参照: このドキュメントで使用される特定の用語や略語の定義、または参照文献のリストを提供します。
- 全体的な説明
- 製品の視点: システムの全体像を提供し、システムがどのように他のシステムと関連しているかを説明します。
- システムの機能: 主要な機能とそれらがユーザーにとって何を意味するかをリストアップします。
- ユーザー特性: システムのエンドユーザーについての情報を提供します。
- 制約: システムに影響を及ぼす可能性のある制約について説明します。
- システム要件
- ユーザー要件: エンドユーザーの視点からシステムが満たすべき要件を説明します。
- システム要件: システムが具体的に達成すべき要件を説明します。これは機能要件と非機能要件の両方を含むこと> があります。
- システム設計
- アーキテクチャ: システムのアーキテクチャ設計を説明します。
- インターフェース設計: システムの各種インターフェース(ユーザーインターフェース、ハードウェアインターフ> ェース、ソフトウェアインターフェース、通信インターフェース)について説明します。
- データ設計: データ構造、データベース設計、データ操作を説明します。
- システムテスト
- テスト戦略: システム全体をテストするための戦略を説明します。
- テストケース: 具体的なテストケースをリストアップします。
- 保守とサポート
- 保守計画: システムの保守活動についての計画を説明します。
- サポート情報: サポートへ
これに対して、生成 AI を活用しながら、仕様書を作成していきます。
イントロダクション
まず、イントロダクションを作成していきます。このシステムの目的として、「確定申告のために必要な計算を簡単化するためのモバイル向け電卓」は適切かを生成 AI に次のように聞いてみました。
「確定申告のために必要な計算を簡単化するためのモバイル向け電卓」というのはシステム仕様書の目的として適切ですか?
すると、次のように返信があり、適切であることが確認できました。
はい、それは適切な目的です。システム仕様書は、システムがどのように動作するべきかを明確に記述するための文書であり、その文書にはシステムの目的や機能、振る舞いなどが詳細に記載されます。したがって、「確定申告のために必要な計算を簡単化するためのモバイル向け電卓」をシステムの目的として設定することは、開発者がシステムを設計し、テストする際のガイドラインとなります。
次に範囲を定義します。生成 AI に目的を伝えて、その範囲として検討すべきことを抽出してもらいました。
「確定申告のために必要な計算を簡単化するためのモバイル向け電卓」がシステムの目的である場合、その範囲をどのように定義すると適切ですか?
すると次のように反応がありました。
そのシステムの範囲を定義する際には、以下のような要素を考慮すると良いでしょう:
- 計算が必要な項目:所得税、住民税、控除額、その他の関連項目など、確定申告に必要な計算を行うための項目を> 特定します。
- ユーザーインターフェース:ユーザーが簡単に入力でき、結果を明確に理解できるようなインターフェースを提供> する必要があります。
- データセキュリティ:ユーザーが個人情報を入力する可能性があるため、データの安全性とプライバシーを確保す> るための措置を明記します。
- モバイルプラットフォーム:iOS、Android、または両方など、対応するモバイルプラットフォームを明記します。
- システムの制限:例えば、オフラインでの使用、特定の税法にのみ対応、特定の地域や国に限定されるなど、シス> テムの制限も定義します。
これらの要素を明確に定義することで、システムの範囲を具体的にし、開発者がどのような機能を実装すべきかを理解しやすくします。
これらについて、検討していこうと思いますが、最初の「計算が必要な項目」について、確定申告でどのような計算が必要になるかわからないため、次のように生成 AI に聞いてみました。
確定申告にはどのような計算が必要?
すると、次のような回答がありました。
確定申告には、以下のような計算が必要です:
- 総収入の計算: 給与所得、事業所得、不動産所得など、一年間で得たすべての収入を合計します。
- 各種控除の計算: 所得控除、基礎控除、配偶者控除、扶養控除、社会保険料控除、地震保険料控除、医療費控除な> ど、適用可能な控除を計算します。
- 課税所得の計算: 総収入から各種控除を引いたものが課税所得となります。
- 所得税の計算: 課税所得に対して税率を適用し、所得税を計算します。税率は課税所得によって段階的に変わるプ> ログレッシブ税制を採用しています。
- 住民税の計算: 住民税は所得税とは別に計算されます。課税所得に対する税率を適用して計算します。
これらの計算は一般的なものであり、具体的な計算方法は個々の税務状況や所在地により異なる場合があります。また、新たに制定される税制度や改正により、計算方法が変わることもあります。従って、正確な計算には税務専門家のアドバイスを求めることをお勧めします。
これだけではわからなかったため、参考になるサイトについて聞いてみました。
参考サイトはある?
すると、次のような回答がありました。
確定申告に関する情報や計算方法については、以下のウェブサイトを参照すると有益です。
- 日本の国税庁のウェブサイト:https://www.nta.go.jp/taxes/shiraberu/shinkoku/tebiki2019/pdf/43.pdf こちらは、確定申告の手引きを提供しています。
- みんなの確定申告:https://www.keisan.nta.go.jp/kyoutu/ky/sm/top#bsctrl 国税庁が提供する、確定申告用の計算ツールです。
- 税理士ドットコム:https://www.zeirishi.com/ 税に関する情報を提供しています。専門家からのアドバイスも求めることができます。
- タックスアンサーズ:http://www.taxanswer.jp/ 税金についての Q&A を提供しています。
これらのサイトは、確定申告に関する情報を提供していますが、個々の税務状況により情報が異なる場合があるため、具体的なアドバイスについては税務専門家に相談することをおすすめします。
これらのサイトについて、実際にアクセスしてみたところ、実在するサイトは 2 と 4 の 2 サイトだけでした。生成 AI は必ずしも正しい情報を提供するわけではないということがわかります。
このように、現時点では、生成 AI は情報を提供するツールとして活用することで効率的に作業を進めることが可能です。ただ一方で、生成 AI が提供する情報については、必ずしも正しいとは限らないため、その情報を確認する意味で人によるレビューは必要になります。