的确有《树型软件工程方法》

    

    我是新博客,早上说了一句“树型软件工程方法是由中国人创立的,是当今最科学的软件工程方法”,招来两位网友的嘲讽。如今我将《树型软件工程方法》一书的前言贴在这里,以暂缓网友之惑。详细内容可上网站:hppt//www.wtreesoft.com/查看

 

前言

    本书是关于软件工程的专著,在计算机科学领域中首次提出了树型软件的设计方法。本书的主要成果是构造出了三类表示软件结构的数学树:表示系统结构的事件树,表示事件结构的任务树,和表示任务结构的作业树。对于任何计算机软件系统,都可以用这三类逐级嵌套的数学树来建立其结构模型,继而生成分层嵌套的计算机程序。

    通常将计算机软件的设计方法分为两类:面向对象的和面向过程的。我们常用的方法称为ER方法(实体联系方法),实际就是面向对象的设计方法,或者说面向对象的方法本质上就是ER方法。树型软件工程方法实际是面向过程的方法,三类树中的任一个节点(事件,任务,作业)都是一个软件模块(过程)。人们在长期的软件工程实践中,总结出结构化系统和结构化程序的概念,认为是最优的软件结构。所谓结构化的软件结构,应该是分层嵌套的软件结构,其总可以用一棵树来表示。因此,无论是系统结构还是程序结构,能够以树来表示的就是最佳的结构。就结构化设计要求而言,树型软件工程方法是与之吻合的。

    人们虽然提出了结构化系统设计概念,但始终没形成独立、有效、完备的工程方法。这主要有两个方面的原因,其一是模块的划分没有确定的方法,模块的范畴大小没有严格的定义;其二是不能确定模块间的连接关系,模块间的联系无法形成分层嵌套。这两点正是构造软件系统结构和程序结构的关键所在。在树型软件工程方法中,上述两方面的问题都得到了圆满的解决。模块划分方法既有严格的规定又是自然形成的,模块间的联系既符合算法逻辑又能形成树型结构。树型软件工程方法从现实世界的需求入手,逐级嵌套划分,最终得到了从大到小范畴不同的所有“过程”,形成了如下图所示集中代表本书成果的“系统结构模型”。

 

                             <此处本来是图,奈何贴不上去>

 

    对于上图所示的系统结构模型,第20.7节有详细的说明。该模型分为三大部分:现实世界,思维世界和信息世界。思维世界在这里所指的就是“算法”,以及抽象成“等效处理”、“协作调用”、“同宗控制”、“顺序执行”、“运算”、“标识”等系统分析和设计方法,它是从现实世界进入信息世界的桥梁。现实世界部分的“过程”既是现实世界中事物间的“作用过程”,也是信息世界中计算机软件的“过程模块”。信息世界中的各级数学树,都表示现实世界中处于相同级别的过程的结构,它们既是信息世界的过程结构,也是现实世界的过程结构。树结构的分层嵌套,使得软件系统结构也是分层嵌套的,从原理上去掉了无条件转向语句,是名付其实的“树型软件”。

    也可以说系统结构模型由四部分组成,这第四部分就是“数据”。可以想象立体的“系统结构模型”就像一座宝塔,每一个同心园环对应着宝塔的一层,各层中空部分直至宝塔顶尖都是“数据”。一方面,无论是现实世界的事物,还是思维世界的算法,进入计算机首先都要被“信息化”,都要被表示成“数据”。就是信息世界自身的过程,树和程序,也都需要标识成相应的“符号”数据。数据可以表示任何事物,任何事物只有表示成数据才能进入计算机,计算机就只认识数据。另一方面,系统结构模型中的各类过程都有各自独立的运行结果,称之为“目标数据”,本质上都是关系数据库。设计开发计算机软件的目的就是为了求得运行结果,所有过程的目标数据都是系统运行的结果。

    由系统结构模型可以看出,它包含了小至单个操作(单条语句),大至整个系统的所有“过程”,并且从大到小分层嵌套,将本著作称为“树型软件法”应该是名付其实的。系统结构模型图以多层同心圆为描述形式,从内至外所标记的概念范畴逐渐扩大,形象地可表示为(A≡B”意为“A的结构用B表示”)

系统 事件 任务 作业 操作 事物

事件树 任务树 作业树 程序段 语句 变量

系统事件树;事件任务树;任务作业树;作业程序段;操作语句;事物变量

    全书共分六篇32章。第一篇“初始概念”,叙述了有关软件和计算机方面的初始概念,包括软件、算法、程序、计算机和软件工程。然后着重介绍了有关树型软件的初始概念,事物和变量,情况和过程,基本事物集和目标数据。第二篇“过程及其结构树”,从程序语句入手,相继定义和讨论了语句和作业、作业树和任务、任务树和事件、事件树和系统。显然,这一部分是本书的重点和精华,各类过程及其结构都在该篇作了详细而系统的讨论。第三篇“业务系统设计”,以证券市场业务系统为例,叙述了树型软件工程方法(简称树软工程方法或树软法)的需求分析、数据库建模和系统结构设计。第四篇“树型软件工程方法”,从理论和工程的角度,集中整理了此前各章的内容,自然而然地得出了树型软件的“系统结构模型”。本篇还将树软工程方法的工程实施语言落实到C语言,说明该方法从理论到工程都有扎实的背景。第五篇“统计系统设计”,叙述了作为应用系统不可或缺的基础统计系统的相关概念,并给出了各类基础统计数据库的建模方法。第六篇“辅助设计系统及其它”,给出了以树软法进行软件设计的辅助系统概貌。可以看出,这是一个功能相当完善的软件设计辅助工具,业务需求分析,系统结构设计,事件结构设计,任务结构设计,程序代码编写,调试和测试等各个环节都有不同程度的辅助功能。这一篇还讨论了树型软件的复用技术。本书的最后一章从总体上将树软法与其它软件工程方法作了比较,突显出树型软件工程方法的巨大优势。

    树型软件工程方法本质上是结构化(面向过程的)方法的深化与提高。结构化方法自20世纪70年代被提出来后就表现了强大的生命力,“结构化分析与设计”一直是业界认可的,并且一直都在工程实践中使用。本书只不过是在“结构化”概念的基础上,规范地定义了分层嵌套的系统、事件、任务、作业、操作等软件过程,合乎逻辑地构造出了表示系统结构的事件树,表示事件结构的任务树,表示任务结构的作业树,和表示作业结构的操作树。书中定义了许多新概念,都是不得已而为之。也有许多结论,基本上都有论证,但也难免有不严密之处。书中用例多为证券交易和结算系统,这是因为作者长期以来从事这些系统的设计与开发,并不意味着树型软件工程方法只适用于证券行业。从扉页上哲人和科学家们的名言中就可得知,现实世界中的系统都是分层嵌套的,都可以用数学树来表示它们的结构。树型软件工程方法是通用的软件工程方法,适用于各行各业的软件开发,包括各种应用软件、系统软件、工具软件、各类控制软件等等。

    在我对树型软件工程方法七年多的研究过程中,得到许多单位和人员的关心、支持与帮助。首先我要感谢深圳证券交易所、深圳证券通信公司和深交所综合研究所的领导、专家和同事们,他们从精神上和物质上给予我以帮助和支持。还准许我设立2007年的博士后课题“树型软件工程方法辅助设计系统开发”,并支持帮助课题组成员成功地完成了该课题的博士后研究任务。感谢中国科学院叶培建院士、清华大学贾培发教授和北京大学的邵维忠教授,在本著作的成稿、出版,以及博士后课题出站报告的评审等方面,都得到他们的关心、帮助与指导。感谢深交所综合研究所肖立见博士,深圳证券通信公司王书芳博士,他们作为博士后课题专家组成员,为课题的成功完成给予了许多指导与帮助。感谢李云翀博士和华成博士,博士后课题就是由他们研究完成的,他们两年多的辛勤工作才使初级版的辅助设计系统得以问世。博士后课题的成功完成,不但从工程实践上证明了树型软件工程方法的先进行和可行性,在课题的研究过程中课题组成员提出的问题和想法,还促使我对树型软件工程方法进行了更为深入全面的研究,许多重要结论都是在这期间完善的。还要感谢孙海明硕士,他也自始至终参与了博士后课题的研究工作,并发挥了重要作用。

 

 

posted @ 2009-12-27 18:13  树软  阅读(403)  评论(5)    收藏  举报