The use of domain knowledge in program understanding

作者: Spencer Rugaber

DOI: 10.1023/A:1018976708691

关键词:

摘要: Program understanding is an essential part of all software maintenance and enhancement activities. As currently practiced, program consists mainly code reading. The few automated tools that are actually used in industry provide helpful but relatively shallow information, such as the line numbers on which variable names occur or calling structure possible among system components. These rely analyses driven by nature programming language used. such, they adequate to answer questions concerning implementation details, so called what questions. They severely limited, however, when trying relate a its purpose requirements, why Application programs solve realdworld problems. world with particular application concerned application’s domain. A model domain can serve supplement programmingdlanguagedbased analysis methods tools. carries knowledge boundaries, terminology, architectures. This help analyst set expectations for content. Moreover, information how concepts related. article discusses role understanding. It presents method models, together results analyses, be answers both Representing domaindbased also important, variety representation techniques discussed. Although performed manually, tool support guide discovery, reduce effort, improve consistency, repository useful downstream activities documentation, reengineering, reuse. framework understanding, dowser, presented work make use facilitate Experience form collection case studies. After studies described, our compared other researchers working this area. paper concludes discussion issues raised directions future work.

参考文章(56)
Ralph E. Johnson, Brian Foote, Designing reusable classes Journal of Object-oriented Programming. ,vol. 1, pp. 22- 35 ,(1988)
Yellamraju Venkata Srinivas, Pattern matching: a sheaf-theoretic approach algebraic methodology and software technology. pp. 456- 466 ,(1991)
R. Prieto-Diaz, Domain analysis for reusability Software reuse: emerging technology. pp. 347- 353 ,(1988)
Spencer Rugaber, An Example of Program Understanding Georgia Institute of Technology. ,(1998)
Andrew Philpot, Richard Waldinger, Thomas Pressburger, Mark Stickel, Ian Underwood, Michael Lowry, AMPHION: Specification-based programming for scientific subroutine libraries ,(1994)
M.M. Moore, Rule-based detection for reverse engineering user interfaces working conference on reverse engineering. pp. 42- 48 ,(1996) , 10.1109/WCRE.1996.558844
J.-M. DeBaud, Lessons from a domain-based reengineering effort working conference on reverse engineering. pp. 217- 226 ,(1996) , 10.1109/WCRE.1996.558912
J. M. Neighbors, Draco: a method for engineering reusable software systems Software reusability: vol. 1, concepts and models. pp. 295- 319 ,(1989) , 10.1145/73103.73115
R. H. Campbell, A. N. Habermann, The specification of process synchronization by path expressions Lecture Notes in Computer Science. pp. 89- 102 ,(1974) , 10.1007/BFB0029355
G. Arango, Ruben Prieto-Diaz, Domain Analysis and Software Systems Modeling ,(1991)