A software development approach that focuses on modeling software to match a domain according to input from domain experts, emphasizing collaboration between technical and domain experts to create a shared understanding through ubiquitous language. It is used across a range of industries and technical contexts to improve efficiency and outcomes.