システム設計
はじめに
IT業界の用語は、文脈依存な上に用語が多すぎて困惑しますね。
基本設計、外部設計、詳細設計、内部設計、機能設計、画面設計。。。
色々と本読んだりして考察しました。
設計の曖昧性とかになること
基本設計と外部設計を同義に扱ってる会社もありますね。システムの入出力について定義することが外部設計ですが、これが基本設計と同義となるのは不思議だなと思いました。じゃぁ、基本設計と呼ばずに外部設計でいいよねって思います。基本設計と外部設計が同義になってるところのプロジェクト状況が気になります。。。
一方で、基本設計では、入出力を定義するし、処理も定義するという会社もあります。
基本設計と外部設計が同義の場合、詳細設計と内部設計が同義になります。
基本設計を外部設計としているところは、内部設計は処理設計のことを指すようで、これをプログラマーに依頼するそうです。これもこれで違和感があるなと。処理って技術依存する部分じゃないしなと。Javaがわからくても処理設計はできるしな。
画面単位が部品なのか、MVC単位が部品なのかという捉え方の違いですかね。
システムの最小部品って、MVCであって、画面ではないと思うのですが。。
さらに、どこまで詳しく書くかという粒度も会社によって異なります。
会社によって違うというのが曖昧さを生み出してますね。
システム開発プロセスについて語る 設計のみ
設計の工程は、基本設計と詳細設計、または、外部設計と内部設計となります。
システムの構成要素は、アプリケーションについては、画面、帳票、DB、機能です。これらの基本的な部分を設計するのが、基本設計。
基本設計の内容を技術的にはこうやって作るというのをデザインパターンに従って定義するのが詳細設計。これで、システムの挙動がコンポーネント単位まで定義されたことになります。
システムの部品は画面じゃないよ。MVCだよ。
外部設計では、入出力を定義するとした場合、内部設計、プログラム設計と続かないといけないんじゃないかなと思います。
最後に
疑問として残ってるのが、炎上しないでしっかり回ってるプロジェクトって、どういった設計の進め方をしているのか?ですね。