基于敏捷开发的数据结构研究
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 算法演示系统原理

综观众多演示软件,都是对算法的执行过程进行模拟,显示算法执行的过程以及执行过程中各种变量值的变化。一个程序分为两部分,一部分是代码,另一部分是数据,只要记录下程序运行过程中执行到的代码的行号及变量值的变化,并把它们分步显示出来,就可以演示算法的执行过程。我们通过探索,设计了一种简单的脚本语言,运行程序的过程中产生脚本文件,演示软件就是脚本语言的解释器。我们设计的脚本语言是一套简单的标记符号,不限于某种语言。

2.1.1 脚本语言

脚本语言以行为单位,脚本行的语法如图2.1所示,其中标识符符号的种类及用法见表2.1。

图2.1 行的语法图

表2.1 标识符符号种类及用法

2.1.2 系统设计思想

按照敏捷软件开发思想,我们采用面向对象设计模式设计系统架构,在通用性和特殊性中找一个合适的平衡点,来应对开发中的不断变化及以后可能的变化。

由脚本语言构成的文本文件通用演示模块与具体算法之间的桥梁,通过具体算法产生脚本文件,演示模块解释脚本文件,用于演示的算法文本可以是任何形式的或在多种语言描述形式中选择。演示的脚本文件由算法的实现程序生成,也可以人工编辑。

在类的设计上,分为界面控制类、演示类、算法执行类及辅助类,为了实现通用性,根据敏捷开发原则,把算法执行类设计为演示类的子类,在子类中继承演示类的通用演示功能来解释脚本语言,对于特殊的图形显示可以在子类中实现。