软件工程教学课件md.ppt
《软件工程教学课件md.ppt》由会员分享,可在线阅读,更多相关《软件工程教学课件md.ppt(254页珍藏版)》请在三一办公上搜索。
1、,模型驱动程序设计技术刘建宾著北京信息科技大学软件工程系,过程蓝图,使用教材,刘建宾著过程蓝图设计方法学,科学出版社,2005.1,主要议题,过程蓝图设计方法学概述过程蓝图语言过程蓝图开发过程和方法过程蓝图CASE工具,过程蓝图设计方法学概述,方法学的基本概念方法学的主要内容过程蓝图语言开发过程开发工具一个模型驱动程序设计实例技术效果,设计方法学的基本概念,程序设计方法学的概念和意义过程开发的地位和目标过程蓝图设计方法学的定义过程蓝图设计方法学的定位,程序设计方法学的概念和意义,方法是系统化的过程,方法学为一系列相关的方法或技术。程序设计方法学是一整套有关程序设计的原则、理论、方法和技术。程序
2、设计方法学对最终程序的质量和开发程序的效率具有重要影响。程序设计方法学的研究对软件学科的发展和软件工程实践在理论和实践两个方面都具有重要意义。,过程开发的地位和目标,过程开发是程序开发中不可缺少的组成部分和基本主题。目标是检查和识别每个过程内部行为动作的数据流和控制流,为软件的动态行为特征创建满足需求规格说明的动作组织和过程代码。,过程蓝图设计方法学的定义,过程蓝图设计方法学是适用于程序过程开发的一系列相关的原则、理论、方法和技术,是将程序开发者的注意力、知识、经验、技能、和创造性集中在过程蓝图开发方面的一种程序过程设计方法学。,过程蓝图设计方法学的定位,软件方法学的重要组成部分,属于软件方法
3、学中较为基础和局部的方法论。使用过程蓝图可视化建模语言来分析、设计和构造最终程序过程代码的一种半形式化工程开发方法和技术。,方法学的主要内容,过程蓝图语言设计方法开发过程,过程蓝图语言,过程设计的理论基础过程蓝图产生的来源过程模型的基本要求过程蓝图的外部视图和内部表示过程蓝图的定义和用途过程蓝图的目的使用过程蓝图的核心,过程设计的理论基础,过程设计的理论基础在六十年代初已经形成,在Edsgar Dijkstra等人的工作中又得到了进一步的完善。结构化程序设计是过程设计的一种重要技术。复杂性度量的理论表明,结构化的构成元素减少了程序复杂性,从而增加了可读性、可测试性和易维护性。仅只使用顺序、选择
4、和循环三种结构会带来实际的困难。,过程蓝图产生的来源,过程蓝图是在结构化语言(结构化英语或结构化汉语)、马里兰大学朱耀汉的软件蓝图设计语言、James Martin的活动图、日立公司的问题分析图(PAD图)、程序设计语言PDL)、UML动作语义以及多种现代文本编程语言基础上演化和发展起来的一种新的可视化程序过程建模语言,它不是单独某种语言和方法的演化结果,而是所有这些语言和方法相融合的继承者。其思想来自程序过程开发领域许多不同研究和开发者提出的概念和想法。,过程模型的基本要求,选择何种过程模型来描述算法和处理逻辑对如何动手解决问题并形成解决方案有着深远的影响。抽象是学习和交流、认识理解问题、形
5、成解题思路,以及控制复杂性的关键。单个模型是不充分的。对每个复杂的过程最好是通过一个模型的一组既相对独立又彼此联系的视图去处理,并以不同的精确程度来逐步加以刻画和表示。最好的过程模型还应该与现实的编程语言联系在一起,能够从高层的过程视图逐步平滑过渡到低层的视图,最后从最低层视图生成用编程语言表示的过程源代码。,过程蓝图的外部视图和内部表示,概念层视图抽象概念结构图(ACSD)逻辑层视图抽象逻辑结构图(ALSD)实现层视图抽象实现结构图(AISD)内部统一结构表示,过程蓝图的定义和用途,一种通用的可视化过程建模语言,用于分析、设计和实现阶段对行为过程进行详述、可视化、构造和建立过程制品文档,同时
6、还可以用于数据结构和其它非软件系统的过程建模。一种新的行为过程图形化表现技术,它是一种面向CASE、具有多级抽象表示能力和易理解性,能够在软件生命各阶段使用的树形图式。一种图形和正文相结合的可视化过程表示法。用于开发面向对象软件系统中的类方法,以及传统面向功能的软件系统的过程和函数。,过程蓝图的目的,以人们较为自然的图文、图表形式表现程序行为过程的动作结构与实现细节,使程序易读、易写、易理解,使过程设计技术的学习更为容易和有效,并在分析、设计、构造阶段提供一致且过渡平滑的过程表现手段,并在CASE工具支持下,提高程序过程开发的生产率与质量。,使用过程蓝图的核心,将人们头脑中模糊、粗略的解决问题
7、的思想,按概念、逻辑、实现三个层次,以增量方式平滑自然地逐步过渡并转换成能用计算机处理的明确而详尽的过程代码。,开发过程,行为过程开发中存在的问题和表现 对描述语言的选择和求精层次存在因人而异的随意性,缺乏良好定义和管理的规范开发过程 规范开发过程的重要性 对过程蓝图制品的产生、项目管理和质量保证具有重要意义 基于过程蓝图的规范开发过程 明确的阶段划分、活动和制品 自顶向下、逐步求精、增量迭代、平滑过渡,过程蓝图CASE工具,工具的作用语言与工具的关系相关工具的构成,工具的作用,在过程蓝图的绘制和更新、语法检查、维护过程蓝图的完整性中的有效性、一致性和完备性、代码生成,规范开发过程支持等方面发
8、挥作用。提高过程开发的生产率,降低手工开发和维护一致性的成本。对于过程蓝图的功效发挥具有重要意义,对过程蓝图的应用至关重要。,语言与工具的关系,过程蓝图语言和开发过程的定义是工具实现的基础。过程蓝图语言的抽象语法元模型以及完整性规则是工具实现的核心部分过程蓝图表示法是工具必须实现的外部接口过程蓝图规范开发过程是工具必须支持的活动框架,相关工具的构成,过程蓝图的CASE工具包括可视化图形编辑器,代码及文档生成器,逆向变换(工程)工具,可视化程序半自动重构支持工具,与其它表示法的相互转换工具等。,一个模型驱动程序设计实例,打印康德有理数序列问题规格说明,设计实例,输出数据结构图,设计实例,从数据结
9、构导出的初始抽象概念结构图,设计实例,分配了操作的抽象概念结构图,设计实例,导出的初始抽象逻辑结构图,设计实例,操作表达式表,设计实例,导出的抽象实现结构图,设计实例,生成的程序源代码,模型驱动程序设计技术的效果,模型驱动程序设计简称MDP(Model-Driven Programming)MDP技术的应用效果MDP产生的变化和影响,MDP技术的效果,提高程序生产率30 提供实现无关模型到实现相关模型的半自动变换技术和实现相关模型到代码的自动转换技术,使设计时间增加,而编码、测试和调试时间减少。随着问题规模和复杂性的不断增加,整体开发效率的提高越来越明显。提高程序质量 提供规范的逐步求精技术,
10、减少50左右的程序逻辑错误 在代码生成前自动检查模型的完整性,保证生成的代码不存在语法错误,使程序代 码的语法检查提前(编译前),避免因程序语法错误引起的编译迭代时间。在抽象层次较高的概念层实现程序的移植和重用,提高程序的可移植性和可重用 性。程序模型制品结构良好,语义丰富,容易阅读和理解,改善程序的可维护性。实现文档和代码的统一,降低程序维护费用 提供模型和代码的统一表示框架,以及模型间和模型与代码间的一致性自动维护技术,避免开发中后期文档滞后于代码,文档和代码难以保持一致的状况,有效解决程序和文档一致性维护的难题,大幅减少维护程序的代价和成本。程序开发敏捷化、规范化和可控化 提供最小化的模
11、型构建技术(极限建模XM,Extreme Modeling)、规范的逐步求精技术和半自动模型变换技术,使程序设计过程敏捷化、规范化和可控化。,MDP产生的变化和影响,MDP改变面向文档和代码文本的传统程序开发和维护方式,进入可视化模型创建、模型变换和代码生成的模型驱动程序设计方式。MDP改变程序开发人员的角色、职责和游戏规则MDP改变程序开发过程MDP改变程序开发工具使程序的生产机制发生变革,将对软件产业界和教育界产生积极而深远的影响。,过程蓝图语言,过程蓝图语言的内容,语言定义的方法和组织过程蓝图的基本概念和基础设施抽象概念结构图的定义、图形表示与应用实例抽象逻辑结构图的定义、图形表示与应用
12、实例抽象实现结构图的定义、图形表示与应用实例过程蓝图的定义与程序表示实例用法指南,语言定义的方法和组织,范围和目标语言定义方法元模型规格说明结构语言的形式化,范围和目标,语法 通过建立过程蓝图三层外部视图模型和内部统一模型,提供了过程蓝图表示法所有建模符号的完整的语法。语义 给出语言概念控制构造的语义。完整性 对过程蓝图语言完整性(有效性、一致性、正确性、完备性)方面的概念进行了定义,对有关结论进行了论证。语用 给出过程蓝图的用法指南。,范围和目标,目标 采用形式化数学语言和自然语言相结合的半形式化方式进行定义,强调达到语言定义体系结构和形式的相对严格性、以及增强可读性的目标。,语言定义方法,
13、使用元模型(Meta-Model)定义方法 元模型是用于说明模型的语言过程蓝图元模型本质上属于一种逻辑模型而不是物理实现模型,但它包含了模型表示法实现方面的内容 逻辑元模型的优缺点元模型使用抽象语法(Abstract Syntax)、良构规则(Well-Formedness Rules)、动作语义(Action Semantics)和表示法(Notation)注释以半形式化的方式描述。,语言定义方法,抽象语法以数学模型方式描述,它包含了一个多元组的定义和支持性自然语言描述。良构规则使用基于集合、函数和一阶谓词逻辑的形式化数学语言进行描述。动作语义使用自然语言描述。表示法通过图形描述。,元模型规
14、格说明结构,抽象语法良构规则映射规则动作语义表示法注释图形表示法,抽象语法,抽象语法使用集合、函数和一阶谓词逻辑表示的多元组数学模型来定义。多元组数学模型展示了定义的元控制构造类及其关系,并包括了一些基本的良性构成规则,主要是整体结构关系应该满足的共性要求,在过程蓝图中具体表现为树条件。,良构规则,良构规则定义了过程蓝图的元控制构造类的静态语义,主要是关系要满足的共性和多样性的约束要求。共性是所有元类实例关系应该满足的树结构要求,它们是结构被良性构成的任意时刻应该满足的强制性条件,所以被定义为所有元类实例的一组应该满足的树条件。多样性反映了各种元类实例与其它元类实例的连接关系被良性构成时应该满
15、足的特定结构要求。良构规则使用一阶谓词逻辑表达式、分析函数和非形式化解释来定义。,映射规则,过程蓝图的概念控制构造和逻辑控制构造之间存在一定的类型约束关系映射规则包括概念控制构造与逻辑控制构造之间的控制流双向映射规则和逻辑控制构造到数据流实现构造的映射规则映射规则是良构规则的组成部分映射规则使用一阶谓词逻辑表达式和分析函数来定义,动作语义,抽象语法中定义的语言控制构造表示组成过程的行为动作动作语义给出各种语言控制构造的动态语义 语言控制构造的动态语义用自然语言定义结构被分组为集中定义的逻辑块来定义语义,表示法注释,过程蓝图是一种图形表示方法,具有独特的控制类型标识和结构连接方式。抽象语法中分解
16、函数描述的基本结构关系的表示法注释通过将表示元素映射到抽象语法的结构元素而得到。,图形表示法,基本图形表示法是针对各种语言构造,将抽象语法的表示法注释中给出的一般方法经具体化而得到具体图形表示记法。对过程蓝图的三种外部图形视图(抽象概念结构图、抽象逻辑结构图和抽象实现结构图)给出了同一个过程表示问题的图形表示实例。,语言的形式化,定义元模型的技术形式化层次形式化语言的使用自然语言的使用,定义元模型的技术,采用数学语言和自然语言相结合的一种半形式化技术来描述过程蓝图元模型。与UML元模型定义技术的比较。过程蓝图语言的结构通过形式化的抽象语法和良构规则给出了相对严格和精确的规格说明,语言设计的完整
17、性通过语言分层结构的有效性和一致性定理得到部分保证。由于动态语义目前并没被看成是工具开发的要素,所以动态语义部分仍然使用自然语言进行描述。,形式化层次,定义语言的一种通用技术是首先定义语言的语法,然后描述它的静态和动态的语义。语法定义语言的结构以及如何建立这些结构。特别当语言具有图形语法时,定义语言的抽象语法的表示法注释是很重要的。具体的图形语法通过把表示法注释映射到抽象语法的方式来定义。语言的静态语义定义语言构造的一个实例应如何与其它实例进行有意义的联接。静态语义可以在良构规则中体现。动态语义定义了良性构成结构的执行含义。动态语义则在动作语义中进行描述。,形式化语言的使用,数学语言的使用 集
18、合、函数、一阶谓词逻辑形式化的部分 元模型中的抽象语法、良构规则形式化的作用 语言的理解使描述的元模型具有准确性、严格性和简洁性。为研究语言的完整性奠定基础,自然语言的使用,自然语言是自然形成的语言,已有数千年历史。自然语言最为人们所熟悉并得到广泛使用,符合人们的思维习惯,利于理解。自然语言是非形式化的,存在歧义性、模糊性和不完备性。自然语言主要用于描述元模型中那些难以形式化的部分,特别是动作语义部分。自然语言的使用使描述的元模型具有较强的可读性。,过程蓝图的基本概念和基础设施,基本概念基本构造语言的构成三层描述二级映射的体系结构,基本概念,动作数据流控制流过程基本概念关系模型并发概念模型和顺
19、序实现模型过程蓝图、编程语言及其过程源代码间的关系,动作(Action),动作是行为的基本单位。一个动作带有一组输入并它们转化为一组输出,输入和输出可能都为空或有其中一方为空。某些动作会修改系统的状态。一个动作可以拥有一组输入数据流和一组明确的对前驱动作的控制流依赖。动作呈现多种多样的类型,每一类动作都有自己的构成规则。一个动作必须属于一种类型。动作的执行一定是特定类型的动作执行。动作执行表示在一特定的语境中执行一个动作时的一般行为。,数据流(Data Flow),一个数据流带有两个动作间的数据,并能有效地使动作有序。每一个数据流都有一个源,它是一些其它元素的输出,典型的是作为一个动作的输出。
20、每一个数据流都有一个目的地,它是到一些其它元素的输入。数据流把一些值从一个输出源端传送到一个目标输入端。由数据流相连的动作之间的控制顺序是隐式的。,控制流(Control Flow),控制流是两个动作之间的一种顺序依赖。一个控制流表明一个前驱动作和一个后继动作之间没有明显数据流的次序约束。一个前驱动作必须在它的后继动作执行之前完全执行。控制流的后继动作只有在前驱动作执行完成之后才能执行。控制流规定了动作需要满足的次序约束。,过程(procedure),过程是以一个单元执行的一组动作的集合,可以作为一个单元附属于软件模型的其它部分,如,作为一个类操作实现的方法体,传统的过程体或者是函数体、状态机
21、中一组转换动作等。过程可以有多个参数和结果。过程将一系列动作组织成一个可被调用的行为实体。每个过程有一个过程体,过程蓝图的作用就是提供过程体的一种可视化定义,从这种过程模型生成的文形式的过程源代码可以作为过程的代码属性值嵌入在过程的定义中,以提供编程语言形式的过程规格说明。,基本概念的关系模型,并发概念模型和顺序实现模型,一个简单的顺序过程模型通常跟以前传统的顺序计算环境相关,将今天的并发和分布计算环境映射成这样的模型时需要花费的代价太高。行为过程的规格说明语言必须包含并发执行概念,并要考虑以指定顺序执行的一些控制和保证程序多线程并行执行的同步机制。建立在并发执行语义的动作既可以映射为一个分布
22、式的执行实现,也可以映射为顺序执行的实现。过程蓝图的概念层规格说明中的动作除了一个显示的顺序控制以外,其它的复合动作带有并发执行语义。过程蓝图的逻辑层和实现层的动作语义取决于编程语言的语义,是否带有并发语义完全由编程语言的语句语义所决定。,过程蓝图、编程语言及其过程源代码之间的关系,语言的基本构造,概念控制构造逻辑控制构造实现控制构造 数据实现构造 正确性验证构造统一控制构造,概念控制构造,过程蓝图提供顺序、循环、单项选择、多项选择、并发、异常处理、基本动作、跳转、模块、未定义共10种概念控制构造。前6种为可以进一步分解的复合概念控制构造,后4种为不可再分解的终结概念控制构造。这些概念控制构造
23、是对编程语言控制语句的抽象,同时考虑到使用上的方便,体现了长期以来人们在程序过程开发技术方面达成的共识和已经取得的成果,在控制流表示能力方面具有完备性。概念控制构造独立于任何编程实现语言,用于组织人们解决问题的算法思想。概念控制构造提供的与编程实现语言的无关性使概念级的过程移植和重用成为可能。,逻辑控制构造,从JAVA、C+、VB、VFP、PASCAL语言的控制语句中提取出这五种编程实现语言的逻辑控制构造,用于描述程序过程的详细设计,并通过它来实现编程语言控制语句的可视化。逻辑控制构造与编程语言的控制语句之间存在一一对应关系,因此,从某种编程实现语言中提取得到的逻辑控制构造对该编程语言的控制流
24、描述能力是完备的。,实现控制构造,实现控制构造由同一种编程语言的逻辑控制构造、数据实现构造和正确性验证构造组成,用于精确描述过程动作的控制流、数据流和动作执行入口点和出口点的前置断言和后置断言。实现控制构造包含生成过程源代码语句的所有细节,与编程语言的控制流和数据流语句之间存在着直接的对应关系,可以进行相互的转换。在面向人的语义表示能力上稍强于编程语言语句,具有清晰的结构和更好的可理解性,比代码更适合于人的使用。在面向机器的控制流和数据流精确表示能力方面与编程语言语句等价,完全适合于机器的要求。,实现控制构造,数据实现构造 过程蓝图只提供用于表示现有编程语言数据实现构造的槽,使之能完整和直接地
25、利用编程实现语言所提供的数据构造设施及其表达形式,其数据实现构造能力完全取决于编程实现语言所提供的能力。好处在于能够直接和完整利用现有编程语言及其编译器的成果,无需设计一种新的构造语言及其编译器;代码生成时无需对数据元素及其数据流部分进行复杂的转换和解释;在生成过程代码前进行语法检查,使传统编译时进行语法检查的时间提前,避免了代码语法错误造成的反复编译和调试迭代工作。,实现控制构造,正确性验证构造 过程蓝图为每个实现构造提供了表示前置断言和后置断言这两种正确性验证构造的槽,使之能在代码生成之前支持Hoare逻辑的程序正确性证明方法。这对于保证程序的质量,减少测试工作量具有重要意义。,统一控制构
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 教学 课件 md
链接地址:https://www.31ppt.com/p-6027925.html