202205のエントリ

  山本 修一郎

この連載コラム「山修の開発文書品質入門」では,開発文書に携わる皆さんに役立ちそうな開発文書の品質につながる知識を分かりやすく解説します.

バック・ナンバ

 

本ブログ4では,国際標準に基づく要求文のテンプレートの例を紹介した.

今回は,MazoとJaramillo[1]が,新たに提案しているシステム要求仕様の構文を紹介する.彼らは構成要素を8種類に分類している(表1)

表1 要求仕様テンプレートの構成

構成要素 説明
1 条件(Conditionals) この条件が成立するとき,システムが機能要求を実行する
2 システム(System) 機能の実行主体となるシステムおよびサブシステム
3 義務(Obligation) 要求の優先度shall,should,could
4 活動(Activity) システムの機能(動詞)
5 対象(Objects) システムの機能が作用する対象(名詞)
6 評価基準(Criterion) 機能要求が満たすべき条件
7 活動条件 システムの活動が満たすべき条件
8 対象条件 活動対象が満たすべき条件

 

これらの構成要素からなる要求仕様文に対する要求構文は次のようになる.

<条件>が成立したとき,<システム>が,<対象条件>を満たす<対象>を<評価基準>を満たすように,<義務><活動>する
 

ここで,日本語の動詞にはサ変活用があるので,義務の部分を日本語にするのは難しい.日本語では,<義務>部分に,「必ず,絶対,できれば」などを使うことになる.それよりは,義務部分を表す,必須◎,望ましい〇,省略可△などの識別子を要求文の属性とすることにより,要求の優先順位を区別する方が明確になると思われる. 

以下では,この分類に従って要求仕様テンプレートの記述例を説明する.

条件

例:加熱スイッチが押下されたら

システム

例:電気ポット制御システムが

活動

例:加熱信号を送信する

対象

例:ヒータに

評価条件

例:直ちに

評価条件によって,活動に対する性能や信頼性についての非機能要求を記述できる.

活動条件

例:沸騰していない限り

対象条件

例:水タンクが空でない限り

 

■要求テンプレートによる記述例

上述した要素例をまとめて,要求文を記述すると,次の通りである.

加熱スイッチが押下されたら,電気ポット制御システムが,水タンクが空でない限り,沸騰していない限り,直ちに,ヒータに加熱信号を送信する
 

 ただし,この例では,日本語として読みやすいように,要求構文の表現を改めている.このため,日本語の場合,語尾変化を考えて,要求構文を節の集まりで表現した方がいいと思われる.

【システム要求構文】

<条件節>,<システム>が,<対象条件節><評価基準節><対象>に<活動節>
 
 

 ■まとめ

本稿では,システムの要求仕様文についてMazoとJaramilloの構文テンプレートを日本語化した記述例を紹介した.

要求テンプレートには,システム要求仕様を対象とするテンプレートだけでなく,ユーザ要求を対象とするテンプレート[2][3]がある.ユーザ要求テンプレートではユーザの活動を記述する.ユーザ要求テンプレートではシステム機能を直接記述していないので,システム機能を抽出する必要がある.

システム要求仕様を対象とするテンプレートには,EARS(Easy Approach to Requirements Syntax)がある[4].また,ISO/IEC/IEEE 29148にもソフトウェア要求に対するテンプレートの記述例がある[5].EARSやISO/IEC/IEEE 29148のシステム要求仕様テンプレートの構成要素を含んでいるので,現在のところ,MazoとJaramilloの構文テンプレートの表現能力が最も高い.

 
  

参考文献

[1]Raul Mazo, Carlos Andrés Jaramillo, Paola Vallejo, Jhon Medina. Towards a new template for the specification of requirements in semi-structured natural language. Journal of Software Engineering, Research and Development, Brazilian Computer Society, 2020, 8, pp.3. 10.5753/jserd.2020.473. hal-02502411

[2] Davies, Rachel. Format for expressing user stories. 2001.

[3] Wiegers, Karl, and Joy Beatty. Software Requirements Third Edition. Microsoft Press, 2013.

[4] Mavin, A., P. Wilkinson, A. Harwood, and M. Novak. "Easy Approach to Requirements Syntax (EARS)." International Requirements Engineering Conference RE, 2009: 317-322.

[5] ISO/IEC/IEEE. "29148 Systems and software engineering (Life cycle processes — Requirements engineering)." 2011.

 山本 修一郎

この連載コラム「山修の開発文書品質入門」では,開発文書に携わる皆さんに役立ちそうな開発文書の品質につながる知識を分かりやすく解説します.

バック・ナンバ

 

機能要求の書き方について,本ブログ4回で要求テンプレートを紹介した.情報システムの信頼性を向上する上で,非機能要求を明確に定義することが重要である[1].本稿では,非機能要求の書き方について紹介したい.

ロバートソン ら[2]は,非機能要求(NFR, Non Functional Requirements)を8種類に分類している(表1).以下では,この分類に従って非機能要求の記述例を説明する.

 

表1 非機能要求の分類

非機能要求 説明
1 外見要求 システムの外見についての要求
2 使用要求 システム機能が使用性について満たすべき達成条件
3 性能要求 システム機能の応答速度,容量,正確性,効率性,安全性
4 運用要求 システムの運用・操作環境が満たすべき条件
5 保守要求 システムの変更可能性
6 セキュリティ要求 システムが機密性,一貫性,可用性について満たすべき条件
7 組織文化要求 システムの開発・運用・利用に携わる組織行動についての要求
8 法制度要求 システムに適用される法制度および標準への準拠性

 

1. 外見要求

 外見要求では,システムの見た目や色使いなどの外見についての指定事項を記述する.
  <例> システムの外観が魅力的であること 
 

2. 使用要求

 使用要求では,システムの利用者から見たシステムの使い易さの水準を記述する.
 <例>未経験者が初めての利用で,システムを使用できること
 

3. 性能要求

 性能要求では,機能要求を実行する上での条件として,速度・精度・容量・効率・安全性を記述する.機能を構成する入力,処理,出力に対して性能条件を展開すると次の通り.
  [入力性能] 入力速度・入力精度・入力容量・入力効率・入力安全性
  [処理性能] 処理速度・処理精度・処理容量・処理効率・処理安全性
  [出力性能] 出力速度・出力精度・出力容量・出力効率・出力安全性
 
 <例> 注文依頼が発生した場合, 3分以内 に,システムが依頼元に受注確認を連絡すること
 

4.運用要求 

 運用要求では,システムの運用環境が満たすべき実行条件を記述する.実行環境として用意されたハードやOSの性能が不十分な場合,システムが適切に走行できない.
  <例> CPUのクロック性能が2GHz以上であること
 

5. 保守要求

 保守要求では,運用後に発生するシステム変更が満たす条件を記述する.たとえば,OSなどの運用環境,組織環境,ビジネス環境,法制度などの変更がある.
  <例> システムがWindows OSに対する移植性をもつこと
 

6. セキュリティ要求

 セキュリティ要求では,セキュリティの3側面として,機密性(Confidentiality),一貫性(Integrity),可用性(Availability)を記述する.
  機密性:承認されないアクセスから情報を保護すること
  一貫性:システムが格納する情報が情報源と一致すること
  可用性:認証されたユーザが情報にアクセスできること
 
 <例> 認証されたアクセスが発生した場合,システムが応答すること
 

7. 組織文化要求

 組織文化要求では,命名規則や,組織の行動様式としての文化を業務プロセスに反映する必要がある.組織文化要求は合理的根拠がある訳ではないが,システムが使われるために準拠する必要がある.
  <例> 指定国のソフトウェア製品を使用しないこと
 

8. 法制度要求

 法制度要求では,システムが準拠すべき法制度を明記する必要がある.
  <例> システムは,個人情報保護法に準拠すること
 
 
 本稿では,非機能要求について,ロバートソンらの分類と筆者による記述例を紹介した.
 記述例では,肯定命題として「システムは~すること」,否定命題として「システムは~しないこと」と表現した.このように非機能要求は,システムが満たすべき条件を命題として記述すると、明確になる.
 
  
参考文献
[1]経済産業省「情報システムの信頼性向上に関するガイドライン(案)」平成18年4月4日,https://warp.da.ndl.go.jp/info:ndljp/p ... rent.ndl.go.jp/print/3751
[2]スザンヌ・ロバートソン,ジェームズ・ロバートソン,苅部英司訳,要件プロセス完全修得法,三元社,2002

 

  • コメント (0)
  • トラックバック (0)
  • 閲覧 (7668)

メニュー

サイト内検索

カテゴリ一覧

ログイン

ユーザ名:

パスワード:

次回からIDの入力を省略



パスワード紛失