基于模型的系统工程最佳实践-读书心得
第一章 绪论
1. 主要内容
1) 本书是基于SysML的实践与应用,以IBM Harmony系统工程开发流程的成功实践,向读者展示系统和软件开发中如何使用SysML,是工程实践类型的书籍。。
2) 第2章介绍Harmony系统工程的基本概念和工作流;第3章说明基于模型的系统工程项目的构建过程。第4章借助IBM的Rhapsody工具,描述Harmony SE工作流的案例;第5章解决交付到后续的子系统开发的问题。
2. 感悟
现在各企业都宣称自己是解决方案提供商,其关键就在于解决方案是否系统化,解决质量取决于流程是否规范化、标准化。基于SysML的Harmony SE已在IBM公司的各个领域成功应用,它不只是适用于软件领域,也适用于其它领域的系统化流程。所以,除了要重点关注其在软件行业的应用,也应关注Harmony SE在其它领域是如何应用的,能对软件开发带来哪些启示。
第二章 Harmony SE 基础
1. 主要内容
1) Harmony SE由需求分析、系统功能分析、系统设计综合3个阶段构成,开发流程如下图所示
3) 模型/需求存储库主要有:需求文档、需求追溯信息、设计文档、测试用例。
4) Harmony SE目标是推导系统功能、识别系统模式与状态、分配功能和模式/状态到系统结构中。
5) Harmony SE工作流如下图所示
6) 需求分析阶段使用的模型有需求模型、系统用例模型。需求分析的目的是分析涉众需求,得到系统需求和系统用例。工作流如下
7) 系统功能分析将功能需求转化为系统功能或操作,是基于用例进行的,将系统用例翻译成可执行模型,这些模型主要有活动图、序列图、状态图。工作流如下
8) 正常的用例和功能需求验证后,开始异常情况分析,主要识别系统错误/失败行为,工作流如下
9) 设计综合目的是优选解决方案、分配合适的功能需求到架构中,分为架构分析、架构设计两个阶段,借助于两种可执行模型:架构分析模型、系统架构模型。工作流如下
10) 架构分析采用加权目标法量化评估解决方案的优缺点,评估标准主要是客户约束、性能特点、成本等。架构分析工作流如下
11) 架构设计决定分配哪些需求到系统架构中,具体实施方式是将前期的黑盒视图转化成白盒视图,也称用例实现。
12) 系统工程交付物是可执行的用例模型、或子系统可执行模型、或可执行CI模型。
13) Harmony SE 使用SysML图形主要有结构图(模块定义图、内部模块图、参数图)、行为图(用例图、活动图、序列图、状态图)、需求图;
14) 需求图展示需求元素之间、需求与模型元素之间、需求和测试用例之间的关系。
15) 模块定义图显示系统和基本模块的关系。
16) 内部模块图由内部端口和连接器组成。端口分标准端口和流动端口。
17) 参数图显示系统属性之间的参数关系。
18) 用例图描述用户与系统之间的相互作用,用于捕获系统的功能需求。用户可以是人员或其它系统。
19) 活动图描述一个工作流、业务流程或一种算法。一个泳道表示一个职责。
20) 序列图显示角色和模块的协助行为,通过用例来表现一个或多个场景。
21) 状态图描述模块基于状态的行为,由转换和不同连接器的状态构成。
22) 服务请求驱动的建模方法基于经过SysML标准端口的服务请求进行。分4步执行:建立无关联的模块结构图、使用序列图描述模块间信息交流、分配服务请求和操作到模块中、定义出标准端口和接口。
2. 感悟
Harmony SE本质就是将涉众需求转换为系统功能设计的一套规范流程,这种规范化、标准化流程维护着大中型企业的日常轮转。以前开发ASTM协议通信组件时,直接绘制了用例模型,然后靠个人和前辈经验总结得到要实现的功能,设计方案的纰漏很多。如果能够严格按照Harmony SE这套流程进行开发,第一次可能会比较耗时,但详细最终的功能会是完善的,方案是可行的。
第三章 Rhapsody项目结构
1. 主要内容
1) 介绍IBM Rational Rhapsody开发工具在基于模型的系统工程项目中的项目结构是如何分布的。
2) 项目组成套件包有需求分析、功能分析、设计综合、角色定义、接口定义、类型定义。
2. 感悟
本章是在给IBM Rational Rhapsody Developer做广告,相应的软件开发工具单机售价在1000美元左右,价格高昂,买家应该不多吧(购买链接)。本章对于不使用该工具的用户意义不大。不过,可以参考该软件对项目的布局,使用visio进行相应设计,像以上说明的各个套件包,都可以用单独的visio文件代替,多个文件组成项目结构。
第四章 案例:安全系统
1. 主要内容
1) 安全系统项目及主要交付工件如下图所示
2) 需求分析工作流
3) Doors工具中涉众需求的格式
4) Doors中系统需求的格式,需求类型分为功能需求和非功能需求。
5) 一条涉众需求关联多条系统需求。
6) 系统需求可以与多条用例相关联。
7) 活动图规则:
a. 活动图中每一个活动至少要在涉及的序列图中出现一次。
b. 所涉及序列图的每一个操作至少在活动图中出现一次。
8) 效用曲线功能:比较目标分析结果,并输出一个一般在0~10之间的标准化值以表示目标是如何被满足的。
9) 有效性度量(MoE)计算方法:MoE = -(MoE range / target range)* target + MoE range.
MoE range一般为10,target range是最大预算, target是当前目标值。
若最大预算为400元,则MoE = - 10/400 * target + 10。
2. 感悟
本章通过一个实际项目案例来详细介绍Rhapsody开发工具的使用过程,可以借鉴的地方是该工具对于项目文件的组织架构和工作过程,思考如何通过现有工具(visio、excel等)达到Rhapsody相似的效果。
第五章 交付到子系统开发
1. 主要内容
1) 子系统开发的交付是由集成系统架构模型基线所导出的可执行模型。
2) 需求覆盖率表格
2. 感悟
交付的工件是静态的,但经过Rhapsody处理后,变成了动态的可执行模型,执行结果一目了然,从而大大节省了人力验证耗费。工具区分了人与动物。
附录
1. 主要内容
1) SysML的一般指南和绘图规约,是一套应遵守的有效建模方法。
2) 简要介绍了用例图、模块定义图、内部模块图、活动图、序列图、状态图、轮廓,应关注指南和绘图规约,遵守命名规则。
2. 感悟
指南和绘图规约能有效改善建模整洁性与合理性,提升建模水平;命名规则使工程师之间的交流更加易懂、有效。并不需要刻意去记,但建模时应严格遵守,最终达到天然符合规范。
注:本文部分图片来自与书籍《基于模型的系统工程最佳实践》霍夫曼、谷炼,《Systems Engineering Best Practices with the Rational Solution for Systems and Software Engineering Deskbook Release 4.0》Hans-Peter HoffMann