Professional Documents
Culture Documents
(
^ 管理智库丛书
、
/Q
于麵的系统工程
最佳实咸 G0
_
vw/ &{/
(M M# -
^| ( Hans-PeterHoffmann ) 0 , ^
K1C 0 BL
'
IOOL
工
sl 5 v\J 认 琉 ,
T(?
$丁 Sf ciAr
QueST « ^5 PRAGMATIC
ir
^OKK FLO\ ) K
f\u mr
/ •5 /
广娜tSM K 啤
mi
獅iffi.
_
管理智库丛书
基于模型的系统工程最佳实践
Model- Based Systems Engineering Best Practices
( 德 ) 汉 斯 -彼 得 • 霍 夫 曼 ( Hans-Peter Hoffmann )
谷 炼
北 京
内容提要
本书从方法论的角度 , 描述了基于模型的系统工程最佳实践 = 主要从系统工程的视点出发 ,把系统开发的前期系统工程的工作任务 ,责任范围,以工作
流的方式 ,解剖得淋漓尽致 , 为系统的后续开发和系统的确认与验证 , 提供了无缝衔接。本书以系统工程实践者为对象 , 通过众多截屏 、 注释和最佳实践技
巧 , 帮助读者清晰理解工作流的细节。本书的目的是帮助读者在集成系统和软件开发中应用基于模型的系统工程标准建模语言 SysML。
图 书 在 版 编 目 ( CIP ) 数 据
基于模型的系统工程最佳实践
Jiyu Moxing De Xitong Gongcheng Zuijia Shijian
航空工业出版社出版发行
( 北京市朝阳区北苑 2 号院 100012 )
发行部电话:010-84934379 010-84936343
北京京华虎彩印刷有限公司印刷 全国各地新华书店经售
2014 年 5 月第 1 版 2014 年 5 月第 1 次印刷
QUE ^ t ,onS
TRA丨沁
fgoPLe
-r o D
°
.,
口
,r
J 6vi / TfLfclOGIC
養
-
1'
K:A
、
XJ
v
P ^
:
^ CkMOPMEU
:'
BJU \ tkA LF
PFAdM/ TlC
^OKKH
■
[ OO
^
AU
YS f lt
H £ A \li
M£ m b f
/ j
\ K \JH > 7r \ CK
( 50 t
mr
^
^
-
l
写在出版之际 ( 代序 )
“ 可以了 ,我们可以出中文版的了。
我通报给彼得的一句话。彼得说:
” 这是我们合作完稿之时 ,
“ 当我们一起决定将此书改写成
中文之时 ,在我心里 ,这本书就已经在中国出版了!’’
2013 年 9 月 ,彼得在中国各行业就系统工程进行巡回 演讲时 ,
道出了希望将他的《基于模型的系统工程最佳实践》 一书书稿以
中文的方式在中国出版的心愿。他终于如愿以偿。
彼得 . 霍夫曼博士 ( Dr.
peter Hoffmann ) 是 IBM Rational 系统
工程首席架构师 ,也是 IBM Rational 系统工程最佳实践 Harmony
SE 的作者和方法论创始人,是全球著名的系统工程专家。彼得有
着 30 多年系统工程领域的指导和实践经验。《 基于模型的系统工
程最佳实践》 集方法论和真实项目的指导经验为一体 ,是他的心
血 ,是他多年来经验的沉淀。本书除了用通俗易懂的建模方法描
述什么是基于模型的系统工程最佳实践 之外 ,还以真实的项目为
背景 ,详细举例说明了如何在具体的系统工 程项目实践中加以
应用。
关于基于模型的系统工程标准建模语 言 SysML , 已 经 出 版 过
许多书籍 ,也发表过很多文章。但都很少提及问题的关键 :如何
绘画 :瑞克 • 怀特 ( J. RickWhitel
帮助读者清楚明白地把其应用到一个 集成的系统和软件开发中去。
撰写本书的目的就是要填补这一空 白。
本书适用的对象为 :航天航空、机动车研发和生产、铁路工
程、造船工程 、电子电动工程 、 核电以及能源工程等行业和领域
的系统总设计师 、 系统工程师 、 系统需求分析与设计人员 、 系统
测试工程师 、项目管理人员和质量控制管理人员。
需要强调的是,我们不能忘记在此书的撰写过程 中 ,得到了
IBM 专家、“ Wizard 大师 ” Andy Lapping ( IBM Rational Rhapsody
系统工程套件的作者 ),IBM 专家 Pavel Vodov ( IBM Rational
Rhapsody 和 DOORS 集成场景的设计者 ), IBM Rational 中国团队 ,
中国航空工业集团公司 、中国商用飞机有限责任公司 、中国船舶
工业集团公司等的相关领导和团队 的大力支持和帮助 ,在此一并
致以衷心的谢意。
谷炼
2013 年 6 月 18 日
2
目 录
第1 章 绪 论 / 1 2 . 3. 3 . 3 序列图 / 24
1.1 范围 / 1 2 . 3. 3 . 4 状态图 / 24
1.2 内容概述 / 1 2 . 3. 4
需 求 分 析/ 系 统 功 能 分 析 层 次 的 工 件 关 系 / 2 5
2.4 服务请求驱动的建模方法 / 26
第 2 章 Harmony SE 基 础 / 3
2 . 1 Rational 集 成 系 统 / 嵌 人 式 实 时 开 发 流 程:Harmony / 3 第 3 章 Rhapsody 项 目 结 构 / 2 7
2.2 基于模型的系统工程流程 / 5 3.1 项目结构概览 / 27
2 . 2. 1 需 求 分 析 / 6 3.2 需求分析套件包 / 28
2 . 2. 2 系统功能分析 / 6 3.3 功能分析套件包 / 29
2 . 2. 3 设 计 综 合 / 1 1 3.4 设计综合套件包 / 30
2 . 2. 3 . 1 架 构 分 析( 权 衡 分 析 研 究)/ 1 2 3 . 4. 1 架 构 分 析 套 件 包 / 3 0
2 . 2. 3 . 2
架构设计 / 15 3 . 4. 2
架构设计套件包 / 31
2 . 2. 4 系统工程交付 / 16 3.5 系统层定义 / 32
2 . 3 SysML 应 用 于 基 于 模 型 的 系 统 工 程 的 基 本 工 件 / 1 9 第 4 章 案 例 :安 全 系 统 / 3 3
2 . 3. 1 需 求 图 / 2 0 4.1 案例工作流 / 33
2. 3 . 2 结构图 / 20 4. 2 创 建 Harmony 项 目 结 构 / 3 4
2 . 3. 2 . 1 模块定义图 / 20 4.3 需求分析 / 35
1 3 . 2. 2 内部模块图 / 20 4 . 3. 1 DOORS :涉 众 需 求 的 导 入 / 3 6
2. 3 . 2. 3 参 数 图 / 2 2 4 . 3. 2 DOORS :系 统 需 求 的 导 入 / 3 7
2 . 3. 3 行 为 图 / 2 2 4 . 3. 3 关联系统需求到涉众需求 / 39
2 . 3. 3 . 1 用 例 图 / 2 3 -
4. 3 . 4 DOORS - > Gateway > Rhapsody: 导 入 系 统 需 求 / 4 2
1 3 . 3. 2 活动图 / 23 4 . 3. 5 系 统 级 用 例 定 义 / 4 3
I
4.3. 6 关联需求到用例 / 44 4.5. 1.6 分配有效性度量 ( MoE ) 到每一个解决方案 / 75
4. 3. 7 Rhapsody - > Gateway - > DOORS: 用例的导出 / 47 4.5. 1.7 解决方案的决定 / 76
4.4 系统功能分析 / 49 4. 5. 1.8 架构设计套件包 ArchitecturalDesignPkg 中的解决方案的
4.4. 1 UclControlEntry / 50 文档化 / 78
4.4. 1.1 模型上下文的定义 / 50 4.5. 2 架构设计 / 79
4.4. 1.2 功能流的定义 / 53 4. 5. 2. 1 用例 Ucl ControlEntry 的实现 / 80
4.4. 1.3 黑盒用例场景的导出 / 54 4. 5.2. 2 用例 Uc2ControlExit 的实现 / 95
4.4. 1.4 端口和接口的定义 / 58 4.5. 2. 3 集成用例实现 / 98
4.4. 1.5 用例行为的定义 / 59 第 5 章 交 付 到 子 系 统 开 发 / 111
4.4. 1.6 用例模型验证 / 61
4.4. 1.7 关联模块属性到需求 / 63 附 录 / 117
A 1 建模指南 / 117
4.4. 2 Uc2ControlExit / 65
4.4. 2.1 模型上下文的定义 / 65 A1.1 一般指南和绘图规约 / 117
4.4. 2.2 功能流的定义 / 65 A1.2 用例图 / 118
4.4. 2. 3 黑盒用例场景的导出 / 66 A1.3 模块定义图 / 119
4.4. 2.4 端口和接口的定义 / 67 A1.4 内部模块图 / 120
4.42. 5 用例行为的定义 / 67 A1.5 活动图 / 122
A1.6 序列图 / 125
4.4. 2. 6 用例模型验证 / 68
A1.7 状态图 / 127
4.4. 2. 7 关联模块属性到需求 / 68
A1.8 轮廓 ( Profiles ) / 129
4.5 设计综合 / 69
4. 5.1 架构分析( 权衡分析)/ 69 A2 导出一个状态图 / 130
4.5. 1.1 关键系统功能的定义 / 70 A3 Harmony SE 工作流中活动图信息的用法 / 135
A4 Rhapsody 行动语言 / 138
4.5. 1.2 候选解决方案的定义 / 71
4.5. 1.3 评估标准的定义 / 72 A5 Rhapsody SE-Toolkit 概述 / 141
4.5. 1.4 分配权重到评估标准 / 73 参考文献 / 145
4.5. 1.5 每一个效用曲线标准的定义 / 74
n
第1 章 绪 论
1.1 范围 第 1 章 ,描述本书的结构和范围。
关于基于模型的系统工程标准化建模语言 SysML ,关键的问题是如 第 2 章,介绍 Harmony 系统工程的基本概念。着重强调系统开发
何帮助读者清楚明白地把其应用到一个集成的系统和软件开发中去。到 最关键的系统工程阶段的工作方法和责任 ,并对工作流以及相关的工
目前为止 ,很少有人认真思考并着手解决这个问题。撰写本书的目的就 作产品在不同的系统工程阶段所起的作用进行详细阐述。此外 ,还针
是要填补这一空白。 对在系统工程建模中所必需的 SysML 工件和要素 ,按照服务请求驱动
IBM Rational 集成系统 / 嵌人式开发流程 Harmony 建模方法进行了概要介绍。
外 ,它应用 SysML , 为系统工程师提供了细致的 、按部就班的流程指 第 3 章 ,描述当 Rhaospdy 应用在一个基于模型的系统工程项目
南。它从系统工程的视点出发 ,把系统开发前期的工作任务 、责任范 时 ,其项目结构是如何构成的。
围 ,以工作流的方式 ,解剖得淋漓尽致 ,为系统的后续开发和系统的 第 4 章 ,使用 Rhapsody 工具 ,详细描述 Harmony SE ( Harmony 系
确认与验证 ,提供了无缝衔接。 统工程)工作流的案例。案例所描述的工作流起始于涉众需求导入到
®
本书中所展示的各种模型 , 是使用 IBM Rational Rhapsody 建模 Rhapsody 中,结束于可执行的架构模型的定义完成。该工作流是面向应
工具完成的。本书中所展示的需求管理工具画面,是使用丨BM Rational 用的 、易于理解的简单案例 , 聚焦于帮助读者如何更好地使用基于模型
DOORS ® 展现出来的。
的系统工程方法 ,如何在实践中应用 Rhapsody SE-Toolkit ( Rhapsody
本书是以系统工程实践者为对象进行编写 ,通过众多截屏 、注释
系统工具箱)。
和最佳实践技巧,帮助读者清晰理解工作流的细节。本书在叙述上力
第 5 章 ,描述如何解决交付到后续的子系统开发的问题。
求突出重点、短小精悍 、清晰易懂 。
本书最后还提供了一些附录供大家参考和使用:
本书以方法论的角度描述基于模型的系统工程最佳实践,但它替
代不了 IBM Rational Rhapsody ( 简称 Rhapsody ) 培训教材。本书在一
• 在基于模型的系统工程中使用 SysML 各种图建模的一些指南;
001
第2章 Harmony SE 基础
Hannony SE
可撕用觸型
』析
msmm
『系
Harmony
系统架构基线 入式实时开发
!
实 模型
-
图 2 1 Rational 集成系统 / 嵌入式实时开发流程 Harmony
■ 基于模型的系统工程最佳实践
需求模型使得需求类型可视化。系统用例模型把需求以用例方式
组织在一起 ,但这些模型是不可执行的模型。
系统功能分析阶段关注在把功能需求解释成与系统功能 ( 操作)
一致性的描述。每一个用例被解析成可执行的模型 ,并通过模型执行
来验证相关的系统需求。
有两种可执行的模型支持设计综合阶段 :
•架构分析模型;
•系统架构模型。
架构分析模型的目的与权衡分析模型相关。如 :通过参数分析 ,
针对所确定的操作实施方式 ,详细阐述系统架构概念。
系统架构模型 ,是对前阶段的架构分析阶段所形成的系统架构 ,
进行系统操作分配。系统架构模型的正确性和完整性是由模型执行来
004
第 2 章 Harmony SE 基础
的是需要的功能和基于状态的行为的确定和分配 . 而不是其功能行为
2.2 基于模型的系统工程流程
的细节。
Harmony 系统工程的主要目标是:
图 2 - 2 描绘了 Harmony 系统工程的概述 ,对系统工程的每一个
•识别并推导所需的系统功能; 阶段 ,显示了基本的输人和输出。
•识别相关的系统模式和状态; 接下来的各个段落会详细描述工作流和基于模型的系统工程流程
•把系统功能和模式 / 状态分配到子系统结构中。 所产生的工件 ,并勾画出与需求管理和可追溯性 ( RT ) 相关的概念。
对于建模 ,这些目标意味着自顶向下的髙层次抽象。主要强调 有关更多面向应用的工作流的描述 ,详见第 4 章。
攸需求
齡需求
1 下一次迭代
__
系统窬求
需求分析
SKS
系统用例
$嵇 )
S ^! 所更新的系统需求
执行用例模型 系统功能分析
( 基于用例 )
n
ffl 例活动 IS ( 黑盒 )
: 用例场景( 黑盒 ) 1^ (
丨非功能系统需求
i 所更新的系统■求 架构分析
分析赌 ( 权衡研究分析 )
架构设计
用例实现
• 用例实现
: 场景(白盒 ) •集成用例实现
i 集成系统架构模型
逻辑接口控制文档( ICD )
关联到源需求的跟踪性 硬件漱件II求规格
开发 (包括测试场景)
-
图2 2 = 模型的系统工程 005
•
•職基于模型的系统工程最佳实践
一旦系统级的用例被定义 ,并保证了功能性需求和性能性需求能
2 . 2. 1 需求分析
完整地覆盖到系统用例上 , 就需要根据系统架构定义,对重要性进行
需求分析阶段的目的是分析流程的输人:涉众需求。需求分析阶 分类排序。一组被选用例定义系统工程工作流迭代的增量。每次增量
段之后,涉众需求翻译成系统需求。系统需求定义系统必须做什么 结束时 ,分类排序需要更新。
( 功能需求) 以及如何执行好 ( 服务需求的质量)。
需求分析工作流的基本步骤如图 2 - 3 所。它起始于对涉众需求 需求分析任务流
的分析和完善。这个阶段的输出是涉众需求规格说明书。基本上 ,涉
众需求聚焦于所需要的能力上。下一个步骤是将这些需求转变成系统 定义 / 系统用例 :
所需要的功能需求 ( 用“ 应该” 作为对需求的陈述),并建立系统需 *
涉A 求
4 ^}
为保证所有的功能性需求和相关的性能性需求被这些用例覆盖 ,
需要分别对应建立起跟踪性来。
-
图 2 3 需求分析阶段工作流
006
第 2 章 Harmony SE 基础
2 . 2. 2 系统功能分析
系统功能分析工作流
系统功能分析阶段的主要重点,是把系统功能性需求转化为一个
©
连贯的系统功能描述 ( 操作)。分析是基于用例进行的 ,即:把每一
个在前面需求分析阶段确认的用例翻译成一个可执行模型。该模型和
相关需求由模型的执行来验证。 定义用例模型上下文
图 2 - 4 详细介绍了在系统功能分析阶段的建模工作流及相关工
件。首先 ,用例模型的上下文是在内部模块图中定义的。该图中的元 定义用例功能流
素是 SysML 模块的实例 ,它代表用例和与其相关角色。在这一阶段它
从用例功能流导出用例场景
们是空的而且是非关联的。
^^ 11
建模工作流的下一个步骤是定义用例模块的行为 ,由 3 个 SysML
图来展现 : 丨将新 需求 定义端口和接口
•活动图; 从用例黑盒活动图和黑盒序列图
•序列图; 导出状态行为图
•状态图。 通过执行模型
《
确认 用例模型
每一个图在用例行为的详细描述中扮演着一个特定的角色。
活动图:活动图称为黑盒用例活动图 ,描述用例整体功能流 ( 故
Day分 析 ]
事板)。它以活动( 在 Harmony SE 中等同于操作) 的方式来组织功能
针对错误/失败行为
需求 ,并显示这些活动是如何相互关联的。
扩展用例模型
序列图 :序列图被称为黑盒用例序列图 ,描述用例通过的一个特
定路径并定义操作和角色之间的互动(信息或消息)。
关联用例模块到需求
状态图 :状态图把活动图 ( 功能流 ) 和序列图 ( 角色之间的互
动) 的信息会聚在了一起。在状态图中 ,可以展现融合系统状态的背
更新系统需求初稿
景 ,并增添了不同优先级的外界影响对系统行为的描述。
-
图2 4 功能分析阶段工作流
007
.■ 基于模型的系统工程最佳实践
图中定义用例模块基于状态的行为 。 PTiS方法
g义用M基于状态的丨行为
:
m
(用例隳盒序列 (用例熏食活动围) (用倒状态 m
阐述需求 ,这是一种通用的方法。通常情况下 , 客户喜欢从“ 整体 ” 从用例场录导出用例功能流 从用例功戆流导出用例场最 从用侧状态图导出用例场景
m (用例獮金序列S)
的视点来表达他们的需求。一旦整体功能流定义了 , 使用活动图就能
(用例黑金活动
I
导出用例场景 ( 参考图 2 - 6 ) 。用例模块的端口和接口由序列图生 瞻口和接口
部模块勘
'
定义靖口和接口
(用例内部筷块 m
成。最后 ,用状态图捕捉其基于状态的行为。 親的 / 导出霱求 从黑盒活动■和序列图
导出基于行为的状态B
可选方法 3 始于对用例基于状态行为的定义。如果设计中的系统 用气态m
(
拓展用例棋型
值得注意的是 ,不管选择哪种方法 ,在系统功能分析流程中 , 最
重要的图是用例模块状态图 , 它包含了黑盒序列图和用例黑盒活动图
的信息 ,并可通过模型执行来确认。用例黑盒活动图和相关的黑盒序 用例柳
列图还可以被重用到后续的设计流程中。 需:
在基于用例系统功能分析过程中 ,无论何时,新需求被识别或用 *
导出的需求细化高层次需求 ,都需要文档化。最后 ,在系统功能分析
阶段的终期 , 这些附加的需求需要由利益相关者审批并导出到需求跟
-
图2 S 构筑可执行用例模型的可选方法
踪工具。
008
^
—
HomingAndManuaiMod
m t
< aXOpMod* Umr Uc.HomlngAndManualModo
—-
—_
hofmMrf )
[Oomo^ -mmnidn \
Preconditions;
、
honttMM%
«(Ajd » \ i>owar«d
Syttem ispov
- o i
rV -
opmAaiA.
ragSetModerManuar ) x,
一_
%
•A>d«Bn •A« iA | > MtOpModafManuan
m. m>ar1dAjdd.ToBMPot
I MtDnctlon
I Mtarvcllon
^
—
1 S '
MtAxitfAxisA")
“ 1 I s
^
HlSpaad ■CSpMd
»09M 9C ^ Ssi<J> 、
ch9dPt> M%B <h9C chm o^MtA tart
rtqS»tSpeed(Speed)
<i>^ ^
[inUhPo
N«l id(8paed)
c#>«K9MiuMiA
pnS«f^o< \ o«Axl
nwCli1dA)daAToOp«iPof
^0
s
^ >
d^cMWiltO
1
s <:
一
hofmMM . AxItB In Savt Position
s
9M mOndd/M NMRMI
"
ch«ckStatuiAxisAO
« nvOnddM
^Skm
2
cfwclMusAji
dttcMMutA aC
^
honwMtC \
fliHomM P #t> n«4 a\ tj
J s (AxIsA Homed]
__NormalO
Hormcl
■
mm
\ mvCmddAxitA
^
mOnddAritC.Sow mOnddAad«B Slow
一
rrvQrMAMtCJtonnM tnOrMMwBJtormM
s
s
M 、 mvCmddAxlsA _SlowO
2
"
、
、
—
一—
M _ NH \
- yr( ;j - .- y\ % y -, s
, i Ufev
坤 ■••
•
°
Vodif1 AUA J ( Arfi >■ 蜊*
m v
IA)dt n Aidtcri t
s
- 、
丨一 I 。
" I niM
^ mbon
^ 丨一
Omcboo 1
T t r: r >
—— yi , fflL_ . L ri
”
MlSpMd
?
ctMdMutA #i«
fhtcUtmfAMwD cfWCMCuiAjitf
IMIIH
n#«»nw| IMmn
Start
sun SL»t
[Wonsq
jwQrMmtGHotwM
.
_
rfwCMdAiM NDfvral
rr*OnddAri«0 8iow
rmOnddAjdtf.Slow
mOnodAstf. Slow
VT*
[更新用例模型
O 内部模块囹1
[ 更新用树模块内部模块图
iiam酿行舰模型 |[ 录制例外场景
[下一个例外]
-
图2 7 用例模型异常情况分析的工作流
010
第 2 章 Harmony SE 基 础 ■
2 . 2. 3 设 计 综 合
设计综合阶段又分为两个大的子阶段 :
定义分解层次结构部件
• 构架分析;
• 构架设计。
瓶系统及操作到部胳
架构分析阶段也称为权衡分析研究。考虑到会有一些硬件和 / 或
软件架构都满足于一组给定的功能性和性能性需求 ,优化设计概念是 导出白盒序列图
基于一套标准 ( 如有效性度量 MoEs ) , 根据相对重要性的加权 ,详细
阐述出系统权衡分析的各种状况。
=
定义端口和接口
架构设计阶段的关注点是把功能性需求和非功能性需求分配到架
构结构中。这种结构也许是前期权衡分析研究的结果或是一个给定 丨定义雜1雜1 麵
1
( 传统) 的架构。这种分配过程是迭代式的 ,通常是与行业专家合作进
行的。在该过程中 ,还可以用不同的分配策略进行分析和设计,并加上
对设计约束的考虑 ,如在需求分析阶段捕捉的性能性需求 、安全性需
求等。
溫联求
根据对后续子系统开发交付要求 , 架构分析和架构设计阶段可以
在架构分解的不同层次上重复进行。在最底层次 ,功能分配可以控制
合并所实說摸型到
实现,即 :哪些操作应该在硬件 ( 如 :机械或 FPGA/ ASIC ) 中 实 施 ; 集成系统架构模型屮
哪些操作应该在软件中实施。
证
下面详细阐述设计综合各个阶段的工作流和其相关的不同设计综 JI
合子阶段的工作产品。
碰严果_
-
图 2 8 设计综合阶段工作流
■ 基于模型的系统工程最佳实践
2 . 2. 3 . 1 架 构 分 析( 权 衡 分 析 研 究)
系统功能分析定义系统应该做什么,而不是系统应该怎么做。在
架构分析阶段 ,权衡分析研究的目的是以理性的方式 ,决定获得特定
功能能力的最佳方法 ,即:识别出系统应该怎么做。 定义系统关键功能
决定“ 怎么做 ” 最简单的方法之一是一个称作“ 加权目标法 ”
粒加权目标表
的技术 ,它是由克罗斯 ( N . Cross ) 开发的。这种形式的分析在工程
系统设计领域很通用 , 用于评估功能问题上潜在的解决方案。它也可
以用于决定针对软件的最佳硬件平台 , 或决定基于非功能性需求的优 定义候选解决方案
化机械 / 电子硬件分离策略 , 如:一些客户约束、性能和成本标
准等。 定义评估标准
图 2 - 9 详细描述了架构分析阶段的工作流和工作产品。
分E权重标准
识别和定义系统关键功能
该任务的目的是集中系统功能到子集中 ,以支持在架构分析中的
选择性分析。关键系统功能可以是一组系统功能 ,它:
•
是系统的凝聚力和 / 或紧耦合 ; 对每个候选方案
•
可以是单一架构组件的实现;
诚 MoEs
•
将是现存组件( 硬件 / 软件) 的重用实现 ; 决定解决方案
•
可以在系统内重用;
•
控制处理特定的设计约束。
接下来所描述的 6 个任务是针对所选系统功能进行的。 —
F 个系统关键功能1
定义候选解决方案
有多种方式实现系统关键功能。该任务的目的是找出对前期所识 4> ■^ 权衡分析报[
别的系统关键功能的可能的解决方案。这些解决方案是团队所有专业 图 2 -9 架构分析阶段工作流和工作产品
技术人员精心研究、集思广议的结果。在这个阶段 ,相关涉众需求需
要被识别出来并纳人考虑中。候选解决方案还应考虑前期开发的硬件 确定评估标准
/ 软件组件 、未开发的项目 / COTS 硬件和软件: 为了从一个特定的系统关键功能的候补解决方案中 ,找出最佳的
012
■
第 2 章 Harmony SE 基础 ■■ 圓
解决方案 ,需要确定一个评估标准。有意义的评估标准建立在涉众和
团队所有专业技术水平的基础上。一般情况下 ,评估标准是基于客户
约束 、所需的性能特点和成本的。
—个效用曲线也可以由一些有经验的 、 知识渊博的项目组员生
成。在这种情况下 ,该曲线所反映的是团队人员的一种共识,是主观
的认识。
分配权重到评估标准 分配有效性度置到候选解决方案
评估标准不是同等的。相比其他标准 ,有些是至关重要的。依 为了通过加权分析比较一个系统的关键功能的不同解决方案 ,每
据其在整体解决方案中的重要性 , 给标准赋以权重 。权重因素标
准可以加到 1.0。这是由涉众和相关的领域专家协作进行的。
一个候选解决方案被赋予一套标准化的 、无量纲的值 — 有效性度量
( MOE ) , 描述了针对一个特定的评估标准 ,候选解决方案如何体现其
有效性。MoE 是用效用曲线和候选解决方案指定的名义值而计算出的
对每个标准定义效用曲线
标准化的值。名义值一般由设备规格或由相关解决方案计算的结果
该任务的目的是定义一套标准化曲线 ,称为效用曲线或值函数。
决定。
每个评估标准 ,将为每个候选解决方案产生一个无量纲的有效度量
值。这条曲线产生出的标准化值一般在 0 10 之间。该曲线的输人值 决定解决方案
一般基于设备规格或基于可能的解决方案导出的计算结果。在这种情 确定一个首选解决方案是通过加权目标计算法得出来的。在该分
况下 ,它是作为目标来考虑的。 析中 ,将每个评估标准的 MoE 值乘以适当的权重。然后 ,对每一个
阶梯函数 连续关系 候选解决方案加上加权值 ,每个解决方案获得一个总分。获得最高分
的解决方案则被选为对特定功能的实施方案。
IV 图 2 - 11 显示了第 4 章所描述的案例中系统关键功能“ 捕捉生物
/
/ 数据” 解决方案 ,首选解决方案是“ 指纹扫描仪”。
6 合并可能的解决方案 , 形成系统架构
效用
( MoE ) 4 / 系统关键功能所确定的每一个解决方案都被合并到设备分解结构
中。它假设初始系统关键功能是独立的。最后合并成的解决方案是基
1 于完整架构评估标准的首选解决方案 ,它是后续架构设计活动的基
0-
基W X y\Mmi隹 百标 础。权衡分析研究报告与任何由此而产生的设计规范一起 ,形成设计
( 如: m 【 s
、可1 性等 ) 的决定因素。
图 2 10 - 效用曲线的不同状态
013
__ ■ 基于模型的系统工程最佳实践
MoE
Solution Criteria
f
Fingerprint Scanner 7.5 2.25 7.25 45 6.0 0.9 8.0 08, 8.0 2.0 7.4
J
Optical Scanner 10.0 3.0 3.75 0.75 2.12 0.318 6.0 0.6 10.0 2.5 7.168
MoE = Measurement of Effectiveness Value W = Weighted Value = Wt •MoE Weighted Total = Z W( Solution Alternative)
014
第 2 章 Harmony SE 基 础
_
12.3. 2 架构设计
架构设计阶段的重点是分配功能性需求和非功能性需求到架构结
构中。这种结构可以是前期权衡分析研究的结果 ,或是一个给定的
( 传统) 架构。这种分配过程是迭代式的 ,通常与行业专家协作进行。
架构设计是针对每一个用例 ,进行增量迭代 ,将前期完成的黑盒
用例实现
视图转化成白盒视图的过程 ,也称为用例实现 ( 参考图 2 - 12 ) 。该
阶段任务流与系统功能分析工作流十分类似。
图 2 - 12 所示的是架构设计相关的架构工作流以及相关的工作
定义分解层次结构部件 ]
产品。
它始于系统架构结构定义。基于所选择的设计概念 ,用例模块被
分解成相关系统架构部件。所产生的系统结构是用 SysML 的模块定义
: 分配系统及搡作到部件级
I
导出白盒序列图 |
图 ( BDD ) 和内部模块图 ( IBD ) 来描述的。
接下来 ,系统级用例操作分配到系统结构中。一般来说 ,有两种 定义靖口和接口
实现方法。如果分配概念已经建立 ,可以直接拷贝系统用例操作到相
定义系统层次分解中
关部件中。否则的话 ,分配可以以图形化的方式 ,通过用例黑盒活动 最底层模块基于状态的行为
图进行。从本质上讲 ,该活动图是从用例黑盒活动图拷贝过来的 ,然
后用不同的泳道进行分区,每个泳道代表系统架构分解层次中的一个 Hi齋
模块。基于所选设计概念 ,该系统级操作 ( 活动) 就被“ 移动 ” 到
分配和关联辆雌需求
不同的模块泳道中 ( 见图 2 - 14 ) 。分配的基本要求是保持最初的活
动 ( 功能流) 之间的链接。 4)
用例白盒活动图可以是嵌套式的 ,从而反映设计中系统的迭代式
的架构分解 ( 见图 2 - 13 )。 合并所实
集成系统架构模型中
如果一个操作不能分配到一个单一模块 ,必须作进一步分解。在
这种情况下 ,依据其依赖关系 , 子操作需要和父操作相关联。一个活 通过棋型验证确认协作成果
_
SuD LvlO .. 2 . 2. 4 系统工程交付
SuD
_
55uD Lvil j
-
UC Black Boc Activity Dagram
在模型驱动的开发过程中 ,从系统工程到后续系统开发交付的关
SS1 SS2
— —1 键工件是基线化的集成系统架构模型。它是含有规格文档( 如软硬件
I t ~
J,
UC White Box Activity Dlagnim Lvl 1
SS11 |
I
SS12 |
I
SS13
S3 、
/ i,1
SS
需求规格 、ICDs 等) 所构成的存储库。交付的范围和内容与嵌入式
系统工程项目的特点和组织架构有关。
如果被开发的系统 ( SuD ) 是一个特定的软件配置项 ( CI ) ,系
UC Whtto Box -
Activity Diagram Lvl 2 统工程则可以停止在系统功能分析层次。在这种情况下 ,交付物是可
8812
执行的用例模型。
从组织的观点看 ,如果系统工程和子系统工程分离 ,系统工程可
- 以停止在系统架构分解的第一层。在这种情况下 ,系统交付是由相关
图2 13 所需的用例白盒活动图
的子系统可执行模型构成的。
由于穿越泳道之间的链接与接口相对应 ,白盒活动图提供一个在 如果系统工程师把规格书直接交付给硬件 / 软件开发 ,交付物则
各自沟通渠道上所产生负载的初始估计。 是各自的硬件和 / 或软件 CI 模型。无论是哪种情况 , 交付套件包是
依据对后续开发的交付情况 ,子系统模块和相关白盒活动图也许 由基线化的可执行 CI 模型所构成。其中包括 :
需要进一步分解。在最底层 ,功能分配可以处理哪个操作应该在硬件
•
基线化的可执行 CI 模型;
中实施,哪个操作应该在软件中实施。
从最终用例白盒图 ,可以导出相关白盒序列图。如前所述 ,这些
•
分配到操作和属性 CI 的定义 ,包括它们关联到的功能性需求
和性能性需求;
序列图是在导出系统架构的最底层 ,识别来自哪个模块的端口和接口
•
CI 端口和逻辑的 、可操作 ( 可选) 的接口定义;
的基础。
•
在状态图中获得的 CI 行为定义;
一旦系统级操作被分配到架构分解最底层的模块上 ,且定义了相
关的端口和接口,由状态图捕捉各自的基于状态行为。底层模块的行
•
测试场景,也称为集成测试场景,由系统级用例导出;
•
CI 被分配的非功能性需求。
为和分解后子系统的协作则通过模型执行进行验证。
值得注意的是 ,基线化集成系统架构模型可作为进一步系统需求
设计综合的最后任务是创建 / 更新集成系统架构模型。该模型是
开发的参考。
被实现的用例模型的汇总,和基线化的被实现的用例模型的汇总。
用例间的协作性和集成系统架构模型的正确性和完整性可由模型
执行来确认。
016
一
—
4 -*、
- [UMIWIM
乙二
〆 ""
=
15<
^
<、
IHI
»
_
»nr
一:•
二*>*—,
•
£ X.
fe
S ,
| ^-
- 1
i
^
•
U
<Z
^
一运
― ^ ― --
誇
[ n
声一芦
~ ~
声
»
—
*r
^ —
i
:
―—
--
i
1
■ sr
<
*
■
r-
<6>
- “•|^
1
>
~ 丨
.
: 一
:-
-^
* _ i>
( <
t —
<>
■
用例黑盒活动图
fe
用例白盒活动图 Lvl 1
图 2 -1 4 分 配 操 作 到 子 系 统 ( 用 例 图 2 -6) 017
\
dlap
丨 aySy«tomStatua(Sy8lemStatu8)
raqS»tOpWod« n*«nuaH
2
’
、
setOpModefManuar)
reqS^tAxl
^AxIaC") '
("Axl9Cl
jatAxI*
reqSeUMrsctionfDirsctionA")
> tOiractionrOirsctlonA*)
r»qS«tSpegd(Sp<ed)
\
S<
d(Speed
setSpeed )
V r<qCh# ckPosAxlaKQ
12, ritemSlilu
M
V
\
8K(StatusAxi8K)
l \ <
itG StatutAxitG)
i \
-- ”
reqCheckStatusAxIsCQ
|OpM<xj#• IOpMoO«*« ^Homing• UisAxisqStatusAxIsC }
上丨
l
Manual 10 borm itD
^
laL _SlowO
\
2
UMT
J 〆 fqDlylaySy cmStatmO
^
QiylaySyrt>mStatu Syrt>mStatu
^ ^
-
—
input ** mvCnddAxisB.Stow
Aw *C *l
—
叫 tOfciion
j
MlSpMd
丨L1<K 、F ,
•» 1
{
XlA^sK . SStfos ]
IT
^•
* 1
|AwsB »n
<5> •
(«!* )
Stal
JU «rm»K4 «
* f
^lOf «dion
018
图 2 1S - 从用例白盒活动图导出白盒的场景
第 2 章 Harmony SE 基础 ■
SysML 为基于模型的系统工程定义标准化语言。作为一个标准 ,
SysML 需要支持所有可能的应用。但是 ,SysML 没有提及如何应用这 1.2
些标准语言。系统工程需要很强的沟通环境 ,系统工程师需要和不同
领域的涉众 ,如电子工程师 、机械工程师、软件工程师、测试工程师
等进行交流和沟通 ;还有 ,不可忘记的是 ,系统工程师还需要跟并不
2 - 16 UML 和 SysML 相互关系概览
一定是工程师的客户进行交流和沟通。在这样的环境下 ,保持该语言
领域的独立性 ,并且使交流方式尽可能的简单是至关重要的。目标应
该是最少量地使用语言元素 ,元素使用得越少越好。符合标准并不意
味着该标准的全部元素都要被应用。好的实践是在组织范围内标准化
地使用 SysML。如果一个公司或企业想实施部署基于 SysML 的系统工
程 ,本节提供了 SysML 工件的总体介绍。这些工件被认为是基于模型
的系统工程流程 Harmony SE 的基本工件。
SysML 重用了一个 UML 2.3 的子集 ,并用系统工程的具体结构扩
展了 UML。
图 2 - 16 用一个维恩图可视化了 UML 和 SysML 的关系 ,图中以
UML 2.3 和 SysML 1.2 为例 ,显示了它们既有各自独立的部分也有相
?
互重叠的部分。重叠的部分 ( UMWSysML ) 表 明 的 是 SysML 对 UML
的重用。为了提供一个从系统工程到软件开发的无缝衔接 ,应该有一
个着眼于 UMMSysML 的相应流程。 图 2 - 17 SysML 图用在 Harmony SE 上的分类
图 2 -17 显示了 SysML 图用在 Harmony SE 上的分类。基本上包含
维恩图的颜色代码与该图是相对应的。可以看出 ,有些图中标示
了 3 种类型的图 :
了两种颜色 ,表明 SysML 是在初始 UML 工件上的拓展。
•结构图; 接下来的章节中 , 会对这些类型图在 Harmony SE 中的使用方法
•行为图; 作详细描述 ,并列出所用到的必要元素。
•需求图。
019
__ _ 基于模型的系统工程最佳实践
2 . 3. 1 需求图 2 . 3. 2 结构图
LReq 1.1
-- Relationship
« Requirement, « R*qulram« nfc»
SRS.Req SRS.Req 1.1. A1 I A2
«satisfy» sj/1 ]/
SS B
_
-
图 2 18 需求图
-
图 2 19 模块定义图
2. 3.2. 2 内部模块图
需要指出的是 ,需求图并不是一个进行需求管理的好的实践经 SysML 内部模块图显示在模块定义图中所定义的系统结构的实现。它
验 ,诸多行业客户已证明了这点。如果从需求工程的观点来管理系统 由一组内部端口和连接器的嵌套部件(如系统模块的实例)所构成。
工程需求 ,需要借助于专业的需求管理工具,如:IBM Rational
D00RSo
IBM Rational DOORS 与 IBM Rational Rhapsody 相结合,可以提供
1
I « flowAttribute » Lonigltude
< (Out):doubl<
IB1 _B2
I « flowAttribute » Latii>tude(Out):double
ilsA
pA
_
iA B _
IA B
ItsSuD
fp:NavOatE f
Elevation:double
_
IB1 B2
El El
Reqi
Inter
图2 21 - 标准端口 图2 -2 2 流动端口
021
—
_ ■ 基于模型的系统工程最佳实践
图 2 -2 3 模 块 定 义 图 中 约 束 模 块 的 定 义
1 «Con8tralntProperty,Con»tr«lntBlock»
ltsNewtonLaw:NewtonLaw
•Attribute
•
mass
Attribute
*
*
acceleration
一-
_
■ force = mass * acceleration
一- U mass:Kg force:Newtons C
图 2 24 - 参数图
022
第 2 章 Harmony SE 基 础
_ __
2.3. 3. 1 用例图 2. 3. 3. 2 活动图
用例图通过描述系统用户和系统本身之间的相互作用 ,捕捉系 活动图与经典的流程图类似。它描述一个工作流 、业务流程或一
统的功能需求。值得注意的是 ,作为一个被分解的系统 , 给定系统 种算法 ,该算法是通过分解执行流到一组活动和加人了过渡及各类连
的用户 ,可以是外部人员或外部其他系统。用例图由包含一组用例 接器的子活动形成的。活动图可以是活动的一个简单线性序列 ,也可
的系统边界组成。角色位于系统边界的外部并通过关联连接到用例。 以是带有条件分支和并发的并行活动的复杂系列。
用例描述系统特定的使用方法 (“ 操作线程”),即: |注意:在 Harmony SE 中的术语:活动 、行动和操作是同义
•由用户 ( 角色) 所感知的行为; 活动可以被组织并分配到对象,如子系统。在这种情况下 ,活动
•用户和用例之间的信息流。 图可以被分成泳道用于描绘其各自的职责。
~
9 op1
op2
J ( op5
-
图2 25 用例图
丨。 b
—
当用例非常复杂时 ,可以用其依存性来展示用例间的关系:
•《include » : 个用例包含另一个;
•« extend »:一个用例为另一个用例提供可选的扩展;
的版本。
—
• « Generalization » : 个用例是另一个用例更专业或更精炼 -
图2 26 活动图
023
— 基于模型的系统工程最佳实践
^ P 2D
r ,:
p., , :
:
top2
I
[Ci *=tn>«jyop3
^ P 3| . TflfVopgJ I 參
%
pAO>
% 0(X11
'
OP H
图2 -2 8 状态图
-
图2 27 序列图
024
第 2 章 Harmony SE 基 础 ■
2 . 3. 4 需求分析 / 系统功能分析层次的工件关系
•内部模块图应至少包含两个模块实例 ( 用例模块和角色模
块);
•模块属性由操作、属性、端口和接口描述;
•每个模块实例的基于状态行为由状态图描述。 1 1..* r
图 2 29- 在 需 求 分 析 / 系 统 功 能 分 层 次 上 SysML 的 工 件 关 系
025
基于模型的系统工程最佳实践
2.4 服务请求驱动的建模方法
在服务请求驱动的建模方法中 , 模块之间的信息交流 ,是基于经过 SysML 标准端口的异步信息 ( 服务请求) 进行的。服务请求往往是跟随
在接收方所提供的相关服务之后 , 或是在状态 / 模式变化时 , 或是操作变化时。在开始阶段 , 服务请求和相关的操作没有参数。在后期阶段 ,
参数也许被加在服务请求或相关操作上 , 或被列在有关服务请求和相关操作的描述区域。
© 0
—
ItsBI itsB2 以模块作为基本结构元素。首先 ,这些模块是空
reqOperation1()
^u
" 1 operation1() 的 , 而且是非关联的。
reqSetMode(ModeX)
〈
reqOperatlon2()
ModeX ) 7)
(W 模块间的信息交流由 UML / SysML 序列图
1
^bptntlon20 描述。
.SuD
IBD / |
ltsB1:B1 © ltsB2:B2
I reqOperatlon3()
^
■
1 operation3()
注 意 : 使 用 IBM Rational Rhapsody 工 具 , 借 助 于 SE
Toolkit ( 参 考 章 节 4.3. 1.3 ) , 序 列 图 可 以 从 其 活 动 图 自 动 创
reqOperatlon2 reqSetMode
reqOperatlon4() P 建出来。
reqOperatlon4
operatlor
reqOperatlonl
req0peratlon3
^
}
P
peration4()
0
operatior operation1
operations
下一步是分配服务请求和操作到各自模块中。
注意 : 使用 IBM Rational Rhapsody 工 具 , 这 个 步 骚 可 以
IBP SuD / 用 Auto Realize 功能自动化。
——
Q
IB.
1 B2 旧*LB2 i
© reqOperatlon2
reqOperatlon4
一
reqSetMode
reqOperatlonl
reqOperation3
026
第3章 1结构
Rhapsody 项丨
该章描述了当 IBM Rational Rhapsody 工具用于一个基于模型的系 -
统工程项目时,项目结构应如何构成 ,以一个安全控制系统样例 ,对
CJ Components
0 C:
项目结构进行了详细描述。
' Packaqes
3.1 项目结构概览 5' £□ RequirementsAnalysisPkq
在顶层 ,项目结构显示了两种类型的套件包。
: ffi fa FunctionalAnalysisPkq
•在不同的系统工程阶段 ,所产生的工件形成的套件包: $i £j DesiqnSynthesisPkq
f± £□ ActorPkq
需求分析套件包 ( RequiremerUsAnalysisPkg ) ; '
申 £□ InterfacesPkq
功能分析套件包 ( FunctionalAnalysisPkg ) ;
设计综合套件包 ( DesignSynthesisPkg ) 。 仁1 TypesPkq
ffi £J PredefinedTypes ( REF)
•包含系统层次模型定义的套件包: 由 £□ PredefinedTypesCpp ( REF)
角色定义套件包 ( ActorPkg ) ;
接口定义套件包 ( InterfacesPkg ) ;
申 D Profiles
类型定义套件包 ( TypesPkg ) 。 -
图 3 丨项目结构概览
027
■ 基于模型的系统工程最佳实践
在 DOORS 系统的需求数据就应该作相应的更新。更新的系统需求就
各 UCD SecuritySystem
.
关角色则移入到 ActosPkg 中。
028
第 3 章 Rhapsody 项 目 结 构
-
3.3 功能分析套件包 FunctionalAnalysisPkg
D Packaqes
Harmony SE 的系统功能分析是基于用例进行的。系统级用例图的 - UclControlEntryPkg
每一个用例被翻译成可执行的模型。FunctionalAnalysisPkg 包含的工件 - iS Blocks
- O Uc_UclControlEntry
是在系统功能分析阶段生成的。 -
S- & Attributes
用例图中的每一个用例 ,都有一个套件包 ,称为 < UseCaseName L+ i Generalizations
> Pkg , 它包含的相关模型工件如下所述。 S Operations
• _
用例模块定义的种类模块 Uc < UseCaseName > , 该模块包含 : -! ■
Standard Ports
'
LS © Statechart
—-
的相关的状态图
•含有内部模块图的文件夹:IBD_ < UseCaseName 5 i ' Internal Block Diaqrams
_
菌 IBD UclControl Entry
•文件夹套件包 _ o - Packaqes
•
^
i UdControlEntryExecutionScopePkg
iS Use Cases
_ BBcenariosPkg 三: , LklControl Entry
持 有 用 例 场 景 的 套 件 包: < UseCaseName > 二 肩 Activity Views
.
which o UclControlEntryBlackBoxView
•用例描述种类 + i © Activity
_
活动视图类 :包括黑盒活动图 < UseCaseName > BlaCkBoxVieW 以 由 L丨 Sequences
‘
Dependencies
及含有相关用例场景的文件夹序列 ,其用例场景是由黑盒活动图推导 由 Hyperlinks
出来的( 参考章节 4. 3.1. 3 ) ;
相关端类:包含角色和用例之间的关联性的定义; -
图 3 3 功能分析套件包
依赖性类:包含用例和相关系统需求之间的跟踪依赖性。
029
__ ■ 基于模型的系统工程最佳实践
S- u Packaqes
RequirementsAnalysisPkq 三i £li BiometricScanTradeStudy
FunctionalAnalysisPkq Block Definition Diaqrams
二 DesignSynthesisPkg
_
BDD CaptureBiometricDataOption
BDD_OptionAnalysis
| 0- CJ Packaqes pi BDD_SolutionArchitecture
丨
ArchitecturalAna ysisPkg -丨 J Blocks
「i丨.£D ArchitecturalDesignPkg
.
iti O CaptureBiometricData
f .仁) ActorPkq
丨丨
'BO Optical Scanner
iii £□ InterfacesPkq ±! 0 FingerprintScanner
TypesPkq 丰 U FingerprintScannerArchitecture
PredefinedTvpes (REF) iiD OpticalScannerArchitectu
由. PredefinedTypesCpp (REF)
申 Profiles
.D -
图3 5 架构分析套件包
-
图3 4 设计综合套件包
030
第 3 章 Rhapsody 项 目 结 构
_
3.4. 2 架构设计套件包 DesignSynthesisPkg
ArchitecturalDesignPkg 的要素包括如下内容。
二
— Packaqes
£□ ArchitecturalAnalysisPkq
( 1 ) 模块图定义文件夹,含开发中系统(SuD ) 第一层模块定义 士 ArchitecturalDesignPkg
+ - Block Definition Diagrams
_
图 BDD < SuDName -3
\
Blocks
U SecuritySystem
( 2 ) 类模块 ,包含开发中系统 ( SuD ) 模块的定义 ,包括其相关 +' LJ Association Ends
组成部分的实例和相关的代表性端口的定义。 f ? Attributes
L
iirk5= connectors
( 3 ) 内部模块图文件夹和开发中系统 ( SuD ) 的系统架构内部模 4:S Operations
_
块图:IBD < SuDName > 0
1
Parts
ili itsFinqerph ntScanner
( 4 ) 文件夹套件包包含:
①执行范围套件包 ( ExecutionScopePkg ) ,用于架构执行模型的 ^
itsCardReaderEntry
itsSecSysController
Cl itsCardReaderExit
上下文定义 ,如角色的实例和开发中的系统模块以及它们的关 * w? Standard Ports
联性的定义
-
— Internal Block Diagrams
M i IBD.SecuritySystem
- - Packaqes
②模块分解套件包( < BlocK > DecompositionPkg )
•± ExecutionScopePkg
- SecuritySystemDecompositionPkg
* 套 件 包 < Part > Pkg,持有相关部件的定义。如果一个部件需 b
- Packaqes
要进一步分解 ,它就会含有称为 < Part > DecompositionPkg 的 CardReaderEntryPkg
套件包和相关子模块套件包 ,每一个子模块将根据轮廓结构
± £] CardReaderExitPkg
L- FingcrprintScannerPkg
被分解; ^ SecSysControllcrPkg
_ i £] SecuritySystemWB.AD.Ucl
* 套 件 包 < Block > WB AD,包含分解系统用例白盒活动图 ; 4 SecuritySystemWB.SD.Ucl
_
* 套 件 包 < Block > WB UcSD , 持有分解系统用例场景。
图 3-6 架构设计套件包
031
_ 基于模型的系统工程最佳实践
- fe User
在项目结构的顶层 ,有 3 个系统层次定义的套件包:
• 角色套件包 ActorPkg;
fi
b ^S Standard Ports
Association Ends
Operations
• 接口套件包 InterfacesPkg ;
•类型套件包 TypesPkg。 !
^、
h 5) Statechart
'
t fe Admin
i Camera
' fe AccessPoint
角色套件包 ActorPkg 包含在系统层用例图中所识别出来的所有角 InterfacesPkg
色的定义。每一个角色可以包含状态图。 h Events
接口套件包 InterfacesPkg 包含接口和相关事件的定义。接口可以
— 一 Packaqes
t :£□ Ucl.BB.InterfacesPkg
.
以符合相关用例模型和系统架构模型的方式组织在套件包中。 i- £ _ _
Ucl WB InterfacesPkg
TypcsPkg
类型套件包 TypesPkg 包含系统层数据的定义。
图3 7 - 系统层定义
032
第 4 章 案 例 :安 全 系 统
Harmony SE 是独立于工具之外的最佳实践。本章将就一个具体实例 ,运用前面章节所描述的工作流知识和 IBM Rational Rhapsody 工具 ,探
讨如何应用 Harmony SE 最佳实践。这个具体实例是一个“ 安全系统”。
该案例覆盖了基于模型的系统工程流程的各个阶段 , 即需求分析 、 系统功能分析和设计综合阶段 ,还包含了相关需求管理和跟踪性的建
立。工作流起始于涉众需求导人到 Rhapsody 中 ,终止在可执行架构模型的定义完成。架构设计概念是通过权衡分析研究进行精化的。该案例还
说明了对接下来子系统开发的交付物。
-
IBM Rational Rhapsody 工具是通过一个特定的附加工具包 SE Toolkit 支持基于模型的系统工程流程的。该工具箱套件包含了对系统工程工作流
中工作任务的自动化功能。应该注意的是 ,这些功能很多都是独立于流程的。该案例的关注点是这些功能在 HannonySE 不同阶段的应用。
架构设计的实施分两个步骤 :
( 1 ) 首先 ,每一个黑盒用例模型要实现出来 ,即需将其转换成架 添加 Harmony 方法
在主菜单中 ,选择 File/ Add Profile to Model ,
构分析模型所提供的基于系统架构结构的白盒模型。实现是在功能分
双击 Harmony ,
析阶段所定义的各自的 Rhapsody 项目中进行的。
双击 Harmony, sbs
每个用例模型实现的准确性和完整性是通过模型执行来验证的。
( 2)
—
旦用例以增量递增的形式逐渐实现出来 , 它们就被合并到
集成系统架构模型中。合并会在一个单独的 Rhapsody 项目 < SuD Name
O
/ 右击浏览器中的项目名 ,并选择
SE -Toolkit > Create Harmony Project
> _ IA 中进行。
Components
基线化集成系统架构模型是交付到后续系统开发的关键工件。它 -
— £Packaqes
- RequirementsAnalysisPkg
_J
是所产生的规格文档( 硬件软件需求规格 , ICD’s 等 ) 存储库。 r, Packaqes
'
+
•
士 —_
i ' Block Definition Diaqrams
CJ Components
C Packaqes
1
_ RequirementsPkg
£J UseCaseDiagramsPkg
: - U s e Case Diaqrams
4.2 创建 Harmony 项目结构
-
p
Default
PredefinedTypes ( REF ) ° i UCD.SecuritvSystem
. FunctionalAnalysisPkg
与 Harmony SE 相 对 应 的 项 目 结 构 ( 参 见 第 2 章 ) 可 以 由 SE - i;£□ PredefinedTypesCpp (REF ) £_ > DesignSynthesisPkg
—
■
二丨 Profiles
i
ActorPkg
5' HarmonySE ( REF ) InterfacesPkg
Toolkit 的 Create Harmony Project 功能来创建。 SysML ( REF)
t £-< TypesPkg
•5 o Profiles
' :f fe SysML ( REF)
开始 Rhapsody ,
r £I HarmonySE ( REF )
Q 选择 SysML 方法 , 创建项目
034
4.3 需求分析
针对该案例所对应的需求分析工作流显示在图 4 - 2 中。它始于
涉众需求的输人和系统需求的导出,这两种需求都以文本的方式捕捉
第4 章 案 例: 安全系统
在 Rhapsody 中 ,输人的系统需求被组织成用例,并从用例到系
统需求建立各自的 《 trace 》( 跟踪) 关系。
— /
《satisfy » ( 满足 )
在 DOORS 中。一旦需求被输入 ,系统需求则以 接下来 , 用例 ( 包括其所有关联 ) 通过 Rhopsody Gateway 从
关联到涉众需求上 ,来保证完整的覆盖。 Rhapsody 输出到 DOORS 中。
需求分析工作流的下一个步骤是 ,把系统需求从 DOORS 输出到 应该指出的是 ,概括出的工作流适用于任何时候的变更和需求
Rhapsody 中,这是通过 Rhapsody Gateway 进行的。 更新。
StakshoderReqs
m
创建棋型
SscSysStakehoderRequirements
System Reqs
m
创建棋型
lysSystemReqi
关联
•
Req 到 StakeholderReqt > 导入系统需求 移入 RequirementsPkg
定义系统级用例
创建模型
导出用例到 DOORS 关联系统用例到系统需求
SecSysUseCases
图4 2- 需求分析工作流 035
基于模型的系统工程最佳实践
ID |SecSysStakeholderRequirements
4 . 3. 1 DOORS:涉 众 需 求 的 导 入 SHI System Overview
A security system Is to be developed that controls entry and exit to a building through
a single point of entry. Identification of personnel upon entry will be made by two
打开 Word 文档 ( 与该书附在一起的文档) SH 2
independent checks. Each person will be photographed upon entry and their time in
the building monitored . Exit criteria will be based upon one means of identification
check.
Security Checks
© 在 Word 工具栏中 , 点击 Export to DOORS 图标 attempts at biometric ( upon entry ) and / or card Identification ( upon entry and exit )
before use of the access point is completely disabled. Any denied access attempt
shall be logged, account details sent to the administrator and an alarm signal raised.
指定模块名 :SecSysStakeholderRequirements Security Card
0
SH 3
The user shall not be allowed access unless he has a valid Security Card. Security
指定前缀 :SH cards shall only contain the employee name and ID. Security cards shall be renewed
yearly. Out of date security cards shall cause a denial of access.
0
SH4 Biometric Scan
点击 Export The user shall not be allowed access unless their biometric data Is recognized. T>ie
biometric data shall be stored in the system database and noton the security card.
SH5 Access Priority and Time
图 4 -3 涉 众 需 求 导 入 到 DOORS
036
第4 章 案 例: 安全系统
4 . 3. 2 DOORS :系 统 需 求 的 导 入
Export To DOORS
I
^)
1
o
Module Name SecSysjSyslem Reqmfements
©
7 Capture paragraph 贫ytes
在 Word 工具栏中 ,点击 Export to DOORS 图标 Progress
1
Export Caned
© 指定模块名 :SecSysSystemsRequirements
指定前缀 :SYS
© 点击 Export
DOORS Database: /SecuritySystem DOORS -
© 返回到 DOORS 并保存该新模块
File Edit View Favorites Tools Change Management Help
^
Favorites |
2^ 幽 玆
▼ Location /SecuritySystem
J DOORS Database Name Type ^
H SecuritySystem SecSysStakeholderRequirements Formal =| '
SecSysSystemsRequirements Formal ▼
037
. 基于模型的系统工程最佳实践
ID | ReqName
SYS1 Three Attempts On
Employee ID Entry
SYS2 Three Attempts On
Biometric Data Entry
SecSys System Requirements 4.0
Upon entry the user shall be allowed three
attempts on card identification.
Upon entry the user shall be allowed three
biometric data entries.
g
_ | RequiremenlType
Functional
Functional
ID | ReqName
SYS18 Denied Exit
Notification
Functional
SYS3 Disabling User After three failed attempts at card Identification or ^ SYS20 Employee ID Card Exit shall be protected by a security check based Functional
Functional
__ _
Account biometric data entry the user account shall be Identification - Exit upon employee ID.
disabled. SYS21 Visualization of The user shall be visually informed about the status ^ Functional
Security Card Check of his/ her ID card check.
_
SYS4 Denied Entry Any denied access attempt shall be logged and ^ Functional
Notification account details sent to the administrator . Status - Extt
SYS22 Security Lockdown In the event of a security lockdown, the system Functional
SYS5 Out of Date Cards Out of date cards shall deny entry and invalidate Functional shall lock all access points until the administrator
the card. returns the system to normal working.
SYS6 Authorization of Access to the secure area shall only be allowed Functional SYS23 Emergency Exit In the event of an emergency all security checks for Functional
.
__
Security Card - Entry with a valid security card exiting the area shall be disabled until the
SYS7 Two Independent Secure areas shall be protected by two Independent ^ Functional administrator returns the system to normal
Security Checks security checks . ¥
working.
SYS8 Alarm - Entry On a denied entry an alarm signal shall be raised. Functional SYS24 Authorization of The user shall not be allowed to exit until the Functional
SYS9 Employee ID Card Entry shall be protected by a security check based Functional Security Card - Exit security card has been successfully authorized.
Identification - Entry upon employee ID. SYS25 Entry Time The user shall be given sufficient time to enter the Non-
SYS10 Visualization of The user shall be visually Informed about the status Functional secure area. Functional
Security Card Check of his/ her ID card check. SYS26 Time Between Two The time between the two independent security Non-
Status - Entry Independent Checks checks shall not exceed a configurable period. Functional
1
SYS11 Security Card Security cards only contain the employee name and ^ Functional SYS27 Processing User The system shall only process one user at a time. Non-
Information ID and will be renewed yearly. Request Functional
SYS12 Visualization of The user shall be visually informed about the status ^ Functional SYS28 Biometric Data Biometric data shall be stored in the system Non-
Biometric Data Check of his/ her biometric data check. Storage database and not on the security card. Functional
SYS29 Time Recording The time a user spends in a secure area shall be Non-
_
Status
SYS13 Approval of Biometric The user shall not be allowed access unless his/ herP Functional recorded. Functional
Data biometric data are recognized. SYS30 Exit Time Non -
The user shall be given sufficient time to exit the Functlonal
SYS14 Biometric Scan Entry to the secure areas shall be protected by a > Functional
secure area.
second independent security check, based upon
SYS31 Automatic Securing Once the user has entered the secure area the Functional
biometric data.
the Secure Area - system shall automatically secure itself.
SYS15 Image Capture An Image shall be taken of any person, at the initial ^ Functional Entry
attempt, when trying to access a secure area.
SYS32 Automatic Securing Once the user has exited the secure area the Functional
SYS16 Three Attempts On Upon exit the user shall be allowed three attempts Functional the Secure Area - system shall automatically secure itself.
Employee ID Exit on card Identification. Exit
h
SYS17 Time Limit Violation An alarm shall notify if a person stays longer than Functional SYS33 Configuration of The time to enter and exit the secure area shall be Non-
10 hours in the secure area. Entry and Exit Time customizable. Functional
图4 4 - 系 统 需 求 导 入 到 DOORS 中
038
第 4 章 案 例: 安 全 系 统
^^
Name W ' "nl
2 在菜单中选择 File / New / Link Module… as SecSysSyster
Descnpton
在跳出窗口中 ,选择 Create new linkset 'satisfy' Oirrent 0.0 in /SecuritySystem (link module) •DOORS 1 o jQ
File Edit View Tools Help
在源模块中 ,点击 B^owse… A d i No hnkset selected
.
Q 点击 OK
Create a new linkset to
Target module /SecurrtySystem/SecSysStakeholderR B ^owse...
OK Cancel Help
^ satisfy
SecSysStakeholderfRequirements
Link
Formal
s.\
039
■ 基于模型的系统工程最佳实践
打开模块 SecSysSystemsRequirements ,
0 执行 File/ Module Properties
SecSysSystemsRequirements Properties - DOORS
J
!_ a
General Access | History Linksets Statistics | Discussions ; Discussions Access List
1 S3 1
^^
Default link modules for links from this module to other modules
8 在 Linksets 标框中 ,点击 Add
1
Target Module Link Module Status
I Add. | Remove
对目标模块 , 选择模块 V Only allow outgoing links to the target modules in the above list
SecSysStakeholderRequirements ;
对关联模块 ,选择模块 、j ) Add Linkset Pairing - DOORS
satisfy Source module
Target module /SecurrtySystem/SecSysStakeholderR Browse .
^^
10 选择选项框 “ Mandatory ”
V Mandatory Ovemdeable
j OK , | Cancel |
Browse ...
Help
注 :这 样 可 避 免 由 于 操 作 意 外 产 生 的 关 联 方 向 错 误 |
OK Cancel Apply Help
Q 点击 OK
040
第4 章 案 例: 安全系统
__
»
^ &P, S 4
SYS15 An image shall b< View
access a secure < -
Standard view ▼ | . ' All levels ▼ SI
SYS16 Upon exit the use
SecSysStakeholderRequirei
■
I SecSysS IderRequiremeints 丨
«
”
丨
Access to secure areas will be unavallah'
Username PeterHoffmann
. Exclusive edit m confirmed. The time between the two i Make Link From Start
shall not exceed a configurable period, Make Link To Start
attempts at biometric (upon entry) and Copy
entry and exit) before use of the access
Copy then link from Start
Any denied access attempt shall be log
Copy then link to Start
administrator and an alarm signal raisec
SM:
; Security Card Cancel
,ancyp.
The user shall not be allowed access unl s heT«s'a /a1fd SecurltV
她 缺r㈣机 卯!y娜 遂the !o爲 哪?
^ ^
,
041
__
*■
4.3. 4
从
_
基于模型的系统工程最佳实践
Tr
14
Rtois
m
R porti
d
*
-
Snapchols
Pro ct xnoi
^
* _
Rhj
• Jiuiu
il
,x
^ SefeciOOOJS
d SecS
^
SB*
a :a .
! <CUS!DI*I>
Setvwltel
_ Name | An8ly».»si:|
'
Mame | Typoo | 丨
(40
XML
tjjs>cSy»a»<n jDoo Harmony
■
”
Fr - r — *- i "
^
、
J J j y il J Ifnontw) , ]
操作 Add a document to the canvas 并命名为 SecSysReq U Management View| Covefay Analysis View|% lmp*g Analysis View|ftOaphital Vie»>| 3 Requifemem Detaiis| bnfc Details
^
Overall Quality: 0% Project Overview
对 SecSysReq , 执行 Add a coverage link from UML Model
iframenvs )
33 uncon roquu
roqutremenps )
(T) 确 认 配 置 设 置 ( OK )
IBM fUmonaiWiaoswJy Gateway S« sJlA -
File Ettt V «ew Toots Reports Help
^
导人需求到 Rhapsody 中 y |(nottw) ~
J O d *5b U 3 KU
在 Coverage Analysis View ( 覆盖分析视图 ) 中 , U Management V>eew« *Coverage
lj Co -
Anafyss V*ev> |*% impact Analysis View|f Graphical View13Requirement Detailsl Link Details|
V
a;
0)
042
确 认 配 置 设 置 ( OK )
. -
^
ttfN
# UMI Mu*M'
^•
R OW«<V G#Mnr
3iS«cS )r«R*q »
IcAi
vO
^ackaqes
Requli
-
DaOcaqes
»
V 'i
Vy
Ooot% Hann
Analyse
S㈣C1CT
I
RcquircmentsPkg
= 一一
>
5»
A
»
ty
>
A
»
A
>
A
»
»
>
>
>
>
>
>
>
»
5
-
<
-
l^
au » refnenrs
.-
u J
imoacr Ana?ys#*
1
1
H
y
Ir-
V
_
3w
|俨 Gfaofucal V w|
f
OR
ll
i
^
Do»ntl>»>ni Cov
•
fromDoors Hafirony Inaq Capture
-
^ Cf ecics
^
- St
I
了
I1
-
Jt N < »cai
Notrf
-
•fromDoors Harmony Enolow ID Card Idcntf cation
^
-
- fromDoo^ Hartnony* Visualization of Secjnty Card Check Status • Ex:T
link Deia is|
fthi Milorrjugr
J
4 . 3. 5
•
系统级用例定义
安全系统的系统需求被组织成两个系统用例 :
安全控制入口 ( UclControlEntry ) ;
•安全控制出口 ( Uc2ControlExit ) 。
其相关角色为 :
•用户 ( User ) ;
•管 理 员 ( Administrator , Admin ) ;
•相 机 ( Camera ) ;
•访问点 ( Access Point )
User
^
UCD SecurltySystem )
0
打开 UO SecmritySystem , 并用两个用例和相关角色画出用例图。
Security System
UclControlEntry
Uc2ControlExit
第 4 章 案 例: 安 全 系 统
Camera
_
--
•fromDoors Harmony* Security Locicdovwn
•fromDoo^ Harmony Emergency Exit
fromDoors Harmony Authorization of SecuntvCard
.•frcmOoo Hamwty*
^
-
Admin Access Point
RequirementsAnalysIsPkg
- Packaqes
仁i Requ i rementsPkg
-二 Packaqes
4 . 3. 6 关联需求到用例 SecSysReqs
^
R«
_
Harmony* Three Attempts Of * Emjdc fee
^
•ffomDoon Harmonv* Three Attempts On B»OT ''
»
--
系统功能性和非功能性需求以
《 trace ( 跟踪 ) 的关系 ,使用 »
« f omOoors Hdirmgnv DisabJinq LKc« A<xou»
:識 «fromOoan ^ ^
Rhapsody SE-Toolkit 的功能 Create Dependency 关联到用例。
Hafmonv Denied Fmrv Noli
Harmony OUTD< Date Canis '
v» Auihor i2at»cn of S«cui
Hacmof»>v
•tfromuoofi Hacmo
afromDoors Harmony
Harmonv^ Tiw lryj pendemSec
»
-
omQoofs Harmony* Visosliratiof* of Secunry Card Qi
下面以用例 UcIControlEntry 为例 ,描述关联建立的过程。 •fromDoor* Harmon Security Cara Infonn
^v
»fiomOoors Hamio » Visualizattoo of BKmoelric Oa
/ S 在工具菜单中,选择 *
逆 Stereotypes
Tools > SE -Toolkit > Modeling Toolbox - UseCaseOiagramsPkg
* iJ- Actors
- Use Case Diaqrams
>
选择 Stereotype : trace
、
■
选择用例 UcIControlEntry
点击 Set Source
在 SecSysReqs 中
\L) 选择用例所关联的需求
在 ModelingToolbox 对话框中 ,
\ Z^/ 点击 Set Destination
在 ModelingToolbox 对话框中 ,
0
击 Create Dependency with Stereotype 0 jpvedefinedTypefi
Itace
1]
:
General Dependencies ! Offief Generate SDs j
044
o1
刀
O
•
From: UseCasc Scope: UseCaseOiagrBmsPhg
•
• Three Attempts On Employee ID Entry
• Three Attempts On Biometnc Data Entry
•Disabling User Account
|o Uc2ControlExit
第 4 章 案 例: 安 全 系 统
—
1 Denied Entry Notification .
•
Denied Entry Notification
Out of Date Cards '• Out of Date Cards
i;) Authorization of Security Card - Entry • Authorization of Security Card - Entry
o
■
Emergency Exit
Authorization of Security Card - Exit -
• Authorization of Security Card Exit
匕 : Entry Time '• Entry Time
Time Between Two Independent Checks • Time Between Two Independent Checks
Processing User Request • Processing User Request • Processing User Request
Biometnc Data Storage Biometnc Data Storage
Time Recording • Time Recording
Exit Time • Exit Time
•
Automatic Secunng the Secure Area - Entry • Automatic Secunng the Secure Area - Entry
,
Automatic Securing the Secure Area - Exjt • Automatic Securing the Secure Area Exit -
Configuration of Entry and Exit Time . Configuration of Entry and Exit Time
•
• Configuration of Entry and Exrt Time
图4 7 - 用 例 关 联 到 系 统 功 能 性/ 非 功 能 性 需 求 的 ( 矩 阵 ) 视 图
045
基于模型的系统工程最佳实践
、
4BM RabonH RNKHodyGetaMv - S5«!
We Edit vw* TOOB
J
: .1 -
l Mar »gem<ntV »«|!tC(
J J
v fn>|*» l
: 中 pan
M
i -
v« w|
^-
-*
4 IBM Rational Rhapsody Gateway - SecSys.RA
^File Edit View Tools Reports Help
TJ Management View
Upstream Cove«aqe Information
G apn«i V'P*13 Pg
Project Overview
-^ «y!TyT
G而
Dfta -.
"
O
Selection
J J
^^^
^^
L4
▲ UML Model
M SecSy9 HA
iSecS
-
^^
^^
|Requ»emertTyT>e pL ction
_ Rhapsody SysML
^
i Two Indeoendert Secuty Checks
^^
-
Atom Ertry
*
T7T
— UML Model
磨- _
_^
S«cSy3 f A
' Packages
Rhapsody Syslfi3 9%
盧 i RegjrementsAnaMsPkg
-
-
Packages
^ UieCaselkagrvnPkg
CDUcKorvo/Btry
J~ ^> hiageCaotuv
.
^^^
Project Details Tme Lmt Vctdbor
~
( y.1U*M. U00 j * EDvmdi
)ened Ext Notfcaion
Storage
Ert -
-
^^
Sm 644 K
十 Enpioyee ID Card Iderrfcabon Exl
Asuababor o# Secuty Card Check SJaus &a -
Requm
Thi»« MaffipnOn UncowM :‘ 十 二:. ', 。
》 ‘
33 r*qui<ir9tr>9nt(Si
2 urtcoxyvred reci
reautramwifs '
^ mptoyMC .En*r UCDaWMl
^3*Cuntyi (K > amin
VEm*»g»oc> E«l
个 ^^
■
^^^J
Bbrnetnc Data Starage
命
Ttne Recorkig
&iT*ne
+
* ^^^itonwlc Seajmg the Secure %ea Exl
^ --
AuJofretc Seamg the Secure *ea Ertiy
I Ttne
046
第 4 章 案 例: 安全系统
《«
_
4. 3. 7 Rhapsody - > Gateway - > DOORS : 用 例 的 导 出
_
「Dtadram images - J DOORS Database
■ i SecSys.RA
- aSHSEB
©
-
在 Source ( UML Model ) 窗 口 中选择 UCD _ SecuritySystem
一 Components
.
tiij SecSysStakeholderRequirements
ill ModelExecuton
- - - Packages
■ ^ SecSvsSvstemsReqimements
•QRequirementaAnalysisPkg .0
•
一 Packages
0
rofile
在 Types 窗 口中 ,选择 - Elements / Use Case 和 [j RequiremenisPkg
I < Custom>
C Packages
•
- Links / Trace □SecSysReq
Server
一
• ti UseCas© DiagramsPkg
•v _ Use Case Diagrams User
©
IPelerHoffmana
|
点击 Update Tree 按钮窗 并选择 SecuritySystem 」 FunctionalAnalysisPkg
£3 DesignSynlhesisPkg
Password
tlActorPkg
「•
1 InterfacesPka
^ View
o
Requirement
Implicit Requirement
ImportedRequiremen!
点击 Export
~
•Links
Reference
•Dependency
(SecSysUseCases
〆Model HyperLmK
.
Prefec
External Hyperbnk E
Value Binding (Deprecated)
Allocation Export I Close
‘
041
•基于模型的系统工程最佳实践
雜輸
3: Secuffty CarO The user shall ru. »
/fSecuiitySystem/ SecSysSta cehoiderRequirements
‘㈡ 口iky
Favontes Tools Management Help
Zi S 1
Favorites J ..,w、
丁 yp« Dtscnptoft
嶁 sattfy L »ok
S«cS /sSoke^ok3e<Requf © rn#nts 一a SecSysStek^holderR^Qu» rement8
』 SecS /5Syst»msReau:remefTts SecSysSy3t»msR«quirements
SecSysUseCases SecSys.RArpy
Trace Link
[ P
9
1 StS .R*>py
)H
1 Use Cases
81
3: After three failed attempts «t
_
Upon entry the user shall be a...
.
l l UclControlEntry
4: Any denied access attempt shai..
-
M
5 Out of date cards shall deny e
35 1.2 Uc2ControlExit
6:Access to the secure area srtai
7: Secure areas shall b« proieae...
___
/SecuntySystem/SecSysSystemsRequirements 1L Security cards only contain ttu 8: On a denied entry an alarm s«g
16: Upon exit the user shall be al~ 9: Entry shall be protected by a
17:An alarm shall notify if a per„ 10: The user snail be visually inf .
11: Security cards only contain th
18: The administrator snail be nou
19: On a denied exit an alarm sigru. 12: The usef shall be visually mf_
20: Exit shall be protected by a s. _ 11 The user ff)all not be allowed -
14:Entry lo the secure areas shal...
-
21, The user shall be visually mf .
24: The user shall not be allowed
27: The system shall only process . .
_
15: An image shall De taken of any...
25: The user shall be given suffic
_ 26: The time between the two , ndeo -
29: The time a usef spends m a se
-s_
27: The system shall only process -
30: The user shall be given suffi
32: Once the user has exited the
33: T>» time to enter and exit the...
28: Biomctnc data shall be stored
31: Once the user has entered the
33:Th« time to enter and exit the
—-
图4 9 - DOORS 数据库中 ,涉众需求、系统需求与系统用例之间的关联性展现
048
第 4 章 案 例: 安 全 系 统
4.4 系统功能分析
系统功能分析是基于用例的。每个用例被翻译成可执行的模型。
模型和相对应的需求通过可执行的模型来验证。下面用安全系统的两
个用例 UclControlEntry 和 Uc2 ControlExit 举例说明可执行模型是如何
翻译出来的。 — : SE-Toolkit 功能:
- 定义用例上下文 Create System Model from Use Case
系统功能分析工作流是由 Rhapsody SE -Toolkit 一些功能来支持的。
Y SE-Toolkit 功能:
图 4 - 10 详细描述了工作流 ,并列出了工作流的各个阶段如何使 定义 Add Actor Pins
用例功能流
用 SE -Toolkit 的功能进行支持。
Auto Re nane Actions
r
导出
' SE-Toolkit 功能:
注 : 在 该 案 例 中 ,所 选 择 的 方 法 基 本 上 与 章 节 2.2. 2 中 所 描 述 的 方 法 用例场景 Create New Scenario from Activity Diagram
Perform Activity View Consistency Check
一样。 T
定义 SE-Toolkit 功能 :
端口和接口 Create Ports And Interfaces
. 用例基于状态的行为 ,
通过模型执行
确认用例模型
关联
用例模块属性到相关需求上
SE-Toolkit 功能:
满足依赖关系 Create Dependency
[下一"h用例]
O
在子模块中 SE-Toolkit 功能
合并用例模块 Merge Blocks
nr
基线化的
© 黑盒用例模型
图4 -1 0 -
系 统 功 能 分 析 工 作 流 和 Rhapsody SE Toolkit 对 各 个 阶 段 的 支 持
049
__ _ 基于模型的系统工程最佳实践
_
UCD S«curttySy« teyn )
4 . 4. 1 Ucl ControlEntry
Security System
ik-i-
在对话框中 ,选择 : h- D Components
-1 o Packages
UseCaseDiagramsPkg. sbs;
'
- p RequirementsAnalysisPkg
1 丨一 Packaqes
RequirementsPkg. sbs
RequirementsPkg
LJ Packaqes
Q 点击 OK 二
t
SecSysReqs
^
Y Requirements
B 0 Stereotypes
参 考 : 在 导 入 用 例 图 UCD
_ SecuritySyslem 中 , 可 以 只 关 注
-[D UseCaseDiagramsPkg
r Actors
•* > from Doors Harmony
合 UCD SecuritySv5tem
0
- i3 Use Cases
_
tif:UcIControlEntry
i wr1 Association Ends
士 士 Dependencies
p FunctionalAnalysisPkg
DesignSynthesisPkg
ActorPkg
IntcrfaccsPkg
> TypesPkg
050
图 4 12 - UclConroIEntry 所关注的项目结构
第4 章 案 例: 安 全 系 统
_ __
From: useCase Scope : UseCascDtaQramsPVQ
O UclControEntry
Three Attempts On Employee ID Entry • Three Attempts On Employee ID Entry
Three Attempts On Biometric Data Entry .
Three Attempts On Biometric Data Entry
Disabling User Account . Disabling User Account
Denied Entry Notification . Denied Entry Notification
Out of Date Cards • Out of Date Cards
-
Authorization of Security Card Entry Authorization of Security Card - Entry
Two Independent Security Checks . Two Independent Security Checks
-
Alarm Entry . Alarm - Entry
-
Employee ID Card Identification Entry • Employee ID Card Identification - Entry
Visualization of Security Card Check Status - Entry . Visualization of Security Card Check Status - Entry
Security Card Information • Security Card Informabon
Visualization ofBiometnc Data Check Status • Visualizationof Biometric Data Check Status
Approval of Biometric Data • Approval of Biometric Data
i二 Biometric Scan • Biometric Scan
Image Capture Image Capture
Three Attempts On Employee 10 Exit
Time Limit Violation
Derned Exit Notification
-
Alarm Exit
Employee ID Card Identification - Exit
Visualization of Security Card Check Status - Exit
Security Lockdown
Emergency Exit
Authorization of Security Card - Exit
Entry T ime •
• Entry Time
Time Between Two Independent Checks
Processing User Request
- Time Between Two Independent Checks
• Processing User Request
. Biometric Data Storage . Biometric Data Storage
Time Recording
Exit Time
Automate Securing the Secure Area - Entry .
• Automatic Securing the Secure Area - Entry
-
Automatic Securing the Secure Area Exit
Configuration of Entry and Exit T » me . Configuration of Entry and Exit Time
图4 13 - 与 UcIControlEntry 相关的系统需求
051
__ 基于模型的系统工程最佳实践
Uc1ControlEntry
1
S Blocks
_
O Uc UclG> ntrolEntry
- - Internal Block Diaqrams
User Camera
G> 圈 IBD.UclControl Entry
二 一 Packaqes
£J UclControll
UclControll
B-(S Parts
S itsUc.UclControl Entry
^ itsCamera
吗 itsAccessPoint
勾 itsUser
^5 itsAdmin
© 把与用例 UclControlEntry 相关的角色模块移人 ActorPkg
_ -
G> —
- S Use Cases
;-:f:
UclControlEntry
-! L§ Activity Views
二 趋 UclControl
0 IBD UclControlEntry 项中包括了通过使用 SE Toolkit 功能所
创建的角色和模块实例(其间没有关联) ]
■U © Activity
Association Ends
it:ic? Dependencies
UcIControlEntryBlackBoxVIew )
4.4. 1.2 功能流的定义 r*adS« cumyC« rd
经常有人讨论是否应将角色泳道放入活动图中。如果放人 , 在多
[First Request )
数情况下 ,可能会导致“ 混乱” ,有时图还很难读懂: 活动图的关注 •» 1 reqTakeSnapshot
点是系统内部的功能流。
[ScFallCount== 3| validateSecurltyCard
一个可选推荐方案是 ,借用 SysML ActionPin ( 行动钉) 的思想 , BP :
gSecurityCardFallure
建立属性标签 stereotyped ActorPin ( 角色钉)( 如 readSecurityCaid ) , 捕 捉 | dlylayCardStatu«
j
一个行动在其所在环境中的交互行为。在这种情况下 ,ActorPin 的名
字必须是相关角色的名字。ActorPin 的箭头指向显示的是其各自关联 [CardStatu ^* Valid"]
^ »
dl«p ayAuth*nticatlonStatu»
[AuthernticationStatui
J
"AuthtintiMted"]
. logEntryData
•
[« »]
Specification
* Mess»geAction»
lOnce the alarm is acknowteged it shall be rest by evAccessPointLocked
二 RequirementsAnalysisPkg tr»e Administrator
n
Packaqes
»1' RequirementsPkg
Packaqes Locate
+ SccSysReqs 注:如 果 活 动 图 包 含 过 多 细 节 , 可 以 把 一 些 操 作 放 在 一 个
Derived ReqsPkg
Requirements
« DenvedRequirement » AlarmReset “ 参 考 活 动 图 ” 中 c 不 要 使 用“ 子 活 动 图 ” , 因 为 这 些 操 作 仅
^ Stereotypes
-
DenvedReau rement 仅 是 用 一 个 单 一 泳 道 描 述 的。在 接 下 来 的 白 盒 活 动 图 中 , 可 以
看 到 这 些 操 作 是 跨 越 不 同 泳 道 的。
053
m m 基于模型的系统工程最佳实践
^-
功能 Create New Scenario From Activity Diagram 创建出来的。 [Firsl Request ] I ^HasaageAi
MegQ炉 ion
o 在活动图中右击 ,并选择
[else]
[ else ]
=
SE -Toolkit > Generate Sequence Diagram : » = 3l
[ScFaiK oun « va Mate Secu ntyCard
^
rnagSecuriifCardFallJre s :
displayCardSBtus
© 在 ModelingToolbox 对话框中 , 标选
Create Messages from Pins 和 Create Events
[else】
-
[ tar (iaalus =”ValKr
scanBiometricOaia
LBS
条件连接器。用户还可以选择经由路径) -
IBsfailC (>ant *3]
AdivityDiogramGc.
Set Ue cr r
* gtiui
block
[else]
注 :所创建的序列图将自动存储在 UclControlEntry
Copy Dspemdencies
Copy Togs
eqLoAAaeaPaint
O _
tt IlnlArkCKl
Unlocked ^ 口
G>
I Copy Descriptions lil a
BBScenariosPgk 中。 f〆 Creole Messages from Pins
Create Events
厂 a
t vAccessPo miLo eke d
054
第4 章 案 例: 安全系统
:User
_
: Uc Uc1CortrolEntry :AccessPoint :Camera
reqReadSecurityCard ( )
readSecurltyCardO
二l reqTalkeSnapshotQ
val idateSecurityCard (CardStatus)
_
t Bs
displayCarcStatus(Ca rd Statu 勻
#-
A
reqScanBiometri cData ( ) V7
< CardStatus== Valid*
scanBicmetricDataQ
I; authenticateBiometricData (AuthenticationStatus)
digplayAuthenticationStatus(AithenticatjonStatus)
震 /
4-
Statui= \
Authentic at ionSt at u ^ =
\ "Authenticated 1
—
.
logEntryDataQ
^reqUnloc kAccesaPointQ
- J _
t Unlocked evAcce &sPointUnlockedcf
\
」
卜
一
J reqLockAccessPointQ
evAcceasPoint Locke
: 一
■ ~
*
„ rl
图 4 14- 导 出 用 例 场 景 BB _ UclScl
055
基于模型的系统工程最佳实践
活动视图的一致性检查
黑盒活动图与导出用例场景间的操作一致性可以借助于 Rhapsody
-
SE Toolkit 功能 Perform Acitvity View Consistency Check 进行检查。
对所选的活动视图 ,该功能帮助确认:
•活动图中的每一个活动是否至少要在该活动视图所涉及的序
列图中出现一次 ; p UclControlEntTvPkQ
•所涉及的序列图中的每一个操作是否至少要在活动图中出现
S Blocks _
- L5 Uc UclControlEntrY
- S Operations
一次。 loqEntrvDataO
_
\ y
S
1 Name
^
il iomKncScanFailiire
- U s e Cases
Ucl.Scl Nominal
f D UdControlEntrvExecutionScoDePkq
- UclControl Entry
res«AJarm i [3 Activity Views
- @ UclControlEntryBiackBoxView
©
f!tfS«ciinr\'CardFiihff?
alarm - Activity
B LJ Sequences
tofAcccontDau _
O Ucl Sd Nomina!
disibbUserAcccoat ? ■
Association Ends
i Dependencies
— 一
上面的截屏显示了在第一个用例产生后的一致性检查的结果。结
果列出了没有确定解决的操作。这些操作将在后面的例外场景中被捕
捉到。
056
第4 章 案 例: 安全系统
_
BB Uc1Sc2 Exception CardReaderEntryJ _
BB Uc1Sc3 Exception BiometricScaiy
\
regScanKometrlcDataQ
reqReadSecurityCardQ
\ > nBlometricDataO
>
■
readSecurityCardO
] ntjcateBiometrlcOata (AuthenticationStatus) \
lidataSecurityCard(CardStatu
1layCardStatu (CardStatus ^
valic \ dlsplayAuthenticationStatu »(Auth« nticationStatu 坤 \
2
:)
9 )
/ AuthornticationStatus=
\ "Not Aiuthenticated"
< ^
Ca rdStatusss loC VallcT agB< om0trtcScanFallure (BsFailCount)
ScFailCount 3
3
=
ecuntyCardFallure (ScFailCount)
>
^
BSFallCount
^
disableUserAccountQ
aisableUserAccountO itDataQ
口
logAccountOata () alarmQ
^、
alarmO V
?eqProc««sAlert(AiertType )
reqR* tAlarrn "
TeqProce
reqProcessAiert(AiertType )
T- t
〆 reqResetAiarmQ V,^
% setAlarm () \
g-
s 丨
图 4 - 15 _
导出用例场景 BB UclSc2 Exception CardReaderEntry 图 4 - 16 导出用例场景 Scenario BB_ UclSc3 Exception BiometricScan
( 例外场景 :进人读卡 ) ( 例外场景 :生物扫描)
057
■ 職基于模型的系统工程最佳实践
•
4 . 4. 1 . 4 端口和接口的定义
端口和相关接口的定义是借助于 Rhapsody SE Toolkit 功能 Create
Ports Andlnterfaces 自动完成的。前提是序列图中的所有信息和操作都
- o 右击套件包 Ucl _ ControlEntry_ BBScenarios ,并选择
-
SE Toolkit > Create Ports And Interfaces
_ _
IBD Uc1 ControlEntry /
- C Packaqes
―Q UdControlEntryPkg
-
r>— [ j pUser pCamera □ -
S Blocks
C3 Uc_UclControlEntry
_ _
IAdmln Uc Ui 1ControlEntry _ _
MJc Uc1Coi trolEntry AccessPoint iLj Internal Block Diagrams
- Packaqes
UclControlEntryBBScenariosPkg
:
-
t b i3 Use Cases
itsUser f £□ DesiqnSynthesisPkq
■
_ _ 1 itsCamera + t . ActorPkg
-_
- IU«er Uc l c1C< ntrolEntry
■
-
iUc UcICor II ntry Camera "
D InterfacciPkg
_
pUc Uc1ControlEntry
-O-Q pUc_Uc1ControlEntry i Events
CJ Packages
_
■
£] Ud.BBJnterfacesPkg
itaAdmin
IAdmin Uc _Uc1( lontrolEntry IUc_Uc1Control E ntry _AccessPoint Interfaces
itaAccessPoint 十 S iUscr _Uc_UclControlEntry
_
pUc Uc1ControlEntry _
pUc Uc1ControlEntry
+
t
3 IUc_UclControlEntry_AcccssPoint
Q iUc_UclControlEntry_Camera
iUc_UclControlEntry_Admin
_ _
iUc Uc1ControlEntry Admin _ _
lAccessPoint Uc Uc1ControlEntry ^
+ S IAccessPoint_Uc_UclControlEntry
r
.±) :iAdmin Uc UclControlEntrv
n
图4 -1 7 内 部 模 块 图 IBD_ Ucl _ ControlEntry 与端口和接口
注 : 考虑到易读性的原因 , 在 图 中 推 荐 不 显 示 接 口 名 称。 注 : 接 口 定 义 和 相 关 事 件 定 义 被 分 配 在 InterfacesPkg 中。
在 每 个 模 块 中 , 取 消 Display Option ( 显 示 选 项 )“ Show Port
Interface’,o
058
4 . 4. 1 . 5 用例行为的定义
用例模块基于状态行为描述在状态图中。用例状态图展现的是黑
盒活动图和相关序列图的所有信息的汇总。如何将活动图和序列图捕
Validating8«curl tyCard Data
<
valldat0 SecurttyCard C« rd3tatuc); di«pUyCardStatut(C« rd8latus)
第 4 章 案 例: 安 全 系 统 ■
0
—
捉到的信息导出到一个状态图的操作指南 ,在附录文档中进行了 C rdValid
^
说明。 r» qRoadS« cufityCard/
r»adS« curftyCard< );
了 [CardSU
SecCardFallure
-
SUtui»* Nct Valid
!
UcIControlEntryCtri
f1agS9CurityCardFallur»(3cFallCourn);
Fail 3Tlin«s
WaitForEntryRequeA A [ScFaiiCount
raqRoadSecurltyCard/
readSecurityCardQ;
>
o
rvqTakeSnaptfiot to pCamera
W 癱 ItFor供 om 參 McScanRtqu暑 it
Proc«88inoSecur1tyCardData
CardValld Fall 3TIm»8
.
r«qScanBk>m« tric0ata /
tea nBlofn rtcOa t> 0:
•
Auth < ntlcatfngBlom« tiicO« ta
/ disable UserAccount();
nticati
^ ^
tionStatus); di >layAuth« ntlcattonStatu Aiith«nticationStatus);
—
alarmO; @
BsTImeout
― ^
thentica Falled3Times
[Auth« nftcationSta!uts= '74ot Authenticated* ]
Hg) ® r»q8c^ naomttrtcOaU/
8C9 nBlofn« tr1cDala 0;
/ logEntryOataQ; Blofn« tr1c8canFallur«
/ dlsableUserAccountO;
ia BlofMlricSca nFa I lur«(BaF 籲 IlCount);
A logAccountOata (); ^
alanm ();
k^W
r*qProc« tsAI « i1fUaer Access
> Fail ^ dSTlfM*
G> WaitForRa
reqRosetAJarm /
Q
resetAlarmO; ■Point to pAccBmPxAni
evAccessPointLocked
MPo4 nt
I•vAcc#*PointUnlock*d
1 ( 即用例实现 ) 行为设计板块的重用。
i
>
059
基于模型的系统工程最佳实践
捕捉角色行为。
t
locked
reqUnlockAccesePoint 0
_
I evAcceisPointLocked to pUc Uc1ControlEntry unlocking
tm(1000)
tm (1000)
locking _
evAcc«MPointUnlocked to pUc Uc1ControlEntry
>
3
_
^ _ 、
5end
__ Active
_
reqReadSecurityCardThruPortpUc Uc1ControlEntry /...0P0RT( pUc Uc1ControlEntry )-> GEN{ reqReadSecurityCard );
_
reqLockAccessPoInt
. 5 nd reqScanBiom ©tricDaiaThruPortpUc Uc1ControlEntry /...OPORT ( pUc Uc1ContTolEnliy )-> GEN{ req Sc nBiometricOata );
^
▲
_ _
IBD Uc1 ControlEntry )
_
pUc Uc1Control Entry 1 j pU» r pCamera
_
pUc Uc1Control Entry
ItsAdmin ItaAccewPolnt
_
5^? 5
^
pUcJJcl Control Entry pAdmin pAccessPoint pUc Uc1Control Entry
060
第 4 章 案 例: 安 全 系 统
4 . 4. 1 . 6 用例模型验证 User _
:Uc Uc1Control Entry :AccenPoint :Camera
UclControlEntiy 模型的验证,是在所捕捉的用例场景的基础上 ,
通过模型执行进行确认的。正确性和完整性分析是基于模型行为目视 reqReadSecuntyCard ()
检查进行的。 readSecurityCardO
• 通过各自状态图的动态图像展现 , 提供基于状态行为的视图; ^
ecurityCard (CardStatu
^
| Valid )
UciCoyHrolDHryCtri
reqScanBiometncData ()
I nBiometricDataO
WaHFofBHryfteque
^ | A
]
.authenticateB ,
reqReadSecurltyCard/
readSecurityCard();
< ometrlcData ( Authfli ttcatlonStatus
> = Authenticated )
1 idyAuthenticationStatus
| r>qTakaSna|
CardValid
Mhot to pCamera
Proc«Hi ngSecurityCairdOata
Fiail 3Tlm«s
^
is)
tryDataO
reqUnlockAccesePointO
(Aut
^ iiticationStatus: Authenticated )
/disableUwrAccountO; (1000)
—
Process!ngBiometrlcOata logAccountOata ( j;
alarmO;
reqLocKAcceasPointQ
UnloddngAiKlLo ldn0Acc0«Point
%
1
\
WaKForftosetAlann
Disabled") to pAdmln
> Vtm(1000)
evAccessPointLockedO
reqResetAJarm /
J
令
图 4 - 18 状态图的动态展现 ( UcIControlEntryCtrl 1 )
图 4 - 19 序列图 BB _ UclScl 的动态展现 ( 正常场景 )
061
■ 基于模型的系统工程最佳实践
:A
" Uc UcICo咖Entry ssPoint
Access I Uc^UcIControlEntry AccessPo
User _
: Uc Uc1ControlEniry Access ;
OHH :Uc UcIConlro
丨 Entry AccetsPoi
—^
aiitt nttcateBioynetricDatiMAulhontic^tkHi Slarut )
1
#
i oyAuthemioKiofi Statu«(Auih«mlcatioii Status
—
2
Authentication Status HAuthenlicatecT
^^ V
.
^
ry [ hita En»ryDat»0 y
” ln|t< NAcctissPci!ktf )
山丨Ii 丨乂 -
—— ^^
:KM(I
062 图 4 20 - _
序 列 图 比 较 场 景 BB UclScl ( 正常场景 )
通过预先对动态序列图的设定 ,过时记号可以按计划地被检测出来
第 4 章 案 例: 安全系统
4. 4. 1.7 关联模块属性到需求
为保证所有 Ud 被分配的功能性需求和性能性需求都被考虑到 ,
从 Ucl 用例模块属性到系统需求的跟踪关联性 ,通过用
《 satisfy 》
o 在工具菜单中选择 Tools > SE -Toolkit > Modeling Toolbox ,
在会话框中选择 Dependencies ,
选择 Profile : SysML ,选择 Stereotype : Satisfy
依赖关系建立起来。 《 satisfy » 依赖关系通过以下有两种方式实现 : 在系统模块 Uc_ UclControlEntry 中 ,
•
用 IBM Rational Rhapsody SE Toolkit 功能 ,在浏览器中直接操 - © 选择你想关联到的系统需求的属性
作 Create Dependency;
•在需求图中,直接画图建立依赖关系。
推 荐 使 用 方 法 是 用 丨BM Rational Rhapsody SE-Toolkit Create
o 在 Modeling Toolbox 对话框中 ,点击 Set Source
r -
RequirementsAnalysisPkq
Packages
£- RequirementsPkg
© 在 Modeling Toolbox 对话框中 ,点击 Set Destination
_
D SecSysSystem Reqs
- Requirements Create Dependency with Stereotype
« fromDoors Harmonv» Three Attempts On Biometric Data Entr
^
4
G> —Q
« fromDoors Harmony^ Denied Entry Notification Options About
+
*fromDoors HarmGnv ^ Out of Date Cards -
-
« fromDoors Harmony* Authorization of Security Card Entry J
Xgiwcx iourf
^ a|
4 >
%
£
-
Fuficti6naIAna)ysisPkg
- Packaqes
- £J UclControlEntryPkg
Blocks
G>
r O Uc UclControlEntry
.
±
+ ^ Attributes
Generalizations
G>
- S Operations |Sy«Ml
/^\ j readSecuritvCardO
( 2 )
^= 0validateSecurityCard
» Satisfactions
(OMStrinq CardStatus)
063
基于模型的系统工程最佳实践
在需求图中 ,可视化依赖关系。
在 RequirementsPkg 中 ,创建一个需求图 0 从 SystemRequirementsPkg 移动相关系统需求到该图
Q 从 UcUclControlEntiy 模块中移动操作和属性到该图中
RD_Uc1BlockLinksToSysR )
^^ 4 在工具菜单中 ,选择 Layout > Complete Relations > All
(Requirement
(Primitive Operation
* *
Three Attempts On Employee ID Entry •Attribute*
flagSecurityCardFallure ScFailCount
«satisfy» «satisfy
ID = SYS 1 *
cRequirement
*
Authorization of Security Card •Entry
«satisfy
ID = SVS6
«Requirement»
•Attribute
t_B
* Time Between Two Indepandant Checks
» «satisfy»
ID = SYS27
,
•Requirement
•Attribute* Entry Time
t _Unlocked
< satisfy
* ID = SYS26
064
图4 -21 UcIControlEntrv 槿 块 属 性 匹 配 到 系 统 熏 求 ( 例 外 情 况 1
第 4 章案例 : 安全系统
4. 4. 2. 2 功 能 流 的 定 义
4. 4.2 Uc2 ControlExit
与章节 4.4. 1.2 所 描 述 的 相 同 , 用 例 功 能 流 是 在 活 动 图
4.4. 2. 1 模型上下文的定义 Uc2 ControlExitBlackBoxView 中详细展现出来的 , 该活动图是由 IBM
用例 Uc2 ControlExit 的精化过程是在一个 Rhapsody 单独的项目 Rational Rhapsody SE toolkit 功能 Create System Model From Use Case 创
Uc2ControlExit 中进行的。建模始于从 Rhapsody 项目 SecSys RA 导入 _ 建的。
相关信息到该新项目中 ( 参考章节 4. 4. 1.1 ) 。
以单元的形式追加模块 ( AddtoModelasUnit ) 到套件包中 : Uc2ControlExltBlackBoxVlew
^
,
\ /
^ •
UseCaseDiagramsPkg. sbs
• RequirementsPkg. sbs
_
readSecurltyCard
ccheckForTImvUmKVlolatlons
^
Admin [TlmeUmltFlag tru« J
j
®
_
UCD SecuritySy»tem )
^ = = Vatid]
[CardStatus
f logExitData
o AccessPoint
^ •MesugeActlon*
reqUnlockAccessPoint
o ^ lJc2Control
IScFallCounK 3)
• MessageAction*
reqLodcAccessPoint
_ evAc -^ MesugeActfon*
Ilf
/ t l>nloci(ed
¥
Admin W AccessPoint
HQ
•Messat
/ AccessPtointLocked
'
Admin
resetAlarm
065
基于模型的系统工程最佳实践
-
借助于 Rhapsody SE Toolkit 功能 Create New Scenario From Activity
_
:Uc Uc2ControlExlt :Admin :AccessPoInt
^
checkForTim 6 LfmitViolationa(TlmeLJmitStatus)
\
列图存储在 Uc2ControlExitBBScenariosPkg 套件包中。 \
op«7
\
\ reqProce >sAlert(AlertType )
=
[TlmeLlmltStatus» true ]
v
\
注 :交 互 同 时 发 生 事 件/ 操 作 隔 离 器 与 条 件 符 号 ( Condition Mark ) 在 序 …… v
N reqReadS » curityCardQ V
列 图 产 生 之 后 , 被 手 动 追 加 到 图 中。 > readSecurityCardO
、
■
、
\ valldateSecurltyCard (CardStatu8)
v
3
)layCardStatus( CardStatus)
\
\ V
\ [CardStatu«pa"Not Valid"]
\
、 ^
lagSecurltyCardFallure(ScFallCount)
\
s
\
<ScFallCount«"3
>
reqProcessAJert( AJertTypo )
、
s alarmO
I s
、
s
s ^ aetAlarmO
reqResetAlarmQ
\ [CardStatus =»HValldM]
\ logExitOataO
、
\
reqUnlockAccessPoIntQ
、
、
、
、
、
t Unlocked
一
^
regLockAccewPoIntp
evAcc< ««PolntUnlocked
polntUnl '
^^
(
evAcc«
^
WolntLock« d \
、
\
\ .
V
图 4 23 - 导 出 用 例 场 景 BB_ Uc2Scl ( 结 合 正 常 序 列 和 例 外 序 列 )
066
第 4 章 案 例: 安全系统
__ "*
Acca «PolntCtr1
4. 4. 2. 4 端口和接口的定义
_ _
右击套件包 Uc2 ControlExit BBScenarios ,并选择
0 SE -Toolkit > Create Ports And Interfaces
_
Po< ntLock*d to pUc Uc2ControlExlt
tm (100)
> tm ( IOOO )
用手动或右击 IBD ( 内部模块图),并选择
0 -
SE Toolkit > Connect Ports
reqLockAccvaoPoInt
<
.Uc2Contro Exlt
>
_
IBD Uc2 ControlExtt )
Uc2ComrotExit | 1
图4 -2 5 角 色 AccessPoint 的 基 于 状 态 行 为
1 itaUser
pAcc««Point
jjj : ] pUcJ
_
plic Uc2ControlExlt {JpU» r 1 IteAdmln
pAdmin
_
plic Uc2Controi Ex it
WaHForExItRsqueat
rsqRftadSacurityCard;
-
图 4 24 带有所生成的端口和接口的用例模型
readSecurltyCardO;
——
ProcaaaingS« cur1tyCardData
Uc2ControlExit 的 IBD
:
CardValid Fall3Times
®
/ logExltOataQ; /alarm () :
4.4.15 用例行为的定义
角色 User 的行为是借助于 IBM Rhapsody SE -Tookit 功能 Create
ngAndLoddngAcccHPoint
raqProcaHAtortfExtt Failura *) to pAdmin
>
Test Bench ( 参考章节 4. 4. 1. 5 ) 产生的。角色访问点 ( Accesspoint ) %
的行为是在状态图中手动捕捉的。 •vAccesaPol ntLocKvd raqRsaei
rswlAlarmO .
值得注意的是 :用例模块的状态图中行为板块的重用。系统须说
明 ProcessingSecurityCardData 和 UnlockingAndLockingAccessPoint , 与
—
用例模块 U UclControlEntry 中所使用的相同。
^ Cb«ddngForT1inMlimKVkilations
i :
raqProCTMAi
^ rtfTInf UmHVlolattoo*) to pAdmin
-
图 4 26 _
用 例 模 块 Uc Uc2ControlExit 的 基 于 状 态 行 为
067
基于模型的系统工程最佳实践
: User _
:Uc Uc2ControlExit :Admin :AccessPoint
4. 4. 2. 6
Uc2 模型验证
UdControlExit 模型是在所捕捉的用例场景的基础上 ,通过模型
执行进行验证的。正确性和完整性分析是基于模型行为目视检查进
行的。 reqProcessAlert(AlertType = ^^
checkForTimeLimitViolations(TimeLim Status 1)
TimeLimitV olation )
LimitViolations(TimeUmft tatus 0)
=
=
^
•
Uc2ControlExTtCSi \
leqReadSecuriiyCard/
readSecurityCardl ). readSecurityCard ( )
Processing SecurityCardOata
= Valia
CardValid Fail3Time«
validateSecurityCard (CardStatus
^
/ togExiiData (); / dlarm ();
dlsplayCardStatus(CardStatu8 = Valid )
fegProcessAlertTExit Failure *) to pAdmin
*
loaExitDataO
ockingAndLockingAccessPoin! reqUnlockAccessPoint()
WaKForResetAlarm
evAcces ointUnlockedO \
^
CheckingForTimelimitViolationa 1
re q LockAccessP ointQ
^ checkForTimeLimitVioiation TimeLimitStatus);
^
rTirneLimitStotusHalse: ITimeLimitStatu5=mje| \
reqProcessAlenrTimeLimrtViolation '*) to pAdmin
evAc气ssPointLocked () 、
-
图 4 27 通 过 模 型 执 行 对 用 例 模 型 Uc2 ControlExit 的 验 证
4. 4. 2. 7 关联 Uc2 模块属性到需求
为保证用例 Uc2 所分配的所有的功能性和性能性需求被考虑到 , \
从 Uc2 模块属性到系统需求的关联跟踪性 , 可以用满足的依存性关系
建立起来 ( 参考章节 4. 4. 1.7 ) 。 图4 -28 动 态 展 现 序 列 图 BB_ Uc2Sc2 正 常 场 景
068
第4 章 案 例: 安 全 系 统
4 . 5. 1 架 构 分 析( 权 衡 分 析 ) 建立权重目标分析表
架构分析的关注点是对系统功能分析阶段识别出的所需功能 ,作
i
t
权衡分析和研究 ,从而决定最佳的实现方案。图 4 - 29 详细描述了架
构分析工作流 ,并列出了 Rational Rhapsody SE-Toolkit 系统工程套件对
定义
候选解决方案
[
1
各个阶段的支持。
标准
为每个标准
SecuritySystem , 对于后续所有实现的用例模型是共通的 ,即便系统模 定义优化曲线
块的子集要在各自的用例实现中来处理。 ]
分配 MoEs
到候选解决方案中
f 下 一 个 关 键 系 统 功 能1
合并
形 架 构
▲旅
圍权衡分析报告
•
)
-
图 4 29 -
架构分析阶段工作流和 Rhapsody SE Toolkit 在相应阶段的支持
069
基于模型的系统工程最佳实践
4 . 5. 1 . 1 关键系统功能的定义 步骤 2 : 定义和应用第一关设计标准
该阶段的目的是以“ 组” 的方式 ,把系统功能组织到一起。组织 通常 ,第一关的设计标准是针对 COTS 组件或内部自主开发的组
原则是:每组能够实现一个物理性的组件。 件 ,决定哪些关键功能能被实现出来。在该案例中 ,决定购买功能
步骤 1 : 把相关系统功能组织成关键系统功能 ReadCardlnformation 和 CaptureBiometricData,而功能 ControlSecSys 则实
下面 3 个关键系统功能是通过对用例黑盒活动图的分析识别出 行内部自主开发。
来的。 由于实现 CaptureBiometricData 关键功能可以有几种方式 ,决定对
①读卡信息 ( ReadCardInfomation ) 其进行权衡分析研究 ,而不需要考虑关键功能 ReadCardlnfonnaticm 。
•读安全卡 ( readSecurityCard )
•显示卡信息 ( displayCardStatus )
•报警 ( alarm )
•重置报警 ( resetAlarm )
■
■
②捕捉生物数据 ( CaptureBiometricData )
—
•扫描生物数据 ( scanBiometricData )
•鉴别生物数据 ( authenticateBiometricData )
•显不鉴别信息 ( displayAuthenticationStatus )
③控制安全系统 ( ControlSecSys )
* •
JTMWaMMi -,1-
,
•验证安全卡 ( validateSecurityCard )
•标示安全卡错误 ( flagSecurityCardFailure )
•标7K 生物检查错误 ( flagBiometricCheckFailure )
•注销用户 ( disableUserAccount )
•录制用户信息 ( logAccountData ) )
•录制人口信息 ( logEntryData )
•录制出口信息 ( logExitData )
•检査时间限制违规 ( checkForTimelimitViolations ) ^rw miAlmy
r
•解锁访问点 ( unlockAccesPoint )
•锁住访问点 ( lockAccessPoint )
070
4.5. 1.2 候选解决方案的定义
该阶段的目的是对所选的关键系统功能 ,识别出可能的解决方案 。
© 使用继承关联关系把它们连在一起
_
把这些模块移到模块 BDD CaptureBiometricDataOptions 中 ,并
步骤 1 : 识别解决方案到所选关键系统功能
该案例所选关键功能是 CaptureBiometricData。可能的解决方案有: 0 在模块 CaptureBiometricData 中 , 手动添加与关键系统功能相
关联的操作 Ucl ControlEntry。这 显 示 的 是 OpticalScanner 和
• 面部识别( Facial Recognition ) FingerprintScanner 所能具备的能力
• 指纹扫描( Fingerprint Scanner )
• 光 学 系 统 扫 描 : 检 査 虹 膜 或 视 网 膜 ( Optical Scanner
iris or retina ) )
步骤 2 : 选择候选解决方案进行进一步分析
面部识别系统在现行阶段,技术上不十分可靠,并且在安装和维护上
& BtometricScanTradeStudv—
Block DefinWon Diaqrams
BDD.CaptureBtomet
( 3 J
^
o
■
非常昂贵。从被选方案中去除。留下两个候选方案作进一步即: l CaptureBiofDetncOal
S Operations
•指纹扫描仪( Fingerprint Scanner ) (fi authentotea
dS dspiavAutheni
(OHStnnq /
is(OMStrinq AuthenttationStatus)
•光 学 系 统 扫 描 仪:角 膜 或 虹 膜 扫 描 仪 ( Optical Scanner
i
泪 ScanBiometnc
Optical Scanner
( Cornea or Iris Scanner ) )
现在 ,可以把这些信息输入到模型中。
© 在 ArchitecturalAnalysisPkg 中 , 创建一个
TradeStudyAnalysisPkg ( 权衡分析套件包)
CaptureBiometncData
iuthenftcateBiometncData(AuthenticationSlatusOMStnng) void
© 在 BiometricScanTradeStudy 中 ,创建下列模块 : 0
CaptureBiometric Data ( 捕捉生物数据);
OpticalScanner ( 光学扫描系统);
FingerprintScanner ( 指纹扫描系统)。
071
■ 基于模型的系统工程最佳实践
•block*
. 1
cblock *
FingerpnntScanner Optical Scanner
072
第 4 章 案 例: 安 全 系 统
_-
*
6 weight RhpStnng=0 3
标准化地添加到 1.0。
- «nr>oe> Accuracy
*
*
§ Taqs
PurchaseCostmt 6
weiqht
步骤 1 : 排列评估标准等级 S «moe» PurchaseCost
6 ^eigntRhpStrmQ^O 2 *i
• 9 «moe» InstabtJonCost
ManitenanceCost
该案例中 ,评估标准可以排列等级依次如下 : S «moe* Secuntv
S<
Operations
① Accuracy ( 精确度); tnstaliationCostlnl
_
m Optical
opt Scanner
F S Attributes
② Security ( 安全性 ); 6 ^e*ght RhpStrlno=0 15
*i S
丨 «moe» Accuracy
S «moe» PurchaseCc
③ Purchase Cost ( 购买成本 ); MamtenanceCostint
‘
a S «moe» InstabtonCost
ft;S «moe» ManitenanceCost
④ Installation Cost ( 安装成本); s B «moe» Secuntv
rifj
6 wreiontRnpStnng=0 1 Superclasses
⑤ Maintenance Cost ( 维修维护成本)o -
Rnqerprinc
B Attnbuti
Secunty.irit
8 «moe» Accuracy
步骤 2 : 分配权重到评估标准中 6 weigntRhpStnng=0.25
B «moe» PurchaseCost
9 «moe» InstafatonCost
9 «moe» ManitenanceCost
在此案例中 ,所选评估标准的权重为 : *
s S «moe» Security
•Accuracy : 0. 30; 个 SuperOasses
•Security : 0. 25; _
BDD C«ptureBlonTtricDataOption J
• Purchase Cost : 0. 20; «01ock>
属性上显示在模型中的。
authenticate日丨ometrlcOata{AuthenbcationStatus OMString ) void
fidisplayAuthenlJcationStatus( Authentica!ionStatus OMString ) vojd
<fiscan6iometncOata() void
、
9 «moe > PurctiaseCost float 9 cmoe » PurchaseCostfloat
8 «moe» InstallattonCostHoat H « moe » InstallationCostfloat
广
*
y 右击模块 CaptureBiometricData block ,并 S «moe» MaintenanceCostfloat
S « moe» Securitylloat
9 « moe » ManitenanceCostHoat
S « moe » Security float
选择 SE -Toolkit > Copy MOEs to Children
073
■ 基于模型的系统工程最佳实践
在 0 ~ 10 之间的标准化值以表示目标是如何被满足的。 、
、
为决定有效性度量 ( MOE ) 的精确度 ,创建一个线性效用曲线用
于检査出错率和 0 ~ 10 度量等级的关系。
MoE
注:对 一 个 简 单 的 线 性 功 能 ,效用曲线可由下列公式计算 :
MoE = - ( MoE range/ target range ) + MoE range
8
图 4 31 - 购买成本效用曲线
MoE
6
4
— 硬件的 Installation Cost , 10 台的最大预算是 1500 美兀。这样就得
到了描述该功能的效用曲线。
2
安装成本 MoE ( Installation Cost MoE ) =
1 2 3 4 5 6 7 8 9 10
- 0. 0067 x Installation Cost + 10
Errors per thousand
10
-
y = 0.0067X + 10
图 4 -3 0 精确性效用曲线
'
此简单图表可以产生出以下公式 : MoE
4
精确度 MoE ( Accuracy MoE ) = - Errors Per Thousand + 10
有关 purchase cost ,假定目标图设定公司理想情况下愿意支付每
-
台硬件费用 0 400 美元 ,这样就得到了基于上述线性图表的购买成
0
200 400 600 800
本 MoE 计算公式 : •
购买成本 MoE ( Purchase Cost MoE ) = - 0. 025 x Purchase Cost + 10
图 4 32 - 安装成本效用曲线
074
_
_
第 4 章 案 例: 安 全 系 统
TradeStud >
-」
4.5. 1.6 分 配 MoE 到 每 一 个 解 决 方 案
精确度:指纹扫描系统的精确度接近每一千次 2 3 个错误。以每一
—£
^aaaoes
j BiometncScanTra0eStu3 y
ffi j Block Definition Diagrams
d § biodcs
ll
=5
统的 MoE 是 6 . 0 , 光学扫描系统的 MoE 是 2. 12。
安全性:科学数据证实光学扫描系统 ( 虹膜或视网膜 ) 是不可能被
PurchaseCost
InstaRdDonCost
sl l
欺骗的 ,而指纹扫描系统用相对简单的方法就可以造假。依据这种认识,
指纹扫描系统的安全 MOE 是 8.0 , 光学扫描系统的安全 MoE 是 10.0。 Locate I OK I Apply Ij ^
维修与维护:两种系统都需要维护。光学扫描系统由于其对光的敏 _
BDD CaptureBlometrlcDataOptlon )
感度和系统的清洁度的要求更高 ,比起指纹扫描系统,其维修维护需要更
< D!odl »
0 在浏览器中 ,选择一个模块代表上述的某一个解决方案 , 并
打开其功能
S « moe > MaintenanceCostfloat
S cmoe > Securityfloat
authenticateBiometricOata ( AuthenticdtlonStatus OMString)voicl
©
displayAuthentlcationStatus (AutfienticationStatus OMStnng ) void
选择属性表 scan Bi om etricO ata() void
©
9 < moe > PurctiaseCostfloat= 7.25 B < moe> PurctiaseCostfloat= 3.75
逐个选择和编辑属性 8 cmoe » lnstallationCostiloat= 6 0 Scmoe > lnstallatonCostfloat= 2 12
S < moe > MalntenanceCostfloat=8 0 B «moe» MaintenanceCostfloat= 6 0
« moe > Security float=8 0 8« moe » Securtty float = 10 0
对每个解决方案 , 重复上述步骤。
075
__ ■ 基于模型的系统工程最佳实践
4 . 5. 1 . 7
解决方案的决定
_
一旦每一个关键功能都有一些可能的解决方案,并有 MoE 分配给
它们 ,就可以运用和结合各个解决方案去决定架构的优选解决方案。
建 立 可 能 的 架 构 方 法 是 通 过 解 决 方 案 架 构 图 ( Solution £] Tra6e5tudvAna#vssPkB
Architecture Diagram ) 实现的。它显示了为完整架构或关键功能建立 BometncScanTradeStudv
I Biodc Oefhrtion Oagrams
最终变量架构所需要的组件选项。这个案例中的两个可能的变量架构
包括了指纹扫描系统或光学扫描系统。不需要其他组件。 CaptuefiomclncData
±
土 ■ Opbcai Scanner
步骤 1 : 建立解决方案架构图 % ■ RnoeronntScanner
8 ■ RngeromtScannerAfchteaurc
这个图被创建在 TradeStudyAnalysisPkg 中。它展示了由可能的解 eO
决方案所形成的最终产品的构型。使用该图 ,可以合并不同的解决方
案到关键功能上实现完整的系统构架。在这个实例中 ,只对一个组件
在每个构架中进行分析。
在 BiometricScanTradeStudy 中 ,创 建 一 个 模 块 定 义 图 BDD
_SolutionArchitecture
W 架) 的模块
1
N/
拖 动 模 块 FingerprintScanner ,并 使 用 分 解 关 系 使 它 成 为 FingerprintScanner Optical Scanner
FingerprintScannerArchitecture 的 一 部 分
^ 的模块
0 拖 动 模 块 OpticalScanner , 并 使 用 分 解 关 系 使 它 成 为
OplicalScannerArchhecture 的 一 部 分
076
第 4 章 案 例: 安 全 系 统
_
定功能制定出解决方案。它是通过各自的权重乘以每个 MoE 值 ,然 Fingerprint Scanner。
后把结果值加到一起构成。这是针对每个解决方案的每个功能进行 TradestudyAnaiysisPkg
B LJ Padcages
的。具有总和最高分数的综合解决方案是对特定架构或功能选出的实 - BiometricScanTradeStudy
_
BDDjCaptureBtometncDataOptJon
—
用 Rhapsody 和 Excel 支持加权目标计算 ,需要另一张选择分析图 BOD Opt»nAna< yas
BOD SolutionArdutecture
( Option Analysis Diagram ) 。选择分析图显示了在考量中的关键功能的 目
所有变量架构。 m optical Scat
_
^
/ \ 在 BiometricScanTradeStudy 中 ,创建一个模块定义图 BDD
Option Analysis
出 Ftngerpmti
ffl ■ RngerpnntScannerArdTitectLire
囡 ■ OpticatScannerArchtecture
_
BDD OptionAnalysis
© 拖动模块 OpticalScannerArchitecture 和
FingerprintScannerArchitecture « block»
cannerArcl
•block*
OpticalScannerArchitecture
_
© 在浏览器中右击 BDD Option Analysis , 并 选 择
SE-Toolkit > Perform Trade Analysis
FingerprintScannerArchitecture OpticdlScannerArchitecture
weight value WV value
CaptureBiometricDataJccuracv 03 75 225 10 3
CaptureBiometncData.PurchaseCost 02 7 25 1 45 375 075
CaptureBiometricDataJnstallationCost 015 6 09 2.12 0.318
CaptureBiometricData.MaintenanceCost B 08 6 0.6
CaptureBiometricData.Security 025 10 25
74 7168
图4 -3 3 Rhapsdy 生 成 的 加 权 目 标 表 ( Excel )
077
基于模型的系统工程最佳实践
B
t- DesignbyntncsisPkg
- LIPackaqes
A - ArchitecturalAnalysisPkg
; Packaqes
i £3 TradeStudyAnalysisPkg
T £J ArchitecturalDesignPkg
CardReaderEntry FingerprintScanner
- Block Definition Diaqrams
^
S > BDD.SecuritYSvstem
- 3 Blocks
•
S«cSysControll«r O SecuritySystem
CardR«aderExit 三 占 Parts
SecSysController
」
078
4.5. 2 架构设计
图 4 - 36 显示了该案例的架构设计工作流 ,并列出了如何用
Rhapsody SE -Toolkit 的功能支持其中的工作项。架构设计是针对每一
系统架构结构
U2
更新用例的
ArchitecturalDesignPkg
-
第 4 章 案 例 : 安 全 系 统 ■■
SE Toolkit 功能 :
Merge Functional Analysis
—
个用例反复迭代 ,并将黑盒视图转换成白盒视图进行的。请参考用例
实现 ( Use Case Realization ) , 如 图 4 - 37 所示。 SE-Toolkit 功能:
•Duplicate Activity View
一旦一次迭代对所有用例都完成了 ,它们将被合并到集成系统架 •Allocate Operations
分配系统属性到部件 from Swlmlanes
构模型 ( Integrated System Architecture Model ) 中。 •Create Allocation Table
•Architectural Design Wizard
v SE-Toolkit 功能 :
•Create New Scenario
导出白盒序列图 from Activity Diagram
• Perform Swimlano
_
Consistency Check
Realize UcIControlEntry Rhapsody 项目 v
UcIControlEntry SE-Toolkit 功能 :
定义白盒端口和界面 Create Ports And Interfaces
Realize Uc2ControlExit Rhapsody 项目
丨
Uc2Contro Exit —
定义基于模块状态的行为
__
Merge Realized Use Cases Rhapsody 项目
SecSysJA 确认所实现的用例模型
□J
4 ) 集成系统架构模型
分配 力 能性需求 , SE-Toolkit 功能 :
并定义跟踪关联性 Create Dependency
UJ
基线化
-
图 4 36 架构设计工作流和与其相对应的 ( )
* 实现的用例模型
-
4 37 -
用 例 实 现 工 作 流 与 Rhapsody SE Toolkit 功 能 在 相 应 阶 段 的 支 持
079
基于模型的系统工程最佳实践
SecuritySystem )
4. 5. 2. 1 用 例 UcIControlEntry 的 实 现
User
4. 5. 2. 1. 1 ArchitecturalDesignPkg 的更新
在 UcIControlEntry 模型中 ,ArchitecturalDesignPkg 的更新是通过 3
Admin
个步骤进行的。
步骤 1 : 从 SecSys_ AA 项目中导入 ArchitecturalDesignPkg 0
在 Rhapsody 主菜单中 , 选择 File > Add to Model , 找 到 项 目
_ _
SecSys AA 并双击 SecSys AA. rpy
CardReaderExi!
I.
在对话框中 ,标记 As unit 并选择 ArchitecturalDesignPkg sbs*
图 4 - 38 更新的模块定义图 BDD_ SecuritySystem
s
<
Iir
S _^t t Bs
Q 把拷贝追溯回源头
妇 t.Unlocked
i & CardStatus
inticationStatus
Authen
o
■
S Operations
armO
__
- ia Depei
M
• «trace»
disableUserAccountO
loqAccountDataO
■
loqEntrvDataO
readSecuritvCardO
080
第 4 章 案 例: 安全系统
-
4 . 5. 2. 1 . 2 分配系统模块属性到部件
4 . 5. 2. 1 . 2. 1 分配操作到部件 FunctionalAnalysisPkq
-i ―
丨 Packaqes
分配操作到系统模块部件是应用白盒活动图可视化地不断精化完 - UclControlEntryPkq
成的。在黑盒用例活动图中用泳道进行分区 ,每一个泳道与被分解的 f S Blocks
1 Internal Block Diaqrams
_
系统模块的部件相对应 ( 如 CardReader Entry , CardReader Exit , _ ji
- —
-
丨
Packaqes
U s e Cases
FingerprintScanner 和 SecSysController ) 。基于设计考虑 ,操作 ( 活动 ) o UcIControlEntry
Activity Views
0
t
则被移动到各自对应的泳道。这个过程最基本的要求是维持操作间初
1
i-i @ UclControlEntryBlackBoxView
始关联关系。
!
t Dependencies
、一
it
在 SecuritySystemDecompositionPkg 中 , 创建一个套件包
DesignSynthesisPkg
- Packaqes
^ Hyperlinks
" _ _
) SecuritySystemWB AD Ucl £J ArchitecturalAnalysisPkq
ArchitecturalDesignPkg
4」 Block Definition Diaqrams
在 FunctionalAnalysisPkg > UclControlExitPkg 中 , 右击 i\ \3 Blocks
i 一 Internal Block Diaqrams
^ Ucl ControlEntryBlackBoxView , 并选择
Duplicate Activity View
二 - Packaqes
f
:
D
t
ExecutionScopePkg
SecuritySystemDecompositionPkg
- 丨 Packaqes
—
ti CardReaderEntryPkg
/O 重新命名拷贝后的活动视图 ( Activity View ) 为 t卜― CardReaderExitPkg
Ucl ControlEntryWhiteBoxVie , 并移动到 i f
FingerprintScannerPkg
_ _
SecuritySystemWB AD Ucl 套件包中
[ SecSysControllerPkg
Secu ritySystem W B _AD_ Uc1
L-:\3 Activity Views 0
在白盒视图 UclControlEntryWhiteBoxView 中 ,将该活动图 0 ^lL
UclControlEntryWhiteBoxView
±i ) Activity
^ ( 活动) 分为如下三个泳道 :
Card Reader一 Entry ;
FingerprintScanner;
SecSysController 创建一个白盒活动图 :
在 拷 贝 的 黑 盒 活 动 图 顶 部 ,用 创 建 一 个 带 泳 道 的 空 活 动 图 ,
(7) 用拖拉的方式 ,在具有标题的泳道中进行模块的分配 移 动 操 作 “ bottom- up ” ( 自 底 向 上 ) 到 子 系 统 泳 道。
© 在各自的泳道中分配活动
081
_
■■ 基于模型的系统工程最佳实践
Uc1ControlEntryWhtteBoxVlew )
FingsrpflntScwMr
rMdSecuntyCJird Messsgeict/on»
-
[ Fir -,! R ^ouf st ]
tMesssg
^cvofw
reqVal/dateSecurityCa r fqTsteSmfBhat
dtsao4 «6 k>mfmcScan
display CardStatut
[ CAHlSIitus
— ^ alidn
[«
' M] <> i
丄 cF«IICounf =3]
ScF
[8
B«FailCount»31
fscanBlomctrlcOata
AccMsPoInt Accw»Po< nt
Mtaag Action9
,
^
V/
>* +
A4esssge
'eAction^
^
jLockAamsPdnt /\ ey
^ccessPoh^mUnlocke
.
t Unlocked
( k
082
图 4 - 40 安 全 入 口 白 盒 活 动 图 UclControlEntry
第 4 章 案 例: 安全系统
注 :为 被 选 设 计 提 供 所 需 功 能 , 必 须 把 没 有 相 关 的 系 统 需 求 的 下 面 两 汇总操作的分配
个 活 动 加 到 白 盒 活 动 图 中 ,即 :
启 动 生 物 扫 描 ( enableBiometricScan )
操作到子系统的分配 , 可借助于 SE -Toolkit 功能 Create Allocation
停 止 生 物 扫 描 ( disableBiometricScan )
Table 汇总到 Excel 表。
_ _
分别导出的需求需要明确说明并存储在 DerivedRequirementPkg 套
件包中。
0 右击在 SecuritySystemWB AD Ucl > Activity Views >
UclControlEntryWhiteBoxView 中的活动
p DesignSynthesisPkg
- - Packaqes
Requirement : BiometricScanActivation in DerivedRequirerr
^ ArchitecturalAnalysisPkq
•
*
ArchitecturalDesignPkg
General Description 丨 Relations | Tags : Properties i 一 Block Definition Diaqrams
h \3 Blocks
Name BiometncScanActivaton | j i J Internal Block Diaqrams
Stereotype DenvedRequiremenl ▼
| |
- -- Packaqes
f £□ ExecutionScop« Pkg
Type Requirement ▼ : £□ SecuritySystemDecompositionPkg
-- 1 Packaqes
ID i CardReaderEntryPkg
Defined in: DenvedReqLirementsPkg f
+
f CardReaderExitPkg
FingerprintScanncrPkg
Specification + t S«cSysControllcrPkg
SecuritySystemWB _AD_ Ucl
The biometnc scan device shall be activated only
\3 Activity Views
when there is a request - 赵 UclControlEntryWhiteBoxView
in 」
, 田 (& Activity
Locate OK
1
o — _
右击 SecuritySystemWB AD Ucl > ActivityViews >
UclControlEntryWhiteBoxView 中的 Activity ( 活动),并选择
SE-Toolkit > Allocate Operations from Swimlanes
There were problems ‘
© 在 ArchitecturalDesignPkg 中 ,
选择系统模块 SecuritySystem , 点击 Set Destination
AcHon disable6iome<ncScan has no cxNrespondng opecOtonin block SecuritySyfilsm
Acfcon disabteBiome«icScan has no conespondmg operaaonin block SecuntySystam
^
Ackon disabtoBiomancScan has no conespondatg operaftonm block SeainV stem
追 加 这 些 操 作 到 SecuritySyslem 模 块 ,并 把 它 们 分 配 到
FingeiprintScanner 模块中。
0S4
^^
5 点击 Accept Selected
第 4 章 案 例: 安 全 系 统
SecuritySystemDecompositionPkg
-
1 Packaqes
分配属性和事件到部件
'
4.5. 2. 1 . 2. 2 £_ CardReaderEntryPkg
- S Blocks
SecuritySystem 模块属性和接收 ( 事件 ) 到子系统的分配是信 - C3 CardReaderEntry
-
于 Rhapsody SE -Toolkit 功能 Allocation Wizard 来进行的。
Attributes
■ CardStatus
- uperations
| 注 :SE-Toolkit 功 能 也 可 用 于 对 操 作 的 分 +
i ^ alarmO
readSecurityCardO
^
© 在 ArchitecturalDesignPkg 中 , 右击模块 i resetAlarmO
i displayCardStatus(OMStrinq CardStatus)
'
QM
© 在对话框中 , 选择 Attributes
-
-• S Blocks
CD CardReaderExit
FingerprintScannerPkg
S Blocks
© 在 Allocate Todrop - down 下拉菜单中 , 选择 SecSysController 二 d FingerprintScanner
- 3 Attributes
_
在 Allocate From 窗口中 , 选择 aUribute( s ) 并 选 择 Allocate
i'
^
« Web Manaqed » t Bs
h ® « Web Managed » AuthenticationStatus
-
S Operations
^
t scanBiometricDataO
-
Si authenticateBiometricData
\ ( OMStrinq AuthenticationStatus)
注 :如 果 一 个 元 素 需 要 被 分 配 到 多 个 子 系 统 中 ,选 择 Allocate but Le; f
• displayAuthenticationStatus ( OMStrinq AuthenticationStatus
)
in Pool enableBiometncScanO
J disableBiometricScanO
+ k? reqScanBiometricDataO
对事件的分配 ,重复步骤 2 至步骤 4。 - SecSysControllerPkg
O 0 - L ? Blocks
O SecSysController
- 占 Attributes
[ ±_ Allocation Wizard
t ® « Web Manaqed » ScFailCount
i
li丨幽 t a aWeb Manaqed » BsFailCount
- tj? « Web Managed »
Options tJJnlocked
Allocate From Allocate To: i i? « Web Managed ^ AuthenticationStatus
ii «Web Manaqed » CardStatus
Wocfc SecurttySystsm [ SecSysControtier - ^ loqEntrvDataO
S Operations
ScFallCount
f
^ disableUserAccountO
loqAccountDataO
BsFailCount validateSecurityCard (OMStrinq CardStatus )
Gi ■
_
LBs
t UniocKed
AuthentcationStatus
CardStatus
I Allocate but Leave in Pooi > )
OeAllocale <
t
f
:^
來
flaqBiometricScanFailure ( int BsFailCount )
flaqSecurityCardFailure ( int ScFailCount )
evAccessPointUnlockedO
f t? evAccessPointLockedO
一I
| ncD^U
g
MB
--A
9T 7
1 « I
d-
j
:
Cieow New Scawno From
AcMy Diagram
—^
基
C
.
l urtnmi *
GenemeSOs
086
第 4 章 案 例: 安 全 系 统
_ __
_
WB Uc1Sc1 Nominal )
:U 9 :CardReader SecSysController :Fingerprint :AccessPoint :Camera
Entry Scanner
\ reqReadSecurltyCard ()
readSecurityCard ()
\ reqVaHdateSecurltyCardO
reqTakeSnaptfiotO
\ validateSecurityCard (CardS' tu 旬
\
regDIaplayCardStatus CardStatus)
( ^ »
^^HaplayCardStatus CardStatu )
\
-
、
\
\
^ CardStatu
^ Valid"
reqEnableBlometricScanO
^ enableBiometricScanQ 、
regScanBiometricDataQ
nBlometricData () 、
\
teBlometiicDaU AuthentlcationStai us)
\
^ ^
|(Authentication 3 tus)
layAuthenticationStati
\
\ ^ ^
、
retAuthenticatior S ?a tus(AuttienticationStatus)
\
\
/ AuthenticationStatusp:
"Authontlcaled* >
\
\
qDtsableBlometilcScan
iogEntryData ()
^口 dlsableBlometrlcScanO \ 、
\
、
、 _
t Unlocked
reglinlockAccessPointp
evAcces8Polnt Unlocked #、
\ reqLockAccessPoIntQ
、
evAcce ssPointLocked
^ *
\ \
图4 -4 3 导 出 白 盒 用 例 场 景 WB _ UclScl 标准场景
087
基于模型的系统工程最佳实践
bleBiom«tricScanO
raaScanBiometrlc fataQ 1
scantBlometiicOata ()
_
WB Uc1Sc2 Exception CardReaderEntry )
auth© nticateBlometricData (Authenti tU8)
:CardReader :SecSysController :Admin
Entry
3
layAuthentiaitlonStatU8(Authe nStatus)
:. ^
o ta tut(Auth«mlcatlonSlatu
all dat S«curityC« rd(Ca rdStatus) ^
—^
|
fqDiylayCardSUtm(CTdStatu»)
/ AuttMiitlcationStatua^s
\ "Not Authenticated* 1
^
layCardStalus(CardStatu>)
l
^
)
f1agBiometncScanFallure ( m altCount )
〈 rdSUtui
Car "Not Valid"
>
liflSecurltyCardFaMuro(3cFa > l
^
/ 8cFailCount= 3 HsableBiometricScanQ
dlsalbleUsorAccourrtO isableuserAccounu)
logAccouintOataQ ta ( )
reqAlarmQ
二 reqAlarmO
4
IlarmO
s
raqRa reqReaetAla
tAiarm ()
wtAlarmQ
1 rtqKesetAiarmn
tAJami ()
( a ) 导出白盒用例场景 ( b ) 导出白盒用例场景
WB_ Ucl Sc2 CardReaderEntry 例外场景 , WB_ UclSc3 BiometricScan 例外场景 ,
前置条件:读卡验证两次失败 前置条件 :两次授权失败
088
4.5. 2.1. 4 端口和接口的定义
第 4 章 案 例: 安全系统画
―-
1
一旦所有黑盒用例场景被分解成白盒场景 ,所产生的子系统端口
-
和接口 可以由 Rhapsody SE Toolkit 功能 Create Port and Interface 来 (7) 手动添加特定端口和相关接口
定义。
在 Archi
丨 ecturalDesignPkg 中 ,右击
SecuritySystemWB UcSD , 并选择_ © 手动连接端口或右击 IBD , 并 选 择
SE -Toolkit > Connect Ports
_
IBD SecuritySystem J
itsSecuritvSvstem
pAccessPoint n Q
itsAccessPoint
LJ pSecSysController
^
itsCardReaderEntrv 1 itsCamera
pCardReaderEntry Q Q. QpUaer pSecSysController pCardReaderEntry pCamera LJ
— [J - ' Q pSecSysController
itsFinqerpflntScanner
——|
1 itsAdmin
pFingerprintScanner --L ] Zj pUser j
pSecSysController [ } [ ] pFingerprintScanner j-
pAdmin [ ] M pSecSysController
在 ArchitecturalDesignPkg 套件包中 , 右击
_ h? reqDisableBiometricScanO
@ IUscr _FingerprintScanner
_
:
User Admin Camera AccessPont C霾rdReadert ntry F ingecprintS Conner Sec SyiControllcr
User rtJ ser_ C ardR eadert ntry _
IU ser F m gerpnntS canner
AMn X 6drmn _Se cS ysC ontroller
i<
Camera X
AccessPoint X iAcce 3sPor»t _SccS ysC ontroller
CardReaderf ntrv X iCardReaderEntry S cSv ControBer
Fingerphnt Scanner
^ ^
iFjngeri>nniScan ner_Se cSysC ontroller
X
Sec SysController iS ecSysContro ler_ Admin Her_Camera iSecSy Controler_
iS ecSyaCo ntr& 9 Acc«ssPoffit S ecSysContro ier_C ardR ea derEntiy _
iS ecSysContro ler F rgejpnntScanner X
2
图 4 - 46 实 现 用 例 UclControlEntry 的 N 图
090
第 4 章 案 例: 安全系统
_
实现的用例行为的定义
4 . 5. 2 . 1 . 5
( 1 ) 模块进入读卡 ( CardReaderEntry ) 和 FingerprintScanner 基于状态的行为
I CardReaderEntry.Ctii
ItsSecuritySvatem
WaitForRequest
-
[params > CardStatus "Valid **]/
dl spla yCa rdSta tus("Va I Id");
ItaCardRftaderExit ItsSecSvaControHer
reqDisplayCardStatus ,
(c) pAcc*aaPoint 3-
[elsey lt»CardRe »der ntrv f^
displayCardStatusTNot Valid");
li
reqReadSecurityCa rd/
U pSacS/ jConfroller [ ]
J □ pCardRead« rEntry pCamerai
1
l ; f]
rityC« rd( );
readSecuri .V " H^lnoTPrintScaniwr
^
"
raaValidatsEntrvReauest to oS«cSvsController
> 〆〆
{ }'
■
Q pU«» r pS«cSyaeontroll« r r) pE|ng« rpr1ntScann« r pAdmin [ j
—— C
Alarm Off
_
Fingerprintsc< nn« r Ctri
reqReaetAJarm /
resetAlarmQ;
“ reqAiarm/
alarmO;
AJarmOn BiometricScanDisabled
wa itForSca nRaque ft
AuthenttcateBioineticData
authenlicateBiometricOata (Aiithenllcalk> nStatus); dispiayAuthentlcatlonStatus(AuthentlcationStatu ;
^
[ Auth« nticatlonStanj *"Auth« nticaled"l
^
r*tAuth*nHcatiooStatuarAuth « nticatoda to pSscSyaControlUr
^ > 091
■■- 基于模型的系统工程最佳实践
■
ProcessingSecurityCardData
( 2 ) 模 块 安 全 系 统 控 制 器 ( SecSysCcmtroller ) 基 于 状 态 的 行 为
注 意 :模 块 SecSysCcmlrollei• 的 状 态 图 中 的 行 为 扳 块 的 重 用。状 态 图
ProcesingSecurityCardData 和 ProcesingBiometricData 使 用 的 是 黑 盒 用 例 模 块
/ScFallCount>0
ValldatingS« curityCard
validatsSecurltyCard (CardStatus) ;
.
o
Ucl ControlEntry 中 复 制 的 拓 展 ,UnlockingAndLockingAccessPoint 则 是 一 个 无
变化的复制。
reqDisplayCardStatU8(CardStatu8) to pCardReaderEntry
reqValidateEntryRequest
==
[ CardStatus MValldT
>
_
SecSyaControllerEntry Ctr1
WaitForRequest
n
T [else] CardValid
SecCardFailure
flagSecurityCardFallure (ScFallCount);
WaitForEntryRequest
[ScFailCount<3]
reqValidateEntryRequest
reqTakeSnapshot to pCamera
> tel » l
reqAlarm to pCardReaderEntry
ScFall 3Times
>
CardValid
ProcessingSecurityCardData
ScFail 3Times
4
ProcessingBiometricData
-H2h-
o
—
Authenticated
-H8)
BsTimeout
T A
^ 0
ProcessingBiometricData
=
BsFail 3Tlmes
raqEnableBiometricScan to pFIngerprintScanner
WaltForBlometricScanlnfo
retAuthentlcatlonStatus
>
/ logEntryDataO;
UnlockingAndLockingAccessPoint
%
V
reqAlarm to pCardReaderEntry
> [BsFallCount<3]
regDIsableBiometilcScan to pFIngerprintScanner
[parama^ AuthenticationStatussfAuthenticated"]
^^
BsTimeout
◎
reqProcessAlert("User Access Disabled")
」
to pAdmin
> [else ]
reqDisableBiometiicScan to pFIngerprintScanner
>
Authenticated
0
WaitForResetAlarm BiometricScanFailure
f1agBlometficScanFallure ( B8FailCount);
reqResetAlarm =
[BsFailCount 3]
evAccessPointLocked
reqResetAlarm to pCardReaderEntry
> reqDisableBiometiicScan to pFingerprintScanner
>
BsFall 3Tlmes
092
第 4 章 案 例: 安全系统
unlocking
evAccawPoIntLocked to pUc lic1Control Entry
Existing Statechart Found tm (1000)
tm (1000)
_
This Actor already has a Statechart PJease read the foilwoing opnons
carefully
locking
PolntUnlocked to pUc UciControlEfitry
>
.
Click Yes to add a new Statechart - the onginal will be retained
Click No to DELETE the existing Statechart and replace tl wrtha new one.
Click Cancel to back out Nothing will t>e deleted or created
reqLockAccessPoint ^
evAccaa ointUnlocfced to pSecSy«Controll« r
>
No Cancel
0 选择 No
Active
_ _ _
1ComxoiEntry /...OPORT( pUc Uc1Contro(£ ntry >GEN( reqReadSecurityCard );
_reqScanBiometricDataThnjPoftpUc_UcUc
send reqReadSecurityCardThruPonpUc
_ ^
1ControlEntry /...OPORT( pUc Uc1ControlEn&yV>GEN( roqScanBiometricOata ):
send
_
( ) send reqReadSecuriiyCardThruPonpCardReaderEntry /...OPORT( pCardReaderEniiy ) >GEH( reqReadS curftyCard );
i -
: send reqScanBiometricDataThruPoftpFingerprinlScanner /...OPORT( pFingerprintScanner)->GEN( reqScanBiofnetricDaia );
-
图4 47 Actor Block User 的扩展行为
093
■■ 基于模型的系统工程最佳实践
\
需求到所选架构分解后的部件中。在该阶段的最新阶段 , 导出功能需 \ ayurdStatua(CardSta Valid
求应已经被批准并关联到各自的操作上。用例实现工作流的最后一个 \
\
bl^ B4 om«thcSc«n( )
步骤是分配非功能性需求。为保证与所有用例相关的非功能性需求被 \
N reqScanBiometrlcC a
\
\
<
nticationStatus Aut lanticationStatus
- ^S
Auttient atod)
\
\
\ riqDisabloBiomctrlcScan
\
r« qUnlockAcc«HPointO \
\ ditabl像 BlomttrlcScanO
\
\
N
S
•vAcceaaPoIntUnlockedO
\
\ 50001
s
S
S > tm(1000)
s
s
s
ssPoIntLockedQ
^
\ \ s
\
\
\
图4 - 48 动 画 型 的 序 列 图 WB _ UclScl ( 标 准 场 景 )
094
第 4 章 案 例: 安全系统
_
4. 5. 2. 2 用 例 Uc2ControlExit 的 实 现 4. 5. 2. 2. 3 导出白盒序列图
4. 5. 2. 2. 1 ArchitecturalDesignPkg 的更新 见图 4 - 50。
执行步骤与章节 4. 5. 2. 1. 1 所描述的一样。
4. 5. 2.2. 2 分配系统模块属性到部件
_
见图 4 - 49。
I POP夕
ifeon«(Tlin»|j(nitSlilu*)
ghforl
_
Sec8yaControll« r
nvtStalu
^ziru*]
— i- i
^ 3:
dSwcuntyOirdO
J
^ r» «dS»cudtyCanl )— — — va da»8*curttyC«fd
^ dwcfcfofTl
•MessageActioa*
iltd«»8*c明tyCafdQ
%«li(t«t*S«cumyCard( C« rdSufti«) ^
P
〔<« •! (CardStstu«^»Valld) If
[ScFallCount< 3] .
〈ScF IICounm”〉
□ •
VP丨
|alarm | ImmtAtannf ]
^
kaMAiarmO
] logExil
二 !
I r qUnl<
*
•«* cf
T
<lPo« ntOnloc* 靡
I
1 < jAcaia
^ oir*Lock»t
^
1
-
图 4 4 9 白 盒 活 动 图 Uc2 Contro
丨 Exit -
图 4 50 _
白 盒 用 例 场 景 WB Uc2Scl ( 正 常 和 例 外 场 景 1
095
_ ■ 基于模型的系统工程最佳实践
_
SecSysContfOllerExit Ctrl
WaitForExitRequest A
4. 5. 2. 2. 4 端口和接口的定义 reqValidateSecurityCard
_
IBD SecuritySystem )
ProcessingSecurityCardData
1} 1 ] pCardRsadtrExIt
<
pAcc»«Po nt
^
pStcSytConlrolltr
/ logExltOata (); reqAlarm to pCardReaderExit
w ^^
Q
— —O
I1 lUMmln
fj pS«c3ysControll « r w
UnlockingAndLocklngAccessPoInt
reqProces8Alert("Exit Failure") to pAdmin
>
WaitForResetAlarm
%
reqResetAlarm
evAccessPointLocked
图 4 51- 实 现 的 用 例 模 型 Uc2Contro
丨 Exit 的 IBD 与产生的端口和接口
reqResetAlarm to pCardReaderExIt
>
4. 5. 2. 2. 5 实现的用例行为的定义
ProcessingSecurityCardData
Check! ngForTimelimitVIolations
i /ScFailCountsO;
ValidatingSecurityCardData (?)
checkForTlmeLlmitViolation8(TimeUmitStatu 3);
''
reqPI «playCardStatU 8(CardStatu «) to pCardReaderExIt
,
reqProce 98Alert(wTlmeLimitVlolationa ) to pAdmin
>
reqValidateSecurityCard 值 得 注 意 的 是 , 状 态 图 中 的 行 为 板 块 的 重 用。状 态 图
=
[CardStatus ="Valld *T
waltForRequest _
SecSysControilerExit Ctrl 和 ProcessigSecurityData 是 黑 盒 用 例 Uc2
I Iel » J CardValid
*
SecCardFailure
ControlExit 拷贝的扩展。状态图 UnlockingAndLockingAccessPoint 是无
flagSecurityCardFallure (ScFallCount) ; 变化的拷贝。
与 章 节 4.5. 2. 1.5 描 述 的 步 骤 相 同 , 角 色 模 块 Usei• 和
096
[ScFallCount < 3]
:
FaiOTimes
Adminstrator 的行为需要应用 SE-Toolkit 功能 Create Test Bench 进行扩
展。角色模块 AccessPoint 的基于状态的行为需要可视化地进行扩展。
第 4 章 案 例: 安 全 系 统
_
4. 5. 2. 2. 6
实现用例的验证
对实现的用例模型 UC2ControlExit 的验证 ,是在所捕捉的用例场 :User CardReader :SacSysController :Admin AccaasPoint
Exit
景的基础上 ,通过执行模型来实现的。正确性和完整性分析是基于对
\
111
模型行为 ( 动画型的展现状态图和序列图) 的目视检查来实现的。 Fot
^\ i
^
1>
\
4. 5. 2. 2.7 非功能性需求的配属 ch
^ aT'
Its tatUS
\
用例实现工作流的最后一个步骤是分配非功能性需求。为保证与
1 / \
所有用例相关的非功能性需求被考虑进来 ,相关子系统模块到非功能
se tyca ^\ \
\
依存关系来定义。 rdo
-tycasp
《 satisfy 》
性系统需求的跟踪关联性 ,需要用
§
\
|securl \
\
/
/
/ i rris va
|
^\
\
f
/ \
/ \
/ |\
/ \
/ I rds ta va \
/ ^ >
/ \
、/ \
\
、 I
§: ^
、
/ I
4
、
/ :
/ \
/ \
/
/
/ ^
ssp \
\ J
一
/ \
/
/
^
-
图 4 52 动 画 型 的 序 列 图 WB _ Uc2Scl ( 正 常 场 景 )
097
■
» ■ 基于模型的系统工程最佳实践
所实现的用例供型
系统需求 ,则我们需要对名字进行和谐化调整。
•
如果两个操作使用不同的名字 ,描述不同功能但关联的是相
aa模型执行确认集成协作
同的系统需求 , 则系统需求需要被分开。子需求各自的关联关系也应
该建立起来。
•
如果两个操作使用相同的名字 ,并关联到相同的需求 ,但描
述不同的功能 ,则名字需要被修改 ,而且系统需求应作适当分离。子 图 4 S3- 集成用例实现工作流
需求各自的关联关系也应该建立起来。如果有变更情况 ,所实现的用
例模型需要基线化。 [ L
追加到模 套 純 |
图 4 - 53 显示的是集成用例实现的工作流。 I
_
第一步是创建与 Rhapsody Harmony 相适应的项目 SecSys IA。所
[ 合娜a 套frfi ]
实现得到 (白盒 ) 用例模型 UdControlEntry 作为第一个集成贡献者被 f 1 SE-Toolkit 功能:
l 西开
J Merge Blocks
导入到项目。
非常重要的关键点是 ,所实现用例的后续集成基本上聚焦于各自
创建/更新
端口和接口
-
SE Toolklt 功能:
架构组件的集成。一旦导人 ,其他步骤需要启动协作关系。
_
—
有关所实现用例模型 Uc2 ControlExit 的导入 ,相关信息会捕捉在 集成导入模块状态图
_
个独立的 Rhapsody 项目 Uc2ControlExit HandOff 中。值得注意的是 ,
该项目仅仅是用于集成的临时项目。 重构集成旗块状态图
用例的协作性以及集成系统的准确性和完整性应该通过模型的执
行进行确认。
1 麵色行为
098
第 4 章 案 例: 安 全 系 统 麵
4. 5. 2. 3. 1
创建基础集成架构 ( IA ) 模型 SaS'dlliJ
在该案例中 ,所实现用例模型 UdControlEntry AD 被选择为集成 _ - Components
Packaaes
系统架构模型的基础。 ^-
RequirementsAnalysisPkg
- Packaqes
t CD RequirementsPkg
00
_
-
f•9 LDesignSynthesisPkg
Packages
创建一个相应的 Harmony 项目 SecSys IA - £j ArchitecturalDesignPkg
在套件包 RequirementsAnalysisPkg 中 , 对 UseCaseDiagramsPkg ,
-
— _
Block Definition Diaqrams
BDD SecuritYSystem
Blocks
操作 Delete from Model 0 SecuritySystem
Association Ends
©
4 k? connectors
1
• _ _
对 Ucl BB InterfacesPkg ,操作 Delete from Model ;
4 L : iUser_ FingerprintScanner
iSecSysController Camera
.
• _ _
移动 Ucl WB Interfaces 中的接口到 InlerfacesPkg 中 , 并对
iSecSysController.CardReaderEntry
iSccSysController.FingcrprintScanncr
_ _
空的套件包 Ucl WB InterfacesPkg , 操作 Delete from Model
iCardReaderEntry SecSysController
_J iFingcrprintScanner_SccSysController
.
iSecSysController.AccessPoint
在 套 件 包 SecuritySystemDecompositionPkg 中 , 对 套 件 包 B iSecSysController.Admin
_ _
SecuritySystemWB AD Ucl , 操 作 Delete from Model
f B iAccessPoint _5ecSysController
f B iAdmin.SccSysController
£^3 TypesPkq
Profiles
在角色套件包 ActorPkg 中 , 对所有与功能分析相关的角色端
_
口 ( pUc Ucl Control Entry ) , 操作 Delete from Model 图4 55- SecSys_ IA 模 型 的 Rhapsody 项目结构
099
_ 基于模型的系统工程最佳实践
_
IBD SecuritySystem )
4. 5. 2. 3. 2
配置用例实现的交付 lttS«cSv»ControllT
需要配置一个特定的交付模型。
_
创建相应的 Harmony 项目 Uc2ControlExit HandOff
图 4 56- IBD of the HandOff Model Uc2 ControlExit _ HandOff
/
^ \ 对下述套件包操作 Delete from Model :
• RequirementsAnalysisPkg
ik-i
+丨
― Components
Packaqes
• FunctionalAnalysisPkg :」
DesignSynthesisPkg
Packaqes
ArchitecturalDesignPkg
在 Rhapsody 项目 Uc2ControlExit 中 ,对下面的套件包操作 Add + Block Definition Diaqrams
\v Blocks
to Model : + 二丨 Internal Block Diaqrams
1
二丨二 packaqes
•ActorPkg. sbs ft
ExecutionScopcPkg
SecuritySystemDecompositionPkg
•ArchitecturalDesignPkg. sbs '? C_' Packaqes
+: p
CardRcaderEntryPkg
•InterfacesPkg ^
CardReaderExitPkg
+ £-i Fi ngcrprl ntSea n ncrPkg
■
步骤 1 : 追加模型套件包
_
以下 Uc2 ControlExit HandOff 的套件包 ,使用 Rhapsody 功能 Add
to ModelAs Unit , 集成到模型 SecSys_ IA model 中 : + - Components
-
- Packaqes
•CardReaderExitPkg. sbs 1
£J RequirementsAnalysisPkg
- Packaqes
- 1
Aod Dependent
*
f
* h CardReaderExitPkg
+丨f FingerprintScannerPkg
urrt
“+
SecSysControllerPkg
二i Blocks
O SecSysController
^ S+ Blocks
SecSysControllcrPkgJmport
L) SecSysControllerJmport
+ SeajritySystefnWB _ SD_Ucl
+ £:
. SecurttySystemWB _ SD_ Uc2
MocJel
f ActorPkg
f InterfacesPkg
CanlR
£□ TypesPkq
S C Profiles
load
_
在套件包 SecSysControlier Import 中 ,将模块 SecSysController 换名
为 SecSysController Import
— 0
101
基于模型的系统工程最佳实践
^
Select flies
( \
^
Files to compare
Lett side Rhapsody unit | Browse 1 如果有变化 , 在继续进行前需要手动解决
Right side Rhapsody unit Browse
1
Compare with descendants
Base-aware mode
v*
Q 点击 Start 按钮 , 开始合并流程 :
DiffMerge
( OK :丨 Canct
Do you want to automatically merge all trivial differences ?
_
、 选择 Uc2 ControlExit HandOff 模型中的 InterfacesPkg. sbs , 作为
一/
Don't ask me again. Use my current reply QS default .
Left side Rhapsody unit
Yes No Cancel
7
Rhapsody unit
—
选择 SecSys IA 模 型 中 的 InterfacesPkg. sbs , 作 为 Right side
回答 Yes 进行自动合并所有细小的差异性。所有差异性会自动
解决。
102
标 选 BaSE -aware 选 项 框 , 选 择 EmptyModel and 模 型 的
InterfacesPkg. sbs , 作 为 Base Rhapsody Unit
—
^
从菜单中 ,选择 File > Save merge as…
_
覆盖 SecSys IA 模型中的套件包 InterfacesPkg. sbs
第 4 章 案 例: 安 全 系 统
Components
步骤 3: 合并模块 packages
RequirementsAnalysisPkg
-
借助于 Rhaopsody SE Toolkit 工具箱 ,将模块 SecSysControllerlm- £:DesignSynthesisPkg
'
Packaqes
port 的操作 、 接收 、属性合并到模块 SecSysController 中。 ArchitecturalDesignPkg
Block Definition Diagrams
BDD.SecuritvSystem
L# Blocks
t - Internal Block Diaqrams
- Packaqes
^
SecuritySystem DecompositionPkg
Tools > SE -Tookit > Modeling Toolbox > General
—
•
Packaqes
請
GirdReaderEntryPkg
CardReaderExitPkg
_
在 SecSysControllerPkg Import 中 ,选择模块
FingerprintScanncrPkg
SecSysControllerPkg
_
SecSysController Import (^
/ \
4 )
S Blocks
LI SecSysController
SccSysControllerPkgJmport
_ _
SccuritySystemWB SD Ucl
_ _
p SecuritySystemWB SD Uc2
- O
点击 Set Source f ActorPkg
f f IntcrfacesPkg
TypesPkg
0 Add Dependencies
103
■ 基于模型的系统工程最佳实践
步 骤 4: 创 建 更 新 端 口 和 接 口
右击 SecuritySystemWB _ SD _ Uc2 ,并选择
借助于 Rhaosody SE Toolkit 功能 Create Ports And Interfaces , 可以 0 SE-Toolkit > CreatePorts And Interfaces
创建 SecSyS_ IA 模型的端口和接口。
Q 手动追加代表端口和相关界面
法
! 在导入的序列图套件包中, 更新生命线名字并检查信息的自动实
手动连接端口
现状态 ^
IBD_ SecuritySystem )
itsSecuritvSvstem
itsCardReaderEntrv 1 itsCamera
pCardReaderEntry □ h j
[ ] pUser pSecSygController [ y □ pCardReaderEntry pCamera ~h □ pSecSysController
itsFinaerprintScanner
1 itsAdmin !
pFingerprintScanner G □ j
[ ] PUser pSecSysController pFingerprintScanner pAdmln □ y pSecSysController
104
__
^
步骤 5 : 集成导入模块状态图
O) 将导入的模块的状态图拷贝并粘贴到合并模块的状态图中 ,
并形成一个并发的状态
一旦导人模块的状态图拷贝到合并模块的状态图中 ,对导入
模块的套件包操作 Delete from Model
第 4 章 案 例: 安 全 系 统
—
SecSysControllei
reqValidateSecurityCard reqValidateSecurityCard
reqTakeSnapshot to pCamera
> CardValid
Processing SecurltyCardData
Fail 3Tlmes 4
Processing SecurltyCardData
CardValid ScFail3Times
3 / k> gExftData () ; reqAlarm
>
Authenticated
Processing Biometric Data
Bs Time out BsFall 3Tlmes >j
>
/ disable Us erAccountf );
logAccountData() ;
reqProcessAlert("Exlt Failure") to pAdmin
>
®
t® ® l>ik> ck In gAndLocklngAccess Point
■
WaitForRes etAlarm
/ disableUserAccount ( );
A logAccountData( ) ; %
reqResetAlarm
evAccessPointLocked
I logBitryData();
> >
V
reqAlarm to pCardReaderBitry reqResetAlarm
Unlock ingAndLocklngAccess Point
% A
reqProcessAlertTUser Acc«ss Disabled") to pAtknin
>
WaitFor Res etAlarm Checking ForTImelimitViolations ' =;
reqResetAlarm check ForTimeLimitViolations();
reqResetAlarm to pCardReaderEntry
> v
evTimeLim It Violated
步骤 6 : 重构基于状态的行为
状态图 SecSysController_ Ctrl 可选方案 1
区分人口请求 ( Entry request ) 和出口请求 ( Exit request )
在 SecSysController_ Exit _ Ctrl 状 态 图 和 其 子 状 态 图 中 ,更 新
“ Send Actions” ,并变更连接口 A 和 EnterExit PointsFaiBTimes
and CardValid 的标签
S« cSyiControllerCtr1
J S^ cSyiControlltrExIt.Ctri I
SQCS ytControlle r Entryj
:
1
WaltForEntryRequest
WaitFocExitRaquotf B
A
_
reqVilldateSecurityCard[IS PORT (pCafdRead6 rExit)]
_
reqValidateSecuiityCardpS PORT(pCardRead# r£ntry)]
_
>
—
Processing8« curltyCardData Bcit
rtqTakaSnapshot to pCam« ra
-
CartfVaHd FailTnmes ExIt^
—
®
—
P rocotti ngSocurityCa rdData Entry
_
CardVilid Entry
一
_
Fall 3T1m ®» Entfy - ZlogExitOataQ; rtqAlarm to pCrdRaaderExit
t .
rtqProct AI rtTExIt Fallurv") lo pAdmln
>
——
Proc«KingBiometvicOata
Authenticated
•丨 UMrAccauntQ:
/ dinb
logAccountOataQ;
UnlocldngAndLockln0Acc«i
® % 0
ZdisableUttrAccountO; %
logAccountDataO;
A
• vAcc# ssPointLock»d
logEntryO^ taQ;
Unlock!ngAndLocklnsAcc«anoint raqAlarm lo pCardftead# r ntry
> B
r»qR»MtAlarm lo pCardRaad« r xlt
>
命
%
reqProc^ MAtorlfUsvr Acc«»
> I
Ch«ckingForT1m » l!mlfVlolations
WaitForfia»tAlirm
ch#ckForT) m«LJmltVlolationt(Tlm« LlmitStatus);
rvqReM
Proces<ingS«cur1tyC«rdDaUiJ
是 手 动 合 并 并 发 的 两 个 过 程 , 即 SecSysControllerEntry _ Ctrl 和
valldataSecurityCard(CardStatut);
fUMrRequ« 8t*»**Exir) -
[U»rRe qu« st=» £ntryq
SecSysControllerExit _ Ctrl。
.Ctr1
S«cSytCon1rolkr
reqDlaplayCardStatustCardStatus) to pCardReaderEntry
[ CardStatiJs«=
>
-ValldT
i
F
• 丨丨
w©
^
CardValidEntry
-
WaltFofCntryR^qyrt
reqValidateSecuHtyCard
reqDl 8playCardStttua(Card$tatuf) to pCardReaderExit
>
_
pS PORT (pCardR #« derExlt)J/ [IS PORT(pCa rdReada rEntry)]/
reqValidateSecuHtyCard
WaltForRsquost
Fall
-
lCardStatus»* V»lldT
一
_
UMrR« qu8 «t="Entry"; CardValldExit
l lM】
*
—
nqT»k# Snap #iot to pCamtra
L A
S cCardFallure
>
/ logExitOataOi
Fail 3 TlmesExlt
名) CardValldExit ◎
s»rRequ« ft» *HEntryT
reqAlarm to pCardR aderEntry
*
FaMT 3T)m«(Entry •
【 1»】
>
/ disableU erAccount();
CardValldEntry
reqAlarm to pCardReaderExit
*
logAccountDataO;
/ dlsableUwfAccountO :
logAccountDaU();
,.
«
ProcearingBiom«tricData FalOTimesExIt FailT3TimesEntry
Authenticated BsTimeout BsFalOTImet
%
I
>
ProcessingBlometrlcData
reqProcessAJertC'Exit Failure") to pAdmin
/BaFallCounM;
/logEntryOataO;
UnlocklngAndLocklngAcc«nPolnt
reqProc
^ siAJertTUwr Acc«»丨
,
D sabl d ) to pAdmin
*
f
reqRofetAlarm to pCardRoader£ntry
> [BsFailCount<3]
[param^ AuthentlcallonStatUB== "Auth«ntlcjitod"]
BsTim«out
r«qR»»tAlarm to pCardRead«rExlt
> [else
rtqCXaableBiometilcScan to pFingerprintScanner
Authenticated
JL
BiometiicScanFallur«
ffagBiometrlcScanFalluralBaFailCount);
(BsFailC<Hjnt«3]
/TimftLimitSUtussfalM; [TimeLlmltSlatii ^»
raqAlarm to pCardR adtrEntry
^ >
/disablaUMrAccountO,
r qProc«nAlertCTIm«LlmitVlolationN) to pAdmin
* > BcF 癱 ll3Tlm
“
loflAccountDataQi
107
基于模型的系统工程最佳实践
_
0 在内部模块图 IBD SeuritySystem 中 , 右击 User 模块 ,并选择
SE -Toolkit > Create Test Bench
鲁 vAcc« aPointLock*d to pS修cSysControll會 r
tm (1000 )
> unlocking
tm (1000 )
Cancel
Q 选择 No
Active
•
_ 「(
>
send 一 reqReadSecuntyCarcrRimPortpCa jReaderEntry> OPORT( pCardReaderEntry ->GEN ( reqReadSecurityCar(l );
i send reqScanBiometnc DataThaiPortpF ingerpnntScanner OPORT( pF «ogerprmtScann©r )->GEN( reqScan Biometric Data )
: send reqReadSecuntyCartfniruPortpCardReadGrEj< it OPORT( pCardReaderExft ->GEN ( reqReadSecuntyCard )
_ >
图4 - 61 扩 展 的 角 色 模 块 User 的 行 为
108
第 4 章 案 例: 安 全 系 统
nssums
注 :模 型 的 验 证 应 该 覆 盖 SecSysControllei• 模 块 的 两 个 可 选 方 案 的 状
态图 。
-
nab<« BOM IncS c
£□ SccSysControllerPkg ^
1c 0ati (A dherticati Slatus - AutM/Acat
iJfvrticalK^Status ^ AuMnica
S Blocks
D SecSysController
f.
+
+
i
'
^ Attributes
Comments
Generalizations
; ij* Operations
+ ; i3 Standard Ports
Scan/f
T
^a
—
Statecharts
t * Refactored Statechart Alternative 1
.
一
» • Refactored Statechart Alternative 2
'
•-
^
/ ^ Qf ^ adSecun ^jCj
/. "
I r#
rdStatui
Kf Batin, Vaid)
1 一
图 4 -6 2 SecSys_ IA 验证动态序列图
109
第5章交付到子系统开发
在安全系统案例中 ,读卡器和指纹扫描系统被决定使用 COTS 组 • InterfacesPkg. sbs
件 , 而安全系统控制器 ( SecSysController ) 子系统则作为自行开发系
统。如章节 2.2. 4 中所描述 , 到子系统开发的交付是由集成系统架构
7) 由于接口在工作流中会重新产生
/ ,在 InterfacesPkg 中 ,对所有接
口操作 Delete from
Model
模型基线所导出的可执行模型。
^^
将 SecSysControllerPkg 和 Sequence Diagram packages ( 序列图套
0 创建一个相应的 Har
mony Rhapsod} 项目 ,
¬
_
BDD S»eSysController )
.
件包 ) 移动到套件包
DesignSymthesisPkg 中
SecSvsControlfer
匕 Components
Packages
并命名为
_
Block 邐
:g !
■
RequirementsAnalysisPkg
S« cSyaControllar
Q 手动追加下列角色到套 DesignSynthesisPkg
©
SecSysController HandOff
对以下两个套件包 ,
操作 Delete from Model :
l
CardRaaderEntry
件包 ActorPkg 中 :
•Admin
Block Definition Diaqrams
5 BDD.SecSysControler
^
一 Internal Block Diaqrams
羞 IBD.SecSysController
Packaqes
• Functional AnalysisPkg
• UseCaseDiagramsPkg
Q • Camera
• AccessPoint
1 p SecSysControllerPkg
-
+
Blocks
D SecSysController
!Sp
Acc* »«Polnt
FlnB« rprt ExectionScopcPkg
• CardReaderEntry
tScannar
SecuritySystcmWB _SD_ Ucl
© 在 SecSys一 RA 项目中 ,
操作 Add to Model As
|l
CtrdRaa darExll Admin
• CardReaderExit
• FingerprintScanner
t
t
ActorPkg
iJ- Actors
- Admin
SccuritySystcmWB _SD_ Uc2
unit , 追加 ^ Camera
^^
+
111
基于模型的系统工程最佳实践
fT) •
考虑到该新系统的范围 , 更新下列套件中的序列图 :
_ _
SecuritySystemWB SD Ucl
S#cSytControllTSc2
:CardR«ad « r
^ . .
3 cSyaControl I r
• SecuritySystemWB_ SD Uc2
注:请不要忘记自动实现对角色的信息。
一
\
(
〕
\ qDiapiayCa rdStabn CardStatus }
validatoS« curttyCartS(CardStatu8)
、 N
推荐重新命名更新的序列图并将它们移动到一个新的套件包中。 、
、
t,
SecSysControllerHandOff
Sequence Diaqrams
• 、
、
、 < BcFallCoun 3
^
dlnbl« U« rA(
^
cuntyC« rdFai » ur*(ScFai ICoi
\
)
、
C SecSysControlcrSc4 HandOff Control Exit Nominal and Exception
\
rvqKftsetAlarmO
\ \
\ \
SecSytControllerScI /
\
\
Card Reader :SecSyaController : Fingerprint II
^j I
lAcnaaPoir
_
Scanner
alida te se c url 、
、 、 \
IIfTl- cslla
/
s.rpr
VAV
? <、 、
»
、
Jrti 祕
/
«
/
/
\
Uig«fpfint
^Scanner :Admin
-
、
ra rds tai
T
• >
/ \ N
\ l
/ / S r» tAulh« nticationStalM(Auth# ntiC4itlooStatus)
、 、
\ s
ws
s
in :
\ / / \
”
|
'N (
i
、 (tl
、
/ / \ \
\
>
\
、
/ na 0Blom# Dl
、
ScanFailurtt (B
ntiita ^ aivCoum)
\
、
/ /
、
"Au !
\ / / \
、
、 、
sw
/ / \ N -
A ccountf )
、
I*
\ s
T CO do 、
N
-
^ 、
t
、
I
、
\
\ / / \ N
I
I / \
相
〆 / \ \ s
/
/ /
\
\ r« qR« M
rVqRcMtAlarmQ
^
、 、
N
/ / \ s \
、 、
N
\
、
/ \
s
2 s.
第5 章交付到子系统开发
SecSyiControlUr^Ctri
基于更新的序列图 , 使用各自的 Rhapsody SE -Toolkit 功能 , 创
建端口和接口 Wa ItForEntryR籲 que 鰌
r9 qValldateS« curityCard
• CardReaderExit CardValldExIt
FailT3Tim « iEntry
• Camera CardValldEntry
• Administrator
角色模块 AccessPoint 基于状态的行为可视化地描述如下 ( 参考 Authenticated
ProcoasIngBiometricData
BsTImeout BsFalOTImes
%
SecSys一 I A ) : rtqProceoAUrtTExIt Fillurf
^ to pAdmin
_
IBD SecSysController J ZlogEntryDalaO;
reqProcossAlertCUsar Accaas Disabled ") to pAdmin
ItsSecSviControllef
UnlockingAndLockingAccessPoint
ItsCardRaaderEntry
pCamerar) 3
i pSecSysController
ointLocked -
aerR« qu« at* "Exin
pS«c8ytControllor
pSecSytCorrtroller
{ j pFing« rprintScanner
Q pCardReaderExit
pSocSyaControll ^ r
IteAdmln i
—
reqRe tAlarm to pCardRtaderExIt
reqR « fttAI« rm to pCardReadtrEntry
>
CheckingForTimelimitViolatlons
pAdmin r} pSecSysController
checkForTimeLlm!tVlolations(Tim 0 LlmltStatuf );
ItsCardReaderExit
rrimtLImllStatu^ falM ;
t rnmeUml (StatU8e==true ]
113
■ 基于模型的系统工程最佳实践
114
第5 章交付到子系统开发
续表5 1 -
ID 系统需求 需求类型 满足于
Three Attempts On Employee ID Exit
SYS16 功能性 flagSecurityCardFailure
Upon exit the user shall be allowed three attempts on card identification .
Three Attempts On Employee ID Exit
SYS16 功能性 flagSecuri tyCard Failure
Upon exit the user shall be allowed three attempts on card identification.
Time Limit Violation
SYS17 功能性 checkForTimeLimitViolations
An alarm shall notify if a person stays longer than 10 hours in the secure area.
Denied Exit Notification logExitData
SYS18 功能性
The administrator shall be notified about any denied exit. The notification shall include user account details. reqProcessAlert
Alarm -Exit
SYS19 功能性 reqAlarm
On a denied exit an alarm signal shall be raised .
Employee ID Card Identification - Exit
SYS20 功能性 validateSecurityCard
Exit shall be protected by a security check based upon employee ID.
Visualization of Security Card Check Status - Exit
SYS21 功能性 reqDisplayCardStatus
The user shall be visually informed about the status of his/ her ID card check .
Authorization of Security Card - Exit
SYS24 功能性 CardStatus
The user shall not be allowed to exit until the security card has been successfully authorized.
SYS25
Entiy Time
The user shall be given sufficient time to enter the secure area. 非功能性 _
t Unlocked
Time Between Two Independent Checks
SYS26
The time between the two independent security checks shall not exceed a configurable period . 非功能性 evBsTimeout
Processing User Request
SYS27 非功能性 SecSysController
The system shall only process one user at a time.
Biometric Data Storage
SYS28 非功能性 SecSysController
Biometric data shall be stored in the system database and not on the security card.
Time Recording SecSysController
SYS29
The time a user spends in a secure area shall be recorded. 非功能性 logExitData
Exit Time
SYS30 非功能性 SecSysController
The user shall be given sufficient time to exit the secure area.
Automatic Securing the Secure Area - Entry
SYS31 功能性 evAccessPointLocked
Once the user has entered the secure area the system shall automatically secure itself.
Automatic Securing the Secure Area - Exit
SYS32 功能性 evAccessPointLocked
Once the user has exited the secure area the system shall automatically secure itself .
Configuration of Entry and Exit Time
SYS33 非功能性 SecSysController
The time to enter and exit the secure area shall be customizable.
115
基于模型的系统工程最佳实践
Animated SecSy»ControllerMod#IVdrfflcation J
通过执行模型 , 验证 SecSysControlIer_ HandOff 模型 rlngtrpnnt S# cSy«Controll«r
Entry Exit Scanner
.
Ext Bception reqvalidata rdO
N
\
s \
\
<
rd CardStalus ■ Nof Valldy
s \ \ s
s 丨a yC «rdStetu rdS ■ Not Valid )
\
flaoS«cu •2)
\ s
\ s s c AJ龜rm()
| \
\ s dl«bl»UsorAccount )< s
\ \ \
\ \ \ \
\ \
\ \ ^
yp ■ Exit Fallura \
\
\ \
\
\ \
\
\ \
\
\ \
\ MtAiarmO
s
s
Entry reqValldata
\ \
\ \ r»qTalM9nap«iol0 \
\
\ \ Valid] \
\ \
\
^• ^>layCardSt» (Ca
qDi M Valid)
\ \
\ \ \
s N \
\ S
s
^
uitMntfcalid )
N 、
\
s
s 、
、 / ^^ JogCntnfO ..
t O
\
\
、S \
\
S
\ \ s
s
\ s s
\ s
\
\
\
•vA ^ *aaf> \
s
\ \ \
\ \
\ \ \
注:超时事件有意地没有显示在此图中
116
附 录
A1 建 模 指 南
该指南详细描述了 SysML 对一个系统建模和最佳实践的应用,是作者多年在不同行业 ( 航空航天 、国防 、汽车 、电信、医疗 、工业自动化
及电子消费领域) 经验的累积。该指南经过多年的沉淀和改进 ,不断增强 ,已证明为行业的最佳实践经验和基于模型的系统工程最佳实践。读
者可以根据自己涉及和专注的领域 , 举一反三地灵活应用。
A1.1 一般指南和绘图规约
以下是对所有图推荐的指南和绘图规约。
• 用少量元素绘制简单的 、具有关注性的图。作为一个简单规 •保证图中元素具有相同的抽象层次。
律 ,一张图中不要有多于 10 个的主要元素 ( 模块 、用例、角色等)。 •在一个层次形式中组织图形。在套件包中,把图放置在与其
• 保证所有图能在 A4 尺寸的纸张内打印出来。 在系统层次中的相关位置相一致的地方。
• 绘图排版时避免线的互相交叉。所有线应该是直线或直线连 •保证把准确的 、 完整的描述输人到所有模型元素中,以帮助
接线。 理解模型 ,并为最终的模型交付打下基础。这些描述也应支持从模型
• 以一致的尺寸创建元素。等距离地安排元素空间和排列 , 避 中自动创建文档。
免造成视觉混乱。 • 在图中 ,避免过多使用描述性注释。一般情况下 , 推荐把描
•在所有模型套件包中 ,对字体 、形状、符号 、线形和色彩 , 述放在图形工件中相应的描述区域。
使用一致的 Rhapsody 缺省设置。 •
在模型中 ,不要使用批注或评论。
• 在图中 ,将有关系的的元素放置在一起。
117
基于模型的系统工程最佳实践
A1 . 2 用例图
_
^r
UCD S»curltySy»tem
^^^ ^^
系统边界之外,并通过关联连接到用例。 ~
Uc2Control ExU
元素和工件
描述其最终目的。
118
附录
_
A1 . 3 模块定义图 _
BDD SecurltySystem )
SysML 中的模块定义图显示了基本结构元素 ( 模块) 和它们的关
系/ 依赖性。基本结构元素可以是角色和子系统或接口。 «Block »
SecuritySystem
Camera
元素和工件
—
動模块 ( Block ) : 个可包含数据和行为的实体。一个系统模
块可以是分解后的子模块 。一个系统模块是一个可重用的设计
0
AccessPoint
兀素。
费 角 色 ( Actor ) :
~ — 个外部用户扮演与系统相关的角色。
-
注:该 元 素 不 显 示 在 Rhapsody 工 具 栏 中 3 该 角 色 需 要 在 浏 览 器 中 ( >
CardReaderEntry Fingerprintscanner
ActorsPkg) 被 定 义 ,并 被 拖 到 模 块 定 义 图 中。
? 接 口 ( Interface ) :
—
个由事件接收和/ 或操作构成的合约。在
Harmony SE 中,接口仅包含事件接收。任何实现接口的系统模块必须
履行合约。接口不包含行为。
CardReaderExit
•ysControler
Block *
h 关联 ( Association ) : 表示系统模块和角色之间的双向关系。
图A 2 - 模块定义图
A1 . 4 内部模块图
®I 流动端口 ( FlowPort ) : 特指在模块和环境间流动的输人和输出
Sy8ML 中的内部模块图显示了模块定义图所定义的系统结构的实 项。输人和输出项可以是数据 , 还可以是物理实体 ,如流体 、固体 、
现。它包含了一组嵌套的部件 ( 即模块实例),这些部件是由端口和 气体和能量。
接口彼此相连接在一起的。 S 连接器 ( Connector ) : 两个端口之间的连接是支持接口间的信息
—
元素与工件 流动的。当两个部件享有同样的父部件时 , 两个模块之间的连接用单
0 标 准 端 口 ( StandaidPort ) : 个被分配到某个模块的并被命名的 一连接器模块化。但是 ,当两个模块具有不同的父模块时 ,部件之间
相互作用点。该模块的实例可以通过它进行信息交换。 的连接需要通过代表端口形成多连接器的连接。
_S«curitySystofn_l
i
pSecS pCardReader_Ent
itsUser
pUser.Entry LE01 Entry:tLED _
LED1 EntryiLED
_
pCardReader Entry _
LED2 EnlryiLED
pCardReader_Exit Alarm Entiy:bool
pAccessPoint
T] pSecSysController
■
1 CardReader
pSecSysControder
pCamera[S
pUser Exit
一 1 BdttLED _
LED1 ExittLED
pSecSysController
f] PUser
_
fi
LED2 ExrttLED LED2 ExittLED
itsFlnoecprirHScannef
_
pUser FpScan
O PUser
120 -
图 A 3 内部模块图
附 录
指南和绘图规约 命名规则
•把子部件放在所属部件内部来显示部件分解。 •内部模块图名应有前缀“ IBD_ ” 。
•尽可能地用垂直放置方式安排附件。并且 ,尽量把与外界系 •部件应保持由 Rhapsody 创建的缺省名 ( its < BlockName )。只有
统交流的端口放置并排列在模块的左边 ,而把系统内部交流的端口放 在用例模型中 , 角色的实例名应参照用例 : _
( Ucd < Nr > ) Uc < Nr >
置并排列在模块的右边。 A_ < ActorName > 0
•在显示选项 ( Display Options ) 上,使用标签功能 ( Label 功 •端口的命名规则是:p < CounterpartName > 。
能),以保证部件名在内部模块图中的简化 ,即使是部件与其他部件 •端口的名字应该放在相关部件的内部。
或与跨越套件包的系统模块相关联。 •接口名应该考虑发送端口,命名规则:i < Sender > _ 〈 Receiver >。
•依据所描述的细节和层次,可以进行图形转换。如:以隐藏
或显示属性和操作。所有部件间的信息交互通过端口和定义好的接口
进行。
•依据所描述的细节和层次,可以将图形转换为一个特定的图
形。如:可以隐藏端口/ 接口的象形文字 ( 棒棒糖符号/ 插座符号),
以避免混乱。
•避免创建巨型内部模块图来显示所有系统每个部件的端口。
这样会立即使图形过于混乱 ,变成不可读。取而代之 ,可以以任务为
目的 ,分开创建内部模块图 ,这样可以展示特定的协作和部件分解。
121
__ _ 基于模型的系统工程最佳实践
A1.5 活动图
法:一舨情况下 ,不推荐用子活动。被分解的子活动是不 t 在泳
道中分开的 。如果被分解的子活动需要在泳道中分开 ( 参考架构设 没有其他判断点满足条件时 , “ else ” 应被追加来提供一格缺省
计 ),父活动則应使用呼叫行为 ( Call Behavior ) 进行分解。 分支。
Q 呼叫行为 ( Call Behavior ) : 由另一个活动图所参考的活动。 0 活 动 结 束 ( Activity Final ) : 结束活动图的控制流。
并发的活动。 相关联角色的名字。钉的箭头应显示各自关联的方向 ( 如 :进 、 出或
进/ 出)。
122
■
附 录■ 麵
•在实施复杂系统操作式的分解时,在某一系统层上的活动可
以成为下一个低一层次的用例。
•活动图的流向应该是垂直地自顶向下的流动。初始活动应放
在靠近图的顶部 ,而终止状态则应放在图的底部。
•使用状态图行动语言表达判断点 ,以提供最佳转移到状态。
通过附录 A3/ A4 可以了解 Rhapsody 行动语言的详细信息。
•所有控制流的线都应是直线。控制流不应彼此交叉或在活动
之间交叉。
•当活动图的可读性被直接控制流扰乱时,就只能使用图形连
接器。
•控制流和初始流不能有触发器。
•如一个活动图与其他活动图有关,从该图的浏览器中把那张
图拖过来。这就创建了一个关联到外部活动图的呼叫行为活动。
•通常,活动应该与相关模块中所执行的操作相符合。例外情况:
如带有属性标签 « Message Actions 的活动描述的是信息的接受或转移。
t Unloefctd Block* SS1
■ .
•Block SS2 Blocks SS3
■
_
[ op1 |
"2 I
trMessageActionv
reqOp2
^
- 0
图A -4 活动图
~
:SS1 | :SS2 lI issi
指南与绘图规约 I
• 在 Harmony SE 中 ,活动图专门用于描述用例功能流。因此 , I
选择活动图模式为“ 分析”。 3
rf « •
I
• 在活动图各自的标签中,对前置条件建立文档。 ^ op2
1)
^
I
1
• 不应使用角色泳道。活动对角色的关联应通过行动钉,以属 3
性标签
《 ActorPIN 》来描述。
123
■
»
- 基于模型的系统工程最佳实践
a:在 有 信 息 与 外 部 角 色 交 换 的 情 况 下 , 各 自 的 角 色 钌 需 要 追 加 到 信 命名规则
息 活 动 上。如 : •图形应在图的顶部有纯文本的相关用例名。
•活动名始于动词 ,并以小写字母开始 , 直接映射到系统模块
上的操作名。
<MessagcAction »
reqUnbckAccessPomt
AccessPoint AccessPomt
Action 篇 •MessaqeAction^
siPnnt ^ evAcreaPoinWit bcked
•
t _Unlocked
xness UftAcuon»
evAccessPointL ocked
:SecSysController :AccessPoint
reqUnlockAccessPoIntQ
_
t Unlocked evAccessPointUnlockedQ \
A
V reqLockAccessPoint() ,
evAccessPointLockedQ \
•所有活动应该只有一个出口转移 ,对多转移流出的活动的任
何场景 , 应用条件连接器或叉节点明确地画出来。
124
附录
元素和工件
A1.6 序列图
实例线 ( Instance Line ) : 对角色和模块所绘出的垂直生命线。
序列图通过显示角色和模块间的协作行为 ,精化用例图和活动图 \ 信 息 ( Message ) : 在两个生命线之间创建一个水平信息线 ;或在
所提出的需求。序列图通过用例表达一个或多个场景。 同一个生命线上创建一个回路型信息线。两个模块之间的信息被认为
序列图是由伴随角色和模块的垂直生命线 ,以及这些实体在一段 是异步的 ,而反身型 ( 回路型) 的信息被认为是同步的操作并表示简
时期内所形成的有顺序的系列信息构成。 单的模块中的私有活动。
_ J
moveAxi«B Sc1
^ 条件记号 ( Condition Mark ) : 表示在模块中的模式/ 状态。也可
以用于描述序列图每个实例的前置或后置条件。
>
\
、
\
、
/’ Preconditions;
'' ManualMode and AxisB selected
reqS«tDirection(Dlrectfon)
A 时间间隔 ( Time Interval ) : 在生命线上 ,识别场景中的两个点之
tlX recti on(Direction) 间的时间约束的标识。
、
、 <
reqS«tSp<«d(Speed)
DirectionA selected
> E3 交 互 发 生 ( Interaction Occuirence ) : 帮助管理序列图互相参考的
复杂场景 ( 参考序列图)。
、
aetSpeed(Speecl)
® 交 互 操 作 器 ( Interaction Opera
丨 or ) : 帮 助 组 织 序 列 图 中 相 关
、 jheckPo «Axla<
联的元素。这包括在每组元素发生状况下 , 定义特定条件的选项。
(AxisC ln$af» Pos]
\
、 ch»ckFoi ^ 操作数分离器 ( Operand Separator ) : 用于创建交互分离器的子组
( 如 :并发操作或其可选方式 )。
P
交
°、 [AxIsE inSafePos]
ickStatu«AxfsBO
checkJ + 分 割 线 ( Partition Line ) : 用于把场景划分成相关的信息部分。
2 每个分割线有自己的文本描述区域 , 用于描述场景的章节。
[Axisfi isHomed]
feqMovAxIgBQ
vCmddAxise
mvC _NormalO M 约束 :以文本形式表达出来的语义上的条件或限制。
、 reqMoveAxIaBQ
[else ]
mvCmiiddAxiaB.SIowQ
图A S - 序列图
125
— 基于模型的系统工程最佳实践
指南与绘图规约
•前置条件和后置条件应该在各自生命线上的条件记号中或图
的各自的标签中被记载。
• 如果可能,尽量安排信息交换发生在“ 一般的” 自左到右流
命名规则
在下表中 ,概括了推荐的异步信息命名规则。
名宇 描述
中 ,从序列的顶部到底部。换句话说,生命线的顺序安排应使信息的
用于模块的请求服务( 操作)。这些信息是由指
曲转降到最小。
示服务执行的接受模块上的反身信息跟随的 =
• 考虑到文档易读性的原因 ,场景的打印输出应该放在一页中。
例如 :reqReadSecurityCard
•用分割线将复杂场景划分成易于管理 ,易文档化和逻辑化的 req < Service >
相应的反身信息的名字是除去 “ req ” 前缀 ,以
相关信息组。
小写字母开头的。
•交互操作器不该被嵌套成多于 3 层的深度。 例如 :readSecurityCard
•抽取重用的部分场景到单独的包括使用交互出现的序列图中。
•所有信息线应该是水平的,而不是对角线。模块中的异步信
用于提供返回给请求者的服务 ( 操作) 结果。
息使用一个开放的箭头 ,同步信息 、反身信息使用实心箭头。 ret < Service > Status
例女卩 :retAuthenticateBiometricDataStatus
•属性标签信息要依据它们的相关协议(如:M1553 , Ethernet 等 )。
•使用状态图行动语言来表示对提最佳转移到状态图的约束。 用于发送变更的通知。
•如果一个条件记号表示反映各自信息的模式状态的变化,该 ev < Event >
例如:evAccessPointLocked
条件记号应与状态图中的状态名相匹配。
•在角色生命线中不要显示操作。
•在序列图中不要使用超时。使用时间间隔来描述时间约束。
126
附录
A1.7 状 态 图
状态图显示模块跨越多个场景的基于状态的行为 。它包括了一
^转移。合 同 步 条 (Join Synch Bar )
4,
: 从不同正交状态合并转移的复合
丨
Process ngSecurityCardData
ExItControl
WaitForExitRequest A /ScFailCountsO
reqReadSecurityCard/
ValidatlngSecurityCardData
readSecurityCardO:
validateS«curityCard (CardStatu8);...di8playCardStatus(CardStatu8);
;
ProcesGingSecuiityCardData
igSecurityCardData ^
Fall 3TImes [CardStatus*»"Not Valid"]
-
[CardStatusss Valid"]/
logExitOata ( );
reqReadSecurityCard /
readSecurityCardO;
SecCardFailure
^ flagSecurityCardFailuretScFailCount);
>
UnlocklngAndLockingAccessPoInt
reqProc«88Alert("Exit Failure ") to pAdmin [ScFallCount> 3]
WaitForEntryRequest
[else] © Fail3Ti
reqResetAlarm / evAccessPointLocfced
WaitForReaetAlarm reaetAlarmO;
对具有特定输出的输入做出反应的角色协议状态机 ;
TimeLimitMonitor
信息路由到状态机 ,该状态机转发从一个子系统到另一个子系统
CheckingForTimelimitVIolations 令Vi
tm ( t_ Update) 的请求;
checkForTimeLimitViolationa(TimeLimitFlag );
行动状态中的行动 ( 参考附录 A4 ) 。
/TlmeLlmitFlagaO; T I pimeLimilFlag ==1】
切勿使用“ 出口上的行动 ”。
reqProcessAlertrTimeLimitViolation "} to pAdmin
> • 图形连接器只应该在状态图可读性被一个直接转移干扰时
图A -6 状态图 使用。
A1.8 轮廓 ( Profiles )
表A -2 轮廓中所定义的特定项目属性
轮廓是用特定领域的标签和属性标签扩展 UMiySysML。它也允 属性 价值
许某些特定工具属性被覆盖掉 ,来支持特定领域的建模。这些定制可 _
以应用到整个模型或特定模型元素。 —
Activity Diagram > Transition > line style
—
rectilinear arrows
章节所描述的建模指南。而表 A - 1 显示了为了支持文档化 , 添加到 Statechart > Transition > line_ style rectilinear一 arrows
轮廓中的元素标签的定义。 _
Statechart > DefaultTransition > line style _
straight arrows
-
表 A 1 轮廓中所定义的特定项目标签 Statechart > CompState > ShowCompName false
129
« 基于模型的系统工程最佳实践
流到一系列由转移和连接器相结合的活动节点 ,来描述用例功能。
I、
、rsqReadS curityCardQ
^ 、
Uc2ControlExltBBVIew 1 ~
^ rBadSecurityCard ()
:
dSecurityCard
口validateSacurltyCard(CardStatus)
diaplayCardStatu CardStatus)
^
c validateSecurityCard
_!!y [CardStatua*« MNot Valid"]
【elael
=-
[CardStatus Valld ]
< ScFallCount =a 3
^
reqProcessAlert( AlertType )
logExltData
^ flagSecurityCardFallure
J
_
~ reqRe » tAlarmQ
i^j pr
\ ccessPoi) t
IScFallCount< 3] Admin (CardStatus»« MVall <r]
AcMMPoInt
^
M essageActk>n ogExi
M essagaActi>n
reqProcessAlart
evA ccassPoij tUo bcked
_
t Unlocked
r qUn
^ 丨 ocKAcc PolntQ
Admin
[ Timeout Unlocked]
^ 丨
roqLockAcc^ ssPo nt()
reqLockA ccessPoint ointLocke
*
essageActbn
*
130
附录
_
步骤 1.2 : 识别行动状态
步骤 1 : 识别等待状态和行动状态
步骤 1.1 : 识别等待状态 行动状态是以执行进人行动为目的的一个状态 ,该状态之后 ,它
会完成转移到另一个状态。它是一种组织状态机到逻辑结构中很有用
在一个等待状态 ,目标对象等待事件发生。在等待事件发生时 ,
的虚拟状态。
它是消耗时间的。
用例黑盒活动图中 ,用人 ( IN ) 角色钉来识别行动。在用例黑盒 在用例黑盒活动图 ,识别具有多出口完成的判断条件的行动。对
序列图中 ( 图 A - 8 ) 识别出触发所选择的行动的信息 ( 接收)。对每 这些行动中的每一个行动 ,以行动名 ( 命名规则 : < ACti 0nName >
ing ) 在状态图中创建行动状态 ,并使用 MOORE 语法 ,分配相关的
一个在状态图中创建的所识别的行动 , 一个等待状态命名为 WaitFor
< ReceptionName > 活动。
0
~
在用例黑盒序列图中显示超时事件 ( 图 A - 8 : t _ Unlocked ) 的情 法 :除 了 输 出 相 关 行 动 , 一 个 行 动 状 态 也 可 以 有 分 配 给 它 的 带 有 附
况下 ,在状态图中用描述实际系统状况的名字 , 创建等待状态 ( 图 A 加 相 关 上 下 文 的 行 动 ( 图 A - 1 0 : 行 动 状 态 ValidatingSecurityCard ) 。
- 9 : AccessPointUnlocked ) 0
_
Uc2 ContiolExitCtil
_
Uc2 Coiiti olExitCti I
Voliilafimj SecuiityC «ii < l
. - .
- voli «lateS 0 ciiiityC «inl < C «iHlStotiisH...«lisplayC ii <IStafiisiC «iMlSMtusr
WaitFoi j e<|Re«»<ISecui ityC ii < 1
b |else|
_
WaitFoi evAccessPointUnloched .
Fl i 4jinijSeciiiityC «ii < IF «iiliiie
. .
vbFI «i jSeciiiityC )hlF «iiluie< ScF iilCount|:
(
_
WaitFoi evAccessPolirtLo ke<l
- _
图 A 9 Uc2 ControlExit 的等待状态
131
麵
■
_ 基于模型的系统工程最佳实践
步 骤 2: 连 接 状 态 步骤 2. 2 : 识别转移、触发事件和相关行动
步骤 2.1 : 识别初始状态 状态间和相关触发事件间的转移 , 包括判断条件 ,通过对所捕捉
用缺省连接器标记初始状态。如果属性需要被初始化 , 则追加各 的黑盒用例序列图的分析来识别。
自的行动到缺省连接器上。 选择一个用例场景。复制状态图中的场景。
从初始状态开始 ,在序列图中 ,识别事件 ,并且如果需要的话识
别触发转移和相关行动的判断条件。在状态图中 , 识别目标状态。连
Uc 2 ControlExhCtri
.
接这两个状态。使用 MEALEY 语法 :事件 [ 条件 ] / 行动标示转移。
•vAcMSsPortLocktd
ScFaiCount^O _ ?
/ ScFalCount*C
步骤 2. 3 : 执行状态图
▼
togExKOata ( ):
-
[Card SiJUis ^ PassT/
使用黑盒用例场景 ,通过模型执行 ,验证所捕捉的基于状态行为
FlagingS « curttyCardPjilur«
rtqUnlockAcctssPoint to pAcc stPomt
^ f jgS# curityCardFj|lurt ( ScFallCount );
r |
的正确性 , 作为各自振荡的基础。
▼
•vAccttsPomtUnlocktd
•vAcc«ssPointUnlock«d [ScFailCount«*31/
abirmO;
Acc « stPointUnlocK »d
_
tm ( t Unloch # d )
rtqProc**tAI # rt( MExh Failure ** ) to pAdmin
f
WartFor.# \/ Acc #f *PointLoci< td
132
附 录
- ■
■
•系统模式; ( FaiDTimes ) , 关 联 到 顶 层 状 态 图。
由于 ScFailCount 是局部属性,它的初始化被追加到复合状态的缺省入口。
此外,在复合状态 ValidationFail 中 , 子状态 FlagingSecurityCardFailure 和
_
WaitFor reqReadSeciirityCard 是可以聚合的 ,从而在 ProcessingSecurityCard
reqllnlockAcc««tPoint to pAccettPoinl
* tm(! linlock »d )
V«lKiatin9S< AcccftftPoinlUnlock«d
'alidMe$ecunlyC« rd( C4i (ISta (u» ) .. .daplayC4rtfS( 4tu> ( Caid9UUa )
m| ftradSrcur«|iCjrd
r«idS«CtfHyCjidO;
图 A - 13 复合状态 UnlockingAndLockingAccessPoint
—
-
■ (UgSvcuntyCa
一
[&cF«ICounm3]/
W«tFor r*|
< RMdSMi 」
. -
七
J
图 A - 12 复合状态 ProcessingSecurityCard
133
■
睡
_ 基于模型的系统工程最佳实践
Uc2 ControlExitCtri
_
WaitFor reqReadSecurityCard <- A
reqReadSecurityCard /
readSecurityCard ( );
v
ProcessingSecurityCard
Fail3Times "A
_
> 【CardStatus
logExitOataO;
,
== Pass")/
*
WaitFor reqResetAlarm
UnlockingAndLockingAccessPoint
reqResetAlarm/ evAccessPointLocked
resetAlarm
- A
图A -1 4 Uc2_ ControlExit 的 顶 层 状 态 图
步骤 3.2 ^ 执行状态图
通过模型执行 ,使用黑盒用例场景 , 验证所捕捉基于状态行为的
正确性 ,以作为各自振荡的基础。
134
附 录
A3 Harmony SE 工作流中活动图信息的用法
活动图 :
活动图与经典的流程图类似。它是通过把执行流分解成由转移和各种
连接器结合在一起的一系列行动或子活动 ,描述一个工作流或算法。
fmoveGPS
~~ ~
) 这些行动和子活动称为活动节点。活动图可以是一个简单的线性活动
T 序列 ,或是具有条件分支和并发性的并行活动的复杂序列。
]
^ alignGun 2GPS
该示例显示了一支枪对准了视线 ( LoS ) 的行动序列。
序列图 : _
:llc AcquireTgt
^P veGPSfl
&Gun 7f;
pcii
在 Hannony SE 中,
使用 SE -
Toolkit
一个行动等同于一个操作。
功能 Create New Scenario from Activity Diagram , 活 动 的
序列可以转换成序列图中的各自序列操作(自动地实现出来)。
状态图 :
T /moveGPS(); 在状态图中 , 活动的序列/ 操作 , 通常关联到一个状态的转移。符号 :
丄 alignGun2GPS();
GunAlianed 事件 [ 条件 ] / 活动。
该示例中 , 触发事件是缺省进人状态 GunAligned ( 枪对准)。
图A - IS UML/SysML 活动节点信息的重用
135
基于模型的系统工程最佳实践
活动图:
《 ActorPin » ,可视化活
Harmony SE 使用 SysML 活动钉属性标签
序列图 :
_
:llc AcquireTgt
^ LGPSO
~
基于来自钉的信息和请求操作 ,该功能创建自动实现来自枪手的信息
I »ove
( reqCalculateLosCmd )
0
^ jnGun
| Ii{ 2GPSQ
状态图
具有角色钉 ( ActorPin ( 8 ) ) 输人的活动节点 ,被翻译成等待状态 ,称
WaitForGunnerlnput 为 WaitFor"
reqCalculateLosCmd/
I
I 注:极力推荐对等待状态实行标准化的命名。
calculateLosC md|);
moveGPS(); 通常情况下 ,触发事件发起一个状态的转移。
alignGun2GPS0, 符号 :触发事件/ 操作。
GunAligned
-
围 A 16 使用角色钉倍息的活动节点的重用
136
附 录■
活动图•_
Cmdr
_ifi_1
,
•fMetMag^Actisn - 《 MessageAction » ,
Harmony SE 使用 UML/ SysML 的行动属性标签
在活动图中描述传人的信息 , 该信息触发系统模式的转换 , 并提供所
Gurm
^
^
( CalculateLotCmuJ
TlPalm
— Gunnefl 请求的数据或发送信息。如果信息与角色相关 ,信息的发送者或接收
者需要由各自的角色钉表示。
rallgnGun?GPS
序列图 : _
Uc AcquireTgt
灸
/ evFngogePalnr
/
^ ^ Palm
该示例显示使用 Rhapsody SE -Toolkit 功能 Create New Scenario from
多 evEnqaqePalms< Pa
^ )
T
• Activity Diagram , 从活动图创建序列图。
i
/
y IPalm Xunneri
今 reqCalculfttflLo»Cnni ()
■
colculateLosCmdO
i
i
口
I moveGPSQ
注 :交互操作器和操作分离器是手动添加的。
[ a]iqnGun2GPS0
1 [PilnT -Ul f
状态图 :
WaitForPolin»Engag«d
通常情况下 , 触发事件发起系统模式的变更。
WaitForGunnerlnput
在该示例中 , 初始状态被考虑成 WaitForPalmsEngaged 状态。一旦枪手
rcqC akulaiolosCmd/
talculaieLosCmdfl;
rncrv iPSj );
^ 握枪在掌 , 他则在系统的控制中。
^
sliynGun GPSO.
” GunAligned
-
图 A 17 信息活动信息的重用
137
基于模型的系统工程最佳实践
打印
A4 Rhapsody 行动语言 操作符 emu 表示打印到屏幕。需要打印的元素由操作符“《”
本节简单介绍了 Rhapsody 工具所应用的行动语言。 分开。文本字符串是由双引号标示。属性参考使用它们的名字。操作
基本语法 符 endl 表示打印回车。因此 ,打印出当前的 X 值 , 使用下面的命令
语法中的语言是区分大小写的。如: “ evmove ” 与“ evMove ” 是 cout «“ The value of X is”
《 X « endl ;
不一样的。每个语句必须以分号结束。
如果 X 的当前值是 5 , 该语句打印以下信息到屏幕
所有名字以字母开始且不能有空格。除了下划线 ( ) 之外 ,名 _
字中不能有其他特殊的字符。但是 名字不应该以下划线开头。 . The value of X is 5
X = X +5 ( 加5 到 X)
X=X 3 - ( 从 X 减 去 3)
X = X *4 ( X 乘 以 4)
X = X/ 2 ( X 除 以 2)
X = X% 5 ( 设 置 X 为 X 除 以 5 的 余 数)
X+ + ( X 递增 1)
X -- ( X 递减 1)
138
附 录 ■ ■■
条件语句 有条件的循环语句
条件语句始于关键字“ if” ,跟着一个括号中的条件表达式 ,接 “ whUe” 语句用于条件循环。该语句有一个单一条件表达句 ,并
下来如果条件评估结果为真 ,就跟着执行语句。如果条件评估结果为 且只要评估正确便反复执行。前一个例子 ,使用“ while ” 语句可以
伪 ,你可以选择添加“ else” 关键字来执行一个语句。
“ else ” 语句可 表述如下
以包含另一个嵌套的语句。例如 X = 0;
if ( X < = 10 ) while ( X < = 10 )
X + +; I
else cout « 《 endl ;
X
X = 0; X+ +;
可以通过将多个语句放置在大括号里组合在一起。
if ( X < = 10 ) 调用操作
t 如在一个模块上调用操作 ,使用操作名跟着一个括号。如:调用
X+ +; go
“ ” 操作,表述为
cout <3C“ The value of X is ” « X «: endl; go ( ) ;
i 如果操作调用参数 , 参数应以逗号隔开。如调用“ min ” 操作有
else 两个参数
I min ( X , Y ) ;
X = 0;
生成事件
cout " Finished" « endl; _
关键字“ 0UT P0RT” 和“ GEN” 是用于通过端口生成事件的。
t 如将事件“ evStart ” 从“ P2” 端口发出 ,表述为
增置循环语句
增量循环是使用“ for” 语句完成的。它是用三个由分号分开的 — - GEN ( evStart )
OUT PORT ( P2 ) >
使用参数生成事件 需要把它们用逗号隔开。如用速率和方向两
,
;
部分所指定的 :初始语句;条件表达;增量语句。
个参数生成名为“ evMove” 的事件 , 表述为
示例 :迭代地对 X 赋值 ,从 0 到 10 , 并打印其值到屏幕上。
for ( X = 0 ;X < = 10;X + + )
OUT.PORT ( p2 ) - > GEN ( evMove ( 10 , 2 ) ) ;
!
139
■
«
_ 基于模型的系统工程最佳实践
有关转移中的事件参数
关键字“ params” 跟着操作符用于引出与当前转移事件的参数关联性。如: “ evMove” 的事件与一个名为“ 速率” 的参数相关联 ,
则可以表述为“ params - > velocity”。该语法还可以嵌人到行动转移语句中。如
if ( params - > velocity < = 5 )
测试事件到达端口
关键字“ IS_ PORT” 用于测试引起当前转移的事件是否通过特定端口到达了。如
if ( IS.PORT ( P2 ) ) ...
测试状态机的状态
关键字“ IS_ ET 用于测试状态机是否在一个特定状态。如测试一个模块的状态机是否在一个称为“ Accelerating” 的状态,可以表述为
_
if ( IS IN ( Accelerating ) )
140
A5 Rhapsody SE-Toolkit 概述
附 录
— w
SE-Toolkit 功能 描述
1.1 添加超链接 ( Add Hyperlink ( s ) ) 从源头添加超链接到目的地
对所选序列上每一个反身信息 ,在所选活动图中创建一个
1.8 填充活动图 ( Populate Activity Diagram )
活动
在白盒活动图中 , 复制被分配的操作到相关的子系统模
1.9 泳道分配操作( Allocate Operations from Swimlanes )
块中
在活动图中 ,从选定活动系列中创建出序列图。
1.10 从活动图创建新场景
如果源头是单一的活动 ,用户则在每次遇到条件连接器时 ,
( Create New Scenario from Activity Diagram )
被要求选择一个路径
表 A -3 ( a) Rhapsody SE-Toolkit 功能
141
基于模型的系统工程最佳实践
SE-Toolkit 功能 描述
2 创建 Harmony 项目 ( Create Harmony ProjecI ) 创建一个符合 Harmony SE 标准的项目结构
3 从用例创建系统模型( Create System Model from Use Case ) 对用例模型 ,创建一个符合 Harmony SE 标准的套件包结构
4 自动重新命名活动 ( Aulo-Rename Actions ) 在活动图中 ,协调活动说明和活动名称
添加 SysML 角色钉属性标签
《 ActoriPin 》到活动图中的选定活动上 ,用户从下拉菜
5 添加角色钉 ( Add Actor Pins )
单中选择方向和角色
执行活动图一致性检査
6 在黑盒活动图中的活动之间和导出的用例场景的操作中 ,检査一致性
( Perform Activity View Consistency Check )
-
表 A 3 { b) -
Rhapsody SE Toolkit 功能
142
—
系统功能分析
附 录
Define
Us* Case Model Context
-
SE ToolKit FMtunt
#2
:
Detwie
UC Functional Row -
SE Tooikit Ftaturt:
#4. #5
#
-
SE Toolkit Ftaturt:
1.10. 6
#
SMB Define
Ports and imertaces #7 #8
-
SE Toolkit FMtum:
.
Derive
--
>enve UC State Based Behavior
from UC BB AO and BB SDs - -
SE Toolkit Featurt:
设计综合
V« nfv i Validate UC Model
trough Model Execution
tlaboiale ArchHectival Concept
( Trade Study)
-.
SE Toolkit F
#18 #19. 20
•tur•
纛 :
*
[Haiity Ooy Analysis!
-
SE Toolkit Ftatur#
#1.7
IMirie Vat \ h ol
necomposilioM Mk^rdichy
-
SE Toolkit Fsature:
.
#10 #12
【System Use Casas defined】
System SE -Toolkit Feature:
[ , ]
Update
#1.9. #5. #11, #13. #14. *16/16
Requirtmtnts
• •& Draft System ReqSpec
-.
SE Toolklt Feature:
#1.10*14
Link
Functional / Performance -
SE Toolkit Feature:
Define
Pbrts anil
-
SE Toolkit F«atur :
«7. #8. #17 •
#1.7
Reqs to System Use Case
(k
Weiqe RealiiPd UC Models mio the
Intcqfated Systcmi AirJutecture Model
-
SE Toolkit Psaturt :
#1.6
145
赍 fl-编辑:吴畋
责任设计:张悦
-- -
ISBN 978 7 5165 0222 8-
中航出版传媒有限责任公司
. .
CHINA AVIATION PUBLISHING & MEDIA CO ,LTD
定价 : 130.00 元
;