Multiple views based on unparsing canonical representations—the MultiView architecture

Across a range of software development activities, there is typically no single best way to view the abstractions of interest, where the latter include software objects (such as source code), aspects of program execution, software requirements documentation, models of a software process being followed, and many others. Thus, mechanisms which provide automated support for multiple views have the potential to play an important role in many aspects of software development. This paper describes an approach to supporting multiple views which is based on obtaining these views via the unparsing of a single canonical representation of the abstractions of interest when supporting a particular software engineering activity. The general architecture is described, and its application to supporting two quite different aspects of software development – programming and software process modelling – is discussed. Finally, some recent work is outlined which addresses past limitations on editing mechanisms that can be provided in views derived from canonical representations such as abstract syntax trees.

[1]  David Notkin The GANDALF project , 1985, J. Syst. Softw..

[2]  Thomas W. Reps,et al.  The synthesizer generator , 1984, SDE 1.

[3]  Michael James McCarthy Incremental code generation in a distributed integrated programming environment / Michael James McCarthy. , 1995 .

[4]  Patrick Borras,et al.  Centaur: the system , 1988, Software Development Environments.

[5]  Michael McCarthy,et al.  Interprocess Communication Protocol Support in a Distributed Integrated Software Development Environment , 1994 .

[6]  John Grundy,et al.  Multiple textual and graphical views for interactive software development environments , 1993 .

[7]  Thomas Reps,et al.  Programming Techniques and Data Structures , 1981 .

[8]  Martin Verlage,et al.  Directions in Software Process Research , 1995, Adv. Comput..

[9]  M. Read,et al.  Generating direct manipulation program editors , 1996, Proceedings Sixth Australian Conference on Computer-Human Interaction.

[10]  Steven P. Reiss,et al.  Graphical program development with PECAN program development systems , 1984, SDE 1.

[11]  Gail E. Kaiser,et al.  An architecture for intelligent assistance in software development , 1987, ICSE '87.

[12]  Chris D. Marlin,et al.  An Integrated Programming Environment Based on Multiple Concurrent Views , 1988, Aust. Comput. J..

[13]  Wilhelm Schäfer,et al.  A Knowledge-Based Software Development Environment Supporting Cooperative Work , 1992, Int. J. Softw. Eng. Knowl. Eng..

[14]  Bernard Lang,et al.  Document structure and modularity in mentor , 1984 .

[15]  Steven P. Reiss,et al.  PECAN: Program Development Systems that Support Multiple Views , 1984, IEEE Transactions on Software Engineering.