总结构:
       第一章至第二章:《基于模型的系统工程最佳实践》- 读书笔记(一)
       第三章相关笔记:Rhapsody项目结构
       第四章:《基于模型的系统工程最佳实践》- 读书笔记(二)

一、前言
       在摸索应用Rhapsody的过程中目前遇到的最大问题是可供参考学习的资料相对稀缺,面对的更多的可能是少的可怜的samples或前人已经做好的工程、模型,但已建成的工程中眼花缭乱的文档结构及各种看似熟悉但又陌生的图表,潜意识还是急切的想知道其具体的实现过程,包括哪些是系统自动生成的,哪些是使用者主动创建的。但心急吃不了热豆腐,在开始依葫芦画瓢之前,对其方法论做一些基本的了解,还是有助于后续对Rhapsody的应用。之所以选择《基于模型的系统工程最佳实践》这本书,是个人目前所参与的项目后续确定基于Harmony方法论开展相关工作,在合作的小伙伴们的推荐下,另外确实也是可以有的其他选择也不多,因此在开始动手实施项目前,抽时间啃一遍。本文主要为个人的随读笔记,以方便后续随时查阅。
       本书假设的前提是读者对sysML、Doors、Rhapsody已有一定的接触和了解。阅读之前,还是需要花一些时间跟度娘稍微熟悉了解一下sysML、Doors、Rhapsody相关内容,初步建立起一些基本概念,以便于理解书中内容。

项目越大,上下游、同级间的沟通成本越高,特别是在部门强比较坚固的公司,借助统一的语言、方法论、工具,规范化、标准化的推进业务开展,可有效的降低沟通成本,也能确保项目处于可控状态。

二、Harmony SE基础
2.1 Rational 集成系统/嵌入式实时开发流程 Harmony
       下图为Harmony V模型。

       系统工作流的三个阶段:需求分析、系统功能分析、系统综合设计,迭代的过程基于用例来完成,这个应该是Harmony方法论的核心内容之一。

对于复杂的工程而言,传统的串行开发肯定是无法满足项目需求的,引入敏捷开发,自上而下的从需求、实施、测试各环节进行迭代,同时基于现有经验自下而上实施回归测试,进行集成,可能是比较合理的一种选择。

Harmony支持模型驱动开发的流程,模型是开发流程的核心交付物以及成果,在不同的阶段输出特定的模型:
需求分析阶段:

  • 需求模型:将需求可视化; —— 模型不可执行
  • 系统用例模型:将需求以用例方式组织; —— 模型不可执行

系统功能分析阶段:

  • 架构分析模型:分析模型相关,阐述架构理念; —— 模型可执行
  • 系统架构模型:系统操作分配;——模型可执行

模型驱动开发流程中的必要元素是模型/需求库,如:

  • 需求文档;
  • 需求跟踪性信息;
  • 设计文档;
  • 测试定义;

2.2 基于模型的系统开发流程
Harmony系统工程的主要目标是:

  • 识别并推导所需的系统功能;
  • 识别系统相关的模型和状态;
  • 把系统模型、功能/状态分配到子系统结构中;

    2.2.1 需求分析

需求分析的根本目的是将市场语言、用户语言转化为半工程语言,通过系统需求定义系统必须做什么以及做到何种程度。

需求分析工作流见下图:

需求分析阶段的起始为涉众需求规格说明书,需求应聚焦于所需要的能力上,之后是将这些需求转化为系统需求,并建立系统需求规格说明书,通过适合的方式(如Doors)将系统需求与涉众需求进行关联以便于跟踪。
系统用例应基于黑盒视点描述干系角色的行为以及角色与用例的信息流,这里的角色可以是人、系统或系统外部的硬件等。用例可以分层,但用例不是功能(但用例使用功能),不能按功能分解的方法去分解用例。用例重点放在“正常情况”的场景识别上,异常或例外的场景交由系统功能分析去做。
2.2.2 系统功能分析
该阶段的重点工作是把功能性需求转换为一个连续的系统功能描述,即从需求到模型以及对模型的执行验证。系统功能分析工作流如下:

用例模型的上下文在内部模块图(bdd)中定义,描述用例与其相关的角色。下一步是定义用例模块的行为,通过以下三个图进行展现:

  • 活动图:Activity Diagram; —— 功能流
  • 序列图:Sequence Diagram;—— 信息流
  • 状态图:Statechart Diagram; —— 行为流

本阶段生成图的顺序依赖于我们所获取的信息以及建模者个人的喜好,书中给出了三种可参考的选择。

序号 说明 适用
方法一 基于用例场景,先捕捉场景,将识别出的功能流体现在活动图中。 场景多,功能状态相对简单
方法二 基于用例功能流,先定义功能流,再使用活动图导出用例场景。 功能多,场景相对较少,需要详细阐述需求的工程
方法三 基于状态行为,先定义状态,由状态图导出用例场景,活动图可以省略。 状态多,场景相对少的工程

用例模块状态图是所有方法中最重要的生成物,它包含了活动图和序列图中的信息,并可通过模型执行来确认。
当“正常情况”的用例模型和功能需求被验证后,便可开展异常和错误用例模型的创建工作,其工作流如下图:

2.2.3 设计综合
本阶段关注点是对物理架构所实施的能的开发,包含两个子阶段的工作:

  • 架构分析:提炼功能需求和非功能需求,系统应该怎么做;
  • 架构设计:把功能需求和非功能性需求分配到架构结构中,谁来做;

工作流见下图:

总结:
需求分析阶段:可理解为将离散的信息汇总并“翻译”或导入到软件中变成软件能读懂的元素;
系统功能分析:分析“要我做什么?”
设计综合:“怎么做?”以及“谁来做?”

《基于模型的系统工程最佳实践》- 读书笔记(一)相关推荐

  1. mysql数据库权威指南_MySQL_MySQL权威指南读书笔记(三),第二章:MYSQL数据库里面的数 - phpStudy...

    MySQL权威指南读书笔记(三) 第二章:MYSQL数据库里面的数据 用想用好MYSQL,就必须透彻理解MYSQL是如何看待和处理数据的.本章主要讨论了两个问题:一是SQL所能处理的数据值的类型:二是 ...

  2. MongoDB权威指南读书笔记——CRUD

    插入并保存文档 插入是向MongoDB中添加数据的基本方法.可以使用Insert方法向目标集合插入一个文档:db.foo.insert({"bar" : "baz&quo ...

  3. HTTP权威指南读书笔记

    <<HTTP权威指南>>读书笔记 第一部分:Web的基础 第1章:HTTP概述 主要内容 1.什么是HTTP 2.HTTP的基本组件 HTTP HTTP:HTTP(Hypert ...

  4. HTML5权威指南----读书笔记

    <!DOCTYPE html> <html> <head><meta name = 'keywords' content="HTML5权威指南--- ...

  5. 计算机网络和http权威指南 读书笔记

    计算机网络笔记 网络层 网络层向上提供无连接的,尽最大努力交付的数据报服务 网络层不提供数据质量承诺 物理层使用的中间设备叫转发器repeater 数据链路层叫网桥bridge 网络层叫路由器rout ...

  6. MapReduce总结 + 相关Hadoop权威指南读书笔记(未完......欢迎补充,互相学习)

    文章目录 MapReduce概述 MapReduce优缺点 MapReduce核心思想 MapReduce进程 MapReduce编程规范 WordCount 案例实操 本地测试 集群测试 Hadoo ...

  7. android开发读书笔记,android开发权威指南读书笔记

    第17章 Fragment 1.在res目录下增加 layout-sw600dp 目录,用于存放7英寸及以上尺寸屏幕的布局文件.10英寸以上平板用 sw720dp.如果是更小的屏幕,如 480*800 ...

  8. java性能权威指南中文_Java性能权威指南读书笔记--之一

    JIT(即时编译) 解释型代码:程序可移植,相同的代码在任何有适当解释器的机器上,都能运行,但是速度慢. 编译型代码:速度快,电视不同CPU平台的代码无法兼容. java则是使用java的编译器先将其 ...

  9. javascript权威指南读书笔记之二——词法结构

    本章讲述的内容,用通俗的语言来说,就是应该注意的地方,这些也许和我们所学的其他语言类似,也许完全不同,比如一开始就介绍说javascript程序中的每个字符都是用两个字节表示的,但有些程序设计者习惯于 ...

  10. HTTP权威指南读书笔记(一)HTTP概述、URL和资源及报文详解

    一.HTTP概述 1.WEB客户端和服务器. 2.资源:资源可以是各种格式的静态文件,也可以是应用程序. 3.媒体类型 4.URI:统一资源标识符 URL:统一资源定位符. URL的第一部分称为方案: ...

最新文章

  1. Linux装多个apache,windows linux如何安装多个apache?
  2. 这些年,我收集的JavaScript代码(二)
  3. 重磅推荐《南瓜书》:周志华《机器学习》的代码实现
  4. C语言实现最短路径Bellman-Ford算法(附完整源码)
  5. expdp和impdp的用法详解
  6. webmagic 获取文本_学习使用Java的webmagic框架爬取网页内容
  7. 【转载】实现软件架构质量属性的战术
  8. 对象可以创建数组吗_女生没房可以吗?男生有多在意结婚对象的家境?答案很现实...
  9. php 最小二乘法,XPS复杂谱图的非线性最小二乘法拟合(NLLSF)操作指南
  10. C语言中函数指针和指针函数
  11. STM32串口接收以及发送大全
  12. 带掩码的自编码器(MAE)最新的相关论文推荐
  13. Package pdftex.def Error: PDF mode expected, but DVI mode detected!
  14. GeneMark-ES:真核生物编码基因预测软件
  15. web之大文件断点续传
  16. Html5游戏封包,学习JavaScript-10-基本封包类型
  17. 计算机专业毕业典礼,计算机网络技术专业毕业典礼发言稿
  18. 针对Arduino IDE 2.0安装后找不到端口的问题(USB转串口驱动)(Win11)
  19. 现代优化算法(五): 蚁群算法
  20. Go语言开发环境安装

热门文章

  1. android studio中写中文注释时,输入法不跟随光标问题
  2. 宝塔无法登录mysql服务器_宝塔面板提示无法登陆MySQL服务器的解决办法!
  3. ffmpeg+soundtouch实现音频变速变调
  4. 【steam】steam双击没反应
  5. 序列化的作用、实现、场景
  6. AE中文版 AE2021中文版下载 AfterEffects2021中文版ACR14.0最新下载和安装
  7. 使用WinRAR制作免安装exe文件
  8. 交通工具速度Java
  9. 2017年Web前端技术综述
  10. IB数学/生物/化学/物理所需的教材有哪些