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.
This research is supported in part by NSF grants CCR-9508745 and CCR-9970985, and California MICRO proposal 97-061 with Raytheon Systems Company.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
T. J. Biggerstaff, B. G. Mitbander, and D. Webster. The concept assignment problemin program understanding. In Proceedings of Working Conference on Reverse Engineering, pp 27–43, May 1993.
F. P. Brooks. The Mythical Man Month: Essays on Software Engineering. Addison-Wesley, Reading, MA, 1975.
R. E. Crew. ASTLOG:Alanguage for examining abstract syntax trees. In Proceedings of the USENIX Conference on Domain-Specific Languages, pp 229-42, October 1997.
S. G. Eick, J. L. Steffen, and J. E. E. Sumner. Seesoft-a tool for visualizing line orientedsoftware statistics. IEEE Transactions on Software Engineering, 18(11):957–968, November 1992.
W. G. Griswold, M. I. Chen, R. W. Bowdidge, and J. D. Morgenthaler. Tool support for planning the restructuring of data abstractions in large systems. In ACM SIGSOFT’ 96 Symposium on the Foundations of Software Engineering, pp 33–45, October 1996.
W. G. Griswold and D. Notkin. Automated assistance for program restructuring. ACM Transactions on Software Engineering and Methodology, 2(3):228–269, July 1993.
W. G. Griswold and D. Notkin. Architectural tradeoffs for a meaning-preserving program restructuring tool. IEEE Transactions on Software Engineering, 21(4):275–287, April 1995.
A. J. Gray. Development of an unanticipated member of a program family. Masters Thesis, University of California, San Diego, Department of Computer Science and Engineering, October 1997. Technical Report CS97-560.
W. G. Griswold, J. J. Yuan, and Y. Kato. Exploiting the map metaphor in a tool for software evolution. In Proceedings of the 2001 International Conference on Software Engineering, pp 265–274, May 2001.
D. Jackson and M. Jackson. Problem decomposition for reuse. Software Engineering Journal, 11(1):19–30, January 1996.
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of AspectJ. In 15th European Conference on Object-Oriented Programming (ECOOP 2001), pp 327–353, June 2001.
G. Kiczales, J. Lamping, C.V. Lopes, C. Maeda, A. Mendhekar, and G. Murphy. Open implementation guidelines. In Proceedings of the 19th International Conference on Software Engineering, pp 481–490, May 1997.
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. M. Loingtier, and J. Irwin. Aspect-oriented programming. In 11th European Conference on Object-Oriented Programming, pp 220–242. Springer-Verlag, June 1997.
B. J. MacLennan. Principles of Programming Languages: Design, Evaluation, and Implementation. Holt, Rinehart, and Winston, New York, 2nd edition, 1987.
S. McConnell. Code Complete: A Practical Guide of Software Construction. Microsoft Press, Redmond, Washington, 1993.
G. C. Murphy and D. Notkin. Lightweight source model extraction. In ACMSIGSOFT’ 95 Symposium on the Foundations of Software Engineering, pp 116–127, October 1995.
G. C. Murphy, D. Notkin, and K. Sullivan. Software reflexion models: bridging the gap between source and high-level models. In ACM SIGSOFT’95 Symposium on the Foundations of Software Engineering, pp 18–28, October 1995.
D. Orleans and K. Lieberherr. DJ: Dynamic adaptive programming in Java. In Reflection 2001: Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns, September 2001.
H. Ossher and P. Tarr. Multi-dimensional separation of concerns and the hyperspace approach. In Proceedings of the Symposium on SoftwareArchitectures and Component Technology: The State of the Art in Software Development. Kluwer, 2000.
D. L. Parnas. On the criteria to be used in decomposing systems into modules. Communications of the ACM, 15(12):1053–1058, December 1972.
D. L. Parnas. Why software jewels are rare. IEEE Computer, 29(2):57–60, February 1996.
D. L. Parnas, P. C. Clements, and D. M. Weiss. The modular structure of complex systems. In Proceedings of the 7th International Conference on Software Engineering, pp 408–417, March 1984.
D. L. Parnas, G. Handzel, and H. Wurges. Design and specification of the minimal subset of an operating system family. IEEE Transactions on Software Engineering, 2(4):301–307, December 1976.
R. W. Schwanke. An intelligent tool for re-engineering software modularity. In Proceedings of the 13th International Conference on Software Engineering, pp 83–92, May 1991.
C. R. Turner. Feature Engineering of Software Systems. PhD thesis, University of Colorado, Department of Computer Science, May 1999.
M. J. Vilot. An introduction to the Standard Template Library. C++ Report, 6(8):22–29, 35, October 1994.
M. VanHilst and D. Notkin. Decoupling change from design. In ACM SIGSOFT’96 Symposium on the Foundations of Software Engineering, pp 58–69, October 1996.
S. Wu and U. Manber. agrep-a fast approximate pattern-matching tool. In Proceedings of the Winter 1992 USENIX Conference, pp 153–162
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Griswold, W.G. (2001). Coping with Crosscutting Software Changes Using Information Transparency. In: Yonezawa, A., Matsuoka, S. (eds) Metalevel Architectures and Separation of Crosscutting Concerns. Reflection 2001. Lecture Notes in Computer Science, vol 2192. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45429-2_17
Download citation
DOI: https://doi.org/10.1007/3-540-45429-2_17
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-42618-9
Online ISBN: 978-3-540-45429-8
eBook Packages: Springer Book Archive