第1章:はじめに
要件定義について
- 要件定義はアプリを作る上で非常に重要な作業になります。簡単に言ってしまえばどんな機能を実現したいかを言語化することです。特にコードを書かずにChatGPTにコードを作成させるとなると、この要件次第でアプリの出来栄えは大きく左右されます。
例えば計算機を作りたいときにこんな問題が起こります(電卓という共通認識の言葉はいったんない世界として考えてください)。 - 私も何度も説明しないといけないし、ChatGPTも何度も生成させられてかわいそうですね。
複雑なシステム開発の現場ではプロが一生懸命に要件定義を行い、開発がすすめられますが、それでも要件もれや、自然言語(Sysmlなどで可能な限り避ける方法もあります)を用いるが故に認識のずれなどが往々にして発生します。
私たちが作成する小規模なシステムであっても、手間だと感じることはあれど、要件を定義してから始めることが最短の開発になるということを忘れないでください。
要件定義についてもっと詳しく知りたい方はIPAが作成している要件定義ガイドを参考にしてみてください。
Pythonアプリとは
- アプリの開発にPythonを用いる理由はライブラリの多さにあります。ライブラリとはよく使う処理をまとめて再利用できるようにしたものです。
プラスねじを回すにはドライバー、物を切るためにはハサミを用意するのと同じです。多くの言語ではドライバーやハサミまで自分で作ることになることもありますが、 Pythonではそうしたツールがあらかじめ豊富に用意されており、すぐに使うことができるのです。
そのため、なるべく低コストで、目的に合わせてアプリを素早く作成したい場合に、Pythonは非常に適した言語といえます。
第2章:要件定義をしよう
目的の明確化
- いくつかの例題を検討した結果、今回は「音声でも入力できるメモ帳」を作成することにしました。
これは、今後のアプリ開発や要件定義の練習としても有効に活用できると考えています。具体的には、音声でざっくりと要件を話し、それをChatGPTに読み込ませて添削・整理してもらうことで、要件定義のスピードアップを図るという狙いです。(たとえば「こういう機能がほしい」「こんなことができたらいい」などを、まず音声で言語化してみる)
どんな機能が必要かを書き出す
音声認識メモアプリ
- 音声認識機能
メモ帳では音声を認識させるため。 - プレビュー画面
音声で作成したメモがどんな感じで保存されているのかを確認したい。
まずはこんな感じで書いてみました。要件を定義しろと言われてもなかなか難しいものです。
要件分析を行うためには様々な手法がありますが、今回は後程フローチャートを作成しつつ要件を補足してみようと思うので。現時点は荒い状態で止めておきます。
使用するツール・制約の整理
- Windows PC
基本的にはMacでも使えるライブラリを使用しますが、動作確認はできないのであしからず。
必要に応じて問い合わせをお願いします。 - Python
上記の背景をもとにPythonを利用します。
第3章:設計に落とし込む
フローチャートで動作確認
- アプリの動作をイメージするには、どのような手順で動くのかを明確にすることが大切です。
そこで今回は、簡単なフローチャート風の図を作成してみました(あくまで”風”なので厳密な図式ルールには則っていません)。
皆さんが実際にやる場合には、箇条書きやステップ形式(例:1.●●→2.●●)でも問題ありません。
再度要件定義
フロー図を見てみると、新たに必要な機能や考慮すべき点がいくつか見つかりました。
以下のように、アプリの要件を改めて整理してみます。
規模が大きくなる場合には、Excelなどにまとめて管理するのもおすすめです。
音声認識メモアプリ
- 音声認識機能
このメモ帳では音声をもとにメモを作成。 - プレビュー画面
音声で作成したメモがどんな感じで保存されているのかを確認したい。 - 録音の開始ボタン
起動したら常時録音されると意図しない音声が入る - 音声入力までの待機
音声が入力されていない間は待機する - 文字起こし
音声をもとに文字起こしをしてほしい - 録音の終了ボタン
録音が終了したら終了ボタンで停止させたい。 - データの保存
テキストファイルに名前を付けて保存したい。
これで要件定義の準備はいったん完了です。
第4章からは、この要件をもとにPythonコードを実際に生成し、動作確認を行っていきましょう。
きっとさまざまな課題が出てくると思いますが、それこそが開発の醍醐味でもあります。
コメント