教科書一覧へ

要件定義と設計

頻出約 16 分システム開発技術

概要

本ユニットでは、システム開発の最上流である「何を作るか」を決める要件定義(機能要件・非機能要件)と、それを「どう作るか」へ落とし込む設計工程(機能設計・詳細設計)、そして品質の評価軸となる品質特性を学びます。上流工程は手戻りの影響が大きく、システム開発技術の中でも頻出分野です。

用語5

機能要件

システムが備えるべき機能・処理内容そのものを定めた要求。

機能要件は、システムが「何をするか」を具体的に定義したものです。例えば在庫管理システムなら「入庫を登録できる」「在庫数を一覧表示できる」といった処理・機能が該当します。 後続の設計・実装すべての前提となる最上流の取り決めで、ここが曖昧だと工程が進むほど手戻りが大きくなります。試験では、性能や信頼性を定める非機能要件との違いが頻出で、『機能=何をするか』『非機能=どれだけうまく・安定して動くか』と区別できることが重要です。

たとえ家を建てるときの「部屋を3つ、台所と風呂を付ける」という要望書のようなもの。建物が果たすべき役割そのものを並べたものです。

記憶フック機能要件といえば「何をするか」を定める要求

非機能要件

性能・信頼性・セキュリティなど機能以外の品質や制約に関する要求。

非機能要件は、機能そのものではなく「どれだけうまく動くか」を定める要求です。応答速度などの性能、止まりにくさの信頼性(可用性)、不正アクセスを防ぐセキュリティ、使いやすさ、保守のしやすさなどが含まれます。 機能要件とセットで要件定義の中核をなし、見落とすと「動くけれど遅い・落ちる・守れない」システムになります。試験では機能要件との対比が頻出で、「24時間止まらない」「1秒以内に応答する」といった例が非機能要件にあたると判断できることがポイントです。

たとえ家の「耐震性を高く」「冬でも暖かく」「光熱費を抑えて」といった、部屋数とは別の住み心地・安全性への要望にあたります。

記憶フック非機能要件といえば性能・信頼性・セキュリティの要求

品質特性

ソフトウェアの品質を評価するための観点を体系化した分類軸。

品質特性は、ソフトウェアの良し悪しを測るための評価の観点を整理したものです。代表的には機能適合性・性能効率性・互換性・使用性(使いやすさ)・信頼性・セキュリティ・保守性・移植性などがあり(JIS X 25010 では8特性)、ソフトウェアの品質を体系立てて考えるためのものさしになります(非機能要件を考える際の指針にもなります)。 要件定義の段階で「どの品質をどの程度満たすか」を決める際の基準として使われます。試験では、これらが品質を測る軸であること、特に信頼性・使用性・保守性などの個別の用語の意味を問う問題が出ます。各特性が何を表すかを押さえておきましょう。

たとえ料理の評価を「味・見た目・栄養・値段・提供の速さ」といった観点ごとに採点表へ整理するようなもの。漠然とした良し悪しを軸で見える化します。

記憶フック品質特性といえば品質を測る評価の観点を体系化した軸

品質特性

機能適合性

性能効率性

互換性

使用性

信頼性

セキュリティ

保守性

移植性

機能設計

要件を受けてシステムの外部仕様・機能の実現方式を決める設計工程。

機能設計は、定義された要件をもとに「その機能をどう実現するか」の大枠を決める工程です。画面や帳票のレイアウト、入出力のデータ、機能の分割など、利用者から見える外部仕様を中心に設計します。外部設計とも呼ばれます。 要件定義の次、詳細設計の前に位置する中間段階で、「要件→機能設計→詳細設計→実装」という流れの中での順番が試験で問われます。利用者視点の外部仕様を扱う点が、内部構造を扱う詳細設計との違いです。

たとえ家づくりで、要望書をもとに「間取り図」を描く段階。どこに何の部屋を置き、どう出入りするかという全体の見取り図を決めます。

記憶フック機能設計といえば利用者から見える外部仕様を決める設計

要件定義

機能設計(外部設計)

詳細設計(内部設計)

実装

詳細設計

機能設計を内部仕様レベルへ具体化し実装可能にする設計工程。

詳細設計は、機能設計で決めた外部仕様を、プログラムが作れるレベルの内部仕様まで具体化する工程です。モジュールの分割、処理手順(アルゴリズム)、データ構造など、開発者向けの内部構造を設計します。内部設計とも呼ばれます。 設計工程の最後に位置し、ここまで決めて初めて実装(プログラミング)に進めます。試験では、利用者視点の機能設計(外部設計)に対し、詳細設計は内部の作り込みを扱うという役割の違いと、設計工程の中で最後にくる順番が問われます。

たとえ間取り図をもとに、柱や配線・配管をどこに通すかまで描き込む「施工図面」を作る段階。職人がそのまま作業できる細かさまで落とします。

記憶フック詳細設計といえば実装できるレベルの内部仕様を作り込む設計

まとめ

要点

  • 要件は「機能要件(何をするか)」と「非機能要件(性能・信頼性・セキュリティ等)」の2種類に大別される。
  • 品質特性はソフトウェアの品質を評価する軸で、機能適合性・性能効率性・互換性・使用性・信頼性・セキュリティ・保守性・移植性などがある(JIS X 25010 では8特性)。
  • 開発は「要件定義→機能設計→詳細設計→実装」の順に進み、上流ほど手戻りの影響が大きい。
  • 機能設計(外部設計)は利用者視点の外部仕様、詳細設計(内部設計)は実装に向けた内部仕様を扱う点が違い。
  • 要件→設計には前提依存があり、要件を定めなければ設計できない。

記憶フック一覧

  • 機能要件: 機能要件といえば「何をするか」を定める要求
  • 非機能要件: 非機能要件といえば性能・信頼性・セキュリティの要求
  • 品質特性: 品質特性といえば品質を測る評価の観点を体系化した軸
  • 機能設計: 機能設計といえば利用者から見える外部仕様を決める設計
  • 詳細設計: 詳細設計といえば実装できるレベルの内部仕様を作り込む設計

関連の過去問演習は今後のアップデートで追加予定です。