本书是作者在可视化程序设计技术领域多年潜心研究完成的原创性成果总结,是国内第一部深入介绍过程蓝图程序开发理论、技术及其支撑工具的学术专著。书中系统而详细地论述了作者在过程蓝图建模语言、开发过程、设计方法的理论研究方面和工具开发方面的工作。
本书内容翔实、立论严谨、结构紧凑、图文并茂、系统性和理论性强,可作为大专院校计算机专业教师、研究生、本科生的教学用书和软件工程研发人员的技术参考书,对各类软件专业人员和学习者都具有指导意义和实用价值。
第1章 概论
1.1 引言
1.2 研究动机
1.3 研究工作的目标
1.4 方法学概述
1.5 过程蓝图CASE工具
1.6 过程蓝图的研究工作
第2章 过程蓝图语言
2.1 方法和组织
2.2 过程蓝图的基本概念和基础设施
2.3 抽象概念结构图
2.4 抽象逻辑结构图
2.5 抽象实现结构图
2.6 过程蓝图
2.7 过程蓝图语言的完整性
2.8 用法指南
2.9 总结
第3章 过程蓝图的设计原理和性质
3.1 设计要求
3.2 设计目标
3.3 设计原则
3.4 设计原理
3.5 设计内容
3.6 表示法设计
3.7 过程蓝图的性质与目标
3.8 相关工作比较
第4章 过程蓝图开发
4.1 过程蓝图开发技术的层次
4.2 过程蓝图开发过程
4.3 过程蓝图设计技术
4.4 与软件分析和设计技术的结合
4.5 Jackson程序规格说明到过程蓝图的转换和映射
4.6 技术效用分析
第5章 过程蓝图CASE工具
5.1 过程蓝图CASE工具的基本概念
5.2 JAVA可视化面向对象程序设计支撑系统的设计
5.3 C++函数开发工具CFDST的设计与实现
5.4 FoxPro程序设计支持工具FPDST的设计与实现
5.5 方法和工具的初步应用
第6章 过程蓝图的现状与未来
6.1 过程蓝图的统一性
6.2 过程蓝图的现状
6.3 过程蓝图在可视化程序自动重构方面的潜力
6.4 过程蓝图的未来
参考文献
目前,市面上已经出版了大量统一建模语言(UnifiedModelingLanguage,UML)和编程语言(ProgrammingLanguage)方面的图书。UML作为一种可视化描述软件体系结构的统一建模语言,自问世并被OMG(ObjectManagementGroup,对象管理组织)于1997年9月颁布为国际工业标准以来,应用广泛,成效显著,在全球计算机教育培训界和软件开发产业界掀起了学习和应用UML的浪潮。UML可视化建模语言及模型驱动的设计方法是近十年来取得的重要成果,成为当今软件开发技术的主流和热点。编程语言是计算机程序实现语言,用于编写程序的源代码,成为程序员工作的基本工具。因此,可视化建模语言与各种编程实现语言均为计算机专业师生和软件开发人员的必读内容和必备工具。尽管这两方面的图书目前在很大程度上满足了软件专业人员在语言学习方面的要求,然而,在如何将UML可视化模型变为最终程序源代码方面还存在脱节现象:使用UML描述的模型只能产生程序的框架代码,分析设计人员在使用UML建模之后,编程人员还必须使用传统过程设计工具(如程序流程图、PAD(ProblemAnalysisDiagram,问题分析图)、伪码等)进行详细设计,然后再使用编程语言书写大量的过程源代码,或在UML建模之后,直接使用编程语言书写程序源代码。由于程序过程中包含有大量的程序细节,其代码量占整个程序代码长度的比例极高,因而传统过程开发及编码技术的使用使开发工作量巨大、生产率低下、质量欠佳、测试周期长、维护成本高等问题依然存在。症结之一为UML在行为过程建模方面存在缺陷,使软件模型和程序代码两者之间缺乏必要而紧密的联系;症结之二为传统过程技术在逐步求精、平滑过渡和一致性维护方面存在不足。因此,研究提出新的过程建模语言及其设计方法对解决软件产业界长期存在的程序开发维护的实际问题具有重要的现实意义。
模型驱动程序设计(Model-DrivenProgramming,MDP)是一种通过程序可视化模型创建、模型变换和代码生成来开发程序的新方法;是一种能使程序生产机制发生变革,并对软件产业界和教育界产生积极而深远影响的技术。过程蓝图是笔者在书中提出的一种新的通用可视化过程建模语言,用于在分析、设计和构造实现阶段对行为过程进行详述、可视化、构造和建立过程制品文档,同时也是一种规范的程序开发过程和模型驱动的程序设计方法。过程蓝图是一种新的、图形和正文相结合的可视化过程建模语言和算法描述工具,主要用于行为过程开发、算法设计和代码构造。基于过程蓝图的模型驱动程序设计技术是2002年OMG提出的模型驱动体系架构(Model—DrivenArchitecture,MDA)在程序设计领域的具体实现技术和解决方案,体现了当今程序设计技术的最新潮流和发展方向。
过程蓝图可视化建模与构造技术可以改变过程设计、编码和维护的传统方式,使过程开发和维护进入模型驱动的可视化设计、编码生成和一致性维护的半自动方式,实现程序文档和代码的统一,避免开发中后期文档滞后于代码的被动局面。它能提高程序开发效率,减少程序逻辑错误,并在编译前避免程序代码的语法错误,实现程序制品间(包括模型之间以及模型与代码之间)的一致性自动维护,避免开发中后期文档滞后于代码的状况,并通过提供规范的逐步求精和半自动转换技术,以及最小化的模型构建技术(极限建模技术(ExtremeModeling,XM)),使程序设计过程敏捷化、规范化和可控化,具有较为广阔的应用前景和实用价值。
本书介绍的程序技术已被用于实际软件开发项目和本科生、研究生的软件专业理论课程的教学实践中,并取得了较为满意的效果。希望本书的出版能够实现研究成果的共享,促进学术思想的交流;同时希望能够有助于填补目前国内图书在行为过程建模语言方面存在的空白,弥补UML和传统过程开发技术的缺陷与不足,在UML和编程语言两者之间、面向对象技术和传统过程技术之间建立有机的联系和桥梁,以更好地满足大专院校计算机专业师生的教学需要和软件技术人员的实际工作需要。
本书内容是笔者最近十年来主要理论研究工作的系统化总结。全书共分为概论、过程蓝图语言、过程蓝图的设计原理和性质、过程蓝图开发、过程蓝图CASE(ComputerAidedSoftwareEngineering,计算机辅助软件工程)工具和过程蓝图的现状与未来等六章。第1章详细论述了过程蓝图设计方法学的研究动机和目标,概述了方法学的内容、CASE工具,以及过程蓝图研究工作的内容。第2章对过程蓝图语言进行了形式化定义,给出了图形表示法和图形语法,对语言完整性方面的概念进行了定义,对语言的有效性和一致性方面的结论进行了论证,最后给出语言使用方面的一些启发式规则。具体内容被组织为方法和组织、过程蓝图的基本概念和基础设施、抽象概念结构图、抽象逻辑结构图、抽象实现结构图、过程蓝图语言的完整性和用法指南等几个部分。这些部分相对完整地覆盖了过程蓝图语言的语法、语义和语用三方面的内容。第3章论述了设计过程蓝图的要求、目标、原则,设计原理、设计内容、表示法、性质与目标,以及相关工作比较方面的内容。第4章提供过程蓝图开发过程、设计技术和技术效用分析的内容。过程蓝图开发过程部分定义了开发阶段、制品和活动,给出了开发工作的步骤和流程,总结了开发过程的特点。过程蓝图设计技术部分给出了过程蓝图的自顶向下、逐步求精和增量迭代、平滑过渡的设计模型和设计方法,以及Jackson程序规格说明到过程蓝图的转换和映射方法。最后从程序质量、开发效率和软件管理三个方面对过程蓝图方法的技术效用进行了分析和讨论。第5章论述了过程蓝图CASE工具与方法的关系、手工构造存在的问题、CASE工具的作用、CASE工具的开发目标和构成,给出一个JAVA可视化面向对象程序设计支持系统的设计,以及C++函数开发工具和FoxPro程序设计支持工具的设计与实现技术,对过程蓝图技术的初步应用情况进行了简要介绍。第6章总结了过程蓝图的统一工作,对过程蓝图研究工作的现状进行了简要介绍,论述了过程蓝图在可视化程序自动重构方面的潜力和应用前景,以及今后进一步对过程蓝图研究的工作方向和目标。
值此本书出版之际,首先衷心感谢西北大学计算机系郝克刚教授对本书的理论研究工作的悉心指导。感谢中国科学院研究生院罗晓沛教授,中国科学院软件研究所仲萃豪研究员,北京大学林作铨教授,汕头大学龚世生教授,中国科学院软件研究所戴国忠研究员,中山大学李思贤教授、黄继武教授,华南理工大学奚建清教授,暨南大学蔡利栋教授、苏运霖教授、陈火炎教授、方思行教授、潘久辉教授,广东工业大学张立臣教授,西北大学周明全教授、耿国华教授,西安电子科技大学陈平教授的帮助。特别感谢李思贤教授长期以来给予的支持,感谢他提出许多宝贵的建设性意见。感谢董云卫、杨红丽、鱼滨、葛玮、王斌君、吕科、侯红七位博士给予的关心和帮助。感谢陶长斌、李小英、贾楠、朱学军、李建忠、田振宇、郑敏、杨林邦八位研究生和林丹、邓太生、杨权盛、林少育、梁军、肖方云、蒋进军、陈鸿涛、李世君、杨建红、高嘉等多位本科生在工具实现和技术应用方面给予的帮助。感谢科学出版社陈晓萍编辑和有关同志给予本书的支持和付出的辛勤工作。最后,特别感谢我的夫人杨志耘和儿子刘杨钺对我的关爱,能完成本书工作完全依靠多年来她们对我的支持和理解。本书的出版得到汕头大学出版基金、广东省自然科学基金(项目编号:32027)、广东省名牌专业建设基金的资助,在此表示感谢。
鉴于本人水平有限,书中定会存在不少疏漏、错误与不足,热忱欢迎读者批评指正。
刘建宾
2004年8月
于汕头大学