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

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

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

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

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

二、Harmony SE基础
2.1 Rational 集成系统/嵌入式实时开发流程 Harmony
       下图为Harmony V模型。
图2.1 Harmony V模型
       系统工作流的三个阶段:需求分析、系统功能分析、系统综合设计,迭代的过程基于用例来完成,这个应该是Harmony方法论的核心内容之一。

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

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

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

系统功能分析阶段:

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

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

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

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

  • 识别并推导所需的系统功能;
  • 识别系统相关的模型和状态;
  • 把系统模型、功能/状态分配到子系统结构中;
    图2.2 基于模型的系统工程
    2.2.1 需求分析

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

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

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

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

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

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

用例模块状态图是所有方法中最重要的生成物,它包含了活动图和序列图中的信息,并可通过模型执行来确认。
当“正常情况”的用例模型和功能需求被验证后,便可开展异常和错误用例模型的创建工作,其工作流如下图:
例外及错误行为用例模型
2.2.3 设计综合
本阶段关注点是对物理架构所实施的能的开发,包含两个子阶段的工作:

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

工作流见下图:
设计综合工作流

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

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《基于模型系统工程最佳实践》从方法论的角度,描述了基于模型系统工程最佳实践。主要从系统工程的视点出发,把系统开发的前期系统工程的工作任务、责任范围,以工作流的方式,解剖得淋漓尽致,为系统的后续开发和系统的确认与验证,提供了无缝衔接。本书以系统工程实践者为对象,通过众多截屏、注释和最佳实践技巧,帮助读者清晰理解工作流的细节。本书的目的是帮助读者在集成系统和软件开发中应用基于模型系统工程标准建模语言SysML。 第1章 绪论 1.1 范围 1.2 内容概述 第2章 HarmonySE基础 2.1 Rational集成系统嵌入式实时开发流程:Harmony 2.2 基于模型系统工程流程 2.2.1 需求分析 2.2.2 系统功能分析 2.2.3 设计综合 2.2.3.1 架构分析(权衡分析研究) 2.2.3.2 架构设计 2.2.4 系统工程交付 2.3 SysML应用于基于模型系统工程的基本工件 2.3.1 需求图 2.3.2 结构图 2.3.2.1 模块定义图 2.3.2.2 内部模块图 2.3.2.3 参数图 2.3.3 行为图 2.3.3.1 用例图 2.3.3.2 活动图 2.3.3.3 序列图 2.3.3.4 状态图 2.3.4 需求分析系统功能分析层次的工件关系 2.4 服务请求驱动的建模方法 第3章 Rhapsody项目结构 3.1 项目结构概览 3.2 需求分析套件包 3.3 功能分析套件包 3.4 设计综合套件包 3.4.1 架构分析套件包 3.4.2 架构设计套件包 3.5 系统层定义 第4章 案例:安全系统 4.1 案例工作流 4.2 创建Harmony项目结构 4.3 需求分析 4.3.1 DOORS:涉众需求的导入 4.3.2 DOORS:系统需求的导入 4.3.3 关联系统需求到涉众需求 4·3.4 DOORS一>Gateway->Rhapsody:导入系统需求 4.3.5 系统级用例定义 …… 第5章 交付到子系统开发
### 回答1: 非常感谢您的建议,我们会尽快为大家准备一篇关于C语言入门的学习笔记,帮助大家更好地掌握这门编程语言。我们会尽可能详细地介绍C语言的基本语法、数据类型、运算符、流程控制语句等内容,同时也会提供一些实例代码和练习题,帮助大家更好地理解和掌握C语言编程。希望我们的学习笔记能够对大家有所帮助,让大家更快地入门C语言编程。 ### 回答2: C语言是一门广泛应用于系统编程、嵌入式系统、游戏开发等领域的高级程序设计语言。入门C语言对于软件开发工程师和计算机科学爱好者来说非常重要。 在C语言学习笔记中,我们首先需要熟悉C语言的基础知识,如数据类型、变量、运算符、流程控制语句和函数等。了解基础知识将会帮助我们更好地理解后续学习内容。 其次,学习C语言需要掌握一些编程基本技巧,如程序的模块化设计、调试和测试、程序的优化等。这些技巧可以帮助我们提高代码质量和效率。 同时,我们还需要了解C语言的高级编程特性,如指针、动态内存分配、结构体、文件操作等。掌握这些编程特性可以让我们更加灵活地进行编程。 最后,想要成为一名优秀的C语言程序员,我们需要不断实践和探索,不断完善自己的编程技能、提高编程水平。需要经常练习编写代码,加入开源社区进行开源项目的贡献和参与,与其他程序员交流经验,扩展自己的技术视野。 总之,学习C语言需要投入大量的时间和精力,需要不断地学习、实践和交流。但是,在通过不断地学习和实践后,C语言将成为你的强大工具,可以开发出各种高效、可靠的应用程序,实现自己的编程理想和目标。 ### 回答3: C语言是一门非常基础但又非常重要的编程语言,这门语言被广泛应用于各个领域,如嵌入式系统,操作系统开发等。C语言入门,是每个程序员必经的过程,通过学习C语言,我们掌握了基本的编程思想和方法,同时也为我们日后学习其他高级语言奠定了扎实的基础。 在这篇学习笔记中,我们可以学到C语言的各种基础知识点,例如数据类型、运算符、控制语句、函数等。这些知识点是C语言编程的基础,掌握它们非常重要。在学习的过程中,需要认真阅读教材,并且要动手实践,自己编写一些小程序,才能真正理解和掌握知识点。 除此之外,我们还可以通过学习C语言的标准库函数来扩展语言的使用范围,这些标准库函数非常常用,不仅可以方便快捷地实现某些功能,而且也是日后学习其他语言时会用到的知识点。 在学习C语言过程中,需要有一个良好的学习态度,要不断地做笔记、做练习,不断地复习、总结,才能够真正掌握这门语言,更好的为日后的编程生涯打好基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值