You are on page 1of 153

£i

(
^ 管理智库丛书

/Q

Model - Based Systems Engineering


Best Practices

于麵的系统工程
最佳实咸 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 ) 数 据

基于模型的系统工程最佳实践 / ( 德) 霍夫曼 ,谷炼


著. 一北京 :航空工业出版社 ,2014.5
( 管理智库丛书)
-
ISBN 978 7 - 5165 - 0222 - 8

I . ①基… n. ①霍… ②谷… m. ①系统工程一研


究 IV. ①N945

中国版本图书馆 CIP 数据核字 ( 2013 ) 第 154803 号

基于模型的系统工程最佳实践
Jiyu Moxing De Xitong Gongcheng Zuijia Shijian

航空工业出版社出版发行
( 北京市朝阳区北苑 2 号院 100012 )
发行部电话:010-84934379 010-84936343
北京京华虎彩印刷有限公司印刷 全国各地新华书店经售
2014 年 5 月第 1 版 2014 年 5 月第 1 次印刷

开本 :787 x 1092 1/ 16 印张 :9.75 字数 :245 千字


-
印数 :1 700 定价:130.00 元
_1 DiOl

QUE ^ t ,onS

TRA丨沁
fgoPLe
-r o D
°
.,


,r

J 6vi / TfLfclOGIC

-

1'

K:A


XJ
v

P ^

^ CkMOPMEU
:'

fKOSiB^ ' > T^£ ■


T
i^
I
:/Ai {心 •

<T S£ /Kv CMTtD


丁<9 r> ,
/

BJU \ tkA LF
PFAdM/ TlC
^OKKH

A 3ST /CAtTlflfi 乙'c 仍


Mg£DS - h) 9f \ rMO TO
A ^TiaJLAJE 1
'■
'


[ 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 各种图建模的一些指南;

些章节上 ,对读者的背景作了一些假设,如熟悉 UML / SysML 语言,


• 从活动图和相关序列图捕捉的信息如何导出状态图的指南;

并懂得使用建模工具 Rhapsody 等。 • Rhapsody 行动语言快速参考指南;


• Rhapsody SE -Toolkit 功能应用概述。
1.2 内容概述
本书由 5 个章节构成。

001
第2章 Harmony SE 基础

2.1 Rational 集成系统 / 嵌入式实时开发流程 :Harmony


Harmony 流程包含两个紧密联系在一起的子流程:
-
图 2 1 用传统的系统工程 V 模型展示了 Rational 集成系统 / 嵌
• Harmony SE ;
入式实时开发流程 Hanncmy。V 模型的左翼描述的是自顶向下的设计
流 , V 模型的右翼展示了自底向上 ,从单元测试到最终系统验收测试
• Harmony 嵌入式实时开发
Harmony SE 的系统工程工作流是增量迭代式的周期活动流。它由
的集成各阶段。使用状态图的符号 ,便可显示出工作流中的一个变更
请求从高层次向下的影响。无论变更请求在哪里出现 ,流程都将重新 需求分析、系统功能分析 、系统设计综合 3 个阶段构成。增量迭代是
基于用例来完成的。
从需求分析阶段开始。
变更请求

Hannony SE

可撕用觸型

』析
msmm
『系

Harmony
系统架构基线 入式实时开发

!
实 模型

-
图 2 1 Rational 集成系统 / 嵌入式实时开发流程 Harmony
■ 基于模型的系统工程最佳实践

软件工程工作流的特点是软件分析 、设计 、不同层次的集成和测 验证的。一旦模型被验证 ,架构设计则可以进人性能和安全性需求分


试的迭代式增量生命周期。 析。该分析包括失效模式和效果分析 ( FMEA ) 、任务危害性分析。
值得强调的是 ,对于系统工程及其实施的分析迭代 ,是通过不断 打上基线后的系统架构模型 ,用于定义后续硬件 / 软件开发的交
地实施 、测试 ,并不断提供出可演示的结果进行迭代的。 付物。
在自顶向下的设计中 ,需求的建立和与测试相关的测试场景的重 模型驱动软件开发由软件实施模型支持。该模型是手动和自动生
用是非常重要的。这些测试场景同时也支持着自底向上的集成过程 , 成代码的基础。
以及当系统变更时的回归测试周期。 模型驱动开发流程中的必要元素是模型 / 需求存储库。它包含开
Harmony 是 IBM Rational 在系统工程行业的最佳实践。它支持模 发中系统的知识配置信息。如 :
型驱动开发的流程。在模型驱动开发中 , 模型是开发流程的核心成 •需求文档;
果 ,与分析和设计共存。每一个开发阶段由特定类型的模型支持。 •需求跟踪性信息;
支持需求分析阶段的模型是: •设计文档;
• 需求模型; •测试定义。
• 系统用例模型。

需求模型使得需求类型可视化。系统用例模型把需求以用例方式
组织在一起 ,但这些模型是不可执行的模型。
系统功能分析阶段关注在把功能需求解释成与系统功能 ( 操作)
一致性的描述。每一个用例被解析成可执行的模型 ,并通过模型执行
来验证相关的系统需求。
有两种可执行的模型支持设计综合阶段 :
•架构分析模型;
•系统架构模型。

架构分析模型的目的与权衡分析模型相关。如 :通过参数分析 ,
针对所确定的操作实施方式 ,详细阐述系统架构概念。
系统架构模型 ,是对前阶段的架构分析阶段所形成的系统架构 ,
进行系统操作分配。系统架构模型的正确性和完整性是由模型执行来

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 求

求规格说明书文档初稿。至于跟踪性 ,应该将确定的系统需求关联到 分析筛选齡需求


相关的涉众需求上。
需求分析中的下一个主要步骤是定义系统用例。用例是从一个特 I 涉众需求娜

定的操作方面 ( 操作线程) 描述系统。它详细描述角色 ( 用户) 的


行为和角色与用例之间的信息流。角色可以是人 ,也可以是系统,或 生成系统■求
关联系统需求
到涉練求
者是开发中的系统 ( SuD ) 外部的一个硬件。用例是不会揭示和暗示
系统的内部结构的 ( 黑盒视点)。
用例可分层结构化 ,但不是按功能去分解用例。用例不是功能 , 1 系统 求规格( 草稿 >
*
但它们使用功能。关于一个系统需要由多少个用例来描述 ,没有一成 定义系统用例
不变的规律。经验显示:对一个大系统 ,在顶级层次通常需要 10 ~ 15
个系统用例定义;在最底层级 ,描述一个用例 ,至少需要 5 个 ,但最 关联功能臟能性需求
到系统用例
多不超过 25 个用例场景。在该阶段 ,重点是放在用例的“ 正常情况 ”
( 假定无出错或异常系统行为) 的识别上。异常或例外场景的描述 ,
下一个用例
将放在下一个阶段 ( 即系统功能分析阶段), 通过模型执行的方式进
行识别。如果在一个用例中有多于 5 个出错或异常的场景出现 ,它们
应被组织到一个单独的例外用例中 ,并以包含和排除的依赖关系 ,关
联到“ 正常情况 ” 的用例上。
排优和组织系统

4 ^}
为保证所有的功能性需求和相关的性能性需求被这些用例覆盖 ,
需要分别对应建立起跟踪性来。
-
图 2 3 需求分析阶段工作流

006
第 2 章 Harmony SE 基础

2 . 2. 2 系统功能分析
系统功能分析工作流
系统功能分析阶段的主要重点,是把系统功能性需求转化为一个
©
连贯的系统功能描述 ( 操作)。分析是基于用例进行的 ,即:把每一
个在前面需求分析阶段确认的用例翻译成一个可执行模型。该模型和
相关需求由模型的执行来验证。 定义用例模型上下文
图 2 - 4 详细介绍了在系统功能分析阶段的建模工作流及相关工
件。首先 ,用例模型的上下文是在内部模块图中定义的。该图中的元 定义用例功能流
素是 SysML 模块的实例 ,它代表用例和与其相关角色。在这一阶段它
从用例功能流导出用例场景
们是空的而且是非关联的。

^^ 11
建模工作流的下一个步骤是定义用例模块的行为 ,由 3 个 SysML
图来展现 : 丨将新 需求 定义端口和接口

•活动图; 从用例黑盒活动图和黑盒序列图
•序列图; 导出状态行为图
•状态图。 通过执行模型

确认 用例模型
每一个图在用例行为的详细描述中扮演着一个特定的角色。
活动图:活动图称为黑盒用例活动图 ,描述用例整体功能流 ( 故
Day分 析 ]
事板)。它以活动( 在 Harmony SE 中等同于操作) 的方式来组织功能
针对错误/失败行为
需求 ,并显示这些活动是如何相互关联的。
扩展用例模型
序列图 :序列图被称为黑盒用例序列图 ,描述用例通过的一个特
定路径并定义操作和角色之间的互动(信息或消息)。
关联用例模块到需求
状态图 :状态图把活动图 ( 功能流 ) 和序列图 ( 角色之间的互
动) 的信息会聚在了一起。在状态图中 ,可以展现融合系统状态的背
更新系统需求初稿
景 ,并增添了不同优先级的外界影响对系统行为的描述。

-
图2 4 功能分析阶段工作流

007
.■ 基于模型的系统工程最佳实践

不强行规定生成这些图的顺序 ,因为生成图的顺序也可以依赖于 用例模型的分析 ,是通过使用黑盒用例场景作为模型执行的各自


可获得的信息和建模者的偏好。图 2 - 5 中给出了 3 种可选方法。 基础进行的。应该指出 , 按照前面所描述的该流程的主要目的,主要
可选方法 1 始于对用例场景的定义。客户的做法通常是用序列的 关注点是对产生序列的验证而不是相关功能的确认。
方式描述所需的系统 ( 如操作的概念)。一且一系列的基本场景被捕
构筑用例的可执行棋型
捉出来 ,所识别出的功能流就被合并到活动图的通用描述中。端口和
接口是由序列图创建的 ( 参考章节 2.4 ) ,它们在用例模型的内部模 定义用例棋型上下文 1
块图中定义角色和用例模块的关联关系。该方法的最后步骤是在状态 [BT选方法 3】

图中定义用例模块基于状态的行为 。 PTiS方法

可选方法 2 始于对用例功能流的定义。如果系统工程师需要详细 定义用例场录


]
” 走义用供功艙ft
选方法 2]

g义用M基于状态的丨行为
:
m
(用例隳盒序列 (用例熏食活动围) (用倒状态 m
阐述需求 ,这是一种通用的方法。通常情况下 , 客户喜欢从“ 整体 ” 从用例场录导出用例功能流 从用例功戆流导出用例场最 从用侧状态图导出用例场景
m (用例獮金序列S)
的视点来表达他们的需求。一旦整体功能流定义了 , 使用活动图就能
(用例黑金活动

I
导出用例场景 ( 参考图 2 - 6 ) 。用例模块的端口和接口由序列图生 瞻口和接口
部模块勘
'
定义靖口和接口
(用例内部筷块 m
成。最后 ,用状态图捕捉其基于状态的行为。 親的 / 导出霱求 从黑盒活动■和序列图
导出基于行为的状态B
可选方法 3 始于对用例基于状态行为的定义。如果设计中的系统 用气态m
(

强烈基于状态 , 推荐使用该方法。这种情况下 ,用例黑盒活动图的创 通过模型执行用例棋型

建甚至可以省略 ,用例场景可由状态图的路径导 ,从序列图生成端口


和相应的接口。 针对镄调/失败行为
t [Rainy Day 分析]

拓展用例棋型
值得注意的是 ,不管选择哪种方法 ,在系统功能分析流程中 , 最
重要的图是用例模块状态图 , 它包含了黑盒序列图和用例黑盒活动图
的信息 ,并可通过模型执行来确认。用例黑盒活动图和相关的黑盒序 用例柳

列图还可以被重用到后续的设计流程中。 需:

在基于用例系统功能分析过程中 ,无论何时,新需求被识别或用 *
导出的需求细化高层次需求 ,都需要文档化。最后 ,在系统功能分析
阶段的终期 , 这些附加的需求需要由利益相关者审批并导出到需求跟
-
图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

(VMnput auction (U fnp«f « ai%rtk>nB| •


[Uwlnput » OmcttonAI
, [U nput 姆 Dricttof, \ f q89tPir»ctton(D< r9Ctfon) v
^ « ctfon(Dlr« ction)
s

90tDfr

»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

m»cmd dA)d aF Normal mwOnddAJdtL Norm# n«OnddMM Nomwl


rr^TKklArftf) NDfmri •

rryOrrMMa) _Btom rrwCmddA)d ^_8<ow rwQiMMtLjaom mwQnddAtf

Start
sun SL»t

[Wonsq
jwQrMmtGHotwM
.
_
rfwCMdAiM NDfvral

rr*OnddAri«0 8iow
rmOnddAjdtf.Slow
mOnodAstf. Slow

VT*

图2 -6 来自一个用例黑盒活动图 ( 工业自动化用例 ) 用例场景的导出 ( 框架示意图 ) 009


■ 基于模型的系统工程最佳实践

一旦用例模型和相关的功能性需求被验证 ,异常情况分析就可以 用例建模工作流结束于用例黑盒属性和相关系统需求的跟踪关联


进行了。该分析关注识别系统错误 / 失败行为 ,这是在初始需求系列 的定义。如果新需求或导出需求在建模流程中被识别出来 ,系统需求
中没有覆盖到的。 规格初稿需要作相应更新。
图 2 - 7 详细描述了工作流和异常情况分析相关的工作产品。它 一旦所有用例的一次迭代被验证,系统功能分析阶段就终止于对
首先推荐添加个别例外行为到状态图中 ,因为状态图最佳地展现了整 系统需求规格基线的生成。另一个在该阶段生成的文档是系统级接口
体系统行为。如果错误 / 失败行为包括了新功能 ,用例黑盒活动图 、 控制文档( ICD ) 。它定义 ( 黑盒 ) 系统和其角色间的逻辑 ( 功能 )
用例错误行为场景以及用例内部模块图 ( 如果需要 ),需要进行相应 接口 ,也是所有用例模块接口的集合。这个 ICD 是后续系统级 ( 黑
的更新。拓展后的用例模型通过模型执行得以验证。 盒 ) 测试定义的基础。
有时有人会问:为保证系统完整地被用例描述出来 ,黑盒的功能
针对错误/失败行为拓展用例模型 系统模型是否应该包括集成的黑盒状态图?原则上说,没有理由不这
么做。但注重实效和省时的方法 ,是将其移到后续的设计综合阶段中
去完善。用例应该把足够的系统信息带到架构设计中 ,然后再开始架
构设计。丢失的信息在通过模型执行对系统架构模型的验证时被识别
拓展用例模块状态图
出来。
[ 更新用例功能流 I
[ 更新用例黑盒活动图

[更新用例模型

O 内部模块囹1
[ 更新用树模块内部模块图

iiam酿行舰模型 |[ 录制例外场景

[下一个例外]

-
图2 7 用例模型异常情况分析的工作流

010
第 2 章 Harmony SE 基 础 ■

2 . 2. 3 设 计 综 合

设计综合阶段的关注点是 ,在所规定的性能约束范围内 , 对一个 洋细描述设丨十概念 ( 权衡分析研究 )

物理架构 ( 如 :一组产品 、系统和 / 或软件元素) 在其实施所需功能


的能力上的开发。在设计综合阶段采用的是自顶向下的工作方法; 图
2 - 8 详细描述了该阶段的基本任务的相关工作流。 用例实现

设计综合阶段又分为两个大的子阶段 :
定义分解层次结构部件
• 构架分析;
• 构架设计。
瓶系统及操作到部胳
架构分析阶段也称为权衡分析研究。考虑到会有一些硬件和 / 或
软件架构都满足于一组给定的功能性和性能性需求 ,优化设计概念是 导出白盒序列图
基于一套标准 ( 如有效性度量 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

Optical Scanner Fingerprint Scanner


0 ! 1 !~~M
400 350 300 250 200 150 100 50 0

Purchase Cost ($)

Purchase Cost Utility Curve used in the Trade Study

Solution Criteria

Accuracy Purchase Cost Installation Cost Maintenance


Weighted
Solution Alternatives Cost
Total
Wt = 0.3 Wt = 0.2 Wt = 0.15

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)

图2 - 11 系统关键功能“ 捕捉生物数据” 加权目标表

014
第 2 章 Harmony SE 基 础
_
12.3. 2 架构设计
架构设计阶段的重点是分配功能性需求和非功能性需求到架构结
构中。这种结构可以是前期权衡分析研究的结果 ,或是一个给定的
( 传统) 架构。这种分配过程是迭代式的 ,通常与行业专家协作进行。
架构设计是针对每一个用例 ,进行增量迭代 ,将前期完成的黑盒
用例实现
视图转化成白盒视图的过程 ,也称为用例实现 ( 参考图 2 - 12 ) 。该
阶段任务流与系统功能分析工作流十分类似。
图 2 - 12 所示的是架构设计相关的架构工作流以及相关的工作
定义分解层次结构部件 ]
产品。
它始于系统架构结构定义。基于所选择的设计概念 ,用例模块被
分解成相关系统架构部件。所产生的系统结构是用 SysML 的模块定义
: 分配系统及搡作到部件级
I
导出白盒序列图 |
图 ( BDD ) 和内部模块图 ( IBD ) 来描述的。
接下来 ,系统级用例操作分配到系统结构中。一般来说 ,有两种 定义靖口和接口

实现方法。如果分配概念已经建立 ,可以直接拷贝系统用例操作到相
定义系统层次分解中
关部件中。否则的话 ,分配可以以图形化的方式 ,通过用例黑盒活动 最底层模块基于状态的行为
图进行。从本质上讲 ,该活动图是从用例黑盒活动图拷贝过来的 ,然
后用不同的泳道进行分区,每个泳道代表系统架构分解层次中的一个 Hi齋
模块。基于所选设计概念 ,该系统级操作 ( 活动) 就被“ 移动 ” 到
分配和关联辆雌需求
不同的模块泳道中 ( 见图 2 - 14 ) 。分配的基本要求是保持最初的活
动 ( 功能流) 之间的链接。 4)
用例白盒活动图可以是嵌套式的 ,从而反映设计中系统的迭代式
的架构分解 ( 见图 2 - 13 )。 合并所实
集成系统架构模型中
如果一个操作不能分配到一个单一模块 ,必须作进一步分解。在
这种情况下 ,依据其依赖关系 , 子操作需要和父操作相关联。一个活 通过棋型验证确认协作成果

动 / 操作也可分配到多个模块 ( 如架构冗余), 在这种情况下 ,相关


操作 / 活动被拷贝到各自的模块泳道中并集成到功能流中。
-
图 2 12 架构设计阶段的任务和工作产品
015
--- 基于模型的系统工程最佳实践

_
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 基础 ■

2.3 SysML 应用于基于模型的系统工程的基本工件 UML4SysUi

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 结构图

需求图以图形化的方式展示如下内容 : 结构图是用于描述系统静态下的类型图 ,它包括模块定义图 、内


• 《derive » , containment ) ;
文本需求元素之间的关系( 部模块图和参数图。
• 需求和模型元素之间的关系(《 trace 》,« satisfy » ) ; 2.3. 2.1 模块定义图
•需求和测试案例之间的关系,用以确认需求是被满足的 SysML 模块定义图等同于 UML 的类图 ( class diagram ) 。它显本
系统和系统的基本结构元素 ( 模块 ),并展示和它们之间的关系 / 依
存性 ,但是 ,它不显示内部的连接关系。

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

完整的需求和模型相结合的跟踪体系 ,帮助用户实现图文并茂的系统 p«.B CH


需求管理方案。该方法已成功地应用在系统工程的各个行业领域,如
航空航天、汽车制造 、电子产品生产等。4.3 节中详细阐述了 IBM
te&8 B
_
P« ACH

Rational DOORS 与 IBM Rational Rhapsody 是如何相互配合完成需求的


分析、分解和跟踪管理的。 -
图 2 20 内部模块图
020
第 2 章 Harmony SE 基础
_
端口 标准端口是通过其供给接口或需求接口指定的。如图 2 - 21 所
端口是模块或部件与其环境之间的命名交互点。它通过连接器与 示 ,一个供给接口指定在该端口接受一组从模块外部元素而来的信
其他端口相连接。SysML 定义了两种端口 : 标准端口和流动端口。在 息。一个需求接口指定由该端口发出一组信息到模块外部的元素。因
系统元素上 ,明确这些端口的目的是 :通过清晰地定义端口 ,允许模 此 ,把接口按需求接口和供给接口赋予特性后 ,信息方向规则也就定
块级的重用。 义了 D
(1) 标 准 端 口 (2) 流动端口
UML / SysML 的标准端口是分配到模块的命名交互点 ,通过该交 SysML 的流动端口指定在一个模块和其环境之间可以流动的输人
互点 ,模块实例可以交换消息。它指定所属模块供给 ( 提供) 其环境 和输出项。输人和输出项可以包含数据和物理实体 ,如流体 、固体 、
的服务 ,指定所属模块期望 (需要) 其环境的服务。 气体和能量。对哪些可以流动的规定是通过记人流动物与流动端口的
标准端口有两种不同的种类: 规格来获得的。
•代表或中继端口:用于转发请求到其他端口; 流动端口有两种不同的种类 :
•行为端口 :实际上是实施服务模块的部件。 • 原子性流动端口 :表示一个单一流动项的流入或流出;
• 非原子性流动端口 : 表示以各自“ 流动规格 ” 列出的多流
动项 o

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.3. 2.3 参数图


参数图是内部模块图的一种特殊类型。它可视化了系统属性之间
的参数关系。它是技术性能度量和权衡分析研究的一个重要部分。
系统属性中的约束在约束模块中指定。约束模块在模块定义图中
2.3. 3 行为图
UML / SysML 提供 4 种图来描述系统的功能和动态行为 :
•用例图;
定义并通过绑定其参数到模块的特定属性 ,使用在参数图中。 •活动图 ;
•序列图 ;
.MassConstraintsJ
BDO
•状态图。
每种图聚焦于一个特定的行为方面 ,这些图所提供的信息相互重
_
叠。例如 :活动图和序列图都描述相互作用。由于 SysML 通过添加动
态行为 ( 行动控制 ) 的符号扩展了 UML 的活动图 ,在用活动图和状
态图捕捉的行为上 ,也可以有一定的重叠。
■acceleration:Me
为了减少不同行为图之间的重叠 ,在建模工作流的上下文,应该
对哪种图起到哪种作用进行事先决策。下一步就是针对每一张图过滤
出那些被认为是必不可少的元素 ,进行使用方法的“ 标准化”。

图 2 -2 3 模 块 定 义 图 中 约 束 模 块 的 定 义

1 «Con8tralntProperty,Con»tr«lntBlock»
ltsNewtonLaw:NewtonLaw

•Attribute

mass

Attribute
*
*

acceleration
一-
_
■ force = mass * acceleration
一- U mass:Kg force:Newtons C

] acc l«tatlon:M«ter P«rS«cA 2


图 2 24 - 参数图

022
第 2 章 Harmony SE 基 础
_ __
2.3. 3. 1 用例图 2. 3. 3. 2 活动图
用例图通过描述系统用户和系统本身之间的相互作用 ,捕捉系 活动图与经典的流程图类似。它描述一个工作流 、业务流程或一
统的功能需求。值得注意的是 ,作为一个被分解的系统 , 给定系统 种算法 ,该算法是通过分解执行流到一组活动和加人了过渡及各类连
的用户 ,可以是外部人员或外部其他系统。用例图由包含一组用例 接器的子活动形成的。活动图可以是活动的一个简单线性序列 ,也可
的系统边界组成。角色位于系统边界的外部并通过关联连接到用例。 以是带有条件分支和并发的并行活动的复杂系列。
用例描述系统特定的使用方法 (“ 操作线程”),即: |注意:在 Harmony SE 中的术语:活动 、行动和操作是同义
•由用户 ( 角色) 所感知的行为; 活动可以被组织并分配到对象,如子系统。在这种情况下 ,活动
•用户和用例之间的信息流。 图可以被分成泳道用于描绘其各自的职责。
~

用例并不展示或意味着系统的内部结构 ,它是黑盒视图。 注意 : Harmony SE 用 SysML 活动针 ActorPin 来可视化行动 / 操作与环


境间的相互作用。针的名字是相关角色的名字 , 针的箭头显示了关联的方
向性。

9 op1

op2
J ( op5

op4 op3 op6

-
图2 25 用例图

丨。 b

当用例非常复杂时 ,可以用其依存性来展示用例间的关系:
•《include » : 个用例包含另一个;
•« extend »:一个用例为另一个用例提供可选的扩展;
的版本。

• « Generalization » : 个用例是另一个用例更专业或更精炼 -
图2 26 活动图

023
— 基于模型的系统工程最佳实践

2.3. 3.3 序列图


序列图用于进一步精化所指定的需求 ,它是通过在用例和活动图
中显示角色和模块的协作行为来对需求进行详细描述。序列图通过用
例来表现一个或多个场景。
2.3. 3 . 4 状态图
状态图用于描述模块基于状态的行为。在 Harmony SE 工作流中 ,
状态图被认为是最重要的 ,它是由活动图 ( 功能流) 和序列图 ( 与
环境的相互作用) 的信息汇总,并加上事件驱动的模块行为形成的。
序列图是由角色 、模块的垂直生命线以及伴随在一定的时间内按 随着状态图的“ 语言” 被正式定义 ,产生行为的正确性和完整性便可
照顒序传递的一组信息构成的。 通过模型执行来确认。
•信息显示在垂直对象线 ( 生命线 ) 之间带有开放的箭头的水 状态图在有限的状态设计机制上用以下符号进行扩展 :
平线上。 • 层次;
UML / SysML 在 同 步 和 异 步 信 息 之 间 是 有 区 别 的。在 Harmony SE • 并发。
中 ,信悤的交流是通过异步信息( 双线箭头) 来描述的。 基本上 ,状态图由一组加人了转换和不同连接器的状态构成。一
•操作是在相关的生命线上由自反 (同步) 消息 ( 全箭头) 来 个事件可以触发一个状态到另一个状态的转换。活动可以执行转换及
描述的。 在状态上的进 / 出。
• 服务质量 ( QoS ) 需求可以加上批注和 / 或约束。 SCD.UcICtii )
topi
opIQ
i

^ 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 需求分析 / 系统功能分析层次的工件关系

图 2 - 29 显示了在需求分析 / 系统功能分析层次上 ,不同 SysML


工件的相互关系。

需求图可视化了至少 3 个需求之间的依存关系;

用例图最少包含一个用例;

一个用例至少要跟踪到一个需求;

用例总应该有一个活动图来捕捉功能流;

用例应该至少由 5 个序列图来描述;

当需要建立一个可执行用例模型时 ,该模型是由内部模块图 Internal Block Diagram
来描述的;
1

•内部模块图应至少包含两个模块实例 ( 用例模块和角色模
块);
•模块属性由操作、属性、端口和接口描述;
•每个模块实例的基于状态行为由状态图描述。 1 1..* r

□ Requlnments Analysis Functionsl Analysis

图 2 29- 在 需 求 分 析 / 系 统 功 能 分 层 次 上 SysML 的 工 件 关 系

025
基于模型的系统工程最佳实践

2.4 服务请求驱动的建模方法
在服务请求驱动的建模方法中 , 模块之间的信息交流 ,是基于经过 SysML 标准端口的异步信息 ( 服务请求) 进行的。服务请求往往是跟随
在接收方所提供的相关服务之后 , 或是在状态 / 模式变化时 , 或是操作变化时。在开始阶段 , 服务请求和相关的操作没有参数。在后期阶段 ,
参数也许被加在服务请求或相关操作上 , 或被列在有关服务请求和相关操作的描述区域。

IBD.SuD / 方法执行分为 4 个步骤 :


0 借助于 SysML 结构图 , 始于网络节点的定义 ,
ltsB2:
B2

© 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

基于所分配的服务请求 ,相关 SysML 标准端


口和接口就可以定义出来了。
! _
reqOperation2 reqSetMode
reqOperation4
operation2
_
IB2 B1 iB2 B1 S reqOperatlonl
reqOporation3
operation4 operation1
operatlon3 注 意 : 使 用 IBM Rational Rhapsody 工 具 , 借 助 于 SE
Toolkit ( 参 考 章 节 4. 3. 1 . 4 ) ,该 步 骤 可 以 半 自 动 化。
IBIJoJ 旧2 to_

© 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
■ 基于模型的系统工程最佳实践

3.2 需求分析套件包 RequirementsAnalysisPkg


需求分析套件包的组成是:
B - '-: Packaqes
RequirementsPkg
• 需求套件包 ( RequirementsPkg ) ; 白 O Packaqes
• 用例图套件包 ( UseCaseDiagramsPkg ) 0
Ei t) SecSysReqs
fi Requirements
RequirmentsPkg , 包含从涉众需求所生成的系统需求 ( 系统“ 应 : 白. © Stereotypes
该” 作什么样的声明)。这些需求是从 DOORS ( IBM Rational 需求管 fromDoors Harmony
DerivedReqsPkg
理工具) 导人进来的。 : UseCaseDiagramsPkg
在系统功能分析和设计综合阶段 ,也许会有追加的需求被识别出 .
J- Actors
来。 首 先, 它 们 会 被 暂 时 放 在 导 出 需 求 套 件 包 I± I
• 纟 Admin
|
User
( DerivedRequirmentsPkg ) 中。当有需求变更或追加时 ,维持需求和模
ft Camera
型间的一致性是非常重要的。一旦它们通过模型执行得到批准 ,存储 i± i 4
AccessPoint
0 u Use Case Diaqrams
。 _
^

在 DOORS 系统的需求数据就应该作相应的更新。更新的系统需求就
各 UCD SecuritySystem
.

会从 DOORS 中导人 Rhapsody , 并关联到相关模型工件上。 a3


\ Use Cases
UseCaseDiagramsPkg 包含系统级需求用例和关联关系 、 角色和用 iti p UclControlEntry
例图。 _ 由 f . Uc2ControlExit
~

注意 : 用例和角色在初始时是被放在 UseCaseDiagramsPkg 中的。系统功


能分析阶段 ,用例被移入各自 FunctkmalAnalysisPkg 中的用例套件包中 , 相
图3 2 - 需求分析套件包

关角色则移入到 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

定 义 用 例 模 型 执 行 上 下 文 的 套 件 包: < UseCaseName > UclControlEntryBBScenariosPkg


ExecutionScopePkg,如:角色实例、用例模块以及它们之间关联性的
定义;

:

^
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
__ ■ 基于模型的系统工程最佳实践

3.4 设计综合套件包 3 . 4. 1 架构分析套件包


DesignSynthesisPkg 由两个套件包构成 : ArchitecturalAnalysisPkg 包括了在架构设计之前实行的权衡分析所
• 架构分析套件包 ( ArchitecturalAnanlysisPkg ) ; 生成的工件。详细信息请参见章节 4. 5.1。
• 架构设计套件包 ( ArchitecturalDesignPkg ) 。
ArchitecturalAnalysisPkg
_
D
■ - 丨二 Packaqes
C' Components ti TradeStudyAnalysisPkg
- Packaqes
1 '

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
_ 基于模型的系统工程最佳实践

3.5 系统层定义 D ActorPkg


LT Actors
1

- 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 不同阶段的应用。

4.1 案例工作流 了需求分析


图 4 - 1 提供了该案例应用基于模型的系统工程最佳实践工作流
的概况说明。它显示了每个 SE 阶段所产生的与 Rhapsody 项目相关的
功能分析
关键交付工件。将工作流分离到不同的 Rhapsody 项目的原因是这样 UcAnd8ysR*q« 1
可以支持分散团队的协作。 ( An «lyi« BB UC1
工作流是基于用例的。它始于将精化后的系统需求从 DOORS 导
_
人到 Rhapsody 项目 < SuD Name > RA 中 ,并定义好系统级的用例。
架构分析
后续的功能分析阶段的交付是用例和相关的系统需求。 _
Rtapsotfy 項目 Rhapsody 項目
<SuO Nanw> AA UC< X«JMCM
**
在功能分析阶段 , 选定的用例转换成可执行的黑盒 ( BB ) 用例
模型。模型执行是在一个独立的 Rhapsody 项目 Uc < Nr > ( 用例名)中 架构设计
针对每个用例进行的。验证的黑盒用例模型和相关的功能需求是后续
设计综合阶段的输入。
架构分析是基于验证确认的功能性的系统需求 ,并针对一个独立
_
的 Rhapsody 项目 < SuD Name > AA 进行的。另外,非功能性需求也 Ue1

应考虑在内。精化后的系统架构是对后续设计阶段的交付。 irg« RMllwd UM CM


ktorg* ** _
Rhapsody 项目
<8uD NanM> IA
mArchH*ctur«

图 4 -1 MbSE 工作流和相关的 Rhapsody 项目 033


•-.基于模型的系统工程最佳实践

架构设计的实施分两个步骤 :
( 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 )

在主菜单中 , 选择 File > New ,


W 输入项目名 ( 安全系统) 并选择定义相关项目目录

Q 选择 SysML 方法 , 创建项目

034
4.3 需求分析

针对该案例所对应的需求分析工作流显示在图 4 - 2 中。它始于
涉众需求的输人和系统需求的导出,这两种需求都以文本的方式捕捉
第4 章 案 例: 安全系统

在 Rhapsody 中 ,输人的系统需求被组织成用例,并从用例到系
统需求建立各自的 《 trace 》( 跟踪) 关系。
— /

《satisfy » ( 满足 )
在 DOORS 中。一旦需求被输入 ,系统需求则以 接下来 , 用例 ( 包括其所有关联 ) 通过 Rhopsody Gateway 从
关联到涉众需求上 ,来保证完整的覆盖。 Rhapsody 输出到 DOORS 中。
需求分析工作流的下一个步骤是 ,把系统需求从 DOORS 输出到 应该指出的是 ,概括出的工作流适用于任何时候的变更和需求
Rhapsody 中,这是通过 Rhapsody Gateway 进行的。 更新。

需求管理工具, DOORS 集成接口: Gateway _


Rhapsody RA Project

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

0 打开 DOORS ,在数据浏览器中选择项目 SecuritySystem

打开 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

© SecSys Stakeholder Requirements 4. 0. doc


Secure areas shall be protected by two Independent security checks, one based upon
employee ID and one based upon biometric data . Access to secure areas will be
unavailable until the users ID Is confirmed. The time between the two independent
security checks shall not exceed a configurable period. The user is allowed three

© 在 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

© 返回到 DOORS 并保存该新模块


SH6
The system shall only process one user at a time. The user shall be given sufficient
time to enter and exit the area before automatically securing itself .
Bdt requirements
The user shall not be allowed to exit until the security card has been successfully
Export To DOORS li<«»f authorized.
SH 7 Image Capture
Module Name j SecSysSystemRequirements
An image shall be taken of any person, at the Initial attempt, when trying to access a
Module DescnptiOfl j SecSys System Requirements 4 0 secure area for logging time and employee ID.
SH8 Time monitoring
Module Prefix | SH The time a user spends in a secure area shall be recorded . An alarm shall notify if a
person stays longer than 10 hours in the secure area .
Absolute Numbers Start At j 1 SH9 Emergency Exit
In the event of an emergency the administrator can invoke a "Free Exit Mode". All
Remove heading numbers security checks for exiting the area shall be disabled until the administrator returns
the system to normal working.
R [Capture paragrapn styles ! SH 10 Security Lockdown
Progress The administrator can invoke a security lockdown mode - in this event the system
Export Cancel
shall lock all access points until the administrator returns the system to normal
working.

图 4 -3 涉 众 需 求 导 入 到 DOORS

036
第4 章 案 例: 安全系统

4 . 3. 2 DOORS :系 统 需 求 的 导 入
Export To DOORS

I
^)
1

o
Module Name SecSysjSyslem Reqmfements

Module DescrtpOon j SecSys Sysiem Requirements 4 0


打开 DOORS ,在数据浏览器中选择项目 SecuritySystem
Module Prefix | SYS

© 打开 Word 文档 ( 与该书附在一起的文档) Absolute Numfters Sian At j 1

SecSys System Requirements 4. 0. doc Remove heading numoef ^

©
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 ▼

Username PeterHoffmann User type Database Manage

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

SYS19 Alarm - Exit


| SecSys System Requirements 4 0
The administrator shall be notified about any deniecT
exit. The notification shall include user account
details.
On a denied exit an alarm signal shall be raised.
Requirement!ype
Functional

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 章 案 例: 安 全 系 统

4 . 3. 3 关联系统需求到涉众需求 DOORS Database: /SecuritySystem - DOORS 0


'
23
File Edit Vie^ i Favorites Too^ s Cftanqe Management He<p

打开 DOORS ,在数据浏览器中选择项目 SecuritySystem Favorites


JI
^- K i 2' m
Location /SecuritySystem
-ij DOORS Database Name u) New Link Module - DOORS
SecuntySystem SecSysStakef

^^
Name W ' "nl
2 在菜单中选择 File / New / Link Module… as SecSysSyster
Descnpton

Username PeterHoffmann User type Database Mana Mapping Many-lo-many

Q 命名模块关联 satisfy 并点击 OK OK Cancel Help

在跳出窗口中 ,选择 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
.

Create new imKset I


/^'\ 并选择模块 SecSysSystemsRequirements ;
在目标模块中 ,点击 Browse...
并选择模块 SecSysStakeholderRequirements
Q} New Unkset - DOORS 回
II!
Source module. Browse ..

Q 点击 OK
Create a new linkset to
Target module /SecurrtySystem/SecSysStakeholderR B ^owse...

OK Cancel Help

Vi* DOORS Database: /SecuritySystem - OOORS I o i


File Edit View Favontes Tools Change Management Help
3i
^ m .. ( I ■

Favorites ▼ Location /SecuritySystem


- J DOORS Database Name T ype * •

^ satisfy
SecSysStakeholderfRequirements
Link
Formal
s.\

lil SecSysSysternsRequirements Formal ,


< in \

Username PeterHcHfmann User type Database Manage

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 ”

在 Linksets 标框中 ,选择选项框


Only allow outgoing links to the target modules in the above list
Link module /SecurrtySystem/satisfy

V Mandatory Ovemdeable

j OK , | Cancel |
Browse ...

Help

注 :这 样 可 避 免 由 于 操 作 意 外 产 生 的 关 联 方 向 错 误 |
OK Cancel Apply Help

Q 点击 OK

040
第4 章 案 例: 安全系统
__
»

在模块 SecSysStakeholderRequirements 和 SecSysSystemsRequirements 同时打开的情况下 , “ 拖拉 ” -个需求到一个适当的涉众需求上 , 选择


Make Link from Start to 建立关联性。重复此操作建立必要的关联性

'SecSysSystemsRequirements' current 0.0 in /SecuritySystem (Formal modute) - DOORS ca_ 0 見


FHe Edit View Insert Link Analysis Taoie Toois Discussions User Rnapsody 8.0 RG 8.0
Rhapsody 7.6 RG 7.6.1 Change Management Help
d 3 - 3s
^ ^ J ^;
1 L
^ ^
View ; Standard view ▼ j 11 Ail levels ▼ SI m n
Se * ^ 10 | SecSys System Requirements 4 0
SYS11 Security cards only contain the employee name and ID and will be renewed
yearly .
SYS12 The user shall be visually informed about the status of his/ her l •trie data
check.
SYS13 The user shall no |1| 'SecSysStakeholderRequirements' current 0.0 ir jritySystem (Forma! module) - DOORS cp i
,recognized. File Edit View Insert Link Analysis Table s Discussions User Rhapsody 8.0 RG 8.0 Rhapsody 7.6 RG 7.6.1
SYS14 Entry to the secu Change Management Help
security check, b i If J t S
3*
^ 35 9

^ &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 丨

System Overview A secu


SHI Svs Overview
SYS17 An alarm shall nc Security Checks Secure s
As y system is to be developed that controls entry and exit to a 三
area. Security Card The user s卜
-ough a single point of entry. Identification of personnel upon

Biometnc Scan The user t
SYS18 The administrate Access Priority and Time P' I be made by two independent checks. Each person will be
shall include usei Exit requirements The u9 i pho jphed upon entry and their time in the building monitored. Exit
SYS19 On a denied exit Image Capture An image cntei will be based upon one means of Identification check.
SYS20 Exit shall be prot Time monitoring The time
Emergency Exit In the eve
SH ? Security Checks
SYS21 The user shall be Security Lockdown The a , Secure areas shall be protected by two independent security checks,
C V C "5 Tn f a
/>
one based upon employee ID and one based upon biometric data.

«


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

_
基于模型的系统工程最佳实践

DOORS - > Gateway - > Rhapsody : 导 入 系 统 需 求


RS 将系统需求导人到 Rhapsody 要分两步进行:将需求导入
Rhapsody Gateway 工具中;将需求从 Rhapsody Gateway 导入到 Rhapsody
中 ,如:Rhapsody 项目 SecSys RA 0 _
创建与 Harmony 相对应的 Rhapsody 项目 ( 参考章节 4. 2 ) ,
j
Coftfigurafion

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

\ U 并命名为 SecSys RA , _ BWMIOA* *|JU Modification Fites) Covera|


(U Detail
T , px:o() Anaiyf
DOORS logo

_ Name | An8ly».»si:|
'
Mame | Typoo | 丨

(40
XML
tjjs>cSy»a»<n jDoo Harmony


Fr - r — *- i "

在 Rhapsody 浏览器中 , 右击项目 SecSys RA 1



| Option*
并选择 Rational Rhapsody Gateway / Open
将需求导入到 Rhapsody Gateway 中 J *PP*I> I

Q 选择 File / Edit Project 来打开配置窗口 j! IBM Ralxjna) Rhapsody Gateway - SecSys.RA


Fite Edit V«w Tools Repons H«lp
.
S oai
"

^

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

选择 Type of Analysis DOORS Harmony Project Details


:documents
在 File 或跳出窗口中 ,选择 Storage . F e
^
DOORS Database / SecuritySystem / SecSysRequirements Soe 642 K
Requirements R C *«ck
S«cto«iSecSys.RA' a empj>
标选 Extract only defined attributes 选项 ,并确认 ( OK ) Uncovered < equifemen) (33)

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|

U 选择 UML Model 和 Tools / Add high level requirements


Lpsa»am Covoaoa mfermacon
if MU Modt'l fhuipvotf
#Ml. Ur ,
Sector,
Rule check
Harm 0%: - 9
Downsttaam Coverage Intermation
Model RKapacMiy

在跳出窗口中选择 Root package for requirements RequirementsPkg


^ iSecSys Door* Hann
^
ySecSysReqs Doors Harmony

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
= 一一
>

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

fromDoo^ Harmortya Tnrec Attempts On Emoio /ee ID fntrv


frorr DOCKS
•frorrDoo
--- ^
^romDoo^s Harrnonv« Autnoriranon of Secunv Cara E w
-
•trorrDoori Harrony Two bdeoetxJeot 5«curitv
•fromDoors Harmony Alarm Entry

vfromDoors Harmony * B » cmetnc Scan


fromDoors Hafirony Inaq Capture
-
^ Cf ecics
^
- St
I

I1

^ s Harmony T ee Attempis On 0 > omctr c Data Entrv


•fromDoors Harmony Diwbhnq User Account
•fromDoo ^ Harmony* Denied Ent ^v Notification
•,ffcmDoo, s Harmony Out of Date CarOs

•fro ^ Ooo^ Harmony * Emo^ovee 10 Card k)entit »cation Entr


. trcnDoors Harmony Visualization of Secuntv Card Check
•fromDoors Harmony* Secuf « W Card Information
-

fromOoor5 Harmony* Visualization of Biomemc Data Cf >ea Status


•fromDoors Harmony* Aoorovat of Biometnc Data
- --
fromDoors Harmony Three^Anerrcts On Empio »w ID E » > T
fromDoors
.
•fromDoo ^ Harrnon , T me Limit Violation
Harmony* Dentta Eut
•fromDooi Harmony * Alarm Exit

-
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

•f ^orr.Ooors Harmony* ocessmQ ^ Reqjesl


•xmOoors H rrr nv Sofrelnc Dat3 Storage
^ ^
•fromDoo^ Harrnonv * T » me Recoro * ^
.fromDoors Harmonyy Exit T me
-
图4 6 安全系统用例图

romDoors
-- Securtno th« Secure Area Entry
Harmony Automatic
•fromDoor? Harmonv Automatic S^cunno tne Secure Area - £*!
•tromDoof 5 Harmony* Confiourjtion of Entry 3 Emt Time

-
ireotvoes

use Case Oaqrams


*
为支持由于需求变更的更新 , 用 Units ( 单元 ) 定义用例。
i JCD.Seciir tySystem
右击用例 , 选择 Create Unit。
图4 5 - 导 入 系 统 需 求 到 SecSys_ RA 中
043
基于模型的系统工程最佳实践

RequirementsAnalysIsPkg
- Packaqes
仁i Requ i rementsPkg
-二 Packaqes
4 . 3. 6 关联需求到用例 SecSysReqs
^

_
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
»

I 注 :系 统 需 求 可 以 与 多 个 用 例 相 关 联。 •fiomDocw Hamwnv AJ ^ nn - EtUrv


Haimonv *
omDooni Haimanv' Employee ID Can!Ideottftcatton
.
>

-
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
>

在对话框中 ,选择 Dependencies , Use Cases


UcIControlEntry
I Association Ends
选择 Profile : PredefinedTypes ,
^ Dependencies
. « trace Three Attempts On Employee ID Entry
.
®

选择 Stereotype : trace


« trace ^> Three Attempts On Biometric Data Entry


. «trace» Disabling User Account
- « trace* Denied Entry Notification

厂 在 UseCaseDiagramsPkg 中 , •
-
« trace* Out of Date Cards

选择用例 UcIControlEntry

在 ModelingToolbox 对话框中 , Modeling Toolboic

点击 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 Biometric Data Entry
Disabling User Account
O UcIControlEntry


• 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

iTwo Independent Security Checks • Two Independent Security Checks



、Alarm - Entry Alarm - Entry
'•Employee
Employee ID Card Identification - Entry • ID Card Identification - Entry
a Visualization of Security Card Check Status - Entry -
• Visualization of Security Card Check Status Entry
2 Security Card Information Security Card Information '•Security Card Information
Visualization of Biometnc Data Check Status • Visualization of Biometnc Data Check Status
Approval of Biometric Data • Approval of Biometric Data
i Biometnc Scan • Biometric Scan
Image Capture '• Image Capture

Three Attempts On Employee ID Exit • Three Attempts On Employee ID Exit


Time Limit Violation ' • Time Limit Violation
Denied Exit Notification . Denied Exit Notification
Alarm - Exit •
• Alarm - Exit
Employee ID Card Identification - Exit .Employee ID Card Identification - Exit
Visualization of Security Card Check Status - Exit Visualization of Security Card Check Status - Exit
: Security Lockdown
丨丨

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(

Overall Quality: 93%


-
S»i.RA
fiepom H«p

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

IT* . r>cte- >s|


-
Rule check

^^^
^^
L4

▲ UML Model
M SecSy9 HA
iSecS

-
^^
^^
|Requ»emertTyT>e pL ction

Dmbang User Acctxrt


Dened Ertry Notfcation
Omd DaleC«di
linofiheO
Coverage Analysis View|\ impact Analysis ViewGraphical View|國 Requirement Details| Link Details|
^ Downstream Coverage Information

_ Rhapsody SysML

* Atihonzaton o# Secuty Cod & y

^
i Two Indeoendert Secuty Checks

^^
-
Atom Ertry

Secuty Cardi \Irriomabon


^

*
T7T

e ABe«x*8 0n &pwetwc Data Entry

*S Ewp*oy«e ID Card Iderohcatiori Ertiy


^

kiaiubonafi Bbometac Data Qveck Sutut


fspprova< rf Bometnc
Btomewc Scan
:Data
-
Vsuakzabonn of Securty Card Check Status Ertr
-

— UML Model
磨- _
_^
S«cSy3 f A
' Packages
Rhapsody Syslfi3 9%

盧 i RegjrementsAnaMsPkg
-
-
Packages

^ UieCaselkagrvnPkg

CDUcKorvo/Btry

J~ ^> hiageCaotuv

rjz^ $ T «Be Aoerett On Enpioyee 0 Ext


.
^^^
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

个 ^^

Atihonzaion erf Scanty Card Ext


Erlry Tme
-
+
^^Tr» Two independent Checks
Proceaang Lber Request

^^^J
Bbrnetnc Data Starage

Ttne Recorkig
&iT*ne
+
* ^^^itonwlc Seajmg the Secure %ea Exl
^ --
AuJofretc Seamg the Secure *ea Ertiy

I Ttne

图 4 -8 在 Rhapsody Gateway 中需求覆盖的视图


清晰显示出系统需求 Security Lockdown 和 Emergency Exit intentionally 没有关联到任何用例

046
第 4 章 案 例: 安全系统
《«
_
4. 3. 7 Rhapsody - > Gateway - > DOORS : 用 例 的 导 出

在覆盖分析视图中 ,选择 UML Model 和


Tools / Export Documents to DOORS

© 在 Source ( UML Model ) 窗 口 和 Types 窗口中 , Bcport document to DOORS


Selection Options | |
执行 Deselect all links Source ( UML Modefl Target

_
「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

© 定义 DOORS New module SecSysUseCases


Tvoes

^ View

o
Requirement
Implicit Requirement
ImportedRequiremen!
点击 Export
~
•Links

Reference

人 Sausfaclion Packaae iavout


.
? Verification
j Single module
: Derivation

^ RhapsodyJinks New module


•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

SYS6 Authortzadon o( Security


I S#cSy»S
5 to the shall orrfy be allowed wtth a valid security card.
-t Functional
SYS7
-
Cafd Entry
two Independent Secure areas shad be protected by two independent security chedcs. ^ Functional
Security Checks
SYS8 Alarm Entry- On a dented ertrv an alarm signal shall be raised. ’ Functional
JD. Cacti. 〆- *

/ SecuntySystem/SecSysUs«Cases 12: UclControiEntry

‘㈡ 口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

Uteityp Da&base Manag

,SecuntySystem/SecSysSystemsRequirements 1: Upon entry the user shall be a...

[ 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

4.4. 1. 1 模型上下文的定义 Uc1Control Entry


User Camera
用例 Ucl ControlEntry 的详细描述将在一个独立的 Rhapsody 项目
中进行。
o
Uc2ControlExit
创建与 Harmony 相对应的 Rhapsody 项目并命名为
UclContolEntry Admin AccessPoint

在 Rhapsody 主菜单中 ,选择 File > Add to Model As unit ,


_
找到项目 SecSys RA project 并双击 SecSys RA. rpy_ 图 4 - 11 导入用例图 UCD_ SecuritySystem

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

Ucl ControlEntry 用 例 , 你 可 以 用 Delete from Model 功 能 删 除 用 例


Uc2 ControlExit 0
+
i !
^.
User
w Admin
.. Camera
由 0 AccessPoint
- [ Use Case Diaqrams

合 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
__ 基于模型的系统工程最佳实践

功能分析项目结构沿用了第 3 章中所推荐的构造 ,并可使用


Components
-
Rhapsody SE Toolkit 功能 Create System Model From Use Case , 自动创建
-
- Packaqes
-• RequirementsAnalysisPkg
出来。 - - Packaqes
右击用例 Ucl ControlEntry , 并选择 二 RequiremcntsPkg

- Packaqes
V
一 / SE-Toolkit \ Create System Model From Use Case ± t SecSysReqs
UseCas«DiagramsPkg
二 二 Use Case Diaqrams

合 UCD.SecuritySystem
^
UCD.S^urltySylwn
- FunctionalAnalysisPkg
-

Packaqes
UclControlEntryPkg
Security System

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

o 通过使用 SE-Toolkit 功能创建系统模块


Uc Ucl ControlEntry

Desi
由〆 Hyperlinks
DesignSynthesisPkg
ActcorPkg
Actors
:, Camera
© G> { ^
把用例及其需求关联移人 FuncticmalAnalysisPkg 的 AccessPoint
UcICcmtrolEiitryPkg 中。另外 ,SE Toolkit 功能创建了一个名为 y User
v Admin
Ucl ControlEntryBlackBoxView 的空活动图
^ IntcrfacesPkg
TypesPkg
052
第 4 章 案 例: 安全系统

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"]

的方向 ( 如由人到出 , 或由出到人 )。ActorPin 的创建是由 SE -Toolkit


的功能支持的 ,即右击相关行动并选择 Add ActorPins 即可创建。
从 活 动 图 导 出 序 列 图 是 由 SE -Toolkit 的功能 , SP : Create New
Scenario From Activity Diagram , 并 使 用 ActorPin 来支持的。 [BsFailCountsaj ]
iuth« ntlcatoBlom*tr( cData
om*MeScanFallura
注 :活 动 节 点 resetAlarm 由 Administrator 发 起 , 虽 然 没 有 各 自 的 系
统 需 求 , 也 被 追 加 到 需 求 中。它 被 视 为 导 出 需 求。导 出 需 求 以 属 性 标 签
« DerivedRequirenent » 的 方 式 临 时 存 储 在 DerivedRequirementsPkg 中
dinbUUwrAccount

^ »
dl«p ayAuth*nticatlonStatu»

[AuthernticationStatui

J
"AuthtintiMted"]
. logEntryData

[« »]

Denved Rgquifemcnt : AlannResgt in DerivedRequirement;


•Mi
—s
General Oescopkon : Relanona Tags , Ptopertes
MockAcctssPoint
reqUm
Name AlarmReset L j AccsacPoInt
= •MessageActl
Stereotype
二 reqPromsAla
! •Mtsug^ction*
T / pe Requfem«nt In •MeuiiigaAction* evAcmsPo/nttlnlocked
cctssPoInt
reqLockAo
ID _
Defined ir
厂»r wtAJarm t Unlod»d

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 基于模型的系统工程最佳实践

4 . 4. 1 . 3 黑盒用例场景的导出 Uc1Contro< EntryBtockBoxVkw )

用例场景是由黑盒活动图导出的 , 黑盒活动图是使用 SE-Toolkit


O SecunlvCard

^-
功能 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

© 按下 Ctrl 键并选择黑盒活动图的一组活动序列 ( 也可以选择


一个单一活动为原数据范围 工具将自动生成序列直到到达 3
{else 】
[el*l

scanBiometricOaia
LBS

条件连接器。用户还可以选择经由路径) -
IBsfailC (>ant *3]

lagBiom etnc ScanFailure

o 在 ModelingToolbox 对话框中 ,点击


Set Source Mootedog Toolbox
Ooiions About
display Au he nic a*ons tatus
TQ ^
4
lAutnemcatiofi Status
MAuthenbc4 le<ri 9

在 ModelingToolbox 对话框中 ,点击


© 、
:; d : 1卬靡

AdivityDiogramGc.
Set Ue cr r
* gtiui

block
[else]

0 Create New Scenario From Activity Diagra


AccessPomt
_
Creota New Scenario From

Activity Diagram 丨上e Design Rules
__m
Design Rules •MessageActum

注 :所创建的序列图将自动存储在 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

Generate SDs | Source

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

(一 右击 Ucl _ ControlEntryBlackBoxView > Activity , 并 选 择


知 readSecurityCardO

_
\ y
S

SE -Toolkit > Perform Activity View Consistency Check


^ scanBiometricDataO
公 authenticateBiometricDataO
displayAuthenticationStatusO
知 displayCardStatusO
谷 validateSecurityCardO

丨主丨 Activity View Consistency Check 1 口 回 一—这 -


k y reqReadSecurityCardO
kp reqScanBiometricDataO
evAccessPointUniockedO
Options • iV* evAccess Poi ntLocked0
+ - Internal Block Diaqrams

Messages with no Corresponding Action r - Packaqes


[ Results - p UdControlEntrvBBScenanosPkq
: information Ac&ons with no Corresponding Message - L- Sequence Diaqrams

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

iJ Show Corrected Name , Filter


^
i Hypertinks

— 一

上面的截屏显示了在第一个用例产生后的一致性检查的结果。结
果列出了没有确定解决的操作。这些操作将在后面的例外场景中被捕
捉到。

056
第4 章 案 例: 安全系统

_
BB Uc1Sc2 Exception CardReaderEntryJ _
BB Uc1Sc3 Exception BiometricScaiy

: User :Uc :Admin :User :Admin

\
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

手动连接端口或使用 SE -Tookit 自动创建 ,


实现了。
端口命名规定 :p < TargetName >
接口名称与发送端口相关 , 命名规定 :i < Sender > _ < Receiver >

\, / 右击 IBD ,并选择 SE -Toolkit > Connect Ports

_ _
IBD Uc1 ControlEntry /

itsUc Uc1ControlEntry p FunctionalAnalysisPkg


_ _
iUser Uc Uc1ControlEntry
_ _
IUc Uc1ControlEntfy Camera
-

- 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

-

pAdmin pAccessPoInt - C Sequence Diaqrams


C. Ucl.Scl Nominal
_
IUc Uc1Contro Entr _Admin _ _
iAccesc Poii t Uc Uc1ControlEntry
-
C Ucl_Sc2 Exception CardReaderEntrv
_
CJ Ud SC 3 Exception BiometricScan
+ UclControlEntf7ExecutionScopePkg
.

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);

ProcessingBiomethcOata logAccoi iuntOata ( );


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

注 : 状态图应该是 i 次化的结构 这祥可以支持后续阶段 ,,

1 ( 即用例实现 ) 行为设计板块的重用。
i
>
059
基于模型的系统工程最佳实践

为闭环地执行用例模型 ,角色的行为也必须被捕捉到。Rhapsody 对角色 Admin 和 Camera , 反复执行该步骤。此外 , 角色行为还


-
SE Toolkit 可以在基于角色的供给接口/ 需求接口信息上提供自动产生 可以在更详细的状态图中捕捉到。
角色行为的功能。
在用例 Internal Block Diagram 中 ,
在用例内部模块图 ( Internal Block Diagram ) 中 ,右击 User block ,
并选择 SE-Toolkit / Create Test Bench。
0 右击 AccessPoint 模块 ,并选择 Class / New Statechart。

Rhapsody SE -Toolkit 功能 , 在一个状态 ( Active ) 上 ,通过使用


MOORE 语法 ( = action in state ) 以及通过网络获得的模型执行能力 © 在某个 state machine ( 状态机 ) 中手动捕捉角色行为。

捕捉角色行为。

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 )

ItsUser 1 lt«Uc UcIControlEntrv

_
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

IBM RationalRhapsody 工具提供两种可视化方式呈现模型行为:


reqTakeSnapshotO

• 通过各自状态图的动态图像展现 , 提供基于状态行为的视图; ^
ecurityCard (CardStatu
^
| Valid )

•通过自动生成序列图 ,提供信息序列的视图。 displayCa rdStatus(Ca rdSI lid )

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;

BsTimeout Fall «d3Timos


alarmO;
Authenticated AccgssPointUnlockedQ \
/ logEntryData ();
TA
0
^erAccountQ:
/ disableU
logAccountDataO;
(5000)

alarmO;
reqLocKAcceasPointQ
UnloddngAiKlLo ldn0Acc0«Point

%
1
\

WaKForftosetAlann
Disabled") to pAdmln
> Vtm(1000)
evAccessPointLockedO
reqResetAJarm /

e vAcce aaPoi n tLocke d 丄 rvsetAJarmO;

J

图 4 - 18 状态图的动态展现 ( UcIControlEntryCtrl 1 )
图 4 - 19 序列图 BB _ UclScl 的动态展现 ( 正常场景 )

061
■ 基于模型的系统工程最佳实践

使用 Rhapsody 序列图比较功能 ( Sequence Diagram Compare ) ,可 箭头颜色 名称颜色 描述


以对序列图进行分析。该功能对两张序列图进行比较 , 一张序列图是 绿色 蓝色 两张序列图信息一致
用来捕捉所需场景的序列 ,而另一张序列图是所录制的模型执行场 粉色 粉色 信息在另一张序列图中丢失
景。两张图的差异性用不同颜色显示出来。该功能还可以用于比较两 绿色 粉色 信息与另一张序列图不一致
1
个回归测试的结果。 橙色 橙色 信息在另一张序列图中以不同时间到达
灰色 灰色 信息没被包含在比较对象中

:A
" Uc UcICo咖Entry ssPoint
Access I Uc^UcIControlEntry AccessPo

User _
: Uc Uc1ControlEniry Access ;
OHH :Uc UcIConlro
丨 Entry AccetsPoi

» ttdSecurityCaydQ c #ad SecurttyLardO


2
validflleSocuiilyCatd(CardStatt»)
今,
JtoplayC a rd Status(Card Status)
% %
:::
Y,
/
A mc|ScanB>om»frtcOdti»(|

—^
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

所需场景 又 4 被录制的 fnOLlKfcAp


2
序列图 序列图 t evAccfe**fV > i (»d.otk<KJ

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

Dependency 功能。如果需要用可视化的方法 ,如需要讨论或建立文档


需要 ,也可以用需求图可视化这种依赖关系。
0 在 SystemRequiremerUsPkg 中 , 选择相关系统需求

r -
RequirementsAnalysisPkq
Packages
£- RequirementsPkg
© 在 Modeling Toolbox 对话框中 ,点击 Set Destination

© 在 Modeling Toolbox 对话框中 ,点击


Packaqes

_
D SecSysSystem Reqs
- Requirements Create Dependency with Stereotype
« fromDoors Harmonv» Three Attempts On Biometric Data Entr
^
4

i afromDoors Harmony® Disabling User Account Modefmg Toolbox

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)

< Authorization of Security Card - Entry


< Out of Date Cards - Entry
displayCardStatus(OMStrinq CardStatus) ^
General D ?endenc) esJ CWHefTGenerateSDs !
Destj
j
^^^ ^^
uritvCardFailure
^
cFailCoiyr

063
基于模型的系统工程最佳实践

在需求图中 ,可视化依赖关系。
在 RequirementsPkg 中 ,创建一个需求图 0 从 SystemRequirementsPkg 移动相关系统需求到该图

RD_ Ucl BlocklinksToSysReqs

Q 从 UcUclControlEntiy 模块中移动操作和属性到该图中

RD_Uc1BlockLinksToSysR )
^^ 4 在工具菜单中 ,选择 Layout > Complete Relations > All

•Primitive Operation* Denied Entry Notification •Primitive Operation*


logEntryData
logAccountData():void
«satisfy
* -
ID SYS4
«satisfy»

•PrimKive Operation» •Requirement*


Three Attempts On Biometric Data Entry •Attribute*
flagBiometricScanFailure 丨
BsFa ICount
«satisfy»
ID = SYS2 ^ satisfy

(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

•Primitive Operations •Requirement*


valldateSecurityCard Security Card Information
«satisfy
* ID = SYS11
cRequiremei
Out of Date Cards •Entry
«satisfy
ID = SYS5

«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 SecuritySystem 中 ,你可以删除 ( Delete


^ validataSecuriityCard
'

from Model ) 用例 UcIControlEntry 和角色 Camera •MessageAction»


setT /meL imitVIolation
diaplayCardStatui

_
UCD SecuritySy»tem )
^ = = Vatid]
[CardStatus
f logExitData

o AccessPoint

ft Security System 〔 AagSecurityCardFallure

^ •MesugeActlon*
reqUnlockAccessPoint

o ^ lJc2Control
IScFallCounK 3)
• MessageAction*
reqLodcAccessPoint
_ evAc -^ MesugeActfon*

Ilf
/ t l>nloci(ed

¥
Admin W AccessPoint
HQ
•Messat
/ AccessPtointLocked
'
Admin

resetAlarm

右击用例 Uc2ControlExit ,并选择


SE-Toolkit / Create System Model From Use Case
图4 -2 2 在 Uc2C0ntrolExU ( 黑盒视图 ) 中的功能流

065
基于模型的系统工程最佳实践

4. 4.2. 3 黑盒用例场景的导出 BB Uc2Sc1 Nominal and Exception ,)

-
借助于 Rhapsody SE Toolkit 功能 Create New Scenario From Activity
_
:Uc Uc2ControlExlt :Admin :AccessPoInt

Diagram ( 参考章节 4. 4. 1. 3 ) , 可以从黑盒活动图中 , 创建出正常序


parallel
列和例外序列相结合的序列图 , Rhapsody SE -Toolkit 自动将导出的序 loop )

^
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 :

H'lmeLtmltStatusvfalM; T I rnmeUmltStatu ^truel

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 \

Wa KF orExitReq uet t < A reqReadSecuntyCard ()

leqReadSecuriiyCard/
readSecurityCardl ). readSecurityCard ( )

Processing SecurityCardOata
= Valia
CardValid Fail3Time«
validateSecurityCard (CardStatus
^
/ togExiiData (); / dlarm ();
dlsplayCardStatus(CardStatu8 = Valid )
fegProcessAlertTExit Failure *) to pAdmin
*
loaExitDataO

ockingAndLockingAccessPoin! reqUnlockAccessPoint()
WaKForResetAlarm

evAccessPoinlLocked reqReseiAlatm / Vtm(IOOO )


resetAlarm{):

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 设计综合 关键系统功能

4 . 5. 1 架 构 分 析( 权 衡 分 析 ) 建立权重目标分析表

架构分析的关注点是对系统功能分析阶段识别出的所需功能 ,作
i
t
权衡分析和研究 ,从而决定最佳的实现方案。图 4 - 29 详细描述了架
构分析工作流 ,并列出了 Rational Rhapsody SE-Toolkit 系统工程套件对
定义
候选解决方案
[
1
各个阶段的支持。
标准

如章节 4. 1 所述 ,架构分析是在一个独立的项目 SecSy8 AA 中进 _ 分配 -


SE Toolkit 功能:

行的。精化后的系统架构是由模块定义图 BDD SecuritySystem 来捕捉
_
的。在 ArehitecturaiDesignPkg 套 件 包 中 的 内 部 模 块 定 义 图 IBD
村 制 准 Copy MOEs to CNIdnn

为每个标准
SecuritySystem , 对于后续所有实现的用例模型是共通的 ,即便系统模 定义优化曲线
块的子集要在各自的用例实现中来处理。 ]
分配 MoEs
到候选解决方案中

确定解决方案 SE Tooikit 功能:


-
Pertorm Trade Analyti$

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 ) )
现在 ,可以把这些信息输入到模型中。

0 在 DesignSynlhesisPkg ( 设计综合套件包) 中 ,创建一个


ArchitecturalAnalysisPkg ( 架构分析套件包)
BDD_Captur»Biometrk:PataOpbon)

© 在 ArchitecturalAnalysisPkg 中 , 创建一个
TradeStudyAnalysisPkg ( 权衡分析套件包)
CaptureBiometncData
iuthenftcateBiometncData(AuthenticationSlatusOMStnng) void

© 在 TradeStudyAnalysisPkg 中 ,创建一个 BiometricScanTradeStudy


( 生物扫描权衡分析套件包)
fidisplayAumendcationStatus(AuthefticatjonStatusOMStnng) void
fi ScanB丨 ometncDataO void

0 __ 在 BiometricScanTradeStudy 中 ,创建模块定义图 ,命名为 BDD


CaptureBiometricDataOptions FingerpnntScannef Optical Scanner

© 在 BiometricScanTradeStudy 中 ,创建下列模块 : 0
CaptureBiometric Data ( 捕捉生物数据);
OpticalScanner ( 光学扫描系统);
FingerprintScanner ( 指纹扫描系统)。

071
■ 基于模型的系统工程最佳实践

4.5. 1.3 评 估 标 准 的 定 义 & ArchtecturaJAnaVsjsPkq


-」
评估标准一般是基于客户约束 、 所需的性能特点 ,或者成本因素 _
Padcaqes
- £] TradeStudyAnaVsisPkq
考虑的。
评估标准一般是主观的 ,但也可以是非常特定的。一个主观的目

_
Packaqes
£ & BbmetricScanTradeStudy
- 1 Block Definldon Deqrams
_
%, BDD CaptureBbmetncDataOpton
S
标可以是低成本。一个特定的目标可以是一个精确性的度量 , 如
2

± 0.1 mm。在该案例中 , 评估标准是二者的结合。


•- B
CaptureBometricData
Attributes
S « moe» Accuracy
在该案例中 ,评估标准和相关分类如下 : B « moe» PurchaseCost
S « moe» InstalattonCost
• 精确度 ( Accuracy ) ; B « moe» MantenanceCost
8 «moe* Securty
•购买 ( Purchase ) ; S Operations
S authenticateBometricDataf OMStmq AuthentxatonStatus)
•安 装 ( Installation ) ; Si dspfavAuthent)C3tionStatus( OMStrinq AuthenticationStatus)
£ ScanBometricDataO
• 维修成本 ( Maintenance Cost ) 0 Optical Scanner
RnqerprintScanner

通过对每个评估标准添加模块 CaptureBiometricData 和各自的属


BDD_CaptureBiometricDataOptionJ
性 ,构造体
《 moe 》,评估标准被捕捉在模型中。
«b l o c k »
CaptureBiometncData
S « moe » Accuracy i nt
9 « moe » PurchaseCosnnt
S cmoe » Installati onCost i nt
8 cmoe» MamtenanceCosrmt
S « moe » Security int
fiauthenticateBiometncData( Autt)enticationStatusOMStnng ) void
63 displayAuthenticationStatus( AumenticationStatusOMStnng ) void
fiScanBiometncDataO^oid '

•block*
. 1
cblock *
FingerpnntScanner Optical Scanner

072
第 4 章 案 例: 安 全 系 统

4.5. 1.4 分配权重到评估标准 BiometncScanTradeStudv


-」 Block Definition Deqrams
所有评估标准不是同等的。有一些比另一些重要。依据对整体解 _
BDD CaDture6ometncDataOpton
AccuraQr.ini - 目 blocks
决方案的相对重要性 ,评估标准可以赋予权重。权重影响因素值可以 ^ 5
-
•9 CaptureBiometricData
S Attrtxjtes

_-
*
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>

•Installation Cost :0. 15 ;


CaptureBiometncOata
8« moe » AccuracyUoat
•Maintenance Cost : 0. 10。 8« moe» PurchaseCostfloal
B « moe» installationCostfloat
3«moe» ManitenanceCostfloat
《 m0e »
这些值是通过一个称为权重的标签 ( Tag ) , 附着在每个 8« moe» Seciirityfloat

属性上显示在模型中的。
authenticate日丨ometrlcOata{AuthenbcationStatus OMString ) void
fidisplayAuthenlJcationStatus( Authentica!ionStatus OMString ) vojd
<fiscan6iometncOata() void

o 《11106 » 属性中 , 选择表 Tags 并添加适当值


在每个

CaptureBiometricData 模 块 属 性 , 使 用 Rhapsody SE-Toolki丨 功 能


blodt»
FingerpnntScanner Optical Scanner

Copy MOEs to Children , 被拷贝到解决方案模块中。


S «moe» Accuracy float - S « moe> Accuracyfloat


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
■ 基于模型的系统工程最佳实践

4.5. 1.5 每一个效用曲线标准的定义


效用曲线所提供的功能是 :比较目标分析结果 ,并输出一个一般 -
y = 0.025x + 10

在 0 ~ 10 之间的标准化值以表示目标是如何被满足的。 、

为决定有效性度量 ( MOE ) 的精确度 ,创建一个线性效用曲线用
于检査出错率和 0 ~ 10 度量等级的关系。
MoE

注:对 一 个 简 单 的 线 性 功 能 ,效用曲线可由下列公式计算 :
MoE = - ( MoE range/ target range ) + MoE range

50 100 150 200 250 300 350 400 450

y = -x + 1 0 Purchase Cost (!)

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

Tota Installations cost $


1000 1200 1400 1600

本 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

千次 2 5 个来计算 ,得出指纹扫描系统的 MoE 是 7.5。光学扫描系统的精


FF 0 CaoQjreStometr»cOata
S Optical Scanner

确度是每一千次 0.001 个错误,这就得出其 MoE 是 9.999 或约等于 10。


购买成本 :捕捉生物数据的硬件成本 ,指纹扫描系统约为 110 美
元 , 光学扫描系统约为 250 美元。从购买成本的效用功能上看 ,指纹
扫描系统的 MoE 是 7. 25 ; 光学扫描系统的 MoE 是 3. 75。 | P抑丨
安装成本 :10 台设备的安装成本 ,指纹扫描系统为 600 美元 ,光
I I
学扫描系统为 U 75 美元。从安装成本的效用功能上看 , 指纹扫描系

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 »

多一些。据这种认识,指纹扫描系统的维护 MoE 是 8.0 , 光学扫描系统的 CaptureBiometricOata

维护 MoE 是 6.0。 9 < moe > Accuracyfloat


S « moe» PurchaseCosttloal
B « moe» InstallationCostHoat

0 在浏览器中 ,选择一个模块代表上述的某一个解决方案 , 并
打开其功能
S « moe > MaintenanceCostfloat
S cmoe > Securityfloat
authenticateBiometricOata ( AuthenticdtlonStatus OMString)voicl

©
displayAuthentlcationStatus (AutfienticationStatus OMStnng ) void
选择属性表 scan Bi om etricO ata() void

© 选择要编辑的属性 ,并在 Initial Value ( 初始值) 区域中输入期望值 FmgerpnntScanner


H cmoe* Accuracy float= 7 5
Optical Scanner
9 « moe » Accuracy:float= 10

©
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

创建一个名为 FingerprintScannerArchitecture ( 指纹扫描系统构 FingerprintScannerArchitecture OpticalScannerArchltecture

W 架) 的模块
1
N/
拖 动 模 块 FingerprintScanner ,并 使 用 分 解 关 系 使 它 成 为 FingerprintScanner Optical Scanner
FingerprintScannerArchitecture 的 一 部 分

创建一个名为 OpticalScannerArchitecture ( 视觉扫描系统构架)

^ 的模块

0 拖 动 模 块 OpticalScanner , 并 使 用 分 解 关 系 使 它 成 为
OplicalScannerArchhecture 的 一 部 分

076
第 4 章 案 例: 安 全 系 统

步骤 2 : 实行加权目标计算 分析结果由 Excel 显示出来。从该分析结果看 , 可以看出


一旦可能的构架就绪 ,便可以从呈现的可选方案中选定最佳解决 FingerprintScanner 的综合分数略高 ( 尽管 OpticaScanner 在精确度和安
方案了。实施这类分析的方法是加权目标计算法。它用于针对一个特 全上比 FingerprintScarmer 高),因此 ,扫描生物数据功能的实施选为

_
定功能制定出解决方案。它是通过各自的权重乘以每个 MoE 值 ,然 Fingerprint Scanner。
后把结果值加到一起构成。这是针对每个解决方案的每个功能进行 TradestudyAnaiysisPkg
B LJ Padcages
的。具有总和最高分数的综合解决方案是对特定架构或功能选出的实 - BiometricScanTradeStudy

施方案。实际计算操作可在 Excel 中进行并显示出来。


o
5 丨二J Block Defrtiton Diagrams

_
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
基于模型的系统工程最佳实践

4. 5. 1. 8 架 构 设 计 套 件 包 ( ArchitecturalDesignPkg ) 中 的 通过在模块定义图中 , 定义系统模块 SecuritySystem 和子系统模


解决方案的文档化 块之间的组合关系 ,子系统模块的实例可以在 SecuritySystem 中自动
创建出来。
在 DesignSynthesisPkg 中 ,创建 ArchitecturalDesignPkg。
建议 ArchitecturalDesignPkg 实行结构的标准化。如果一个系统模
精化后的系统架构是通过模块定义图 BDD _ SeCuritySyStem 和内部
_
模块图 IBD SecuritySystem 来捕捉的。
块分解成部件 ,每个部件则应分配到相应的以 < SystemBlockName >
BDD_ S«curftySy»f m ) DecompositionPkg 命名的套件包中。这种结构的创建是通过 Rhapsody
SE -Toolkit 功 能 Create Sub Packages 来实现的 c
SecuritySystom
右击模块 SecuritySystem ,

^ 选 择 SE -Toolkit > Create Sub Packages

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

图 4 34- 模块定义图 BDD_ Security System


^ill
|
itsFmqerprintScanner
itsCardReaderEntry
L itsSecSysController
: wi
ill itsCardReaderExit
_ S»curttySy«tm ) Internal Block Diaqrams
遥 IBD.Securi tvSvste m
- CJ Packaqes
» t ExecutionScopePkg
1 naCardR«ad«r£xtt 1
£:SecuritySystem Decom positionPkg
三 ^ Packaqes
CardReaderEntryPkg
SS Blocks
CJ CardReaderEntry
- CardReaderExitPkg
LZJ S Blocks
CJ CardReaderExit
- £D FingcrprintScannerPkg
r? S Blocks
D FingerprintitScanner
-
图 4 35 内部模块图 IBD_ Security System 二 P S Blocks
SecSysControllcrrPkg

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

步骤 2 : 更新导入的模块定义图 BDD 和内部模块图 IBD


由于在 SecSys 模 型 中 ,只 有 当 系 统 构 架 被 捕 捉 在 模 块 定
义图
_
BDD SecuritySystem 和内部模块图 SecuritySystem 中,导人的图才
需要根据用例的相关角色进行更新。

步朦 3: 从 FunctionaiAnalysisPkg 中的用例模块 Uc _ UclControlE «

ntry , 拷贝粘貼事件、操作和属性到 ArchitecturalDesignPkg 中的系统模 图 4 - 39 更新的内部模块图 IBD_ SecuritySystem


块 SecuritySyst^n 中 p ArchitecturalDesiQnPkq
4 :: Block Definition Diaqrams
J Blocks
右击模块 SecuritySystem ,并选择 - 3 SecuritN
Association Ends
-
SE Toolkit > Merge Functional Analysis
! Attribut

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

© 选择 SE-Toolkit > Create Allocation table

FingerprintScanner SecSysController CardReader_Entry


scanBiometricData validateSecurityCard alarm
authenticateBiometricData flagBiometricScanFailure displayCardStatus
enableBiometricScan disableUserAccount readSecurityCard
disableBiometricScan flagSecurityCardFailure resetAlarm
dispiayAuthenticationStatus logEntryData
logAccountOata

图 4 - 41 Ucl / ControlExitWhiteBoxView 的分配表 ( Excel 表 )


083
基于模型的系统工程最佳实践

正规化操作的分配 产生下面错误信息的原因是 , 如前面章节所述 ,活动/ 操作


一旦分配的概念得到完全的理解 , 分配的操作是拷贝系统模块操 enableBiometricScan 和 disableBiome
丨 ricScan 是之后被加入到白盒活动图
作和接收物 ( 包括文档和需求的依赖关系),到各自的子系统模块中。 UclComrolEiiliy 的。所以 ,它们没有包含在 SecuritySystem 模块的用例
合并操作中。
-
该 过 程 是 使 用 Rhapsody SE Toolkit 功 能 Allocate Operations from
Swimlanes 来支持的。 Modeling Toolbox

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

© 在 Modeling Toolbox 对话框中,


点击 Allocate Operations from Swimlanes
G Modeling Tootbcoi | Accept Selected | Locate ft m Rhapsody

追 加 这 些 操 作 到 SecuritySyslem 模 块 ,并 把 它 们 分 配 到
FingeiprintScanner 模块中。

(T) 在对话框中 ,选择 Select All

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

SecuritySystem , 选择 SE -Toolkit > Allocation Wizard f k? reqReadSecurityCardO


i k? reqResetAlarmQ
- CardReaderExitPkg

© 在对话框中 , 选择 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

0 Aftrttxites| Operations | Events J 图 4 -42 分配属性、操作和事件


085
■ 基于模型的系统工程最佳实践

4.5. 2.1. 3 白盒序列图的导出


-
白盒场景是借助于 Rhapsody SE Toolkit 功能 Create New Scenario

在 SecuritySystemDecompositionPkg 中 ,创建 SecuritySystemWB SD
From Activity Diagram , 由白盒活动图导出的。 _ Ucl 套件包 ,并参考章节 4.4. 1. 3 中的步骤。

一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
基于模型的系统工程最佳实践

:CardReader :S# cSy«Controller Fingerprint


Entry Scanner

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

reqDi sable BlometricScan{

^
/ 8cFailCount= 3 HsableBiometricScanQ

dlsalbleUsorAccourrtO isableuserAccounu)

logAccouintOataQ ta ( )

reqAlarmQ
二 reqAlarmO

4
IlarmO

r«qProca 8sAJ 9rt(AierfType ) r« qProc«ssAJeft(AJonType )

s
raqRa reqReaetAla

tAiarm ()
wtAlarmQ
1 rtqKesetAiarmn
tAJami ()

( a ) 导出白盒用例场景 ( b ) 导出白盒用例场景
WB_ Ucl Sc2 CardReaderEntry 例外场景 , WB_ UclSc3 BiometricScan 例外场景 ,
前置条件:读卡验证两次失败 前置条件 :两次授权失败

图4 -44 导出白盒用例场景对比 (例外场景 )

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

SE-Toolkit > Create Ports And Interfaces


-
注:Rhapsody SE Toolkit 功 能 仅 定 义 行 为 性 端 口 和 与 其 相 关 的 所 需 提 供
接 口。

_
IBD SecuritySystem J

itsSecuritvSvstem

1 itsllser 、 1 itsCardReaderExit 1 itsSecSvsController

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

图4 - 45 UcIControlEntry 用例实现的 IBD


089
_ 基于模型的系统工程最佳实践
lnterfacesPkg
b li? Events
- 匕 Packaqes
f p Ud BB InterfacesPkq
系统接口的文档化 ( ICD ) P Ucl_WB _IntcrfaccsPkg
S Interfaces
网络通信中通用的文档化工件是 N 的平方 ( N ) 图。在 一 个 N
2 2
S iUser CardReaderEntry
.
S Operations
图中 , 通信的基本节点定位在对角线上 ,一组 N 节点则产生一个 Nx -
reqReadSecurityCardQ
iSccSysController.Oimcra
N 矩阵。对于一个给定的节点 ,所有输出 ( UML/ SysML 所需接口 ) 3 Operations
__h? reqTakeSnapshotO

被放在一行里 , 而所有输人 ( UML/ SysML 提供接口 ) 则被放在一列 b: ISecSysController.CardReaderErrtry

里。图 4 - 46 详细展现了实现用例 UclControlEntry 的 N 图。


2
-
^
Operations
k? reqDisplayCardStatus(OMStrinq CardStatus;
reqAlarmO
该 N•图可由 Rhapsody SE-Toolkit 功能 Generate N2 Matrix 来生成。 _ ^
t? reqResetAlarmO
k;- iSecSysControllcr FingcrprintScanncr
.
- 3 Operations
方法如下: k? reqEnableBiometricScanO

在 ArchitecturalDesignPkg 套件包中 , 右击
_ h? reqDisableBiometricScanO
@ IUscr _FingerprintScanner
_
:

IBD SecuritySystem , 并 选 择 select SE -Toolkit > Generate N2 Matrix。 S Operations


reqScanBiometricDataO
S iFingerprintScanner _SecSysController
Operations
k? retAirthenticationStatus(OMStrinq AuthenticationStatus)
B- iSecSy»Controller _AccessPoint
Operations
i
*
k? reqUnlockAccessPomtO
奋 reqLockAccessPointO
r S iAccessPoint.SecSysController
i,S Operations
k? evAccessPointUnlockedO
evAccessPointLocked0
-
Q ICardRcaderEntry _ SecSysController
^ Operations
i? reqValidateEntryRequestO
@ iSecSysController.Admin
- S Operations
k? reqProcessAlert (OMString AlertType)
S iAdmin SecSysController
.
- Operations
reqResetAlarmO

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

reqOinbl BioaittvIcScany r« qEnabltBiofn « tricScan/


^
dlsableBiom tricScanO; enabl « B( ometricScanO;
^
BiometricscanEnabltd

wa itForSca nRaque ft

retAuthentlcatlonStatusniot Authenticated**) to pSecSysController


[Auth« nticationStatus^ aMNot Authenticated*^]
> reqScanBJometricOata /
scanBlometrlcDataQ:

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

/disable Use rAccount( );


logAccountOataO;
/disable Use rAccount();
logAccountOataO;
/ BsFallCount*0:

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 章 案 例: 安全系统

( 3 ) 角色模块 ( Actor Blocks ) 的 行 为 角色模块 AccessPoint 基于状态的行为需求以图形方式进行拓展。


考 虑 到 用 户 模 块 ( User block ) 和 管 理 员 模 块 ( Adminstrator
block ) 中的其他角色端口的通信 ,两个行为需要应用 Rhaposody SE -
Toolkit 功能 Create Test Bench ( 参考章节 4. 4. 1 . 5 ) 进行扩展。对于角
色照相机 ( Camera ) 不需要作任何变化。
例 :角色模块 User。
_
在内部模块图 IBD SecuritySystem 中 ,右击 User 模块 ,选择
SE-Toolkit > Create Test Bench
•vAcceMPointLocked to pSecSyaController
_
> reqlinlocKAccecsPoint

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 的扩展行为

Q 对角色模块 Admin 重复步骤 1 ~ 2

093
■■ 基于模型的系统工程最佳实践

4.5. 2. 1.6 实现用例的验证 CardRead«r :Fingerprint SecSy«Cont/ oll«r AcceiaPomt


Scanner
所实现的用例模型 UclContmlEntry 的验证 ,是在所捕捉的用例场
\^ -
tya do
rvqReadS curityCi
景的基础上 , 通过执行模型来实现的。正确性和完整性分析是基于对
^
s
r8 idS # curltyCard()

模型行为 ( 动画型的展现状态图和序列图 ) 的 0 视检查来实现的。 s


s
\ r« qTak«8nap#iotO \ s
- Valid)
4. 5. 2.1. 7
非功能性需求的配属 \
\ rtqDiaplayCa dStatua(CardStatys ■ Valid)
tyC«rd(Carc
^ ituB

迄今为止 , 关注点聚集在分配系统层操作和相关的功能性的系统 \ reqEnab

\
需求到所选架构分解后的部件中。在该阶段的最新阶段 , 导出功能需 \ ayurdStatua(CardSta Valid

求应已经被批准并关联到各自的操作上。用例实现工作流的最后一个 \
\
bl^ B4 om«thcSc«n( )
步骤是分配非功能性需求。为保证与所有用例相关的非功能性需求被 \
N reqScanBiometrlcC a

考虑进来 ,相关子系统模块到非功能性系统需求的跟踪关联性 ,需要


\
《 satisfy » 依存关系来定义。
用 \
\

\ * • AutJWnticat^<l>
uth«nt c«tlonStatu :【Auth«nticatJon $titu 囂

\
\
<
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

CardValid Fail 3Tlmes »±

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);

validate S« curityCard (CardSta tut) ;


=
/TimeLimitStatus false rTlmeUmltStatu 8»*true ]

''
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

» ■ 基于模型的系统工程最佳实践
所实现的用例供型

4.5. 2. 3 集成用例实现 ( 创触财自模型


所实现的用例棋型
架构设计阶段的最后一个任务是集成用例实现 ,即在集成系统架
构模型中合并用例模型。 重构用例樓型
在用例合并之前 ,必须注意两个模型的所有操作的名字和相关系
统需求关联是唯一的。即:
•如果两个操作使用不同的名字,描述相同功能并关联相同的 集成所实现的用例

系统需求 ,则我们需要对名字进行和谐化调整。

如果两个操作使用不同的名字 ,描述不同功能但关联的是相
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 麵色行为

图4 - 54 用例集成任务工作流与 Rhapsody SE - Toolkit 的支持

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

对 FunctionalAnalysisPkg , 操作 Delete from Model 1 Parts


Standard Ports
-i Internal Block Diaqrams
Q 对 Rhapsody 项目 UclControlEntry , 使用 Add to Model As unit 功
能 ,追加以下套件包 :
题 IBD.SecuritvSystem
-1 Packaqes

+ £ ExecutionScopePkg

• ActorPkg. sbs t SecuritySystemDecompositionPkg



-
- Packaqes
CardRcadcrEntryPkg
• ArchitecturalDesignPkg. sbs
t Card ReaderExit Pkg
心 l FingcrprintScannerPkg
• InterfacesPkg. sbs
+ SecSysControllerPkg
SecuritySystemWB _SD_ Ucl
ti
©
+ '

对 SecuritySystem 的 所 有 模 块 属 性 和 操 作 ,操 作 Delete ActorPkg


P InterfacesPkg
from Model +
二 ^S &Events
Interfaces
IUser _
在 InterfacesPkg 中: + CardReaderEntry

• _ _
对 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

正如章节 4. 5. 2. 3 所提及的 ,只有所实现用例 UdControlExit 的


子集 ,如个别系统架构的模块 ,被集成到 SeCSys IA 模块中。为此 , _ lt»CartlR8adgfgntrv

需要配置一个特定的交付模型。

_
创建相应的 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

在 InterfacesPkg 中 , 对 Uc2一 BB_ InterfacesPkg 和 t


+ SecSysControllerPkg
+ £□ SecuritySystem WB SD UC2 _ _
Uc2_ WB_ InterfacesPkg , 操作 Delete from Model + £ ActorPkg
InterfacesPkg
- Events
V" reqReadSecurityCardO
fc ] 在 SecuritySystemDecompositionPkg 中 ,对套件包 V reqProcessAlert ( OMStrinq AlertType)
*

SecuritySystemWB_ AD_ Uc2 , 操作 Delete from Model ^ reqResetAlarmO


reqUnlockAccessPointO
^ evAccessPointUnlockedO
V" req LockAccessPoi ntO
Y evAccessPointLockedO
在 IBD _ SecuritySystem 中 , 对所有端口和连接 ,操作 Delete y reqValidateSecurityCard()
>
Sv
-^ from Model y
reqDisplayCardStatus( OMStrinq CardStatus)
reqAlarmO
TvpesPkq
+' Profiles

图 4 57 - Uc2ControlExit _ HandOff 的 Rhapsody 项目结构


100
第 4 章案例 : 安全系统
_ __
4.5. 2. 3.3 集成用例实现 AddtoMocsei
Package SscSysControllerPkg already exsts
集成两个模型元素有两个概念。
•模型元素的追加和替换 ( 使用 Rhapsody 功能 Add to Model ) ;
O Load wrth different name

Replace existing unit


3ecSysContoollefPKg.knpo
^
•模型元素的结合 ( 使用 Rhapsody 功能 Difi/ Merge )。 Do not load

OK Replace all Quit Add to Model Hsip

步骤 1 : 追加模型套件包
_
以下 Uc2 ControlExit HandOff 的套件包 ,使用 Rhapsody 功能 Add
to ModelAs Unit , 集成到模型 SecSys_ IA model 中 : + - Components
-
- Packaqes
•CardReaderExitPkg. sbs 1
£J RequirementsAnalysisPkg
- Packaqes
- 1

•SecSysControllerPkg. sbs RequirementsPkg

SecuritySystemWB_ SD一 Uc2. sbs


1
£J DesignSynthesisPkg
- 丨 Packaqes
Add to model from another project
1i
£ j ArchitecturalDesignPkg
U Block Definition Diaqrams
Blocks
FromProiBd 4 — Internal Block Diagrams
二 」 Packaqes
+ ExecutionScopePkg
Typ« »
P8 » * p SccuritySystemDecomposrtionPkg
Sfeuckite CV - 二
SecumySystemOecomp
J Add 3ubtn6 - Packages
CardReadef yPkg sbs
t 1, CardReaderEntryPkg
-

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
基于模型的系统工程最佳实践

步骤 2 : 合并接口套件包 ( Interfaces Packages ) Select files

两个模型的端口套件包是借助于 Rhapsody Diff/ Merge 工具进行合 Files to compare


Left side Rhapsody unit
_ _
HandOf1\Uc2ContralExit HandOff rpy\lnterfQcesPkg sbs Browse. . 」
并的。 Right side Rhapsody unit JysIntegratedSystemArchitBcture.rpy IntertacssPkg sbs Browse . .
^
准备 : 用一个空的接口套件包 InterfacesPkg , 创建一个 Rhapsody Compare with descendants /

项目 , 以 EmptyModel 的名字保存该模型。 V Base-aware mode


Bose Rhapsody unit - _
13 12\EmptyModel\EmptyModel rpyMnt8rtacesPkg sbs) Browse. .

从菜单中启动 Rhapsody Diff/ Merge 功能 , 选择 File > Compare I OK I Cancel

检查差异性 : 应该只有元素 ( 接口和事件 ) 被追加或丢失。

^
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

在工具菜单中 ,选择 »- i- ExecutionScopePkg

^
SecuritySystem DecompositionPkg
Tools > SE -Tookit > Modeling Toolbox > General


Packaqes


GirdReaderEntryPkg
CardReaderExitPkg

_
在 SecSysControllerPkg Import 中 ,选择模块
FingerprintScanncrPkg
SecSysControllerPkg
_
SecSysController Import (^
/ \
4 )
S Blocks
LI SecSysController
SccSysControllerPkgJmport

在 Modeling Toolbox 对话框中 , *


+
S Blocks
+ C * SecSysControllerjmport
!

_ _
SccuritySystemWB SD Ucl
_ _
p SecuritySystemWB SD Uc2
- O
点击 Set Source f ActorPkg
f f IntcrfacesPkg
TypesPkg

在套件包 SecSysControllerPkg 中 , Modeling Toolbox m


选择模块 SecSysController Optem

在 Modeling Toolbox 对话框中 ,


点击 Set Desination
Souite A Smqle Block j\ Multiplfi 8bci i
D^ stinfitioo A Single fitoc^

在 Modeling Toolbox 对话框中 , j Jl er ionu


^
6fcc> % to a
arid Eve
^ Dioc^
>s
^ 点击 Merge Blocks
j

0 Add Dependencies

f Dependencies| Otner j Generate SDsl

103
■ 基于模型的系统工程最佳实践

步 骤 4: 创 建 更 新 端 口 和 接 口
右击 SecuritySystemWB _ SD _ Uc2 ,并选择
借助于 Rhaosody SE Toolkit 功能 Create Ports And Interfaces , 可以 0 SE-Toolkit > CreatePorts And Interfaces
创建 SecSyS_ IA 模型的端口和接口。
Q 手动追加代表端口和相关界面


! 在导入的序列图套件包中, 更新生命线名字并检查信息的自动实
手动连接端口
现状态 ^

IBD_ SecuritySystem )

itsSecuritvSvstem

1 itsUser itsCardReaderExit 1 itsSecSvsController itsAccessPoint


pCardReaderExit

; [ ] pUser pSecSysController r )
J — — [ j pCardReaderExit pAccessPoint —
iH (J [J pSecSysController

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

图 4 - 58 更新的 SecSys_ IA 模型的 IBD

104
__
^
步骤 5 : 集成导入模块状态图
O) 将导入的模块的状态图拷贝并粘贴到合并模块的状态图中 ,
并形成一个并发的状态
一旦导人模块的状态图拷贝到合并模块的状态图中 ,对导入
模块的套件包操作 Delete from Model
第 4 章 案 例: 安 全 系 统


SecSysControllei

SecSysControlterEntry Ctrl_ SecSysControllerExlt Ctrl _ I


WaitFor EntryRequest A WaltForExKRequest A

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

evAccessPointLocked re qProces sAl ert("71m eLI mitVIolatl on") to pAdmin


>
图4 - 59 合并模块 SecSysController 集成后基于状态的行为图 105
基于模型的系统工程最佳实践

步骤 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

tvAcc« nPo4 ntLock« d


raqRaw pC«rdR*i (torEntry
> mmeLimitSutu9Kfal 9t ; •
[Tim U m
丨 tS ta tuss»tni 6】

rtqProc«8aAltrtfTlm« LlmltViolatlon'v) to pAdmin


>
106 图 4 60 - 重 构 模 块 SecSysCcmtroHer 基于状态的行为 ( 可选方案 1 )
第 4 章 案 例: 安 全 系 统 1

Proces<ingS«cur1tyC«rdDaUiJ

状态图 SecSysControIlerCtrl 可选方案 2 T / ScFailCount»0;

另一个重构集成 SecSysController 模块集成的基于状态行为的策略 ValidatingSecurHyCard

是 手 动 合 并 并 发 的 两 个 过 程 , 即 SecSysControllerEntry _ Ctrl 和
valldataSecurityCard(CardStatut);

fUMrRequ« 8t*»**Exir) -
[U»rRe qu« st=» £ntryq

SecSysControllerExit _ Ctrl。
.Ctr1
S«cSytCon1rolkr
reqDlaplayCardStatustCardStatus) to pCardReaderEntry

[ CardStatiJs«=
>
-ValldT
i
F
• 丨丨

^
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

flagS« cur1tyCardFallurt (ScFallCount);


3
[ScFallCounK 3]
Proc«M!ngS參 curityC«rdDa ta [else】

>
/ 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

> reqEn«bl«Blom«tiicSc«n to pFlng«rprintScanr>«r


>
WaltForRete W aItForBJom«tri cSca nlnfo
r«qReselAJ«rm re tAuthenticationStatus

rtqPis«bl< Biom»ti1cSc< n to pFinqtrprintScinnaf


[U»rR # qu««t»»"Ej(ir )
evAcces PoIntLocked •
[ Ife ]

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]

r> qP< t>blaBJom»tricScan to pFIng鲁rprtntScann# r


Ch« ddngFor11m«llmitViolationt
chtckForTim # LlmltViolationt(T1m6 Limits tatus);

/TimftLimitSUtussfalM; [TimeLlmltSlatii ^»
raqAlarm to pCardR adtrEntry
^ >
/disablaUMrAccountO,

r qProc«nAlertCTIm«LlmitVlolationN) to pAdmin
* > BcF 癱 ll3Tlm

loflAccountDataQi

107
基于模型的系统工程最佳实践

角色行为 角色模块 AccessPoint 的基于状态的行为 ,需要图形化地更新。


对于通过端口 CardReaderExit 的附加请求 ,角色 User 的行为需要
扩展。该扩展是借助于 Rhapsody SE Toolkit 功能 Create Testbench 执 -
行的。 teqUnlockAccessPoin!

_
0 在内部模块图 IBD SeuritySystem 中 , 右击 User 模块 ,并选择
SE -Toolkit > Create Test Bench
鲁 vAcc« aPointLock*d to pS修cSysControll會 r

tm (1000 )
> unlocking

tm (1000 )

Existing Statechart Found


locking
^ dfitUnlocked to pSecSy«Controll« r
>
This Actor already has a Statechart Please read the follwoing oprions unloctod
reqLockAcc« ssPolnt
carefully
Click Yes to add a new Statechart - the original will be retained.
Click No to DELETE the existing Statechart and replace it with a new one .
Click Cancel to back out. Nothing will be deleted or created

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 章 案 例: 安 全 系 统

j » rpnnl S« cSyiComrt> M«f


4 . 5. 1 3 . 4
用例协作性的验证
CirdNtadrr Flf >|

在集成系统架构模型中 ,合并的实现用例模型的协作 ,是在所捕


Entry y frq^ jdSecun%JCjiidG
捉的用例场景的基础上 , 通过模型执行进行验证的。正确性和完整性 ,
r *dS«currtyCa

分析是基于对模型行为 ( 动态的状态图和序列图 ) 的目视检查来进


行的。
SecuatyOf4Cj»dSUtiB

nssums

注 :模 型 的 验 证 应 该 覆 盖 SecSysControllei• 模 块 的 两 个 可 选 方 案 的 状
态图 。

-
nab<« BOM IncS c

右击状态图 , 选择 Set As Main Behavior 并重新产生图形。 / < 5ca


| • -

£□ 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
'
•-

rtcj. ocMcce »Potc )

^
/ ^ 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
^^
+

RequirementsPkg. sbs ( \ 创建模块定义图 t w AccessPoint


f |CardReaderExit
SecSysController_ HandOff _
在 SecSys _ IA 项目中
图 5 -1 BDD SecSysController , + |FingerprintScanner
- i CardReaderEntry
, 模型的模块定义图 BDD 和内部模块图 t} InterfacesPkg
操作 Add to Model As unit , 追加 : IBD一 SecSysControl
^ ^ Events
TypesPkg

SecSysControllerPkg. sbs Drr« f i I ae

• SecuritySystemWB__ SD__ Ucl. sbs 图5 -2 SecSysController— HandOff


• SecuritySystemWB SD Uc2. sbs 模型的项目结构

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 SecSysControlerScl HandOff Control Entry Nominal \


•C - SecSysControlerSc2 HandOff ControlEntrv Exception CardReaderEntrv \
\
C SecSysControlerSc3 HandOff ControlEntrv Exceotion BiometricScan \
\


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 !
\ / / \

w 、 oc二 < >


\ |
!
/ / \ \
|
/ \ »CMBIom« thcScanO

\

\


、 、

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

使用 Rhapsody SE -Toolkit 功能 Create Testbench , 捕捉下列角色 pS _


_
^ ©
PORT ( pC« rdRetdti& U)J/ (lS PORT( pCardRtader ntry ))/
U» rR « quosts'TEx ir; UserRoquists^Entry";
模块的行为 :
• Card Reader Entry
reqTakeSnapshotto pC« m« ra
>
• FingerprintScanner
fc
PracesringSecurityCardData
/logExitOauQ;
Fall 3Tlm« 8£xlt

• 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

pSecSysController WaltForR« ietAJ « nn


( j pCardReadarEntry reqRemtAlami

ItsCardRaaderEntry
pCamerar) 3
i pSecSysController
ointLocked -
aerR« qu« at* "Exin

pS«c8ytControllor

Itf lng« rpr1ntScann« r

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 ]

图 5 -3 移植后的 SecSysController_ HandOff 模型的 IBD


raqProceMAUrtTTim « LlmitViolatlon") to pAdmin
>
图 S -4 SecSysController HandOff 模型基于状态的行为
Q) 通过模型执行 ,验证 SecSysControllei HandOff 模型 ( 针对 IA 模型子状态图 )
,

113
■ 基于模型的系统工程最佳实践

表 5 -1 SecSysController HandOff 模型的系统需求覆盖率


.

( 下表是由 Rational Publishing Engine ( RPE ) 生成的)

ID 系统需求 需求类型 满足于


Three Attempts On Employee ID Entry ScFailCount
SYS1
Upon entry the user shall be allowed three attempts on card identification. 功能性
flagSecurityCardFailure
Three Attempts On Biometric Data Entry BsFailCount
SYS2 功能性
Upon entry the user shall be allowed three biometric data entries. flagBiometricScanFailure
Disabling User Account
SYS3 功能性 disableUserAccount
After three failed attempts at card identification or biometric data entry the user account shall be disabled.
Denied Entry Notification logAccountDala
SYS4 功能性
Any denied access attempt shall be logged and account details sent to the administrator. logEntryData reqProcessAlert
Out of Date Cards
SYS5 功能性 validateSecurityCard
Out of date cards shall deny entry and invalidate the card .
SYS6
Authorization of Security Card- Entry
功能性 CardStatus
Access to the secure area shall only be allowed with a valid security card.
Two Independent Security Checks
SYS7 功能性 SecSysController
Secure areas shall be protected by two independent security checks.
Alarm - Entry
SYS8 功能性 req Alarm
On a denied entry an alarm signal shall be raised .
Employee ID Card Identification - Entry
SYS9
Entry shall be protected by a security check based upon employee ID. 功能性 validateSecurityCard
Visualization of Security Card Check Status - Entry
SYS10 功能性 reqDisplayCardStatus
The user shall be visually informed about the status of his/ her ID card check.
Security Card Information
SYS11 功能性 validateSecurityCard
Security cards only contain the employee name and ID and will be renewed yearly.
Visualization of Biometric Data Check Status
SYS12 功能性 retAulhenticationStatus
The user shall be visually informed about the status of his/ her biometric data check.
Approval of Biometric Data
SYS13 功能性 AuthenticationStatus
The user shall not be allowed access unless his/ her biometric data are recognized.
Biometric Scan
SYS14 功能性 reqEnableBiometricScan
Entry to the secure areas shall be protected by a second independent security check ,based upon biometric data.
Image Capture
SYS15 功能性 reqTakeSnapshot
An image shall be taken of any person , at the initial attempt , when trying to access a secure area.

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 对一个系统建模和最佳实践的应用,是作者多年在不同行业 ( 航空航天 、国防 、汽车 、电信、医疗 、工业自动化
及电子消费领域) 经验的累积。该指南经过多年的沉淀和改进 ,不断增强 ,已证明为行业的最佳实践经验和基于模型的系统工程最佳实践。读
者可以根据自己涉及和专注的领域 , 举一反三地灵活应用。

该指南始于建模的一般指南和绘图规约 ,以系统建模语言图 ( SysML 图 ) 的必要元素作为考虑问题的出发点,并考虑元素之间的相关性 ,


一步步地进行详细讨论,最终形成了一套拓展 SysML 到针对一个特定项目的建模方法。

A1.1 一般指南和绘图规约

以下是对所有图推荐的指南和绘图规约。
• 用少量元素绘制简单的 、具有关注性的图。作为一个简单规 •保证图中元素具有相同的抽象层次。
律 ,一张图中不要有多于 10 个的主要元素 ( 模块 、用例、角色等)。 •在一个层次形式中组织图形。在套件包中,把图放置在与其
• 保证所有图能在 A4 尺寸的纸张内打印出来。 在系统层次中的相关位置相一致的地方。
• 绘图排版时避免线的互相交叉。所有线应该是直线或直线连 •保证把准确的 、 完整的描述输人到所有模型元素中,以帮助
接线。 理解模型 ,并为最终的模型交付打下基础。这些描述也应支持从模型
• 以一致的尺寸创建元素。等距离地安排元素空间和排列 , 避 中自动创建文档。
免造成视觉混乱。 • 在图中 ,避免过多使用描述性注释。一般情况下 , 推荐把描
•在所有模型套件包中 ,对字体 、形状、符号 、线形和色彩 , 述放在图形工件中相应的描述区域。
使用一致的 Rhapsody 缺省设置。 •
在模型中 ,不要使用批注或评论。
• 在图中 ,将有关系的的元素放置在一起。

117
基于模型的系统工程最佳实践

A1 . 2 用例图
_
^r
UCD S»curltySy»tem

用例图是通过描述系统的用户和系统本身之间的交互 ,来捕捉系 Security System


统的功能需求的。一个给定系统用户可以是系统外部的用户 ,也可以
Uc1Control Entry
是其他系统。用例图是由包含一组用例的系统边界构成的。角色放在

^^^ ^^
系统边界之外,并通过关联连接到用例。 ~
Uc2Control ExU
元素和工件

° 用 例 ( UseCase ) : 用例定义系统上下文。命名用例要使用动词以 AccessPol

描述其最终目的。

费 角 色 ( Actor ) : 外部用户扮演与系统相关的一个角色。值得注意 图A l- 用例图


的是 ,外部用户可以是人或其他系统。对角色 ,要使用特定领域的基
于角色的命名。
•保证每个用例有一个清晰的功能性目标并且其功能可恰如其
分地落在系统边界之内。保持目标在足够广泛的范围内,把用例分解
IS 系统边界 ( System Boundary ) : 用于区分角色和包含用例系统的 成几个场景。设 n 为场景数 ,对正常状况的场景 , 经验值:5 < n
边界。 < 250
S 关联 ( Association ) : 角色和一个用例的连接 ,表示哪些角色执 • 用例图中每个角色必须与一个或多个用例相关联。反之,每
行哪些用例。 个用例必须至少与一个角色相关联。

'iJ 依赖性 ( Dependency ) : 连接两个用例 ,表明哪个用例依赖于 命名规则


哪些其他的用例。为简化描述 , 属性标签《 include 》 只应该用 •当有多个用例图需要定义时,用例图命名应赋予数字,即 :
extend ) UCD < Nr > < 用例图名 > ;
于用例的依赖关系 ,其他属性标签 ( 如
《 > > 应避免被
使用。 •当有多个用例需要定义时,用例名中应包括其涉及到的用例
图 :即 UCD < Nr > _ UC < Nr > < 用例名 > ;
指南和绘图规约
I 注:用例名可以有空格。I
•通常 ,一个系统可以有多个用例。为了管理其复杂性 ,将它
们组织在用例图中。 •用例名应以动词开始。

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 - 模块定义图

^直接关联 ( Directed Association ) :表示系统模块和角色之间的单 指南和绘图规约


一关系。 •在模块定义图中,在显示选择 ( Display Options ) 上,使用标签
^直接组合 ( Directed Composition ) : 显示系统模块到子模块的层
次分解。
功能,这样,即使模块在套件包中互相参考,也可保持简单的模块名。
•模块不应显示属性 、 操作和端口。
t 普遍性( Generalization ) : 显示非常一般的系统模块与非常特定 •使用组合关系显示模块分解关系 ,在其他模块的内部不要显
示模块。
的系统模块之间的关系。特定系统模块与一般系统模块的一致性越
好 ,表明其包含的附加信息和行为越充分。 •棒状外形只用于可视化角色是系统外部的状况。
\ 依 赖 性 ( Dependency ) : 显示两个系统模块之间的关系 ,并表明 命名规则
一个模块依赖于另一个模块的存在。 模块定义图的命名应赋予前缀“ BDD ” 。 _
119
基于模型的系统工程最佳实践

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

Alarm Exit bool pAdminQ. pSecSysController

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 活动图

活动图用于描述工作流 、业务流程 ,或者是分解执行流到一系列


^
到一起。
合节点 ( Join Node ) : 它是合成控制流 ,把多个并发的活动合并

的活动和子活动中的运算法则。活动图可以是简单活动的线性序列 , 合并节点( Merge Node ) : 发送所接收的输人到输出上。与合节


或带有条件分支和并发的复杂系列的并行活动。泳道可以添加到活动
^
点不同,它在提供给输出流之前,在其输人上不需要标示记号。
图以显示负责执行每个活动的实体。
® 泳道框 ( Swim Lane Frame ) : 是一个以一套整体活动图麵出的
|注:在 Harmony SE 中 ,活动、行动和揲作是同义词。
I
框 ,这样可以把这些活动分配到泳道中去。
元素和工件 © 泳道分配器 ( Swim Lane Divider ) : 在泳道框中放置的一个垂直
□ 行动( Action ) : —
个行动表示的是一个简单的操作。Harmony
SE 中 ,带有属性标签的行动 ( stereotyped « MessageAction » ) 也被
分割线。每个泳道代表一个实体以负责实施在该泳道中的活动。控制
流可以穿越泳道。
使用。这些行动只包括来自一个角色的信息。
O 决定节点 ( Decision Node ) : 它是一个条件连接器。它分离单
Q 子活动 ( Subactivity ) : 子活动是被进一步分解的一系列的活动。
一控制流到多个分支 , 每个分支都有一个判断点。每个分支的判
断点应该是正交性的条件 ,尽管它们不用覆盖所有的可能性。当
~

法:一舨情况下 ,不推荐用子活动。被分解的子活动是不 t 在泳
道中分开的 。如果被分解的子活动需要在泳道中分开 ( 参考架构设 没有其他判断点满足条件时 , “ else ” 应被追加来提供一格缺省
计 ),父活动則应使用呼叫行为 ( Call Behavior ) 进行分解。 分支。
Q 呼叫行为 ( Call Behavior ) : 由另一个活动图所参考的活动。 0 活 动 结 束 ( Activity Final ) : 结束活动图的控制流。

S 控制流 ( Control Flow ) : 活动是由控制流关联在一起的。当转换 (D 图形连接器 ( Diagram Connector ) : 通过允许跳到活动图的不同


流动时,活动就开始执行。当一个活动完成并满足任何判断点条件 部分 ,避免线的穿越 ,帮助管理图形复杂性。
时 ,来自该活动的转换就触发 D
@ 行 动 钉 ( ActionPin ) : 在 SysML 中 , 输人/ 输出显示行动的数据
S 初始流(Initial Flow ) : 在活动图中主导初始活动的控制流。 《 ActorPin » 的形式被
输入。在 Harmony SE 中 ,行动钉以属性标签

叉节点 ( Fork Node ) : 它是合成控制流 ,连接单一控制流到多个


用于描述行动和角色之间的关联。在这种情况下,该钉的名字应具有
h

并发的活动。 相关联角色的名字。钉的箭头应显示各自关联的方向 ( 如 :进 、 出或
进/ 出)。

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,
: 从不同正交状态合并转移的复合

系列由转移和连接器结合在一起的状态。一个事件可以触发从一个状 © 条 件 连 接 器 ( Condition Connector ) : 条件连接器分离单一转移到


态到另一个状态的转移。活动可以是转移和状态进/ 出上的执行。 多个分支 ,每个分支有各自的判断点。每个分支上的判断点应该是正
通常 ,状态图描述的是反应式模块的行为。反应式模块是指 :随 交条件 ,尽管它们没必要覆盖所有的可能性。当没有其他的判断点满
着时间推移 ,保持历史并对事件做出反应的模块。但是 , 当对一个系 足情况时 ,可以用提供缺省分支来追加一个“ else” 判断点。
统进行建模时 ,模块行为总是捕捉在由属性和操作所支持的状态图
中。所有模块之间的通信都是通过使用异步事件的端口发生的。
® 历 史 连 接 器 ( Histmy Connector ) : 历史连接器被放置在“ 或 ” 状
态中 ,用来记住上一次最后一个活动子状态。当 " 或” 状态被重新输
元素和工件 入后,它自动返回到那个子状态。转移产生出来的历史连接器是在没
□ 状 态 (State ) : 状态是当模块执行一个活动或等待一些事件发生 有历史记录时的缺省转移。
时 ,模型化模块在生命周期中的一段时间。状态也可用于模型化模块
© 终 端 连 接 器 ( Termination ConnectoO : 终端连接器终止该模块。
中的一些相关值。一个含有多个子状态的状态称为“ 或” 状态或复合
状态。一个含有两个以上并发区域的状态称为“ 并" 状态或正交状 0结 合 连 接 器 ( Junction Connector ) : 通过把几个进人转移结合成
态。行动可以在状态进和状态出上执行。 单一的输出转移 ,来帮助管理图形的复杂性。

S 转移 ( Transition ) : 状态转移是定义模块针对一个事件 , 在其所 ® 图连接器 ( Diagram Connector ) : 通过允许跳到状态图的不同部


在状态上的反应。转移可以通过一个或多个连接器 ( 定义如下) 的流 分以避免交叉 , 来帮助管理图形的复杂性。
动 ,最终路由到新的状态或循环回到原始的状态。转移可以有行动和 0 进出口点 ( EnterExit Point ) : 跨越状态图而关联转移的连接器。
判断点,以形成其带有的条件。
D 发送行动状态 ( Send Action State ) : 发送单一行动的图形表示。
S 缺省转移 ( Default Transition ) : 是进人到一个缺省的状态 ( 或是
在“ 或” 状态的子状态 ,或“ 并” 状态上的子状态) 的转移。 指南与绘图规约
C0 并线 ( And Line ) : 用于通过把一个状态分成多个正交状态 、并 • 可能的话 ,状态图的流向应该是从顶部到底部。初始状态应
该放在靠近图的顶部 ,而终止连接器应该放置在图的底部。
发状态 , 来创建一个“ 并” 状态。

六 叉 同 步 条 ( Fork Synch Bar ) : 连接单一转移到多个正交目的地的


•通常 ,所有状态应至少有一个进人转移和一个出口转移。“ 死
胡同 ” 的状态应该是非常罕见的事情。
复合转移。
127
_ 基于模型的系统工程最佳实践


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 状态图 使用。

•避免嵌人状态超过 3 4 个层次。可以使用子状态图 ,保证复 •为使连接转移易于识别 ,使 EnterExit Points 连接器具有一定意


义的名字 ,且被连接的两张图可以并排显示是必要的。在每个图上使
杂嵌入式描述的简化。
用连接器的相似位置可以促进这项工作。
•所有转移线都应是直线。转移不应互相穿过或穿过状态。
•标签应该放在箭头方向的左侧。 命名规则
• 出于易读性的原因 ,尽量使用 Mealy 语法 ( 在转移上标出:事 •状态名应该是动词 , 并表明模块的当前模式或模块的条件。
件 [ 条件 ] / 行动 )。始终把转移上的行动放在事件和判断点的新 通常情况下 , 名字是现在时态。名字在姊妹状态中必须是唯一的 ,并
线上。 且永远不应该与模块或事件的名字相同。
•Moore 语法 ( = 状态中的反应 ,进入的行动),除非一定需要 , •避免“ 闲置 ” 或“ 等待 ” 之类的名字。
应尽量避免。这个功能允许在实际上没有通过转移离开那个状态的情
况下 , 在状态中对事件做出反应。此规则的例外包括 :
128
附 录

A1.8 轮廓 ( Profiles )
表A -2 轮廓中所定义的特定项目属性
轮廓是用特定领域的标签和属性标签扩展 UMiySysML。它也允 属性 价值
许某些特定工具属性被覆盖掉 ,来支持特定领域的建模。这些定制可 _
以应用到整个模型或特定模型元素。 —
Activity Diagram > Transition > line style

rectilinear arrows

举例说明 ,表 A - 2 显示了特定项目的轮廓属性 ,以支持由前面 —


Activity.Diagram > DefaultTransition > line style

straight arrows

章节所描述的建模指南。而表 A - 1 显示了为了支持文档化 , 添加到 Statechart > Transition > line_ style rectilinear一 arrows

轮廓中的元素标签的定义。 _
Statechart > DefaultTransition > line style _
straight arrows

-
表 A 1 轮廓中所定义的特定项目标签 Statechart > CompState > ShowCompName false

标签 应用到 类型 StateDiagram > General > HorizontalMessageType Event

用例 SequenceDiagram > General > SelfMessageType PrimitiveOperation


Precondition 序列图 String SequenceDiagram > General > ShowwAnimStateMark false
简单操作 ObjectModelGe > Actor > ShowName Name一 only
用例 ObjectModelGe > Class > Show Name _
Name only
PostCondition 序列图 String
Name一 only
ObjectModelGe > Object > ShowName
简单操作
ObjectModelGe > Inheritance > line style_ rectilinear arrows

用例
ObjectModelGe > Depends > liiie _ style
约束 序列图 String —
rectilinear arrows

ObjectModelGe > Class > ShowPorts false


简单操作
ObjectModelGe > Class > ShowPortsInterfaces false

UseCaseGe > Actor > ShowName Name一 only


UseCaseGe > UseCase > ShowName _
Name only

129
« 基于模型的系统工程最佳实践

图 A - 8 显 7K 了黑盒序列图。它是由 Rhapsody SE Toolkit 功能


A2 导 出 一 个 状 态 图 Create New Scenario From Activity Diagram , 从黑盒活动图产生的。来自
该指南描述如何从活动图和相关序列图中捕捉到的信息 , 推导出 黑盒活动图的信息和相关的序列图可以用于识别和捕捉状态图中基于
基于状态的行为。详细步骤是以简化的用例 Uc2 ControlExit 为例来描 _ 状态的系统行为 。
述的。 _
BBi Uc 2Sc1

图 A - 7 显示了用例 UC2 _ Contn)lExit 的活动图。它通过分解执行 Uc2ControlExit :Admin :AccessPoint

流到一系列由转移和连接器相结合的活动节点 ,来描述用例功能。
I、
、rsqReadS curityCardQ
^ 、
Uc2ControlExltBBVIew 1 ~
^ rBadSecurityCard ()

:
dSecurityCard
口validateSacurltyCard(CardStatus)

diaplayCardStatu CardStatus)
^
c validateSecurityCard
_!!y [CardStatua*« MNot Valid"]

displayCardStatus flagSecurityCardFiilure (ScFailCount)

【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
*

evA ccessPoii tLocked

图A -7 用 例 黑 盒 活 动 图 Uc2_ ControlExit 图A -8 黑 盒 活 动 图 推 导 出 的 用 例 场 景 Scl

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

WaitFoi j e<|Reset Alai in


|C«ii (ISMtus== ~Poss l (
*

b |else|

_
WaitFoi evAccessPointUnloched .
Fl i 4jinijSeciiiityC «ii < IF «iiliiie
. .
vbFI «i jSeciiiityC )hlF «iiluie< ScF iilCount|:
(

_
WaitFoi evAccessPolirtLo ke<l

[ScF «iilComit== 3J (0} [elsel


Acc«$sPomtUnlocke<l

图A - 10 Uc2_ ControlExit 的行动状态

- _
图 A 9 Uc2 ControlExit 的等待状态

131


_ 基于模型的系统工程最佳实践

步 骤 2: 连 接 状 态 步骤 2. 2 : 识别转移、触发事件和相关行动
步骤 2.1 : 识别初始状态 状态间和相关触发事件间的转移 , 包括判断条件 ,通过对所捕捉
用缺省连接器标记初始状态。如果属性需要被初始化 , 则追加各 的黑盒用例序列图的分析来识别。
自的行动到缺省连接器上。 选择一个用例场景。复制状态图中的场景。
从初始状态开始 ,在序列图中 ,识别事件 ,并且如果需要的话识
别触发转移和相关行动的判断条件。在状态图中 , 识别目标状态。连
Uc 2 ControlExhCtri

.
接这两个状态。使用 MEALEY 语法 :事件 [ 条件 ] / 行动标示转移。
•vAcMSsPortLocktd
ScFaiCount^O _ ?
/ ScFalCount*C

Watfor r*qR #adS# currtyCard


ScFaiCount^ O ;

如果目标状态是行动状态 ,仅对那些没有被分配到状态的行动 ,追加


转移标签。继续在序列图中进行 ,并在状态图中重复所总结的连接
reqR ead S« curityCard
re Jd S «currtyCardO
Validating StcurttyCard
步骤。
validateSecurityCard ( CardStatuf ):..displayCardStatu $ CardStatu 8 ) ;
<
^ 在状态图中 ,对所有捕捉的用例场景 ,重复场景复制。

步骤 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

r«qLockAcc«ft Point to pAcc« tiPoint WattFor^rtqRtfttAlarm

f
WartFor.# \/ Acc #f *PointLoci< td

图 A - 11 Uc2 _ ControlExit 的平状态图


Sequence for CardStatus = = “ Pass" )

132
附 录
- ■

步骤 3: 结构化状态图层次 注意 : 复合状态之外的不同转移。在 CardStatus == Pass 的 情 况 下 ,触 发


步骤 3.1 : 识别状态层次 条 件 和 相 关 行 动 ,是 作 为 顶 层 的 中 断 ,被 捕 捉 在 顶 层 状 态 图 ( 图 A - 1 1 )
一旦平状态图被验证 , 就可以探寻其结构层次化的方式 ,识别可 中。在 第 三 次 失 败 的 情 况 下 ,各自的触发条件和相关行动是被捕捉在
以聚合的状态。组织方法可以从以下几个方面考虑。 ProcessingSecurityCard 状 态 中 , 并 通 过 一 个 进 出 口 点 EnterExit point

•系统模式; ( FaiDTimes ) , 关 联 到 顶 层 状 态 图。

•系统阶段; 与访问点控制相关的平状态图 (图 A - 11 ) 中的状态 ,可以聚合


•状态板块的重用。 成复合状态 UnlockingAndLockkingAccessPoin
丨 ,如图 A - 13 中所显示的
那样。这个状态包括发送到访问点的信息。
同时还要寻找状态转移的聚合简化状态图的情况。平状态图观察显示 :
• ValidatingSecurityCard ;
_
此外 ,状态 WaitFor evAccessPointUnlocked 和 WaitFor evAccess _ -
PointLocked 可 合 并 到 一 个 等 待 状 态 , 称 为 WaitForAccessPointFeed-
• FlagingSecurityCardFailure ;
• WaitFor_ reqReadSecurityCard ( 在卡出错的情况下)。
back 0 复合状态的退出捕捉在顶层状态图中。

可以认为是复合状态 ProcessingSecurityCard ( 图 A - 12 ) 的子状态。


UnlodungAndLockinoAccessPoint

由于 ScFailCount 是局部属性,它的初始化被追加到复合状态的缺省入口。
此外,在复合状态 ValidationFail 中 , 子状态 FlagingSecurityCardFailure 和
_
WaitFor reqReadSeciirityCard 是可以聚合的 ,从而在 ProcessingSecurityCard
reqllnlockAcc««tPoint to pAccettPoinl

WaitForAcce« tPointSUtu > Fe*dback


>
状态中表示故障模式。
•vAccM« PointUn locked
: _
rtqLockAccettPoinl to pAcceMPoiiint

* 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


_ 基于模型的系统工程最佳实践

图 A - 14 显示了用例 Uc2ControlExit 的顶层状态图的最终结构。

Uc2 ControlExitCtri

_
WaitFor reqReadSecurityCard <- A
reqReadSecurityCard /
readSecurityCard ( );
v
ProcessingSecurityCard

Fail3Times "A

reqProcessAlert("Exit Failure") to pAdmin

_
> 【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 活动钉属性标签

^ CalculateLoiCmd 动/ 操作与其环境间的交互。钉的名字是相关的角色名 ,而钉的箭头


显示关联的方向 ( 输人和/ 或输出)。
在该示例中 ,活动 calculateLosCmd 被追加。该活动将由枪手初始化。
[a»iqn6un2GPS 触发事件定义在序列图中( 如下)。

序列图 :
_
:llc AcquireTgt

该示例显示了由 Rhapsody SE - Toolkit 功能 Create New Scenario from


% reqCaiculateLosCmdO
% , calculateLosCmdQ Activity Diagram 产生的序列图。

^ 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

ovEnqau« Palms 具有角色钉 ( ACtorPin ( S ) ) 输人的信息活动 , 被翻译成等待状态 ,称


Ipatams > Pafm« 1
为 WaitFor ...
( mdf CmdrlnCtri

|params-> Palms - '


Gunr » pi "| '

通常情况下 , 触发事件发起系统模式的变更。
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

请注意,以下词语是具有特定意义的保留词语 , 不该用于名字中: 比较操作符


asm , auto , break , case , catch , char , class , const , continue ,
X = =5 ( X 等于 5)
default , delete , do , double , else , enum , extern , float , for , friend ,
X! = 5 ( X 不 等 于 5)

GEN , goto , id , if , inline , int , IS IN , IS _ PORT , long , new , operator ,
OPORT , OUT_ PORT , params , private , protected , public , register , return ,
X <3
X < =3
( X 小 于 3)
( X 小于或等于 3)
short , signed , sizeof , static , struct , switch , template , this , throw , try ,
typedef , union , unsigned , virtual , void , volatile , while 0 X >4 ( X 大 于 4)
X > =4 ( X 大 于 或 等 于 4)
分配和算术运算符
X > 2 && X < 7 ( X 大 于 2 且 小 于 7)
X =1 ( 设置 X 等于 1)
X <2 II X = =7 ( X 小 于 2 或 X 等 于 7)
X=Y ( 设 置 X 等 于 Y)

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 ) ) ;

cout « X « endl ; I 注:关键字“ _


0P0RT” 可以用于代替“ 0UT P0RT”。 _ "


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.2 添加错( Add Anchor ( s ) ) 从源头添加锚 ( anchor ) 到目的地

1.3 添加参考关系序列图 ( Add SD Ref ( s ) ) 作为对用例的参考序列添加选定的序列图

1.4 添加事件接收 ( Add Event Reception ( s ) ) 对目标接口添加选定事件的接收


将选定值类型映射到被选单元 ,填充来自该单元的值类型
1.5 添加值类型 ( Add Value Type )
标签
Modeling 从源模块中复制操作、事件接收和属性到单一目的地模
1.6 合并模块 ( Merge Blocks )
Toolbox 块中
i ( 建模工
具包) 1.7 创建关联关系 ( Create Dependency ) 创建模块元素间的关联关系

对所选序列上每一个反身信息 ,在所选活动图中创建一个
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 )

7 创建端口和接口 ( Create Ports and Interfaces ) 基于序列图中所捕捉的场景 ,创建行为端口和相关接口


8 连接端口 ( Connect Ports ) 在内部模块图中 , 创建端 u 间的连接
9 创建初始状态图 ( Create Initial Statechart ) 基于活动图中所捕捉的信息 ,创建等待状态和活动状态
10 合并功能分析 ( Merge Functional Analysis ) 从所有用例模块中 ,复制全部操作、事件接收和属性到选定模块中
11 复制活动视图 ( Duplicate Activity View ) 制作活动视图副本 ,并去除任何引用场景
12 创建子套件包 ( Create Sub Packages ) 对每个子系统 ,创建套件包并将子系统模块移人这些套件包中
13 架构设计向导 ( Architectural Design Wizard ) 从一个架构层到另一个复制操作 ,并当操作被分配之后 ,实行跟踪
14 执行泳道一致性检査 ( Perform Swimlane Consistency Check ) 在泳道中分配的活动和被分配到子模块中的操作之间 ,执行一致性检査
15 创建分配表格 ( Create Allocation Table ) 在 Excel 表中 ,总结白盒活动图的分配操作
16 创建分配 CSV 文件 ( Create Allocation CSV File ) 作为“ 创建分配表” ,除非是 CSV 格式 ,作为一个控制文件添加到模型
17 创建 N2 矩阵 ( Generate N2 Matrix ) 用 Excel 表格方式 ,从内部模块图创建所提供和所需的接口矩阵表格
18 复制 MoEs 到子模块 ( Copy MoEs to Children ) 复制关键功能模块的 MoE 属性到解决方案模块中
19 从基点复制 MoEs ( Copy MoEs from Base ) 复制关键功能模块的 MoE 属性到选定的解决方案模块中

对解决方案系列 ,计算出 Weighted Objectives Table ( 权重目标表),并以 Excel 表的方


20 执行权衡分析 ( Perform Trade Analysis )
式显示其结果

-
表 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!

需求分析 Use Case Realtz/Nion

-
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

I Blocks SWe n%4»avk>r -


SE Toolkit Feature:
#9
[ Next System Use Case]
Ve« ify ReaU /ecJ UCMoild
Prioritize and Group Ihirjugh Mcxfel l xeculbn
System Use Cases
Alocale & Link
Nonfunctional KequaievnBfits
-
SE Toolkit Feature:
#1.7

(k
Weiqe RealiiPd UC Models mio the
Intcqfated Systcmi AirJutecture Model
-
SE Toolkit Psaturt :
#1.6

图A - 18 Harmony SE 工作流与 Rhapsody SE Toolkit 的对应支持 -


143
参考文献
[ 1 ] OMG SysML Specification1. 3. June 2012. http ://www. sysml. org/specs.
[ 2 ] Bruce Powel Douglass. The Harmony Process:The Development Spiral. Telelogic Whitepaper , 2006.
[ 3 ] Bruce Powel Douglass , Mats Goethe. IBM Rational Workbench for Systems and Software Engineering. IBM Redpaper , 2010. http:// www. redbooks.
ibm. com/ redpapers/ pdfs/ redp 4681. pdf.
[ 4 ] Nigel Cross. Engineering Design Methods : Strategies for Product Design. Wiley , 1989.

145
赍 fl-编辑:吴畋

责任设计:张悦

-- -
ISBN 978 7 5165 0222 8-

中航出版传媒有限责任公司
. .
CHINA AVIATION PUBLISHING & MEDIA CO ,LTD

www. aviationnow. com. cn


II
502

定价 : 130.00 元

You might also like