見出し画像

システム開発における設計の目的について

システム開発は下記の流れでフェーズ分けされ、リリースまで進行されることが多い。
①企画
②要件定義
基本設計
詳細設計
⑤実装
⑥単体テスト
⑦結合テスト
⑧システムテスト
⑨リリース

このうち③と④では何をするのか?成果物は何か?を調べてみた。
基本設計
システム全体の概要・機能一覧・操作画面・操作方法など、主にシステムを使用するユーザーから見える部分の設計を行う。
詳細設計
基本設計を基に、システムの内部構造・処理方法・データの流れなど、ユーザーからは見えない細部まで設計を行う。

基本設計はなんとなく頭でイメージできるが、詳細設計はわからないこともあるのでもう少し調べてみた。

↓詳細設計書に書いてあること

  • 画面遷移図

  • クラス図

  • シーケンス図

  • 状態遷移図

  • データベース物理設計書

  • 入手力設計書

  • バッチ処理詳細定義

一般的に上記の成果物があるからと言って、むやみやたらにとりあえず作れば良いというわけではない…。
場合によっては不要なものもあるかもしれないし、逆にプラスで必要になるものもあるかもしれない。
例えば「クラス図」は、クラスの関係を可視化できるように図示したドキュメントで、システム全体像を把握する際に使用される、重要度の高い成果物です。

クラス名・属性・操作を四角線で囲い、それぞれを矢印で結んで関係を示します。

例えばPHPのフレームワークであるLaravelを用いたシステムの設計の場合、これにプラスして「MVCモデル」の考え方が必要になってきます。

と、いうよりも・・・

次のフェーズである実装を行う人が、どこのクラスに、どんな処理を、なんのために実装していくのか、が分かればそれで良いのです。
この目的さえそれなければ、極論伝え方はなんでも良いのかもしれません・・・。

必要な知識を調べていくうちに、一般的なものばかりに囚われてしまい、目的意識を忘れかけそうになったお話でした。。

以上、
設計についての知識と、進め方(目的意識を忘れない)の両方を学べた良いタイミングとなりました。

この記事が気に入ったらサポートをしてみませんか?