W. G. Griswold, ``Coping With Software Change
Using Information Transparency'', Technical Report CS98-585,
Department of Computer Science and Engineering, University of California,
San Diego, April 1998 (revised August 1998). A version of this paper is to
appear at Reflection 2001, Kyoto, 2001.
Abstract
Designers are often unsuccessful in designing for change using
traditional modularity techniques. A complementary modularity technique
called information transparency can improve a designer's ability to
simplify changes by exposing the interdependence of dispersed program
elements that must be changed together for correctness. Information
transparency represents modules via similarity and
architecture, rather than locality and abstraction. With these,
a programmer can create locality with a software tool, easing change in
much the same way as traditional modularity. When combined with
information hiding, then, more complex module structures can be
represented. Information transparency techniques include naming
conventions, formatting style, and ordering of code in a file.
Transparency can be increased by better matching tool capabilities and
programming style. We discuss applications of information transparency
and introduce design principles for software designers and tool
designers.