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.
Keywords Modularity - design - software maintenance - software evolution - programming methodology - implementation techniques
This research is supported in part by NSF grants CCR-9508745 and CCR-9970985, and California MICRO proposal 97-061 with Raytheon
Systems Company.