非機能要件とは?AIで作ったExcelが「動けばOK」ではない理由【設計する力②】

AIにExcelの関数を作ってもらった。結果も正しい。それなのに、使い始めると「遅い」「修正しにくい」と困ることがあります。こうした問題を考えるときに役立つのが非機能要件です。

今回は、前回の「商品名からカテゴリーを判定するExcel」を例に、はんちゃんとチャーが「動けばOK」の先にある設計の考え方を整理します。専門用語を暗記する必要はありません。

図で見る:手作業から自動化、その先の課題

商品名からカテゴリーを判断する手作業と関数・マクロによる自動化を比較し、データ増加時に性能・拡張性・保守性を考える必要性を示す図
商品名からカテゴリーを判定する流れと、非機能要件を考えるポイント

上段は担当者が商品名を見ながらカテゴリーを手入力する場合、下段は関数やマクロで自動判定する場合です。自動化できても、商品が1万件・10万件と増えたときに、同じ処理方式で使い続けられるとは限りません。だからこそ、性能・拡張性・保守性などの非機能要件を考えることが重要です。

※図中の件数は検討の例であり、実際の処理時間の目安を保証するものではありません。処理速度はPC環境、マスター件数、実装方式などによって変わります。

目次

非機能要件って、そもそも何?

はんちゃん(SE)

チャー、非機能要件って言われると、ちょっと難しそう。機能があるなら、それでいいんじゃない?

チャー

そう感じるよね。でも「何ができるか」と「どんな状態で使えるか」は別なんだニャ🐈

機能要件は「システムで何ができるか」。非機能要件は「どのくらい速く、安全に、運用しやすく使えるか」など、機能以外に求める品質や条件のことです。

観点今回のExcelでの問い
機能要件商品名からカテゴリーが判定できる?
性能更新時に待たされすぎない?
拡張性データ・キーワードが増えても使える?
保守性マスターの修正を他の担当者もできる?
使いやすさ操作手順が分かりやすい?
はんちゃん(SE)

商品カテゴリーを出すのが機能。待ち時間や修正のしやすさが非機能要件ということだね。

チャー

そうだニャ。正しく結果が出ても、業務のたびに何分も待つなら使いにくいよね。

Excelの実例:「できた!」だけで終わらせない

商品が2,000件なら、関数でいい?

例えば、商品一覧に「魔王 720ml」「八海山 特別本醸造」が並び、別シートのキーワードマスターから「焼酎」「清酒」を判定する処理を考えます。商品名・判定方法は説明用の架空例です。

はんちゃん(SE)

今は商品が1,000〜2,000件だから、関数で十分な気もする。でもマスターが増えたときに重くなるかもしれないよね。

チャー

そこで件数だけで決めず、更新頻度と再計算時間も確認するニャ。関数・VBA・Power Queryのどれが速いかは、照合方法や環境によって変わるよ。

「5秒以内に終わる」は非機能要件の例

例えば「商品2,000件、マスター100件を更新したとき、カテゴリーの判定を5秒以内に終える」と決めれば、実際に測定して確認できます。5秒は記事用の仮の目標値であり、Excelや特定の実装方式が達成できると保証する数字ではありません。

「速ければ速いほどいい」だけでは判断できません。待てる時間、作る手間、管理する人を踏まえて、必要な水準を決めることが重要です。

性能だけではない! 非機能要件の身近な例

はんちゃん(SE)

性能以外だと、例えば何を考えればいいんだろう?

チャー

マスターを誰が直すか、ファイルをどう配るか、操作が難しくないか。そうした日々の運用も大切だニャ。

非機能要件の確認メモ(例)

  • 性能:更新後、許容できる時間で判定できるか
  • 拡張性:商品・キーワードが増えても運用できるか
  • 運用・保守性:マスターを誰が、どう変更するか
  • 使いやすさ:手順が分かりやすく、誤操作しにくいか
  • セキュリティ:ファイルの保存・共有やマクロ利用のルールを守れるか
  • 確認方法:実データに近い条件で試す

なお、IPAの「非機能要求グレード」では、可用性、性能・拡張性、運用・保守性、移行性、セキュリティ、システム環境・エコロジーという6領域を整理しています。Excelの小規模な例ですべてを細かく設定する必要はありませんが、見落としを減らす視点として役立ちます。

AIと一緒に、どうやって設計を判断する?

第1回で紹介した「実装方式を複数比較する」という考え方に、今回は「どんな品質を満たす必要があるか」を追加します。

STEP
まず「何をしたいか」を決める

商品名にキーワードが含まれていたらカテゴリーを表示する。これが機能要件です。

STEP
データ量と利用場面を整理する

現状は1,000〜2,000件。更新頻度、マスター件数、利用者も確認します。

STEP
「困らず使える条件」を決める

例:更新後5秒以内に判定できること。5秒は説明用の仮設定で、実際は利用者と調整します。

STEP
複数の方式を比較する

関数・VBA・Power Queryの性能、変更しやすさ、運用上の制約を比較します。

STEP
実際に試して判断する

正しい結果が出るか、処理時間が許容範囲内か、変更後も扱いやすいかを確かめます。

STEP
見直す条件を残す

データ増加や性能悪化が起きたら再評価する。次回紹介する設計判断メモにつなげます。

はんちゃん(SE)

なるほど。非機能要件を先に考えれば、関数を選ぶ理由も説明しやすくなるね。

チャー

うん。逆に性能が足りなければ、VBAの一括処理やPower Queryなどを試して比較するニャ。最初から答えを決めつけないのが大事!

AIに聞くときの質問例

例えば、AIへの依頼に次の条件を加えると、設計を比較する材料が増えます。

商品名からカテゴリーを判定するExcelを作りたいです。

現状は商品2,000件程度、マスターは100件程度で増える可能性があります。

関数・VBA・Power Queryを比較し、性能、変更のしやすさ、運用上の注意点、検証すべき項目を整理してください。

数値性能は推測で断定せず、計測方法も提案してください。

ただし、AIの説明だけで性能を保証できるわけではありません。データに近い条件での動作確認と、利用者が困らないかの確認が必要です。

まとめ:非機能要件は「使い続けられるか」を考えるもの

「何ができるか」だけでなく「どんな条件で使える必要があるか」を考えるのが非機能要件です。今回のExcelでは、判定機能に加えて性能・保守性・拡張性などを検討しました。

はんちゃん(SE)

AIで作るのは入り口。使い続けられるかを考えて、どの方式がよいか選ぶんだね。

チャー

その通りだニャ🐈 次回は、その選択と不採用の理由を後から見返せる設計判断メモの残し方を紹介するニャ!

関連記事・参考資料

※本記事の件数・処理時間の目標値は説明用の仮定であり、実際の計測結果ではありません。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次