A view model in systems engineering or software engineering is a framework. It defines a coherent set of views to be used in the construction of a system architecture or software architecture. A view is a representation of a whole system from the perspective of a related set of concerns. Viewpoint modeling has become an effective approach for dealing with the inherent complexity of large distributed systems.