新書推薦:
《
中文版SOLIDWORKS 2024机械设计从入门到精通(实战案例版)
》
售價:NT$
450.0
《
纯数学教程
》
售價:NT$
390.0
《
威尔士史:历史与身份的演进
》
售價:NT$
490.0
《
黄金、石油和牛油果:16件商品中的拉丁美洲发展历程
》
售價:NT$
395.0
《
母亲的选择:看不见的移民保姆与女性工作
》
售價:NT$
340.0
《
城邦政治与灵魂政治——柏拉图《理想国》中的政治哲学研究
》
售價:NT$
590.0
《
3分钟漫画墨菲定律:十万个为什么科普百科思维方式心理学 胜天半子人定胜天做事与成事的权衡博弈之道
》
售價:NT$
249.0
《
1911:危亡警告与救亡呼吁
》
售價:NT$
349.0
|
編輯推薦: |
本书适合作为技术参考书,通过系统建模方法用于设计、分析和开发大规模实时嵌入式系统和应用,也可作为计算机科学、软件工程、系统工程和计算机工程专业本科生或研究生的教材。
|
內容簡介: |
本教材向读者介绍了关于实时嵌入式系统设计过程中采用SysML,UML和MARTE从用例到完整软件体系结构方面的内容,展示了如何针对实际问题应用COMETRTE设计方法。本教材涵盖了关键主题,例如实时系统的用例、实时控制的状态机、分布式和分层实时控制的体系结构模式、实时基于组件的软件体系结构模式、采用实时调度的实时设计性能分析,以及单处理器和多处理器系统时序分析。
|
關於作者: |
哈桑·戈玛(Hassan Gomaa)是George Mason大学计算机科学系教授和前任系主任,在工业界和学术界有30多年的软件工程经验。他曾在北美、欧洲、日本和韩国讲授实时软件设计方面的高级短期行业培训课程。他已发表了200余篇技术论文,编写了另外4本有关软件设计方面的教材,包括《软件建模与设计》和《用UML设计软件产品线》。
|
目錄:
|
出版者的话
译者序
前言
致谢
第一部分 概述
第1章 引言2
1.1 挑战2
1.2 实时嵌入式系统和应用软件2
1.3 实时嵌入式系统的特征3
1.4 分布式实时嵌入式系统5
1.5 信息物理系统6
1.6 嵌入式系统实时软件设计方法需求6
1.7 COMETRTE:用于嵌入式系统的实时软件设计方法7
1.8 可视化建模语言:UML、SysML和MARTE7
1.9 小结7
第2章 UML、SysML和MARTE概述9
2.1 使用SysML和UML的模型驱动体系结构9
2.2 用例图10
2.3 类和对象11
2.4 类图11
2.5 交互图12
2.6 状态机图14
2.7 包图15
2.8 并发序列图和通信图15
2.9 部署图16
2.10 组合结构图17
2.11 UML扩展机制和扩展集18
2.12 SysML19
2.13 MARTE扩展集20
2.14 时序图21
2.15 UML、SysML和MARTE的工具支持21
2.16 小结22
第3章 实时软件设计和体系结构概念23
3.1 面向对象概念23
3.2 信息隐藏24
3.3 继承25
3.4 主动和被动对象26
3.5 并发处理26
3.6 并发任务之间的合作27
3.7 信息隐藏应用于访问同步30
3.8 实时并发处理的运行时支持30
3.9 任务调度31
3.10 软件体系结构和组件33
3.11 小结34
第二部分 实时软件设计方法
第4章 实时嵌入式系统软件设计方法概述36
4.1 COMETRTE系统和软件生命周期模型36
4.2 COMETRTE生命周期模型37
4.3 COMETRTE生命周期与其他软件过程比较39
4.4 实时嵌入式系统设计方法综述40
4.5 系统和软件体系结构的多个视图41
4.6 小结42
第5章 SysML和UML实时嵌入式系统结构化建模43
5.1 静态建模概念43
5.2 用构造型归类块和类46
5.3 SysML问题域结构化建模46
5.4 系统上下文结构化建模48
5.5 硬件软件边界建模50
5.6 软件系统上下文结构化建模51
5.7 定义硬件软件接口54
5.8 系统部署建模54
5.9 小结55
第6章 实时嵌入式系统用例建模56
6.1 用例56
6.2 角色56
6.3 确定用例60
6.4 用例模型中的用例文档61
6.5 指定非功能需求61
6.6 用例描述举例62
6.7 用例关系65
6.8 包含用例关系65
6.9 扩展用例关系67
6.10 用例包69
6.11 小结69
第7章 实时嵌入式系统状态机71
7.1 状态机71
7.2 状态机示例73
7.3 事件和监护条件74
7.4 动作74
7.5 分层状态机79
7.6 协作状态机82
7.7 继承状态机84
7.8 从用例中开发状态机85
7.9 从用例中开发状态机的示例85
7.10 小结88
第8章 为实时嵌入式软件构造对象和类89
8.1 对象和类的构造标准89
8.2 对象和类的构造类别90
8.3 对象的行为和模式90
8.4 边界类和对象91
8.5 实体类和对象95
8.6 控制类和对象96
8.7 应用逻辑类和对象98
8.8 小结100
第9章 实时嵌入式软件动态交互建模101
9.1 对象交互建模101
9.2 消息序列描述102
9.3 动态交互建模方法102
9.4 无状态的动态交互建模103
9.5 无状态的动态交互建模示例103
9.6 依赖于状态的动态交互建模107
9.7 依赖于状态的动态交互建模示例:微波炉系统109
9.8 小结116
第10章 实时嵌入式系统软件体系结构117
10.1 软件体系结构概述117
10.2 软件体系结构的多个视图119
10.3 从分析过渡到设计121
10.4 子系统设计中的关注点分离123
10.5 子系统构造标准125
10.6 确定子系统间的消息通信130
10.7 小结131
第11章 实时嵌入式系统软件体系结构模式132
11.1 软件设计模式132
11.2 分层软件体系结构模式133
11.3 实时软件体系结构的控制模式135
11.4 客户服务软件体系结构模式138
11.5 基本软件体系结构通信模式140
11.6 软件体系结构代理模式145
11.7 分组消息通信模式147
11.8 编写软件体系结构模式文档148
11.9 软件体系结构模式应用149
11.10 小结149
第12章 基于组件的实时嵌入式系统软件体系结构150
12.1 基于组件的软件体系结构150
12.2 基于组件的分布式软件体系结构设计151
12.3 组件接口设计151
12.4 复合组件设计153
12.5 基于组件的软件体系结构示例155
12.6 组件构造标准156
12.7 服务组件设计158
12.8 数据分布161
12.9 软件部署162
12.10 软件连接器设计163
12.11 小结165
第13章 并发实时软件任务设计166
13.1 并发任务构造问题166
13.2 分类并发任务166
13.3 IO任务构造标准167
13.4 内部任务构造标准172
13.5 任务优先级标准177
13.6 任务聚簇标准178
13.7 用任务反演进行设计重构183
13.8 开发任务体系结构184
13.9 任务通信和同步185
13.10 任务接口与任务行为规范189
13.11 小结189
第14章 实时软件详细设计191
14.1 组合任务设计191
14.2 类访问同步196
14.3 监视器设计199
14.4 任务间通信连接器设计203
14.5 任务事件序列逻辑209
14.6 机器人和视觉系统中的实时软件详细设计210
14.7 并发任务的Java实现211
14.8 小结212
第15章 实时软件产品线体系结构设计213
15.1 软件产品线工程213
15.2 微波炉软件产品线问题描述214
15.3 软件产品线需求建模214
15.4 软件产品线分析建模218
15.5 软件产品线设计建模222
15.6 小结224
第三部分 实时软件设计分析
第16章 实时嵌入式系统的系统和软件质量属性226
16.1 可扩展性226
16.2 性能227
16.3 可用性227
16.4 安全性228
16.5 信息安全229
16.6 可维护性229
16.7 可修改性230
16.8 可测试性231
16.9 可跟踪性232
16.10 可重用性232
16.11 小结233
第17章 实时软件设计的性能分析234
17.1 实时调度理论234
17.2 非周期任务和任务同步的实时调度239
17.3 广义实时调度理论240
17.4 使用事件序列分析进行性能分析243
17.5 使用实时调度理论和事件序列分析进行性能分析245
17.6 高级实时调度算法245
17.7 多处理器系统的性能分析246
17.8 性能参数的估计和测量249
17.9 小结250
第18章 性能分析应用于实时软件设计251
18.1 使用事件序列分析进行性能分析的示例251
18.2 用实时调度理论进行性能分析的示例255
18.3 用实时调度理论和事件序列分析进行性能分析的示例258
18.4 设计重构268
18.5 小结268
第四部分 实时嵌入式系统软件
设计案例研究
第19章 微波炉控制系统案例研究270
19.1 问题描述270
19.2 结构化建模270
19.3 用例建模272
19.4 构造对象和类275
19.5 动态状态机建模276
19.6 动态交互建模280
19.7 设计建模290
19.8 实时软件设计的性能分析297
19.9 基于组件的软件体系结构301
19.10 详细的软件设计305
19.11 系统配置和部署307
第20章 铁路道口控制系统案例研究309
20.1 问题描述309
20.2 结构化建模309
20.3 用例建模313
20.4 动态状态机建模315
20.5 构造对象和类317
20.6 动态交互建模318
20.7 设计建模323
20.8 实时软件设计的性能分析328
20.9 基于组件的软件体系结构330
20.10 系统配置和部署334
第21章 轻轨控制系统案例研究336
21.1 问题描述336
21.2 结构化建模337
21.3 用例建模338
21.4 动态状态机建模346
21.5 构造子系统351
21.6 构造对象和类351
21.7 动态交互建模354
21.8 设计建模364
21.9 子系统综合通信图364
21.10 分布式轻轨系统设计366
21.11 基于组件的软件体系结构373
21.12 系统配置和部署375
第22章 泵控制系统案例研究377
22.1 问题描述377
22.2 结构化建模377
22.3 用例建模378
22.4 构造对象和类380
22.5 动态状态机建模380
22.6 动态交互建模382
22.7 设计建模383
第23章 高速公路收费控制系统案例研究387
23.1 问题描述387
23.2 用例建模387
23.3 软件系统上下文建模389
23.4 构造对象和类389
23.5 动态状态机建模390
23.6 动态交互建模390
23.7 设计建模392
附录A 本书使用的约定396
附录B 软件体系结构模式目录399
附录C 并发任务伪码模板415
附录D 教学考虑420
词汇表422
参考文献433
索引439
|
內容試閱:
|
概述
本书介绍了一种支持并发、面向对象和基于组件的综合性设计方法,该方法用于分布式嵌入式系统以及信息物理系统(CPS)中信息组件的实时软件设计。
本书首先讨论实时嵌入式系统的特性并阐述系统设计中的一些重要概念。接下来详细描述面向对象和基于组件的实时嵌入式软件体系结构与详细设计的方法。通过对一系列实时嵌入式系统案例的详细研究,进一步阐明了设计方法和设计决策的影响。本书中所有例子和案例研究均使用UML、SysML和MARTE可视化建模语言与表示法进行编写。
本书面向专业领域和学术领域,特别是研究生阶段的人员。尽管书中给出了简要介绍,这里还是假设读者已具备UML和面向对象方面的基础知识。
本书内容
市场上已有各种参考书介绍面向对象分析、设计概念和方法。然而,实时嵌入式系统有其特殊性,这些参考书缺少对此的深入详细的描述。也有一些书籍描述了实时系统的一般原理或提供了相关方法综述。本书关注的焦点是嵌入式系统实时软件设计,描述了从系统工程的视角来解决系统级问题的方法,系统问题包括硬件和软件方面的问题。
本书全面介绍了面向对象和基于组件的概念,用于复杂的、实时的和嵌入式的软件分析和设计。本书的特点有:
1.描述了面向对象的实时嵌入式系统软件设计的基本概念。包括并发任务,面向对象的信息隐藏、类和继承,分布式组件技术,软件体系结构,有限状态机,以及采用实时调度的实时软件设计性能分析。
2.详细地描述了用于实时嵌入式软件的并发面向对象的分析和设计方法,这适用于大型复杂的工业软件开发。
3.介绍了实时软件设计和系统集成几个重要的设计概念,包括并发性、对象、组件、服务、体系结构设计模式、软件生产线和实时调度。
4.介绍了几个详细的案例研究,用以说明实时嵌入式软件系统的不同特性,逐步给出了从实时系统需求分析到详细软件设计的细节描述。所有案例研究采用SysML、UML 2和MARTE可视化建模语言与表示法进行编写。
5.在附录中为详细任务设计提供了体系结构设计模式和伪代码模板,包括词汇表和参考文献以及工业和学术领域相关课程讲授方面的考虑。
本书读者
本书面向专业领域和学术领域读者。专业领域读者包括系统工程师、软件工程师、计算机工程师、分析师、架构师、设计师、程序员、项目负责人、技术经理以及质量保证专家,他们会参与来自工业和政府的大规模实时嵌入式软件系统的设计与开发。学术领域读者包括计算机科学、软件工程、系统工程和计算机工程方面的高年级本科生与研究生,以及这些领域中的研究人员。
本书阅读方式
本书可以采用不同的阅读方式。可以按照所给出的顺序进行阅读,其中第1~3章给出了介绍性的概念,第4章给出了COMETRTE嵌入式系统实时软件设计方法概述,第5~18章给出了实时软件设计较深入的内容,第19~23章给出了详细的案例研究。
部分读者可能希望跳过一些章节,这取决于他们对所讨论的主题的熟悉程度。第1~3章是介绍性的,有经验的读者可以跳过。熟悉软件设计概念的读者可以跳过第3章。对实时软件设计特别感兴趣的读者,可以直接从第4章开始阅读。不熟悉UML、SysML或MARTE的读者可以阅读第2章以及第4~18章。
有经验的软件设计师也可以使用本书作为参考书,随着项目进入各特定阶段,如需求、分析和设计过程,可以参阅相关章节。每一章都是相对独立的,例如,人们可随时参考第5章来讨论使用SysML和UML进行结构化建模,用例描述可参考第6章,状态机描述可参考第7章。第10章可以作为实时软件体系结构概述方面的参考。第11章和附录B作为软件体系结构模式方面的参考。第12章作为基于组件的软件体系结构方面的参考。第13章作为通过MARTE进行并发实时任务设计方面的参考。第15章可以作为软件产品线设计方面的参考内容。第16章可以作为系统和软件质量属性方面的参考。第17章和第18章作为实时软件设计性能分析方面的参考。可以通过阅读第19~23章的案例研究来更好地理解如何使用COMETRTE方法,每一个案例研究都解释了在需求、分析和设计各阶段所做出的决策。
本书组织结构
第一部分 概述
第1章“引言” 本章概述了实时嵌入式系统和应用,描述了集中式和分布式实时嵌入式系统的主要功能,概述了信息物理系统(CPS)的新兴领域,其中实时软件是其关键组件。本章接下来介绍了书中用到的COMETRTE和实时嵌入式系统设计方法。
第2章“UML、SysML和MARTE概述” 本章描述了UML、SysML和MARTE可视化建模语言与表示法的主要特性,这特别适合于使用COMETRTE方法进行实时设计。本章目的不是完整地介绍UML、SysML和MARTE,因为已有其他书籍详细论述了这方面的主题。这里只对每个主题提供一个简要的概述,特别是那些COMETRTE使用的部分。
第3章“实时软件设计和体系结构概念” 本章描述了并发面向对象实时嵌入式系统软件设计中的关键概念以及开发系统体系结构方面的重要概念,引入了并发处理概念,描述了并发任务之间通信和同步的问题,从应用于实时设计视角讨论了一些通用的设计概念,包括面向对象设计中的信息隐藏和继承概念、软件体系结构和软件组件概念。本章还简要讨论了与实时软件设计相关的技术问题,包括实时操作系统和任务调度。
第二部分 实时软件设计方法
第4章“实时嵌入式系统软件设计方法概述” 本章概述了实时嵌入式系统软件设计方法,该方法称为COMETRTE(Concurrent Object Modeling and Architectural Design Method for Real-Time Embedded systems),它使用了SysML、UML以及MARTE可视化建模语言和表示法。本章还描述了COMETRTE的迭代系统和软件生命周期以及与其他生命周期的对比,然后描述了使用COMETRTE的主要步骤。
第5章“SysML和UML实时嵌入式系统结构化建模” 本章描述了如何使用SysML和UML将结构化建模作为一种综合方法用于包含软硬件组件的嵌入式系统的系统和软件建模,还描述了问题域的结构化建模、硬件软件系统环境下的结构化建模、硬件软件边界建模、软件系统环境下的结构化建模、硬件软件接口定义以及系统部署建模。
第6章“实时嵌入式系统用例建模” 本章描述了如何将用例建模从系统工程和软件工程视角应用于实时嵌入式系统。在概述了用例的基本原理后,重点放在获取实时和嵌入式系统的功能和非功能需求方面。本章还解释了系统用例角色和软件用例角色之间的区别。
第7章“实时嵌入式系统状态机” 本章描述了状态机建模概念,这对反应式(reactive)实时系统尤其重要。这一章涵盖了事件、状态、条件、动作和活动、进入和退出动作、组合状态以及具有顺序和正交子状态的层次状态机,还解决了开发协作状态机、状态机继承以及从用例导出状态机过程中的问题。
第8章“为实时嵌入式软件构造对象和类” 本章描述了软件类和对象的识别与分类,重点描述了类在实时软件中所起的作用,包括边界、控制和实体类。本章还描述了每个对象分类对应的行为模式。
第9章“实时嵌入式软件动态交互建模” 本章描述了动态交互建模概念,为每个用例开发了交互图,包括主场景和可选场景。讨论了依赖于状态的实时嵌入式系统,介绍了依赖于状态的对象交互的动态交互建模。本章还描述了状态机和交互图是如何相互关联的,以及如何使它们相互保持一致。
第10章“实时嵌入式系统软件体系结构” 本章介绍了分布式实时嵌入式系统软件体系结构概念,描述了软件体系结构设计(Software Architectural Design)中的问题,阐述了开发软件体系结构多视图模型的益处。本章还介绍了软件组件和基于组件的软件体系结构,仔细地说明了从需求分析到体系结构设计的转变过程,并描述了子系统设计中的关注点分离和子系统构造标准,最后讨论了子系统消息通信接口的设计。
第11章“实时嵌入式系统软件体系结构模式” 本章描述了体系结构设计模式在开发实时软件体系结构中的作用,概述了软件体系结构模式,包括总体结构和通信模式。本章还描述了实时系统的体系结构模式,包括分层模式、实时控制模式、客户服务模式、代理模式和基于事件的订阅通知模式。
第12章“基于组件的实时嵌入式系统软件体系结构” 本章描述了如何将分布式实时体系结构设计成基于组件的软件体系结构,该结构可以部署到分布式环境中的多个节点上;描述了组件设计问题,包括复合和简单组件、具有供给和需求接口的组件接口设计、端口和连接器;还描述了服务组件和分布式软件连接器的设计,说明了组件配置和部署问题。
第13章“并发实时软件任务设计” 本章描述了使用MARTE实时建模表示法进行并发任务设计;描述了并发任务构造,包括事件驱动的任务、周期任务和需求驱动的任务;还描述了对象的任务聚簇;描述了任务接口的设计,包括同步和异步消息通信、事件同步以及通过被动对象通信;描述了不同类型的消息通信对软件体系结构并发行为的影响。
第14章“实时软件详细设计” 本章描述了并发任务的详细设计,描述了嵌套被动类组合任务的设计,通过互斥、多读者作者和监视器描述了访问被动类的任务同步,介绍了用于任务间通信的连接器的设计,简要介绍了作为Java线程的并发任务的实现。
第15章“实时软件产品线体系结构设计” 本章描述了实时软件产品线的特点,解释了功能建模以及建模共性和差异性方面的重要概念,解释了如何在用例、静态和动态模型以及软件体系结构中建模差异性。本章接着描述了在软件产品线体系结构中建模共性和可变组件,介绍了产品线工件的软件应用工程。
第三部分 实时软件设计分析
第16章“实时嵌入式系统的系统和软件质量属性” 本章描述了系统和软件的质量属性以及如何将它们用于评估实时嵌入式系统和软件体系结构的质量。系统质量属性包括可伸缩性(scalability)、性能(performance)、可用性(availability)、安全性(safety)和信息安全(security)。软件质量属性包括可维护性(maintainability)、可修改性(modifiability)、可测试性(testability)、可跟踪性(traceability)和可重用性(reusability)。本章还讨论了COMETRTE实时设计方法是如何支持系统和软件质量属性的。
第17章“实时软件设计的性能分析” 本章介绍了分析实时嵌入式软件设计性能的方法;描述了分析设计性能的两种方法—实时调度理论和事件序列分析,并将它们结合起来分析并发多任务设计;描述了最新的实时调度算法,包括截止期限单调调度、动态优先级调度和多处理器调度;还描述了包括多核、多处理器系统性能的实际分析方法,讨论了性能参数的估计和测量。
第18章“性能分析应用于实时软件设计” 本章将第17章中描述的实时性能分析概念和理论应用到轻轨控制系统的实时设计中,用实时调度理论和事件序列分析两种方法分析并发多任务设计性能,并对单处理器和多处理器系统设计性能进行了分析和比较。
第四部分 实时嵌入式系统软件设计案例研究
第19章“微波炉控制系统案例研究” 本章描述了如何将COMETRTE设计方法应用到一个消费类产品—微波炉控制系统(Microwave Oven Control System)的嵌入式实时软件设计中。
第20章“铁路道口控制系统案例研究” 本章描述了如何将COMETRTE设计方法应用于严苛安全性要求的铁路道口控制系统的嵌入式实时软件设计中。
第21章“轻轨控制系统案例研究” 本章描述了如何将COMETRTE设计方法应用于嵌入式轻轨控制系统的设计中,在该系统中,无人驾驶列车的自动控制必须安全、实时地完成。
第22章“泵控制系统案例研究” 本章描述了一种简明的案例研究,即如何将COMETRTE设计方法应用于泵控制系统的嵌入式实时软件设计中。
第23章“高速公路收费控制系统案例研究” 本章描述了一种简明的案例研究,即如何将COMETRTE设计方法应用于高速公路收费控制系统的分布式嵌入式实时软件设计中。
附录A“本书中使用的约定” 描述了命名需求、分析和设计工件的约定,描述了交互图上的消息序列编号的约定。
附录B“软件体系结构模式目录” 使用标准设计模式模板描述了每种体系结构和通信模式。
附录C“并发任务伪码模板” 提供了几种不同类型的并发任务伪码。
附录D“教学考虑” 给出了学术类(研究生和高年级本科生)课程教学大纲和工业类课程教学大纲。
|
|