- 绘制进程图:可视化D++语言(第1册)
- 杨章伟 唐同诰
- 1969字
- 2025-02-17 21:06:15
前言
计算机软件技术发展至今,理应普及软件制作技术,使各个知识领域的人员都能参与进来,就像人人都能学开汽车一样,人人都能为其熟悉的领域自主制作软件,将软件应用范围扩大至生活的各个领域。
目前,计算机已经帮助各行各业实现了生产全自动化,为何计算机还不能使软件生产本身或至少能使极为广泛需求的“企事业管理应用软件”代码生成自动化呢?也就是说,30多年来为何软件的设计说明书(简称模型)还不能直接自动转换成程序代码(软件产品)呢?这种现象正如 Software Development杂志[2006年4月卷。14日,第4期]指出的:“实施模型到代码和模型到模型转换的任务,还需要做一些工作。”显然,要达到上述要求,需要对现有的软件工程技术进行一些革新,而不是简单地修补。
我们知道,以现代工程化方法建造一幢大楼,大楼是什么样子完全取决于设计文件,而不依赖于谁去做。一种先进的软件制作技术也应该是这样。同样一份软件设计文件,由不同的软件公司产生的软件应该完全一样。这种机械化、工程化的制作过程才真正实现了软件工程化(Software Engineering)的原旨,但现在还没完全做到。
可以想象:若干年后,当一位客户用一种高度清晰直觉的“软件设计与开发自动化”语言写出他所需要的软件的设计文件之后,这份设计文件又能马上自动地构建一个“高可靠、高运速的软件”,即一个已编译好的高运速的计算机软件产品,这是何等吸引人啊!以这种可视化、自动化方式生成的软件技术,显然是一种“直观—易理解,设计—易修改,模块—可移植,产品本身不用维护”的最理想的工程化的软件生产技术。
上述的想象力似乎是过度超前时代了,但是本书介绍的“可视化D++语言”是正朝这方面努力的一种“软件设计与开发自动化”的技术。这种基于SDDA技术的可视化D++语言,从2001年起正式开始编程,经过10年以上夜以继日的研制开发,才使这一种新思想、新技术得以完美实现。
“可视化D++语言”最初打算用于自动生成一种HP-Unix的“客户端服务器分布式系统”的应用软件。后来,为了证实该技术的强大潜能,改为用“可视化D++语言”去自动产生一种最为复杂的且集成“运算逻辑控制、数据库调用、视窗界面操作”为一整体的Windows应用软件产品。
当然,对不同的操作系统里运行的应用软件,以及对采用不同“软件构架技术”的应用软件,“可视化D++语言”和它的集成开发环境应有不同的版本。目前的这一个Windows版本主要是为了大量需要的视窗式的企事业管理应用软件而做的。为简洁起见,我们把可视化D++语言和它的编辑及翻译工具一起,称为一个SDDA系统[这里是缩写,软件(S)、设计(D)、开发(D)、自动化(A)]。
为了帮助大家使用可视化D++语言(又称视觉化D++语言)去设计开发软件产品,我们计划出版三本书,每本书都附有学习软件(本书只用绘制进程图的部分,其他选单不要用,以免出错),以帮助大家快速全面掌握该技术。
(1)绘制进程图——可视化D++语言(第1册)。
(例如,企业或行政管理人员学了第1章与第2章后,就能画出实用的“工作计划流程图”。)
(2)视窗软件设计和开发自动化——可视化D++语言(第2册)。
(3)互联网服务器软件设计和开发自动化——可视化D++语言(第3册)。
总的来说,可视化D++语言定出了一个前所未有的高目标:让只有中学文化水平的读者也能学习和使用书中介绍的软件设计知识。当然,如果读者有企业管理知识,就能用“可视化D++语言” 设计更为复杂的企事业管理应用软件;如果读者是软件专业人员,他们就应该积累一些新的“模块”软件到他们的可视化D++语言的模块库中,从而能有效设计更为大型的软件产品。
展望未来几十年,当人们学了这样的软件制作技术之后,制作企事业管理应用软件的工作量大为减少。一般的企事业管理应用软件不一定需要大团队作战,两三个新老结合的软件专业人员加上几个服务人员就能独立地开一个企事业管理应用软件的“快餐店”,快速优质提供大、中、小各类应用软件。大型应用软件公司将从“软件制作流水线”转向逐步实行“软件设计流水线”。当然,计算机理论语言学者也得从“探讨程序编码的正确性”转向“探讨软件系统的设计的正确与合理性”。
本书第1章主要是对名词的概念性介绍,以后用到时再加深对这些概念的了解。但从第2章起,读者必须跟随示例展示的每一个步骤,亲自动手模仿一下,那就什么都清楚了,而且真正学会了使用。切记!学习使用软件不是学习作诗填词,读者不必纠缠于书中的文字的精确推敲,而是要动手模仿。另外,对于提到的专用名词,了解它们的原意后阅读就不困难了,“物件”的原意是指对象和目标物,而“进程”的原意是指工程任务和操作过程。
最后,我们介绍一下本书的安排:
(1)第1章和第2章是为那些“希望为自己的工作制订计划与画进程图”的人而写的。
(2)第3章至第6章是为那些对“软件设计”感兴趣的初学者而写的。
(3)附录A与附录B的内容仅供一般性了解,以后用到这些内容时还会详细介绍。
(4)附录C的内容仅供参考。