非機能要件の定義は何を基準に見分けるか
基本情報技術者試験 平成29年度春期 午前 問65 / システム企画 › 要件定義
過去問にチャレンジ
非機能要件の定義で行う作業はどれか。
- ア
業務を構成する機能間の情報(データ)の流れを明確にする。
- イ
システム開発で用いるプログラム言語に合わせた開発基準,標準の技術要件を作成する。
- ウ
システム機能として実現する範囲を定義する。
- エ
他システムとの情報授受などのインタフェースを明確にする。
会話形式の解説
講師この問題では、システムが何をするかと、開発時にどんな条件を守るかを見分けます。
受験者システムに関する作業は、どれも非機能要件に見えて迷います。
講師まず、システムで実現する機能の範囲を決める作業は、何を提供するかを定めていますね。
受験者それは機能そのものを決めるので、機能面の定義です。
講師では、業務を構成する機能の間を流れるデータを明らかにする作業はどうでしょうか。
受験者どの機能の間でデータをやり取りするかを決めています。これも機能面です。
講師そのとおりです。他システムとの情報の受け渡しも紛らわしいですが、何をやり取りするかを明らかにする作業です。
受験者開発時に守る技術上の条件を決めているわけではないのですね。
講師はい。残る、プログラム言語に合わせて開発基準の技術要件を作る作業に注目してください。
受験者システムが提供する機能ではなく、開発時に守る条件を決めています。だから非機能要件の定義に当たります。
講師正解です。非機能要件には品質に関する条件も含まれますが、この問題では開発技術上の制約が判断の鍵です。
まとめ
非機能要件の定義に当たるのは、プログラム言語に合わせた開発基準の技術要件を作る作業です。これはシステムが提供する機能ではなく、開発時に守る条件を定めます。機能の範囲、機能間のデータの流れ、他システムとの情報授受を明らかにする作業とは、何を定めているかで区別します。
解答・解説
正解はイです
この問題のテーマ
機能要件と非機能要件の違いを問う問題です。開発に用いる技術上の条件がどちらに当たるかを判断します。
解き方の考え方
まず、各作業がシステムの実現する機能を決めるものか、開発時に守る条件を決めるものかを見分けます。機能の範囲やデータのやり取りを定める作業は機能面に当たります。プログラム言語に合わせた開発基準の技術要件を作るイが、非機能要件の定義に当たります。
選択肢ごとの解説
- ×ア 業務を構成する機能間の情報(データ)の流れを明確にする。機能間でどのデータが流れるかを明らかにする作業です。これは業務を構成する機能の関係を定めるため、機能面の定義に当たります。
- ○イ システム開発で用いるプログラム言語に合わせた開発基準,標準の技術要件を作成する。プログラム言語に合わせた開発基準は、開発時に守る技術上の条件です。システムが提供する機能を定める作業ではなく、開発上の制約を定める作業なので、非機能要件の定義に当たります。
- ×ウ システム機能として実現する範囲を定義する。システムで実現する機能の範囲を決める作業です。何を機能として提供するかを定めているため、機能面の定義に当たります。
- ×エ 他システムとの情報授受などのインタフェースを明確にする。他システムとどのような情報を授受するかを明らかにする作業です。この選択肢はシステム間で行う情報のやり取りを扱っており、開発基準のような技術上の制約を定める作業には当たりません。
POINT
- 非機能要件には、品質に関する条件や開発技術上の制約が含まれます。
- データの流れを確認するときは、どの機能の間でやり取りするかに着目します。
- 選択肢の作業が開発時の条件を定めるものかを確認すると、機能面の作業と区別できます。
