Automated support for encapsulating abstract data types

作者: Robert W. Bowdidge , William G. Griswold

DOI: 10.1145/193173.195298

关键词: VisualizationRestructuringSoftware engineeringProgrammerUser interfaceData structureSoftwareComputer scienceAbstract data typeProgramming languageEncapsulation (networking)

摘要: A software engineer can use a meaning-preserving program restructuring tool during maintenance to change program's structure ease modification. One common action is create new abstract data type by encapsulating an existing structure. Data encapsulation simplifies modification isolating changes the implementation and behavior of type. To perform encapsulation, programmer must understand how used in code, identify operations performed on structure, choose concrete expressions be made into functions. We provide manipulable visualization, called star diagram, that both highlights information partinent supports application transformations through direct-manipulation user interface. The visualization graphically compactly presents all statements given global helping functions completely encapsulate it. Additionally, elides code unrelated task, collapses similar allow frequently occurring fragments manipulate them together. mapped directly text, so manipulation also restructures program. describe design, implementation, evaluate its ability assist large programs.

参考文章(25)
R. Kent Dybvig, The Scheme Programming Language ,(1995)
Alfred V. Aho, Pattern Matching in Strings Formal Language Theory#R##N#Perspectives and Open Problems. pp. 325- 347 ,(1980) , 10.1016/B978-0-12-115350-2.50016-6
Ralph E. Johnson, William F. Opdyke, Refactoring and Aggregation Proceedings of the First JSSST International Symposium on Object Technologies for Advanced Software. pp. 264- 278 ,(1993) , 10.1007/3-540-57342-9_78
James R Larus, Restructuring Symbolic Programs for Concurrent Execution on University of California at Berkeley. ,(1989)
William G. Griswold, Robert W. Bowdidge, Program Restructuring via Design-Level Manipulation ICSE '93 Selected papers from the Workshop on Studies of Software Design. pp. 127- 139 ,(1993) , 10.1007/BFB0030525
Laszlo A Belady, MM Lehman, None, Program Evolution: Processes of Software Change ,(1985)
J. R. Larus, P. N. Hilfinger, Detecting conflicts between structure accesses programming language design and implementation. ,vol. 23, pp. 24- 31 ,(1988) , 10.1145/960116.53993
Lawrence A. Rowe, Joseph A. Konstan, Brian C. Smith, Steve Seitz, Chung Liu, The PICASSO applications framework user interface software and technology. pp. 95- 105 ,(1991) , 10.1145/120782.120793
William G. Griswold, David Notkin, Automated assistance for program restructuring ACM Transactions on Software Engineering and Methodology. ,vol. 2, pp. 228- 269 ,(1993) , 10.1145/152388.152389
Robert W. Schwanke, An intelligent tool for re-engineering software modularity international conference on software engineering. pp. 83- 92 ,(1991) , 10.5555/256664.256688