The Case for Multiple Views

We argue that viewing a program as a linear sequence of symbols on paper or on a display is outmoded and unnecessarily restrictive. Instead, programs should be regarded as complex multi-dimensional artifacts on which linear text provides but one possible view. Freeing ourselves from these restrictions is very difficult: it requires not only a modest amount of new technology, but also a qualitative change in the way that programmers think. However, the potential benefits are enormous. Multiple views make it easier to understand complex programs, and provide a unifying framework for many common program transformations. In addition, Multiple views provide a solution for language designers trying to choose between competing alternatives: provide the advantages of both, but in different views.

[1]  Matthias Felleisen,et al.  Synthesizing Object-Oriented and Functional Design to Promote Re-Use , 1998, ECOOP.

[2]  A. Black,et al.  Applying Traits to the Smalltalk Collection Hierarchy Submitted to ECOOP 2003 ? , 2002 .

[3]  Bashar Nuseibeh,et al.  Expressing the relationships between multiple views in requirements specification , 1993, ICSE '93.

[4]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[5]  Nathanael Schärli,et al.  Applying traits to the smalltalk collection classes , 2002, OOPSLA '03.

[6]  Mary Jean Harrold,et al.  Slicing object-oriented software , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[7]  Neville Churcher,et al.  Theme-based literate programming , 2002, Ninth Asia-Pacific Software Engineering Conference, 2002..

[8]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[9]  Martin Odersky,et al.  Making the future safe for the past: adding genericity to the Java programming language , 1998, OOPSLA '98.

[10]  Steven P. Reiss,et al.  Simplifying data integration: the design of the Desert software development environment , 1996, Proceedings of IEEE 18th International Conference on Software Engineering.

[11]  William R. Cook,et al.  Mixin-based inheritance , 1990, OOPSLA/ECOOP '90.

[12]  Scott Myers Difficulties in Integrating Multiview Development Systems , 1991, IEEE Softw..

[13]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .

[14]  Ralph E. Johnson,et al.  A Refactoring Tool for Smalltalk , 1997, Theory Pract. Object Syst..

[15]  Steven P. Reiss,et al.  The Desert environment , 1999, TSEM.

[16]  Nathanael Schärli,et al.  Traits: tools and methodology , 2004, Proceedings. 26th International Conference on Software Engineering.

[17]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[18]  Nathanael Schärli,et al.  Object Encapsulation for Dynamically Typed Languages , 2004 .

[19]  Stéphane Ducasse,et al.  A categorization of classes based on the visualization of their internal structure: the class blueprint , 2001, OOPSLA '01.

[20]  Oscar Nierstrasz,et al.  Traits: Composable Units of Behaviour , 2002, ECOOP.