信息物理融合系统(CPS)设计、建模与仿真——基于Ptolemy II平台
作者 : [美]爱德华?阿什福德?李(Edward Ashford Lee) 等编著
译者 : 吴迪 李仁发 译
丛书名 : 计算机科学丛书
出版日期 : 2017-02-23
ISBN : 978-7-111-55843-9
定价 : 79.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 386
开本 : 16
原书名 : System Design, Modeling, and Simulation using Ptolemy II
原出版社: DA
属性分类: 教材
包含CD :
绝版 :
图书简介

本书是用于复杂异构系统设计的计算模型的权威指南。尤其关注CPS(集成了计算、网络和物理过程)。本书汇集了加州大学伯克利分校Ptolemy项目20多年的研究经验和成果,UCB开发了许多现在广为使用的设计、建模和仿真技术。本书中所有的方法均在支持系统级异构设计与仿真的开源平台Ptolemy II实现。

图书特色

本书是一本系统论述CPS(集成了计算、网络和物理过程的信息物理融合系统)建模问题的专著,不仅由浅入深地逐一剖析CPS的建模问题,而且还详细介绍了Ptolemy II在应对CPS模型问题时的各种解决方案,并结合Ptolemy II系统平台(集系统设计、建模与仿真于一体)介绍了大量分层、异构系统的模型实例。本书的目标是让读者理解现代建模技术在设计过程中所能发挥的巨大作用,并掌握使用这些技术的方法。书中介绍的技术可以用于诸如嵌入式软件、机械、电气、控制、生物信息等领域的系统建模,尤其适合于那些由不同领域设计元素组合的异构混合系统的建模。另外,书中提到的所有方法和实例都可以在项目网站(http://ptolemy.org/systems)上下载开源的代码。
本书适合作为高等院校相关专业“嵌入式系统”课程的教材或教学参考书,也可作为专业技术人员在CPS系统建模过程中的参考书。

爱德华·阿什福德·李(Edward Ashford Lee) 曾任加州大学伯克利分校电子工程与计算机科学系主任,现为该系Robert S. Pepper特聘教授。主要研究方向是嵌入式与实时计算系统的设计、建模和模拟。他是嵌入式系统领域的著名学者,也是CPS研究的倡导者和引领者之一。他领导的团队成功开发了Ptolemy项目,研发了Ptolemy Classic和Ptolemy II系统,这是一个非常优秀的开源嵌入式系统研究与开发平台。他还是加州大学伯克利分校CHESS(混合及嵌入式软件和系统中心)创始主任。
Lee教授拥有加州大学伯克利分校博士学位,麻省理工学院理学硕士学位,以及耶鲁大学学士学位。他合著了5本著作,其中包括《嵌入式系统:CPS方法》。他是IEEE Fellow,于1997年获得工程教育领域的Frederick Emmons Terman奖,1987年获得美国国家科学基金会的青年研究者总统奖。

图书前言

“我”上次发表著作是在一千九百年前。“我”很高兴从退休中复出,对以本人名字命名的工程(Ptolemy工程)发表自己的看法。与“我”以往在天文和地理方面的工作相似,该项目也是对复杂系统进行处理。值得一提的是,类似“我”之前的许多著作,本书同样凝结了许多人共同的智慧和努力。
“我”以前在《The Almagest》(天文大全)中研究行星、太阳、地球和月亮的运动规律,这些运动都是并发交互过程(concurrent interacting process)。并且这些运动都是确定性的(deterministic),并不以神的意志为转移。这些模型的关注点不仅仅是对所观察到的行为进行精确匹配,更重要的是对行为的预测。类似地,Ptolemy项目研究并发交互过程,并重点关注确定性模型。
理想情况下,求知欲推动着人类从迷信和盲目的信仰发展到逻辑和计量。现在所谓的“科学”深深根植于科学方法(scientific method),特别是在自然系统的研究中。利用科学方法,从设想开始,设计实验,并基于实验来对之前的设想下定论。当然,为了能够进行计量,待测量的工件或过程必须以某种形式存在。在“我”早期的研究中,不存在该问题,因为太阳、地球、月亮和行星是已经存在的事物。然而工程学科所关注的是人为的工件和过程,研究的是自然界中本不存在的系统。即便如此,科学方法也可用于并已经应用于工程设计中。工程师构建仿真和原型系统,将设想公式化,然后通过实验来进行设想的测试。
因为针对的是本不存在的工件和过程,所以工程设计不能单单基于科学方法。实验的目的是提高对所设计的工件、过程的认知。但是在进行实验前,必须将这些工件或者过程创造出来。在认识某些事物之前,不得不先把它们创造出来,这点注定了我们的设计会根植于“迷信”和盲目的信仰。
模型构造是与科学方法互补的重要科学部分。模型是物理现实的一种抽象,并且模型提供内视和行为预测的能力可以形成设想的核心思想,该思想核心等待被实验证实或证伪。建模本身更应归于工程学科,而非自然科学。从根本上讲,它并不是对于自然界已存在系统的研究。相反,它是人类主导的、对于自然界本身不存在事物的建造过程。一个模型本身就是一项工程。
好的模型甚至可以减少对计量的需求,因此可以减少对科学方法的依赖。比如,我们一旦有一个行星运动模型,我们就可以精确预测它们的位置,这样就减少了对其位置测量的需要。计量的角色从确定行星位置转变为改善它们的运动模型以及检测模型对运动的影响(工程上称为“故障检测”(fault detection))。
无论在自然科学还是在工程中,模型都可以通过迭代方法来进行优化。“我”提出的以地球为中心的宇宙模型需要很多次迭代来修正,以逼近实验观测到的行星运动情况。最终模型的预测能力让“我”引以为豪。并且,基于这些模型的预测方法可以通过星盘机械化,这点同样让“我”感到自豪。即便这样,不得不承认,令人尊敬的同行哥白尼(Nicolaus Copernicus)为行星运动提出了一个更好的模型(日心学说)。他的模型从概念上讲是更简单的。这是一种概念上的飞跃:我们可观测到的宇宙的中心,即我们所在的大地,并非一定是宇宙模型的中心。更进一步说,相对于物理世界,对于模型我们有更大的自由度,因为模型不需要被自然界所限制。即便如此,“我”所建立的模型在将近1400年的时间里也是一流的。
Ptolemy项目确实是一项关注系统模型的研究。但是,该系统与“我”之前关注的系统有很大的不同。之前的那些系统都是自然界提供的,但是本书中的系统都是人造的。在本书中,建模的目的是优化系统,我们不可能对自然界给予的行星系统做任何的优化。
简而言之,在与科学相反的工程中,模型要在被建模系统的设计阶段发挥作用。与科学一样,工程中的模型是可以被优化的,但是与科学不同的是,工程中的系统还可以被模型化。
更有趣的是,与科学不同的是,在工程中模型的选择对被建模的系统是有影响的。给予相同的目标,两位工程师可能会得出截然不同的系统设计和实现方案,这仅仅是因为他们在开始阶段使用了截然不同的系统模型。进一步说,若两位工程师提出了不同的模型,其原因可能仅仅是他们在开始阶段使用了不同的工具来构建模型。一位用纸和笔建模的工程师与一位用软件工具建模的工程师得出的模型可能很不一样。结果就是,他们很可能得出迥异的系统设计。
针对复杂系统,本书收集了非常丰富的建模工具和技术。它们中的一些毫无疑问在以后会被优化,正如“我”自己提出的本轮(epicycle)模型,其建模的复杂性被哥白尼学派证明为不必要的。即使如此,本书的目的是向工程师提供目前可用的最好的建模技术。可以确信的是,我们将做得更好。
如何使用本书
本书是为需要对各种系统建模的工程师和科学家,以及想了解如何为复杂、异构系统建模的人而编写的。这些系统包括机械系统、电气系统、控制系统、生物系统等,更有趣的是,还包括结合了这些领域或者其他领域元素的异构系统。本书假设读者熟悉仿真和建模工具及其技术,但不要求对这些内容有深厚的背景知识。
本书重点强调Ptolemy II中已实现的建模技术。Ptolemy II是一个开源的仿真和建模工具,用于对系统设计技术进行实验,尤其是那些涉及各种不同模型组合的系统。它是由UC Berkeley的研究人员开发的,并且由于过去20年里世界各地研究者的努力,它逐渐演变成一个复杂而精巧的工具。本书基于Ptolemy II,对分层、异构系统的系统设计、建模和仿真技术进行了广泛的讨论。同时本书使用Ptolemy II来避免这些讨论过于抽象化和理论化。所有这些技术都由精心设计且测试效果良好的软件实现来支持。关于Ptolemy II更详细的底层软件架构以及更为细节的操作和基础理论,可以在知识点、参考文献和网络链接中找到。
本书共分3个部分。第一部分是“入门”。第1章概述了本书所涵盖的建模方式所蕴含的准则,并简要概述了多种计算模型(Model of Computation,MoC)。第2章介绍了怎样通过图形编辑器Vergil使用Ptolemy II。对于那些想直接开始建模的读者,该章是个很好的起点。
第二部分包括第3~11章,涵盖了几乎所有的计算模型。每一章都包括一个或者一小类相关的计算模型,并解释了它们怎样工作、怎样使用它们建立模型以及哪些种类的模型与计算模型可以比较好地匹配。
第三部分讨论了Ptolemy II计算模型的可扩展性。对于那些想要扩展Ptolemy II或者想用Java写自己的角色(actor)的读者来说,第12章或许是最重要的一章,它描述了Ptolemy II软件架构。Ptolemy是开源软件,并有完善的代码文档可供阅读。对于想要阅读代码并在此基础上做些工作的读者来说,该章可以提供很好的指引。第13章描述了用于规格化模型参数值和向角色(actor)中添加自定义函数的表达式语言。第17章描述了Ptolemy II
标准库中包含的信号绘图仪(signal plotter)的功能。第14章讲解了Ptolemy II中的类型系统(type system)。Ptolemy II是一个复杂的类型系统,当提供一个强调类型系统来使安全最大化时,其设计旨在把建模工具的负担最小化(通过强调类型推断而不是类型声明)。第15章讲述本体(ontology)。本体能将单元部件、尺寸和概念与模型中的数值相关联,它增强了类型系统。同样,重点在于推断和安全。最后,第16章描述了Ptolemy II中的Web界面。具体地说,它解释了从模型中导出页面以及在模型中建立Web服务和服务器的功能。
致谢
本书在Ptolemy项目中描述的建模技术,经过了UC Berkeley项目成员的多年开发。根源可追溯到20世纪80年代。雏形来自Messerschmitt(1984)创建的名为Blosim(Block Simulator)的软件框架,用于仿真信号处理系统。Messerchmitt的博士生Edward A. Lee,受Blosim的鼓舞,开发了同步数据流(Synchronous DataFlow,SDF)计算模型(Lee,1986;Lee and Messerschmitt,1987b)和针对该模型的调度方法(Lee and Messerschmitt,1987a)。Lee和他的学生接着完善了一个基于Lisp的软件工具Gabriel(Lee et al.,1989),通过它开发和完善了SDF计算模型。在20世纪90年代初期,Lee和Messerschmitt开发的面向对象的方框图框架开始称为Ptolemy(Buck et al.,1994)(现在称为Ptolemy Classic)。在20世纪90年代后期,Lee和他的小组基于最新的编程语言Java(Eker et al.,2003),开始了一个称为Ptolemy II的全新设计。Ptolemy II发展了面向角色设计(Lee et al.,2003)和分层异构的主要思想。
软件的发展趋势在许多方面都反映了当前计算的演变。Blosim用C语言编写。Gabriel用Lisp语言编写。第一代Ptolemy系统,现在称为Ptolemy Classic,用C++编写。下一个版本Ptolemy II,用Java编写。每一次变化都反映了人们利用最有效的技术解决实际设计问题的努力。Lisp超过了C语言是因为其鲁棒性以及对复杂逻辑设计的适应性。C++超过了Lisp是因为其能更好地发展(当时)面向对象设计的概念(特别是继承和多态)。Java超过了C++是因为其很好地支持了多线程和用户接口的可移植性。也许最重要的是,选择定期更换语言是为了强制这个小组重新进行设计,并扩充知识学习。
本书很大程度建立在基于Java的Ptolemy II上。即便如此,大部分的荣誉都应归功于Ptolemy Classic(Buck et al.,1994)的设计者,尤其是Joseph Buck、Soonhoi Ha、Edward A. Lee和David Messerschmitt等。
参与人员
许多人都对本书和Ptolemy II软件做出了很大的贡献。除了每章的作者外,还有很多人对本书贡献很大,他们包括Shuvra S. Bhattacharyya、David Broman、Adam Cataldo、
Chihhong Patrick Cheng、Daniel Lazaro Cuadrado、Johan Eker、Brian L. Evans、Teale Fristoe、Chamberlain Fong、Shanna-Shaye Forbes、Edwin E. Goei、Jeff Jensen、Bart Kienhuis、Rowland R. Johnson、Soonhoi Ha、Asawaree Kalavade、Phil Lapsley、BilungLee、Seungjun Lee、Isaac Liu、Eleftherios D. Matsikoudis、Praveen K. Murthy、Hiren Patel、José Luis Pino、Jan Reineke、Sonia Sachs、Farhana Sheikh、Sun-Inn Shih、Gilbert C. Sih、Sean Simmons、S. Sriram、Richard S. Stevens、Juergen Teich、Neil E. Turner、Jeffrey C. Tsay、Brian K. Vogel、Kennard D. White、Martin Wiggers、Michael C. Williamson、Michael Wirthlin、Zoltan Kemenczy、Ye (Rachel) Zhou和Jia Zou等。Christopher Brooks是该软件的总负责人,因此软件拥有如此高的质量,他功不可没。其他参与者详见http://ptolemy.org/people。
特别感谢Jennifer White提供全面的编辑帮助,他帮助提高了全书的编写质量。为本书的编辑提供帮助的人还有Yishai Feldman、William Lucas、Aviral Shrivastava、Ben Zhang和Michael Zimmer等。

上架指导

嵌入式

封底文字

本书是一本系统论述CPS(集成了计算、网络和物理过程的信息物理融合系统)建模问题的专著,不仅由浅入深地逐一剖析CPS的建模问题,而且还详细介绍了Ptolemy II在应对CPS模型问题时的各种解决方案,并结合Ptolemy II系统平台(集系统设计、建模及仿真于一体)介绍了大量分层、异构系统的模型实例。书中的目标是让读者理解现代建模技术在设计过程中所能发挥的巨大作用,并掌握使用这些技术的方法。书中介绍的技术可以用于诸如嵌入式软件、机械、电气、控制、生物信息等领域的系统建模,尤其适合于那些由不同领域设计元素组合的异构混合系统的建模。另外,书中提到的所有方法和实例都可以在项目网站(http://ptolemy.org/systems)上下载开源的代码。
本书适合作为高等院校相关专业“嵌入式系统”课程的教材或教学参考书,也可作为专业技术人员在CPS系统建模过程中的参考书。

作者简介

[美]爱德华?阿什福德?李(Edward Ashford Lee) 等编著:
爱德华•阿什福德•李(Edward Ashford Lee) 曾任加州大学伯克利分校电子工程与计算机科学系主任,现为该系Robert S. Pepper特聘教授。主要研究方向是嵌入式与实时计算系统的设计、建模和模拟。他是嵌入式系统领域的著名学者,也是CPS研究的倡导者和引领者之一。他领导的团队成功开发了Ptolemy项目,研发了Ptolemy Classic and Ptolemy II系统,这是一个非常优秀的开源嵌入式系统研究与开发平台。他还是加州大学伯克利分校CHESS(混合及嵌入式软件和系统中心)创始主任。
Lee教授拥有加州大学伯克利分校博士学位,麻省理工学院理学硕士学位,以及耶鲁大学学士学位。他合著了5本著作,其中包括《嵌入式系统:CPS方法》。他是IEEE会员,于1997年获得工程教育领域的Frederick Emmons Terman奖,1987年获得美国国家科学基金会的青年研究者总统奖。

译者简介

吴迪 李仁发 译:暂无简介

译者序

本书是Ptolemy II项目近20年成果经验的总结,也是项目组成员共同智慧的结晶。Ptolemy II项目是由美国加州大学伯克利分校教授、嵌入式系统领域的著名学者、CPS(Cyber-Physical System)研究的倡导者和引领者Edward Ashford Lee负责的。他长期专注于并发、实时嵌入式系统领域的研究,开发了集系统设计、建模及仿真于一体的Ptolemy II系统平台。
为了避免讨论过于抽象,本书以Ptolemy II为基础,广泛讨论了分层、异构系统的设计、建模和仿真技术。本书共分为三部分。第一部分包括第1~2章,主要介绍系统的设计、建模与仿真的基础概念。第1章首先概述了异构系统规范化建模的指导性原则,从较高的角度对第二部分详细描述的计算模型(Model of Computation,MoC)进行概述。第2章提供了一个通过图形用户界面Vergil使用Ptolemy II的操作指南,使读者可以在系统设计过程中熟练掌握开源的Ptolemy II来进行实验。第二部分包括第3~11章,涵盖了系统设计、建模和仿真中常用的计算模型。每章都包括一个或一小类相关的计算模型,并解释了它们如何工作、怎样使用它们建立模型以及哪些种类的模型与计算模型可以更好地匹配。第三部分包括第12~17章,重点介绍由Ptolemy II提供的模型系统的内部组件,讨论了Ptolemy II跨模型计算的能力。对于那些想要扩展Ptolemy II或者想用Java写自己的角色的读者来说,可以从第三部分得到具体指导。本书最后列出了大量的参考文献。另外,书中提到所有的方法、实例都可以在项目网站(http://ptolemy.org/systems)上下载开源代码。
本书的最初译稿来源于李仁发教授组织的两届“高性能嵌入式计算”研讨班所用教材之一。李仁发教授组织了本书的翻译工作。参加研讨班的全体博士生、硕士生为本书的共同译者,他们是:吴武飞、杜家宜、白洋、谌雨晴、黄雪伦、王娜、胡游、周兰花、黄一智、李坤明、黄晶、屠晓涵、马萌、彭理、何少芳、宋金林、袁娜、邓湘军、周佳、李万里和杨竞。吴迪、吴武飞负责全书的校对。吴迪负责全书的最后校审工作。
不同语言之间的转换是一件困难的事情。看似很直白的一个词,虽然理解其词义,但要换一种语言表达时往往煞费苦心,有的名词还很难给出确切的中文译名。译者力求忠实地表达书中所介绍的技术,保持原作者的行文风格。在本书翻译过程中,发现原书存在少量描述性错误,通过邮件与原作者确认核实后,在译文中直接进行了修订。限于时间以及译者水平和经验的不足,译文中难免存在不当之处,恳请读者批评指正。
本书的翻译工作得到了原书作者Edward Ashford Lee教授本人及Ptolemy项目组其他成员的鼎力支持,同时还得到湖南大学嵌入式与网络计算湖南省重点实验室同仁及机械工业出版社许多人士的帮助。对此,译者深表感谢。
错误反馈
如果你在阅读过程中发现本书中的错误或印刷错误,或者有任何改进的建议,请发送电子邮件到译者邮箱:enchnu@126.com。或者发送到原书作者邮箱:authors@leeseshia.org。
在邮件中,请注明该书的版本号和相关页面,非常感谢!

译者

图书目录

出版者的话
译者序
前言
第一部分 入门
第1章 异构建模 2
1.1 语法、语义、语用 3
1.2 域和计算模型 4
1.3 模型在设计中的作用 5
1.4 角色模型 6
1.5 层次结构模型 7
1.6 异构建模的方法 7
1.7 时间模型 11
1.7.1 层次化时间 12
1.7.2 超密时间 12
1.7.3 时间的数字表示 14
1.8 域和指示器概述 15
1.9 案例研究 18
1.10 小结 22
第2 图形化建模 23
2.1 开始 23
2.1.1 信号处理模型执行范例 24
2.1.2 模型的创建和运行 26
2.1.3 建立连接 28
2.2 令牌和数据类型 31
2.3 层次结构和复合角色 35
2.3.1 复合角色端口添加 36
2.3.2 端口类型设置 37
2.3.3 多端口、总线和层次结构 38
2.4 注释及参数设置 39
2.4.1 层次化模型中的参数 39
2.4.2 修饰元素 40
2.4.3 创建自定义图标 41
2.5 如何操作大模型 42
2.6 类和继承 43
2.6.1 实例中参数值的重写 45
2.6.2 子类和继承 45
2.6.3 模型间类的共享 47
2.7 高阶组件 49
2.7.1 MultiInstanceComposite角色 49
2.7.2 IterateOverArray角色 50
2.7.3 生命周期管理角色 52
2.8 小结 53
第二部分 计算模型 55
第3章 数据流 56
3.1 同步数据流 56
3.1.1 平衡方程 57
3.1.2 反馈回路 62
3.1.3 数据流模型中的时间 63
3.2 动态数据流 68
3.2.1 点火规则 68
3.2.2 DDF中的迭代 71
3.2.3 将DDF与其他域结合 74
3.3 小结 77
练习 78
第4章 进程网络和会话 80
4.1 Kahn进程网络 80
4.1.1 并发点火 83
4.1.2 PN模型的执行停止 87
4.2 会话 88
4.2.1 多路会话 89
4.2.2 条件会话 90
4.2.3 资源管理 91
4.3 小结 92
练习 92
第5章 同步响应模型 96
5.1 固定点语义 97
5.2 SR实例 98
5.2.1 非循环模型 98
5.2.2 反馈 99
5.2.3 因果循环 106
5.2.4 多时钟模型 106
5.3 寻找定点 107
5.4 定点逻辑 109
5.5 小结 112
练习 112
第6章 有限状态机 113
6.1 Ptolemy中的FSM创建 113
6.2 FSM的结构与执行 116
6.2.1 转移条件定义 119
6.2.2 输出动作 120
6.2.3 赋值动作和扩展有限状态机 120
6.2.4 终止状态 122
6.2.5 默认转移 123
6.2.6 非确定性状态机 124
6.2.7 立即转移 126
6.3 分层FSM 128
6.3.1 状态细化 129
6.3.2 分层FSM的优点 130
6.3.3 抢占式转移与历史转移 130
6.3.4 终止转移 132
6.3.5 模态模型的执行模式 133
6.4 状态机的并发复合 135
6.5 小结 137
练习 138
第7章 离散事件模型 141
7.1 DE域中的时间模型 142
7.1.1 模型时间与实际时间 142
7.1.2 并发事件 143
7.1.3 同步事件 144
7.2 排队系统 149
7.3 调度 152
7.3.1 优先级 154
7.3.2 反馈回路 155
7.3.3 多线程执行 157
7.3.4 调度局限性 159
7.4 芝诺(Zeno)模型 160
7.5 其他计算模型与DE的组合 161
7.5.1 状态机和DE 161
7.5.2 数据流和DE组合 162
7.6 无线和传感器网络系统 162
7.7 小结 164
练习 164
第8章 模态模型 166
8.1 模态模型的结构 166
8.2 转移 170
8.2.1 复位转移 170
8.2.2 抢占式转移 171
8.2.3 差错转移 172
8.2.4 终止转移 174
8.3 模态模型的执行 175
8.4 模态模型和域 176
8.4.1 数据流和模态模型 176
8.4.2 同步响应和模态模型 181
8.4.3 进程网络和会话 181
8.5 模态模型中的时间 181
8.5.1 模态模型中的时间延迟 184
8.5.2 本地时间和环境时间 185
8.5.3 模式细化中的开始时间 187
8.6 小结 188
练习 188
第9章 连续时间模型 189
9.1 常微分方程 189
9.1.1 积分器 189
9.1.2 传递函数 191
9.1.3 求解器 192
9.2 离散和连续的混合系统 197
9.2.1 分段连续信号 197
9.2.2 连续域中的离散事件信号 199
9.2.3 离散时间的积分器重置 200
9.2.4 狄拉克δ函数 201
9.2.5 与DE互操作 204
9.2.6 定点语义 205
9.3 混合系统和模态模型 206
9.3.1 混合系统和不连续信号 208
9.4 小结 210
练习 210
第10章 计时系统建模 211
10.1 时钟 211
10.2 时钟同步 214
10.3 通信延时建模 217
10.3.1 固定和独立的通信延时 217
10.3.2 共享资源竞争行为建模 219
10.3.3 复合切面 222
10.4 执行时间建模 223
10.5 分布式实时系统的Ptides模型 225
10.5.1 Ptides模型的结构 226
10.5.2 Ptides组件 231
10.6 小结 233
第11章 Ptera:面向事件的计算模型 234
11.1 扁平模型的语法和语义 234
11.1.1 入门实例 235
11.1.2 事件参数 236
11.1.3 取消关系 237
11.1.4 同时事件 237
11.1.5 潜在的非确定性 237
11.1.6 LIFO和FIFO策略 238
11.1.7 优先级 239
11.1.8 事件命名及调度关系 239
11.1.9 原子性设计 239
11.1.10 面向应用的实例 240
11.2 层次模型 242
11.3 异构组合 243
11.3.1 Ptera与DE组合 243
11.3.2 Ptera与有限状态机组合 245
11.4 小结 246
第三部分 建模的基础结构
第12章 软件体系结构 248
12.1 包结构 248
12.2 模型结构 249
12.3 角色语义和计算模型 253
12.3.1 执行控制 253
12.3.2 通信 256
12.3.3 时间 257
12.4 在Java中设计角色 258
12.4.1 端口 261
12.4.2 参数 262
12.4.3 端口和参数耦合 263
12.5 小结 264
第13章 表达式 265
13.1 简单算术表达式 265
13.1.1 常量与直接值 265
13.1.2 变量 267
13.1.3 运算符 268
13.1.4 注释 269
13.2 表达式的应用 269
13.2.1 参数 270
13.2.2 端口参数 270
13.2.3 字符串参数 271
13.2.4 表达式角色 272
13.2.5 状态机 272
13.3 复合数据类型 273
13.3.1 数组 273
13.3.2 矩阵 275
13.3.3 记录 276
13.3.4 联合体 278
13.4 令牌运算 279
13.4.1 调用方法 279
13.4.2 访问模型元素 279
13.4.3 类型分配 280
13.4.4 函数定义 281
13.4.5 高阶函数 281
13.4.6 模型中的函数调用 282
13.4.7 递归函数 283
13.4.8 内置函数 284
13.5 空值令牌 287
13.6 定点数 287
13.7 单位 288
13.8 函数表 290
第14章 类型系统 298
14.1 类型推断、转换和冲突 298
14.1.1 自动类型转换 300
14.1.2 类型约束 302
14.1.3 类型声明 303
14.1.4 反向类型推断 304
14.2 结构化类型 305
14.2.1 数组 305
14.2.2 记录 306
14.2.3 联合体 307
14.2.4 函数 307
14.3 角色定义中的类型约束 307
14.4 小结 312
第15章 本体 314
15.1 创建和使用本体 315
15.1.1 本体创建 316
15.1.2 约束创建 318
15.1.3 抽象解释 321
15.2 错误查找和最小化 322
15.3 单位系统创建 326
15.3.1 什么是单位 326
15.3.2 基本维度和推导维度 327
15.3.3 维度之间的转换 327
15.4 小结 329
第16章 Web接口 330
16.1 导出到网络 330
16.2 Web 服务 341
16.2.1 Web服务器的架构 341
16.2.2 构建Web服务 343
16.2.3 使用cookie在客户端存储数据 346
16.3 小结 351
练习 351
第17章 信号显示 352
17.1 可用绘图仪概述 353
17.2 绘图仪定制 355
参考文献 358

教学资源推荐
作者: (美)John L. Hennessy 斯坦福大学; David A. Patterson 等著 加州大学伯克利分校
作者: (美)Peter Barry Intel公司  Patrick Crowley 华盛顿大学圣路易斯分校 著
作者: 张太镒 宁改娣 刘和平
作者: 胡伟武 等著
参考读物推荐
作者: 陆平 赵培 左奇 等编著
作者: 高显生 编著