Zusammenfassung

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

Links und Ressourcen

Tags

Community