Abstract:
Diagram construction can be used to visually analyse and design a complex software
system using natural, graphical representations describing high-level structure and
semantics. Textual programming can specify detailed documentation and functionality
not well expressed at a visual level. Integrating multiple textual and graphical views of
software development allows programmers to utilise both representations as appropriate.
Consistency management between these views must be automatically maintained by the
development environment.
MViews, a model for such software development environments, has been developed.
MViews supports integrated textual and graphical views of software development with
consistency management. MViews provides flexible program and view representation
using a novel object dependency graph approach. Multiple views of a program may
contain common information and are stored as graphs with textual or graphical
renderings and editing. Change propagation between program components and views is
supported using a novel update record mechanism. Different editing tools are integrated
as views of a common program repository and new program representations and editors
can be integrated without affecting existing views.
A specification language for program and view state and manipulation semantics, and a
visual specification language for view appearance and editing semantics, have been
developed. An object-oriented architecture based on MViews abstractions allows
environment specifications to be translated into a design for implementing environments.
Environment designs are implemented by specialising a framework of object-oriented
language classes based on the MViews architecture. A new language is described which
provides object-oriented extensions to Prolog. An integrated software development
environment for this language is discussed and the specification, design and
implementation of this environment using MViews are described. MViews has also been
reused to produce a graphical entity-relationship/textual relational database schema
modeller, a dialogue painter with a graphical editing view and textual constraints view,
and various program visualisation systems.