首页>参考读物>计算机科学与技术>计算机组织与体系结构

嵌入式与实时系统开发—使用UML、对象技术、框架与模式
作者 : (美)Bruce Powel Douglass
译者 : 柳翔 等
丛书名 : 计算机科学丛书
出版日期 : 2005-03-14
ISBN : 7-111-15592-0
定价 : 55.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 458
开本 : 16开
原书名 : Doing Hard Time:Developing Real-Time Systems with UML,Objects,Frameworks,and Patterns
原出版社: Addsion Wesley Longman,Inc.
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书将实时系统、对象建模、快速开发过程以及系统保险性等几个完全分离的学科统一起来,重点介绍了使用统一建模语言(UML)进行基于模型的实时系统和嵌入式系统开发以及被称为ROPES的基于风险的迭代开发生命周期。本书共分为四部分,包括:基础知识、分析、设计、高级实时对象建模。另外,书后还包括三个附录,总结了UML符号表示并介绍了两个工具—Rhapsody和TimeWiz。
  本书适合作为计算机科学专业本科生或研究生教材,同时也可作为专业软件开发人员的参考书。

图书特色

图书前言

目标
  当今世界依靠嵌入式计算机而运转。现代社会中的各个领域,从生产到运输甚至医药,实际上都离不开嵌入式计算机。典型的家庭是一个计算生态系统,其中包括电话、电视机、洗衣机、微波炉以及其他许多基于硅的生物群。这些计算设备中许多(即使不是大多数)设备对其功能有守时性需求,因此,迟来的动作常常是错误的动作。许多嵌入式设备在出现故障或者失效的时候,会造成极大危害。
  不仅越来越多的事情可以通过嵌入式计算设备进行处理,而且被处理的事情的范围、复杂性以及关键性均呈现几何增长。为了满足此类系统开发者日益增长的需要,技术创新的重要性是毋庸置疑的。以硬件复杂性作为电子设备开发过程中的限制因素的时代已经过去。大多数制造实时系统和嵌入式系统的公司已经意识到“千里之堤,溃于蚁穴”的道理,开始认真地寻找提高软件生产率的方法。更好的实时系统和嵌入式系统开发方法是本书的源泉和灵魂。
  本书重点介绍使用统一建模语言(UML)进行基于模型的实时系统和嵌入式系统开发以及被称为ROPES的基于风险的迭代开发生命周期。UML是第三代建模语言,它严格地定义了对象元模型的语义,并为对象结构、行为的捕获和通信提供了符号表示。1996年底,UML成为了OMG中的标准建模语言,而且作者一直全力推动UML标准的发展。本书是以UML标准1.3版为基础的。
  基于模型的开发对当今的高复杂性、短开发周期的商业环境来说至关重要。致力于对基本问题的抽象比专注于底层实现细节更加重要,我们应该致力于“是否应该在反应堆核心中增加控制杆以避免彻底垮台呢?”而不是专注于“我是否应该在出现非零或者进位的情况下执行跳转呢?”通过增加抽象层次,我们很可能在更短的时间内构建出更为复杂而且缺陷更少的系统。
  因为UML是可执行的,所以它可以由UML模型自动生成可执行系统。其重要性不仅仅是节约了从抽象模型到可执行代码进行手工翻译所耗费的时间和工作量。这是一项正处于起步阶段的技术,允许开发者从概念的定义快速转入到概念的测试当中,减少了早期的风险而且促进了对问题解空间的探索。概念性缺陷可以在许多与之相关的瑕疵产生之前被尽早地识别和修正,从而使得在更短的进度时间内构建出质量更高的系统。
  本书有意地将几个几乎完全分离的学科领域统一起来,这些学科领域包括实时概念(如守时性和性能)、对象建模、快速开发过程以及系统保险性。这使得开发者能够通过简单而且易于理解的步骤,最终提交出正确而守时的嵌入式解决方案。
关于在实时系统中使用对象方面的书并不多,而在实时系统中使用最新的对象建模语言(UML)方面的书更是屈指可数。一方面,所有关于面向对象方面的书主要是针对商业或者数据库应用领域的,完全没有涉及到实时方面。另一方面,关于实时系统方面的书又在很大程度上忽略了面向对象方法。这些书大体上分为两个阵营:一方完全忽视方法学上的考虑而仅把注意力集中在“裸机”编程方面,另一方具有高度理论性但很少在真正实现可工作的系统方面给出建议。本书旨在为这些技术架起相互沟通的桥梁,介绍如何使用UML的对象语义和符号表示开发出可实施的实时系统。尽管使用特殊的工具示范实例,但是本书所讨论的内容是与工具无关的。

适用读者 
  本书针对专业软件开发人员以及计算机科学专业的中、高年级学生。本书可以作为本科生或者研究生教材,但是重点在于开发实践方面而不是理论介绍。书中仅列出少数的数学公式,更多的理论和数学方法可参考相应的参考书。本书假设读者至少精通一门编程语言,以及对面向对象和实时系统的基本概念有初步的认识。

本书结构
  本书由五部分组成:
  1. 基础知识
这部分介绍UML的对象语义和符号表示、实时系统、保险性的重要性以及开发过程。
  2. 分析
这部分陈述不同类型的分析(包括通过用例、场景和状态机来捕获需求)、识别问题中的关键抽象以及基本行为建模。
  3. 设计
这部分着重介绍附加的设计层次信息(例如并发模型、运行时制品(库、可执行代码等)的产生)、到物理架构的映射、通过设计模式优化对象协作的运用以及算法的建模。
  4. 高级实时对象建模
这部分讨论困难而复杂的实时应用和嵌入式应用所关心的主题。这些主题包括通过数学分析确定对象模型的可调度性、把通常出现的行为问题转化成行为设计模式的通用状态机解决方案的具体化以及实时框架的结构和功能。
  5. 附录
  本书提供了三个附录。
  * UML符号表示总结:对UML及本书中所用到的符号的一个简短指南。
  * Rhapsody:完全构造性的UML可视化编程工具,对随书光盘中提供的UML可视化编程工具的介绍。
  * TimeWiz:用于时序分析的集成工具,对随书光盘中提供的可调度性分析工具的介绍。

随书光盘
  本书随书光盘所提供的资料分为三类:
  * 书中所出现的全部例子。这些模型是以Rhapsody工程形式给出的,而且可以拷贝到你的本地硬盘上,使用Rhapsody工具打开和操作。
  * Rhapsody。可视化编程工具安装文件。
  * TimeWiz。可调度性分析工具安装文件。
  我相信(和希望)本书能够满足学生以及专业开发人员的需要,这正是我写这本书的出发点。

致谢
  向本书的所有评审员表示感谢,他们的工作使我保持严谨和中肯,他们是:
Eran Gery i-Logix公司
Jim Collins i-Logix公司
Larry McAlister ENSCO公司
Therese M. Douglass 空中交通软件架构公司
Gary Cernosek Rational软件公司
  我还要感谢i-Logix公司的Neeraj Chandra和Gene Robinson,他们的支持使我在这本书上付出了如此大的精力;感谢Mitre公司的Doug Jensen在可调度性主题上提出的意见;感谢Therese Douglass在空中交通控制系统方面提出的专家意见;同时感谢Addison-Wesley编辑组成员,包括Carter Shanklin、Krysia Bebick和Maureen Willard等。

Bruce Powel Douglass博士
1999年初,冬天的深夜

图书序言

1971年,全世界只有大约142 000台计算机(当时比尔·盖茨才16岁)。到1999年,仅个人计算机就已达到了3.5亿到4亿台,而嵌入式设备至少还要多出一个数量级。尽管PC是微处理器革命中最为显著的产品,但是有更多的设备隐藏于幕后,例如电梯、起搏器、便携式电话、工业控制机器、手表、汽车传动和刹车系统、家庭自动控制系统、电器(需要软件来实现其功能)。嵌入式设备软件的开发尤其具有挑战性:它必须与现实世界(一般都非常嘈杂和不可预测)进行交互,其运行受到时间和性能的约束(响应是用毫秒至纳秒来衡量的),而且要保证其运行的可靠性和保险性(尤其对于关乎人命的系统来说)。随着Sun公司的Jini技术、Microsoft公司的通用即插即用以及IBM公司的T-Spaces等技术的发展,我们可以预见通过因特网连接起来的、无所不在的分布式设备和嵌入式设备的发展。但必须有人来编写所有相关软件。
  在本书中,Bruce深入浅出地介绍了嵌入式系统的开发过程。我尤为喜欢他关于抽象和UML使用方面的观点。(尽管在这方面与我的观点可能存在一些分歧!)他在书中覆盖了所有基本问题:守时性、速率单调调度、并发性、保险性、调试、事件驱动建模、与实时操作系统的交互、架构,这确实是一项非常全面的工作。他轻松的行文风格以及他的智慧(他经常引用Book of Douglass中的话语)使得到处充满数学公式而枯燥沉闷的主题变得富有趣味性。
  我从Bruce身上学到了许多东西,我保证你同样也会。

Grady Booch
Rational软件公司

作者简介

(美)Bruce Powel Douglass:Bruce Powel Douglass: 3岁自学阅读并在12岁之前掌握了微积分学。14岁的时候他退了学,在进入俄勒冈大学就读数学专业之前的几年时间内游遍了美国。Douglass获得了俄勒冈大学运动生物学专业的硕士学位和南达科他州医学院神经生理学专业的博士学位。在攻读博士学位期间,他为研究多细胞生物神经系统中的信息处理而创立了一个被称为自相关因子分析的数学分支。 Bruce有近20年实时系统软件开发经验,同时他在实时系统、嵌入式系统领域中是一名声明显赫的演讲者和作者。在嵌入式系统以及UML世界会议的顾问委员会工作期间,他讲授过多方面课程,包括软件估算与调度、项目管理、面向对象分析与设计、通信协议、有限状态机、设计模式以及保险性关键系统的设计。他在实时面向对象分析与设计领域创立和讲授课程多年,而且为许多期刊和杂志撰写过关于实时领域的文章。 Bruce现在是实时系统开发工具的主要生产商—i-Logix公司的首席技术演讲师。Bruce与Rational Software公司及其他UML伙伴通力合作,共同制定了统一建模语言(UML)的规格说明。他是对象管理组织(OMG)中的实时分析与设计工作组的主席之一,实时分析与设计工作组致力于UML的有关扩展,以便能更好地满足实时系统和嵌入式系统的需要。他还为许多构建大规模、实时、保险性关键系统的公司提供咨询、培训和指导。他编著了四本有关软件方面的书籍,其中包括Real-Time UML(Addison-Wesley,1998),还编写过一本关于乒乓球方面的简短教科书。 Bruce喜欢古典音乐而且能够专业地弹奏古典吉他,擅长乒乓球、自行车竞赛、跑步以及跆拳道等多项运动。他正和两个儿子在Frozen North研究认识论。可以通过电子邮件bpd@ilogix.com与他联系。

译者简介

柳翔 等:柳翔: 男,1963年生,湖北省麻城人。博大软件有限公司总裁兼首席系统架构师,北京大学软件与微电子学院嵌入式系统系系主任、客座教授。1984年毕业于湖南大学电气工程系,1987年获中国科学院自动化所模式识别与智能控制所硕士学位,1993获法国波尔多第一大学国立无线电通信工程学院图像和信号处理博士学位。 柳翔博士曾长期为摩托罗拉(Motorola)公司服务,历任摩托罗拉公司科技咨询委员会(SABA)委员、软件全球集团新加坡中心市场拓展部经理、软件开发经理、系统架构师、项目经理、高级主任工程师等多个技术与管理职务。主持过多个无线通信网络管理、宽带通信多媒体终端、移动式个人数字终端及多媒体信号处理软件项目。由于在实时系统与嵌入式软件、宽带和无线通信网络管理方面的成就,于2001年被摩托罗拉任命为公司科技咨询委员会委员。作为摩托罗拉软件全球集团新加坡中心主要管理者之一,将其发展为SEI-CMM五级软件外包企业。在加入摩托罗拉前,柳翔博士曾在中国科学院自动化所及法国信号处理研究组织从事过多年实时信号处理研究及产品开发、多维信号模型和快速算法以及图像处理研究,在国际学术杂志及国际学术会议上发表过多篇论文,他在中科院曾参与或主持过多个中国国家级研发项目和新产品开发。从2003年3月起,柳翔博士创立博大软件有限公司,任公司总裁兼首席系统架构师。博大软件主要从事美、日、欧国家和地区软件外包业务、嵌入式系统(无线与宽带通信终端)解决方案和软件工程职业培训与教育。从2002年10月起,北京大学软件与微电子学院聘请柳翔博士为嵌入式系统系系主任、客座教授,主持设计出嵌入式软件工程硕士学位课程体系。主讲 《嵌入式系统概论》、《无线通信服务终端》、《嵌入式软件开发技术与工具》、《数字家庭网关技术》等硕士研究生课程。 柳翔博士主持设计出的嵌入式系统工程专业资格认证体系(ESEPC),是将国际上先进的嵌入式系统知识体系和其长期工业界的工程实践有机结合,注重能力培养的培养体系。旨在加强嵌入式软件业和电子信息产业的竞争地位,为有志于从事嵌入式系统相关产品开发的公司与个人,提供不断完善能力的培养计划,从而取得可持续的发展机会。 从2003年11月起,柳翔博士受聘为中国软件行业协会教育与培训专家委员会专家,参与中国软件人才培养方案的开发建设。柳翔博士以其ESEPC培养体系为基础,设计出嵌入式软件开发专业培训方案,于2003年12月5日由中国软件行业协会在人民大会堂正式发布,在中国软件行业全面推广。

译者序

微电子技术、通信技术和全球信息化的飞速发展,极大地推动了基于微处理器的嵌入式系统在各个领域尤其是移动通信和消费类电子产业的应用。据世界权威机构公布的统计数字,全球用于嵌入式系统的微处理器已占85%以上的微处理器销售额。目前,嵌入式系统广泛应用在工业控制、仪器仪表、通信、汽车、军事装备、船舶、航空航天、消费类产品等领域,所带来的全球工业产值已超过了1万亿美元。中国信息化与全面小康社会建设对嵌入式系统市场提出了巨大需求,微处理器、微控制器和DSP芯片技术以及嵌入式软件是通信、消费类电子等各类电子信息产品的核心。数字化电子信息产业的基础是以应用为中心的嵌入式系统芯片设计和面向应用的嵌入式软件工程。中国嵌入式系统市场预计每年将直接创造千亿元的效益,所带动的相关工业产值将超过上万亿元,成为电子信息产业新的经济增长点。2003年国内手机年销量达到1.8亿部。国内数字化家电产品年需求量几亿台,每一类数字化家电产品都有千万台市场需求量。国内集成电路、板级产品和电子信息产品已具有大批量生产能力,与嵌入式系统相关的产品出口正逐年增长,在全球市场也将占有一席之地。
  不仅越来越多的应用领域需要嵌入式系统,而且嵌入式系统所处理的事情的范围、复杂性以及关键性均呈现几何增长。为了满足嵌入式系统开发者日益增长的需要,寻找提高软件生产率的方法,以更短的时间构建出质量更高的系统,其重要性是毋庸置疑的。
  本书以UML标准1.3版为基础,重点介绍使用统一建模语言进行基于模型的实时系统和嵌入式系统开发方法以及嵌入式系统快速面向对象过程(ROPES)。UML是第三代建模语言,它严格地定义了对象元模型的语义,而且为对象结构、行为的捕获和通信提供了符号表示。1996年底,UML成为了OMG中的标准建模语言。
  关于在实时系统中使用对象方面的书并不多,而在实时系统中使用最新的对象建模语言(UML)方面的书更是屈指可数。所有关于面向对象方面的书主要是针对商业或者数据库应用领域的,而且完全没有涉及到实时方面。另一方面,关于实时系统方面的书会在很大程度上忽略面向对象方法。
  本书将几个完全分离的学科领域统一起来,这些学科领域包括实时系统(如守时性和性能)、面向对象建模、快速开发过程以及系统保险性。本书将这些技术有机融合,陈述了如何使用UML的对象语义和符号表示开发出可供发布的实时系统的过程。这个统一的方法使开发者能够通过简单而且易于理解的步骤,最终提交出正确而守时的嵌入式系统和实时系统解决方案。
  由于时间的关系,难免有理解不够深入之处。虽然我们尽了最大努力,但译文中难免有疏漏和错误之处,敬请读者指正。
  最后,向参与本书翻译和讨论的所有人员表示感谢,恕不在此一一列出。

图书目录

第一部分  基础知识
第1章  对象及统一建模语言介绍 2
1.1  对象的优点 2
1.2  术语和概念 6
1.3  UML中的面向对象 6
1.3.1  对象 7
1.3.2  属性 11
1.3.3  行为 11
1.3.4  消息传递 13
1.3.5  职责 15
1.3.6  并发 15
1.3.7  自主机器式对象 16
1.4  类图 16
1.5  用例 24
1.6  顺序图 25
1.7  物理表示 26
1.8  图中常见的元素 27
1.8.1  注释 27
1.8.2  包 27
1.8.3  约束 28
1.8.4  构造型 29
1.9  小结 32
1.10  展望 33
1.11  练习 33
1.12  参考文献 34
第2章  实时系统的基本概念 35
2.1  什么是实时系统 35
2.2  术语和概念 35
2.3  守时性 37
2.4  响应 39
2.5  并发 41
2.5.1  并发线程的调度 41
2.5.2  事件到达模式 42
2.5.3  线程汇合点模式 43
2.5.4  资源共享 44
2.6  可预测性 45
2.7  正确性和健壮性 46
2.7.1  死锁 46
2.7.2  异常条件 48
2.7.3  竞争条件 49
2.8  分布式系统 50
2.9  容错性和保险性 51
2.10  处理资源受限的目标环境 51
2.11  低层硬件接口 51
2.12  实时操作系统 51
2.12.1  可伸缩性 52
2.12.2  调度 52
2.12.3  实时操作系统的典型特征 52
2.13  小结 58
2.14  展望 58
2.15  练习 59
2.16  参考文献 59
第3章  保险性关键系统的基本概念 60
3.1  保险性引论 60
3.1.1  Therac-25故事 60
3.1.2  其他故事 60
3.2  术语和概念 61
3.3  保险性相关故障 63
3.3.1  保险性是一个系统问题 64
3.3.2  随机故障与系统故障 64
3.3.3  单点失效 65
3.3.4  共态失效 66
3.3.5  潜在故障 68
3.3.6  失效-保险状态 68
3.3.7  实现保险性 68
3.4  保险性架构 70
3.4.1  单通道保护式设计 71
3.4.2  多通道表决模式 72
3.4.3  同构冗余模式 72
3.4.4  相异冗余模式 73
3.4.5  监视器-传动器模式 75
3.4.6  门禁模式 75
3.4.7  保险性执行体模式 76
3.5  实现保险性的八个步骤 77
3.5.1  第一步:辨别危害 78
3.5.2  第二步:确定风险 82
3.5.3  第三步:确定保险性措施 83
3.5.4  第四步:建立保险性需求 84
3.5.5  第五步:创建保险性设计 84
3.5.6  第六步:实现保险性 85
3.5.7  第七步:确立保险性过程 89
3.5.8  第八步:测试,测试,测试 89
3.6  一些保险性相关的标准 91
3.7  小结 92
3.8  展望 93
3.9  练习 93
3.10  参考文献 94
第4章  用于嵌入式系统的快速面向对象过程 96
4.1  引论 96
4.2  术语和概念 97
4.2.1  开发阶段 97
4.2.2  排序 98
4.2.3  成熟度 99
4.3  开发任务序列 99
4.3.1  瀑布生命周期 99
4.3.2  迭代生命周期 100
4.3.3  开发原型 100
4.4  进度安排与估计 102
4.4.1  精确的进度计划的好处 103
4.4.2  精确的进度计划的困难 104
4.5  ROPES宏周期 105
4.6  分析 108
4.6.1  需求分析 108
4.6.2  系统分析 112
4.6.3  对象分析 113
4.7  设计 115
4.7.1  架构设计 117
4.7.2  机制设计 118
4.7.3  详细设计 118
4.8  转化 119
4.8.1  活动 120
4.8.2  制品 120
4.9  测试 120
4.9.1  活动 121
4.9.2  制品 121
4.10  小结 122
4.11  展望 122
4.12  练习 122
4.13  参考文献 123
第二部分  分   析
第5章  实时系统的需求分析 126
5.1  引论 126
5.2  术语和概念 126
5.2.1  用例 126
5.2.2  消息和事件 127
5.2.3  场景、协议和状态机 129
5.3  用例 130
5.3.1  用例间的关系 131
5.3.2  用例实例:空中交通控制系统 132
5.4  外部事件 135
5.5  指定外部消息 136
5.5.1  外部事件列表 136
5.5.2  响应时间 137
5.6  用例行为详述 138
5.6.1  非形式文本描述 138
5.6.2  场景 139
5.6.3  顺序图 139
5.6.4  用状态图定义用例行为 141
5.7  确定用例 141
5.8  使用用例 143
5.9  制作好的需求分析图的启发式方法 143
5.9.1  用例图的启发式方法 144
5.9.2  用例的启发式方法 144
5.9.3  用例顺序图的启发式方法 144
5.10  小结 145
5.11  展望 145
5.12  练习 145
5.13  参考文献 145
第6章  结构对象分析 146
6.1  引论 146
6.2  术语和概念 146
6.3  对象识别的关键策略 147
6.3.1  在名词下划线 149
6.3.2  识别因果代理 151
6.3.3  识别内聚性服务 152
6.3.4  识别现实世界的元素 152
6.3.5  识别物理设备 152
6.3.6  识别域的基本抽象 152
6.3.7  识别事务 154
6.3.8  识别持久性信息 154
6.3.9  识别可视化元素 155
6.3.10  识别控制元素 156
6.3.11  执行对象模型中的场景 157
6.4  对象到类的具体化 159
6.5  识别对象关联 160
6.5.1  多重性 162
6.5.2  关联和链接 163
6.6  聚合与组合 163
6.7  对象属性 163
6.8  泛化关系 165
6.9  AATCS实例:类图 168
6.10  创建好的类图的启发式方法 171
6.11  小结 173
6.12  展望 174
6.13  练习 174
6.14  参考文献 174
第7章  行为对象分析 175
7.1  引论 175
7.2  术语和概念 175
7.2.1  简单行为 176
7.2.2  状态行为 176
7.2.3  连续行为 180
7.3  UML状态图 186
7.3.1  基本状态语义 186
7.3.2  转换和事件 188
7.3.3  动作和活动 189
7.3.4  伪状态 192
7.3.5  正交区与同步 193
7.3.6  基本状态图语法 194
7.3.7  继承状态模型 198
7.3.8  构造错误的状态模型 198
7.3.9  实例:AATCS报警系统 201
7.4  场景在行为定义中的角色 204
7.4.1  时序图 204
7.4.2  顺序图 206
7.4.3  活动图 207
7.5  定义操作 210
7.5.1  操作的类型 212
7.5.2  定义操作的策略 214
7.6  状态图的启发式原则 216
7.7  时序图的启发式原则 217
7.8  活动图的启发式原则 217
7.9  小结 218
7.10  展望 218
7.11  练习 218
7.12  参考文献 219
第三部分  设   计
第8章  架构设计 223
8.1  引论 223
8.2  术语和概念 223
8.3  任务分配模型 224
8.3.1  表示任务 224
8.3.2  定义任务线程 230
8.3.3  将对象指派给任务 233
8.3.4  定义任务汇合 234
8.4  构件模型 238
8.5  部署模型 242
8.5.1  在UML中表示物理架构 243
8.5.2  多处理器系统 244
8.6  保险性/可靠性模型 248
8.6.1  同构冗余模式 249
8.6.2  相异冗余模式 249
8.6.3  监视器-传动器模式 251
8.6.4  门禁模式 253
8.6.5  保险性执行体模式 254
8.7  小结 254
8.8  展望 255
8.9  练习 255
8.10  参考文献 256
第9章  机制设计 257
9.1  引论 257
9.2  术语和概念 261
9.3  机制设计模式 267
9.3.1  正确性模式 268
9.3.2  执行控制模式 273
9.4  小结 286
9.5  展望 287
9.6  练习 287
9.7  参考文献 287
第10章  详细设计 288
10.1  详细设计引论 288
10.2  术语和概念 288
10.3  数据结构 289
10.3.1  基本表示类型 289
10.3.2  子范围约束 292
10.3.3  派生属性 296
10.3.4  数据集结构 298
10.4  关联 299
10.5  对象接口 301
10.6  操作的定义 303
10.7  详细算法设计 303
10.7.1  在UML中表示算法 304
10.7.2  算法实例:运行时数据插值 305
10.8  异常 310
10.8.1  基于源语言的异常处理 312
10.8.2  基于状态的异常处理 316
10.9  小结 316
10.10  展望 317
10.11  练习 317
10.12  参考文献 318
第四部分  高级实时对象建模
第11章  线程与可调度性 320
11.1  引论 320
11.2  术语和概念 320
11.2.1  基于时间的系统 320
11.2.2  反应式系统 321
11.2.3  时间概念 321
11.3  调度线程 329
11.3.1  速率单调调度 332
11.3.2  最早期限优先调度 333
11.3.3  最弱松弛动态调度 333
11.3.4  最高紧迫性优先调度 333
11.3.5  加权最短处理时间优先调度 334
11.3.6  最小化最大迟滞调度 334
11.4  线程同步与资源共享 335
11.4.1  互斥信号量 336
11.4.2  Dekker算法 337
11.4.3  自旋锁 339
11.4.4  计数信号量 339
11.4.5  条件变量 340
11.4.6  屏障 342
11.4.7  汇合对象 342
11.5  硬实时系统的可调度性分析 343
11.5.1  全局分析 343
11.5.2  带任务阻塞的全局方法 346
11.5.3  计算阻塞 347
11.5.4  分离任务效用边界 349
11.5.5  非周期性任务 350
11.6  软实时系统的可调度性分析 351
11.6.1  温和与模糊:软环境下的守时性 352
11.6.2  软可调度性 353
11.7  小结 354
11.8  展望 355
11.9  练习 356
11.10  参考文献 357
第12章  动态建模 358
12.1  引论 358
12.2  术语和概念 358
12.3  行为模式 365
12.3.1  锁存状态模式 366
12.3.2  轮询状态模式 367
12.3.3  锁存数据模式 369
12.3.4  设备方式状态模式 370
12.3.5  事务状态模式 371
12.3.6  构件同步状态模式 371
12.3.7  屏障状态模式 373
12.3.8  事件层次状态模式 374
12.3.9  随机状态模式 377
12.3.10  空状态模式 377
12.3.11  门禁状态模式 378
12.3.12  可再触发的计数器状态模式 379
12.4  模型层的调试与测试 380
12.4.1  动画调试 382
12.4.2  动画测试 384
12.4.3  调试会话实例 386
12.5  小结 390
12.6  展望 392
12.7  练习 392
12.8  参考文献 392
第13章  实时框架 393
13.1  引论 393
13.2  术语和概念 394
13.3  实时框架 395
13.3.1  架构支持模式 396
13.3.2  协作和分布模式 398
13.3.3  保险性和可靠性模式 402
13.3.4  行为模式 404
13.4  框架设计原理与度量 406
13.4.1  服务的集合 406
13.4.2  泛化层次结构 407
13.4.3  可替换构件 407
13.4.4  可移植性 408
13.4.5  命名和语法约定 408
13.4.6  性能 408
13.5  Rhapsody执行框架(OXF) 409
13.5.1  Rhapsody架构 409
13.5.2  执行框架 411
13.5.3  对象间关联模式 412
13.5.4  使用C++标准模板库 414
13.5.5  抽象操作系统 414
13.5.6  动画框架 415
13.6  Rhapsody OXF框架应用实例 415
13.7  小结 427
13.8  练习 427
13.9  参考文献 427
附   录
附录A  UML符号表示总结 429
附录B  Rhapsody:完全构造性的UML可视化编程工具 445
附录C  TimeWiz:用于时序分析的集成工具 453

教学资源推荐
作者: [美]戴维·A. 帕特森(David A. Patterson),[美]约翰·L. 亨尼斯(John L. Hennessy) 著
作者: Arnold S. Berger
作者: 颜志英
参考读物推荐
作者: [丹麦]克劳斯·埃尔克(Klaus Elk) 著
作者: 国际商业机器中国有限公司
作者: 刘火良 杨森 编著