要件定義
やること/やらないことを明確にする
-
業務要件
- システムの概要
- ユースケース
- →管理者やユーザーの出来る事を図等で記載
-
機能要件
- アプリの種類
- →PCのみか?スマホはやるのか?
- 外部システム連携
- →どのAPIを引っ張ってくるか?
- 機能一覧
- アプリの種類
(例)
カテゴリー | 機能 | 実装方法 | 必須 | 備考 |
---|---|---|---|---|
フロント機能 | 会員登録フォーム | 会員登録 | ||
クレカ登録 |
-
非機能要件
- インフラ構成
- キャパシティプランニング
- →ユーザー数、コンテンツ数等の規模は?7
- 性能要件
- →画面表示はx秒を目標etc.機能目標を記載
- 可用性
- →システムが動く時間は?(99.9%等)
- →可用性を満たす為の対処は?
- 死活監視
- →システムは正常に作動しているか?
- →何を用いて監視するか?
- →作動してない場合どう対処するか?
補足:図を挟む場合はUMLを用いる
要件定義における成果物一覧と書き方
https://pm-rasinban.com/rd-write
設計
誰に対して? | 何を行う? | |
---|---|---|
基本設計(外部設計) | 顧客(システム開発の依頼者 ) | 顧客が理解できる範囲で可能な限り使用を決めるフェーズ |
・画面デザイン、インフラ構成、バッチの挙動 | ||
詳細設計(内部設計) | PG | どうやって実装すべきかを設計する |
・クラス図、シーケンス図 |
基本設計
要件定義書を元に顧客と詳細な仕様を決める
顧客に向けての成果物なので、IT用語は極力避ける
決定事項は「基本設計書」に記載する
- 表紙
- 改訂履歴
- 目次
-
機能一覧
→要件定義書でおおまかに固めて、基本設計書で細かい部分を決める -
システム構成
→インフラ・サーバー側の構成図
→draw.io等で作成 -
画面設計
→画面遷移図
→ドキュメントよりもモックアップツールで作成がおすすめ -
帳票設計
→帳票=PDF・CVSのファイルや印刷物の事
→帳票がなければ必要はない -
バッチ設計
→バッチ=自動で動くプログラムの事
→バッチ一覧:クレジットカードの月額課金バッチetc.
→バッチ詳細:目的・トリガー・処理フローで構成 -
データ移行設計
→旧システムのDBから新システムのDBにリプレイスする事
→新規開発であれば必要はない
基本設計書のサンプル
https://www.dennogo.jp/assets/templat...
https://www.cc.nitech.ac.jp/public/de...
詳細設計
「基本設計の内容の反映」と「PGに最低限の材料を渡す」
クラス図などのUMLを「詳細設計書」に記載するのが一般的
詳細設計書を基に単体テストを行う
運用保守時の調査資料になる
最低限作成するべきモノ
-
テーブル定義書
- 少しずつより、一気に作るのが良い
-
データ転送表・更新表
- 基本設計で決めた内容をベースに作成
- OP処理はデータの取得元を
- IP処理はデータの更新先を記載
-
画面・帳票レイアウト
- 基本設計で決めた内容をベースに作成
- 桁数、入力順、日本語の使用可否等、細かい所は補足する
- エラーチェック
参考URL:
「詳細設計書」を作ってみる
https://qiita.com/minimumskills/items/556e963c54e95c0a540a
テスト
単体テスト
- 機能単位のテスト
- 関数単位・画面のパーツ単位など、出来るだけ小さな単位でテストを行う
単体テスト仕様書
(一例)
テスト対象 | テスト内容 | 期待結果 | テスト結果 | ステータス | 担当 | バグ内容 |
---|---|---|---|---|---|---|
ログインフォーム | 正しいemailとパスを入力してログインボタンをクリック | ログイン成功→マイページへ遷移 | 〇 | 田中 |
結合テスト
機能同士を組み合わせたテスト
(例1)
管理者:動画を公開
ユーザー:動画を見る
↓
管理者が投稿した動画を、ユーザーは動画を見る事が出来るか?
(例2)
ユーザー:カード情報を登録
↓
カード決済外部システム:正しいカード番号か?
↓
正しければ月額課金がスタートされる
総合テスト
-
機能テスト
- 本番環境+本番データで行う
- 全体をシナリオでテスト
- 管理者が投稿→ユーザーが入会→ログイン→投稿閲覧 のように正しい順序で機能を順番に使用できるか?
-
非機能テスト
- 性能試験
- 要件定義書で定めた機能以外の要件を満たしているか?
- x秒で画面は返されるか?
- サーバーに負荷をかけても稼働するか?
- 監視試験など
- システムが止まった場合の対処は稼働しているか?
- 性能試験