エンジニアの備忘録

学んだ事をアウトプットしていきます

プロジェクト工程の各フェーズの役割

picture_pc_713febd69ea445f40922900998dd5a80.jpg

要件定義

やること/やらないことを明確にする

  • 業務要件

    • システムの概要
    • ユースケース
      • →管理者やユーザーの出来る事を図等で記載
  • 機能要件

    • アプリの種類
      • →PCのみか?スマホはやるのか?
    • 外部システム連携
      • →どのAPIを引っ張ってくるか?
    • 機能一覧

(例) | カテゴリー | 機能 | 実装方法 | 必須 | 備考 | |:-:|:-:|:-:|:-:|:-:| |フロント機能|会員登録フォーム|会員登録 | | | | | | クレカ登録 | | |

  • 非機能要件
    • インフラ構成
    • キャパシティプランニング
      • →ユーザー数、コンテンツ数等の規模は?7
    • 性能要件
      • →画面表示はx秒を目標etc.機能目標を記載
    • 可用性
      • →システムが動く時間は?(99.9%等)
      • →可用性を満たす為の対処は?
    • 死活監視
      • →システムは正常に作動しているか?
      • →何を用いて監視するか?
      • →作動してない場合どう対処するか?

補足:図を挟む場合はUMLを用いる

要件定義における成果物一覧と書き方 https://pm-rasinban.com/rd-write

設計

誰に対して? 何を行う?
基本設計(外部設計) 顧客(システム開発の依頼者 ) 顧客が理解できる範囲で可能な限り使用を決めるフェーズ
・画面デザイン、インフラ構成、バッチの挙動
詳細設計(内部設計) PG どうやって実装すべきかを設計する
・クラス図、シーケンス図

基本設計

要件定義書を元に顧客と詳細な仕様を決める 顧客に向けての成果物なので、IT用語は極力避ける 決定事項は「基本設計書」に記載する

  1. 表紙
  2. 改訂履歴
  3. 目次
  4. 機能一覧 →要件定義書でおおまかに固めて、基本設計書で細かい部分を決める
  5. システム構成 →インフラ・サーバー側の構成図 →draw.io等で作成
  6. 画面設計 →画面遷移図 →ドキュメントよりもモックアップツールで作成がおすすめ
  7. 帳票設計 →帳票=PDF・CVSのファイルや印刷物の事 →帳票がなければ必要はない
  8. バッチ設計 →バッチ=自動で動くプログラムの事 →バッチ一覧:クレジットカードの月額課金バッチetc. →バッチ詳細:目的・トリガー・処理フローで構成
  9. データ移行設計 →旧システムの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

テスト

image.png

単体テスト

  • 機能単位のテスト
  • 関数単位・画面のパーツ単位など、出来るだけ小さな単位でテストを行う

単体テスト仕様書

(一例) | テスト対象 | テスト内容 | 期待結果 | テスト結果 | ステータス | 担当 | バグ内容 | |:-:|:-:|:-:|:-:|:-:|:-:|:-:| | ログインフォーム | 正しいemailとパスを入力してログインボタンをクリック | ログイン成功→マイページへ遷移 |〇 | | | 田中 |

結合テスト

機能同士を組み合わせたテスト

(例1) 管理者:動画を公開 ユーザー:動画を見る ↓  管理者が投稿した動画を、ユーザーは動画を見る事が出来るか?

(例2) ユーザー:カード情報を登録 ↓ カード決済外部システム:正しいカード番号か? ↓  正しければ月額課金がスタートされる

総合テスト

  • 機能テスト
    • 本番環境+本番データで行う
    • 全体をシナリオでテスト
      • 管理者が投稿→ユーザーが入会→ログイン→投稿閲覧 のように正しい順序で機能を順番に使用できるか?
  • 非機能テスト
    • 性能試験
      • 要件定義書で定めた機能以外の要件を満たしているか?
      • x秒で画面は返されるか?
      • サーバーに負荷をかけても稼働するか?
    • 監視試験など
      • システムが止まった場合の対処は稼働しているか?