Laravelの詳細設計書で、MVCモジュール構成図を書いていきたい

### Laravelでの詳細設計の項目検討
– MVCモジュール構成図
– シーケンス図
– controller処理ロジック
– クロスサイトスクリプティング、SQLインジェクション対策
– 環境構築手順
– デプロイ・リリース手順
– テスト手順
– コーディングルール、その他

### LaravelのMVCモジュール構成図
モデル、コントローラ、ビューだけだと説明不足のように感じるので、Middleware、Eventなど、アプリケーションに使用しているclassも書いていくイメージか?

「開発工程は、要件定義→基本設計→詳細設計→プログラミング→単体テスト→結合テスト→総合テスト→運用テスト→本番移行」を鵜呑みにして、詳細設計書は実装の前に書くものかと思ってましたが、実際の実務では、ベテランエンジニアを除けばある程度実装してから書かないと、かなり手直しが発生するんなんじゃないかと思ってしまいます。

Diffrence between external and internal design

External Design
External design is also called basic design or external design, and generally up to external design is included in the upstream process.
The basic design of the system is performed based on the functions, performance, and constraints determined in the requirements definition. Basically, the specifications for the user are designed, such as determining the specifications of the interface part that can be seen by the user such as the operation screen, operation method, data output etc., designing security and operation rules, schedule and expenses of system development, etc. It is external design to do.

Internal Design
The internal design is based on the external design to design details that are difficult for the user to see, such as the operation and functions inside the system and physical data. Although this is a process between external design and detailed design to performed afterward, it is sometimes treated as the same process as detailed design because it is specialized for internal system. Divide program functions into single units and design physical data and input / output to be used there. The role of internal design is to make the result of external design easy to program.

ummmmm,
I would like to accumulate more know-how and knowledge on internal design.