2020/05/18

要件定義書のテンプレート

背景


仕事の中でシステムやソフトウェアの開発を行う際、要件定義書を書く機会が増えてきたので、要件定義書に必要な項目をまとめた。

記事の目的


要件定義書を効率的に作成するため、要件定義書のテンプレートを作成する

要件定義書とは


要件定義書は、開発仕様書とも呼ばれている。要件定義書の目的は、開発にかかわるすべての技術者に開発する製品(新規の開発およびバージョンアップ)が備えるべき要件を決定事項として周知することである。

要件定義書の全体構成


要件定義書の全体構成は、下記の通りである。
  1. 処理要件の定義
    1. 処理概要
      1. 背景と目的
      2. システム化が必要な背景(理由)と目的を簡潔に記載する。
      3. 用語・略語の定義
      4. システム化対象処理にて使用する専門的な用語・略語の説明を記載する。
      5. 処理の概要
      6. システム化対象の処理の概要を記載する。
        UMLのアクティビティ図を利用すると良い。
      7. (オプション)現行システム概要
      8. 現行システムの概要を記載する。新規の場合は不要。
        • ハードウェア構成
        • 現行システムのハードウェア一覧について記載する。
        • ネットワーク構成
        • 現行システムのネットワーク構成について記載する。
          UMLの配置図を利用すると良い。
        • システム機能一覧(UI、UX)
        • 現行システムの機能一覧について記載する。
        • ミドルウェア構成
        • 現行システムで使用しているミドルウェア(Web、AP、DB)について記載する。
        • データ一覧(テーブルやファイル)
        • 現行システムで使用しているデータ形式一覧について記載する。
        • 外部インターフェース一覧
        • 現行システムの外部との界面(インターフェース)について記載する。
    2. 規模
    3. システム化対象処理の利用者数など、処理の規模を記載する。
    4. 時期・時間
    5. システム化対象処理の稼働時間を記載する。
    6. 場所
    7. システム化対象処理が関係する場所や組織について概要を記載する。
    8. 管理すべき指標
    9. システム化対象処理にて、管理すべき指標(KPI)を記載する。
    10. (オプション)システム化範囲
    11. 対象処理のシステム化範囲を明確に記載する。新規の場合は不要。
  2. 機能要件の定義
    1. システム機能要件
    2. システム機能一覧について記載する。
      • 機能名
      • 機能の名称について記載する。
      • 機能種別(表示(出力)、入力、処理、保存、削除)
      • 機能の種別について記載する。
      • 処理概要
      • 処理の概要について記載する。
      • 利用者
      • 機能を利用する対象者について記載する。
    3. UI、UX要件
    4. システムの表示(大きさや位置)や入力(入力方法など)に関する要件を記載する。
    5. データ要件
    6. 保管するデータ項目の一覧やデータ量の想定件数を記載する。
      UMLのER図を利用すると良い。
    7. 外部インターフェース要件
    8. 処理連携やデータの授受を行う他システムについて記載する。
      • 外部インターフェース名
      • 外部インターフェースの名称を記載する。
      • 外部インターフェース概要
      • 外部インターフェースの概略を記載する。
      • 連携方式(バッチorオンライン)
      • 連携する方法を記載する。
      • 送受信区分
      • データの流れを記載する。
      • 相手先システム
      • 外部インターフェースで接続されるシステムについて記載する。
      • 送受信タイミング
      • データの送受信タイミングについて記載する。
      • 送受信方式
      • データの送受信の方式(リソース共有(データベース共有、ディスク共有)、アプリケーション連携(RPC、Webサービスなど)、ファイル連携、メッセージング)について記載する。
  3. 非機能要件の定義
    1. ユーザビリティ要件
    2. システムの利用者について、ITリテラシーの水準を記載する。
    3. アクセシビリティ要件
    4. システム利用者の特性を受けて、今回開発システムに求める使いやすさを記載する。
      • 画面構成
      • 操作のしやすさ、分かりやすさ
      • 指示や状態の分かりやすさ
      • エラーの防止と処理
      • ヘルプ(ヘルプ情報やマニュアルなどの参照)
    5. システム方式要件
    6. システム構成の方針、全体構成図、開発方式や手法などについて記載する。
      1. システム構成の方針
        • システムアーキテクチャ
        • Webサーバなどの使用するアーキテクチャについて記載する。
        • アプリケーションプログラムの設計方式
        • 設計時の機能分割やコンポーネントの再利用の方針について記載する。
        • ソフトウェア製品の活用方式
        • OSSなどの外部ソフトウェアの利用方針について記載する。
        • システム基盤の方針
        • 処理や保存するデータ量や利用者の増加(拡張性)について記載する。
      2. システム全体構成
      3. プラットフォーム(ネットワーク、ハードウェア、OS ・ミドルウェア)の構成について記載する。
        UMLの配置図を利用すると良い。
      4. 開発方式や開発手法
        1. 開発方式
        2. スクラッチ開発、パッケージを使った開発などの開発方式について記載する。
        3. 開発手法
        4. ウォーターフォール、プロトタイピング、スパイラル、アジャイルなどの開発手法について記載する。
    7. 規模要件
    8. システム化において必要な機器数やデータ量、処理件数などを記載する。
      • 機器数
      • サーバー、クライアント端末などの機器の数について記載する。
      • データ量
      • テーブル毎のデータ量について記載する。 「データ要件」に記載の場合は、そちらを参照する旨を記載する。
      • 処理件数
      • システム機能毎にピーク時の処理件数について記載する。
    9. 性能要件
    10. システムの応答時間について記載する。
    11. 信頼性要件
      • 可用性
      • システムの稼働率について記載する。(例: 稼働率99.999%)
      • 完全性
      • 機器の破損やデータ欠損、不整合への対策、ログの取得について記載する。
    12. 拡張性要件
      • 性能の拡張性
      • 扱える利用者やデータ量の増加などの性能拡張の可否について記載する。
      • システム機能の拡張性
      • システムに新たな機能を追加可能かなどの機能拡張の可否について記載する。
    13. 上位互換性要件
    14. OSやソフトウェアのバージョンアップにおける要件について記載する。
    15. 継続性要件
    16. 大規模災害時における復旧目標時間やデータバックアップについて記載する。
    17. 情報セキュリティ要件
    18. 開発するシステムが満たすべきセキュリティの要件を記載する。
      • 利用者等の認証
      • 利用者認証(利用者自身、利用者の知っているもの、利用者が持っているものを用いた認証)の方式について記載する。
      • 権限管理
      • アカウント管理(登録、更新、停止、削除)の方法について記載する。
      • アクセス管理
      • 利用者の職務に応じて利用機能を制限する方法について記載する。
      • ログ管理
      • システムの利用記録・検索方法について記載する。
      • 暗号化機能
      • 保存したデータや通信するデータの暗号化方式について記載する。
      • 不正プログラム対策
      • コンピュータウィルス感染防止の対策方式について記載する。
      • 通信の制御
      • 不正通信の遮断方式について記載する。
    19. 情報システム稼働環境要件
    20. システム稼働可能な環境要件について記載する。
      • ハードウェア構成図
      • 最低限必要なハードウェア構成について記載する。
      • ソフトウェア構成図
      • 最低限必要なソフトウェア構成について記載する。
      • ネットワーク構成図
      • 最低限必要なネットワーク構成について記載する。 UMLの配置図を利用すると良い。
    21. テスト要件
    22. 各テストについて、システムの品質を担保するために必要なテストの種類や目的、方法、実施内容、範囲、報告書等の要件について記載する。
      • 単体テスト(MT, UT)
      • プログラムを構成する比較的小さな単位(ユニット)が個々の機能を正しく果たしているかどうかを検証するテストのことである。
      • 結合テスト(IT)
      • システム開発におけるプログラムの検証作業の中でも、手続きや関数といった個々の機能を結合させて、うまく連携・動作しているかを確認するテストのことである。
      • システムテスト(ST)
      • システム開発におけるプログラムの検証作業の中でも、構築したシステムが全体として予定通りの機能を満たしているかどうかを確認するテストのことである。
      • 運用テスト(OT)
      • システム開発においていくつかあるテスト工程の中で、本番稼働直前、テスト工程の一番最後に行う確認テストのことである。
    23. 移行要件
    24. システム移行に関する下記のような要件について記載する。
      • 移行スケジュール
      • 全体の開発、導入スケジュールについて記載する。
      • プログラム移行
      • プログラムの移行手順について記載する。
      • 初期データ登録
      • 新たなデータの登録方法について記載する。
      • 既存システムからのデータ移行
      • 既存システムからのデータの移行方法について記載する。
      • 役割分担
      • 担当者について記載する。
    25. 引継ぎ要件
    26. システム開発企業と、システム運用企業が異なる場合は、運用企業への引継ぎ要件について記載する。 具体的には、ドキュメントやトレーニング(対象者、スケジュール、実施場所、内容)について記載する。
    27. 教育要件
    28. システム利用者への操作教育について、下記のような観点で記載する。
      • 教育対象者
      • 教育の内容
      • 教育の実施時期
      • 教育の方法
      • 教材
      • 教育対象者数
    29. 運用要件
    30. システム運用(定常運用、随時運用、障害時運用のそれぞれ)における要件について記載する。
      • 運転管理及び監視
      • システム稼働監視、障害時の対応、報告内容や報告頻度について記載する。
      • 運用実績の評価と改善
      • 運用業務の内容や工数、報告内容や報告頻度について記載する。
      • システム操作
      • バックアップやアカウントの管理、ウィルスチェックの方法について記載する。
      • 運用サポート
      • 操作研修や問い合わせ対応について記載する。
      • 業務運用支援
      • データ作成支援や問い合わせ対応について記載する。
      • システムの現況確認
      • 各種管理台帳の提出方式について記載する。
    31. 保守要件
    32. システムの保守における要件について記載する。
      • プログラム
      • 保守の受付時間、対応時間について記載する。
      • ハードウェア
      • 保守の受付時間、対応時間について記載する。
      • ソフトウェア製品
      • 保守の受付時間、対応時間について記載する。
      • データ保守実績の評価と改善
      • 保守業務の内容や工数、報告内容や報告頻度について記載する。

まとめ


  • 要件定義書のテンプレートに関して記述した

参考文献



変更履歴


  1. 2020/05/18: 新規作成



0 件のコメント:

コメントを投稿

MQTTの導入

背景 IoTデバイスの接続環境構築のため、MQTT(mosquitto)の導入を行った。 記事の目的 MQTT(mosquitto)をUbuntuに導入する mosquitto ここではmosquittoについて記載する。 MQTT MQTT(Message Qu...