首页> 外文学位 >On supporting software evolution: Automatic decomposition schemes based on static and dynamic analysis of programs.
【24h】

On supporting software evolution: Automatic decomposition schemes based on static and dynamic analysis of programs.

机译:关于支持软件演化:基于程序的静态和动态分析的自动分解方案。

获取原文
获取原文并翻译 | 示例

摘要

Program decomposition is a divide-and-conquer strategy that can be used to deal with the complexities of maintaining multimodule programs. The objective of program decomposition is to identify the components of a program which reflect only a part of the semantics of the original program. Programming activities associated with software evolution (maintenance) such as comprehension, testing, debugging, and verification can be simplified if syntactic and semantic decomposition of programs are made available to software engineers.;A unified scheme for syntactic and semantic decomposition is provided. Visibility flow graphs are introduced for representing the information needed for facilitating syntactic decomposition. This formalism provides a set theoretic representation of the visibility, requirement, and definitional attributes of a multimodule program. Declarative contexts, composed of definitional and/or requirement units, constitute the nodes of the graph, while the arcs represent the flow of visibility.;Dependence relations are introduced to represent dependences among the input and output values of variables and the statements comprising a program. The dependence relations are used in producing program projections, a type of semantic program decomposition. Static analysis is used to generate these relations for primitives such as assignment, conditional, and loop statements which are then combined to produce the relations for the entire program. The results are then extended to handle multilevel exit loops, return statements, procedure calls, limited types of recursions, and arbitrary control flow arising from gotos and exceptions. Dynamic analysis is used for generating more precise dependence relations for specific program executions.;An interactive program decomposition tool called AdaAn has been built in a UNIX/C environment with a subset of Ada as the target language. AdaAn provides direct support for program comprehension and debugging activities. A novel method, based on automatic program decomposition, for supporting the maintenance of program proofs and tests is also presented. Individual program projections with respect to output variables are verified or tested during program development. After any modification, only those projections that are either new or modified need to be reverified or retested.
机译:程序分解是一种分而治之的策略,可用于处理维护多模块程序的复杂性。程序分解的目的是识别仅反映原始程序语义的一部分的程序组件。如果软件工程师可以使用程序的语法和语义分解,则可以简化与软件演化(维护)相关的编程活动,例如理解,测试,调试和验证。;提供了一种统一的语法和语义分解方案。引入可见性流程图,以表示促进句法分解所需的信息。这种形式主义为多模块程序的可见性,需求和定义属性提供了一套理论上的表示。由定义和/或需求单元组成的声明性上下文构成图的节点,而圆弧表示可见性流。引入依赖关系来表示变量的输入和输出值以及包含程序的语句之间的依赖关系。依赖关系用于生成程序投影(一种语义程序分解)。静态分析用于为原语(例如赋值,条件和循环语句)生成这些关系,然后将其组合以生成整个程序的关系。然后将结果扩展为处理多级退出循环,返回语句,过程调用,有限类型的递归,以及由goto和异常引起的任意控制流。动态分析用于为特定程序执行生成更精确的依赖关系。在UNIX / C环境中,以Ada的子集为目标语言,构建了一种称为AdaAn的交互式程序分解工具。 AdaAn为程序理解和调试活动提供直接支持。还提出了一种基于程序自动分解的新方法,用于支持程序证明和测试的维护。在程序开发过程中,将对输出变量的各个程序投影进行验证或测试。进行任何修改后,仅需要重新验证或重新测试那些新的或修改的投影。

著录项

  • 作者

    Gopal, Rajeev.;

  • 作者单位

    Vanderbilt University.;

  • 授予单位 Vanderbilt University.;
  • 学科 Computer science.
  • 学位 Ph.D.
  • 年度 1989
  • 页码 304 p.
  • 总页数 304
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号