MVCモデルでは、モデル、ビュー、コントローラの3つに分けます。
MVCモデルとは、プログラムのモジュールを、データを取り出しビジネスロジックに基づいて処理を行うモデル(Model)、クライアント端末への表示と出力を担うビュー(View)、クライアント端末からのリクエストを受け取り、その内容に応じてビューとモデルを制御するコントローラ(Controller)の3つに分けるシステム設計手法です。
元々は、プログラミング言語の画面インターフェースの設計指針として誕生したMVCモデルですが、現在では、画面構成が複雑になりがちなWebシステムの開発やJavaによる業務システムの開発などで利用されています。
開発の効率性、コードの再利用性などのメリットがあります。
MVCモデルには、機能ごとにモジュールを明確に分けることで、ITエンジニアとデザイナーによる開発分業が容易である、コードを再利用しやすい、仕様変更への対応が比較的柔軟、予期しないエラーやデータ書き換えを防げるなどのメリットがある一方で、一定規模以上のシステムではモデルやコントロールが肥大化しやすくMVCモデル通りの設計が難しい、コントロールとビューの相互依存度が高まると修正が難しくなるなどの特徴があります。
現在、システムの特性に合わせてMVCモデルを派生させたモデルとして、MVVMモデル、Fluxモデル、Reduxモデルなども登場しています。