MViews abstracts out common features of multi-view editing environments that support integrated textual and graphical programming. It provides a conceptual model and reusable object-oriented framework for constructing such environments. Multiple views of a base document are supported with consistency automatically maintained between each of the views. MViews has been used to construct a visual and textual programming and program visualisation environment for object-oriented systems. Other applications of MViews under development include entity-relationship and dataflow diagrammers with detailed descriptions programmed with text.