Systems

Patterns that form the most basic structure of the system

Bounded Context

Architectural boundaries

Application

Perspectives on how a system should be structured, based on what's perceived most important: ease-of-development, testability, or understandability

Document-View

Traditional Model-View-Controller

Model-View-Updater

Model-View-Adapter

Model-View-Presenter

Model-View-Viewmodel

MVVM, Model-View-Binder

Hierarchical MVC

Presentation-Abstraction-Control, Hierarchical model-view-controller

Microkernel

Kernel

Software Framework

Entity-Control-Boundary

Entity-Boundary-Control, Boundary-Control-Entity

Hexagonal Architecture

Ports and Adapters, Onion Architecture, Clean Architecture, Functional Core / Imperative Shell

Data-Context-Interaction