经过不断的实践探索,系统工程(Systems Engineering,SE)逐渐被航空、国防等工业领域广泛接受。系统工程是系统科学的一个分支,实际是系统科学的实际应用。可以用于一切有大系统的方面,包括人类社会、生态环境、自然现象、组织管理等,如环境污染、人口增长、交通事故、军备竞赛、化工过程、信息网络等。系统工程是以大型复杂系统为研究对象,按一定目的进行 设计、开发、管理与控制,以期达到总体效果最优的理论与方法。总而言之,系统工程作为一种跨学科的综合性方法,系统工程强调使用系统的原理和概念,以及科学、技术和管理方法来实现系统设计与开发。
系统工程专注于一下几个方面:
- 1)建立、平衡和整合利益相关者的目标,并在开发就开始定义实际的或预期的客户需求、操作概念和所需功能;
- 2)建立适当的生命周期模型、过程方法和挂历结构,考虑复杂性、不确定性、可能的更改和多样性的水平;
- 3)生成和评估替代解决方案的概念和架构;
- 4)每个阶段的基线和要求以及选定的解决方案架构;
- 5)执行设计综合、系统验证和确认;
- 6)整体考虑问题和解决方案,考虑必要的支持系统和服务,识别部件和部件之间的关系在系统的整体行为和性能方面发挥的作用,并确定如何平衡所有因素以达到满意的效果。
采用系统工程的思路进行系统开发的典型过程如下图所示。
SE典型V过程
3、什么是基于模型的系统工程
传统上,人们在采用SE过程进行系统设计时,是以文档为中心开展的。每一阶段的工作成果都是以文档作为载体,不同团队间的交互也都是基于文档展开的。但是随着系统复杂性的日益提升,这种以文档为中心的系统工程(Text Based Systems Engineering,TBSE)方法暴露了很多缺陷,如不能保证信息的一致性、更改困难、难以描述活动等。为了解决传统基于文档的系统工程所存在的问题,国际系统工程学会(INCOSE)提出了基于模型的系统工程(Model Based Systems Engineering,MBSE)方法。MBSE以模型为核心,具有知识表达无二义性、可重用、系统设计一体化等优点,能够解决随着系统复杂度提高对传统基于文档的系统工程带来的挑战。
MBSE的定义:MBSE是对建模(活动)的形式化应用(formalized application of modeling),以便支持系统要求、设计、分析、验证和确认等活动,这些活动从概念设计阶段开始,持续贯穿到设计开发以及后来的所有寿命周期阶段。
MBSE针对复杂系统工程中存在的问题,利用计算技术、网络技术、存储能力、信息技术的优势,将系统工程从原有的以文档为中心转变为以模型为中心,克服过去大量的文档资料、规范说明、操作手册、接口说明等经验为指导的非定量的、不规范的,难以验证的工作方式,通过建立数字化、精确化、规范化的基础模型和业务模型,发挥集成模型的优势,支持系统工程过程的分析、设计、优化、规划、评估等一系列活动的完成,并支持各个活动之间的反馈和验证。
4、MBSE要素
如下图所示,MBSE包含三个要素。
MBSE的3要素
- 1)MBSE建模语言
- 建模语言定义了建模过程中的各种可视化元素以及各种元素所代表的语义。MBSE中所使用的语言主要是指SysML。
- 2)MBSE建模工具
- MBSE建模工具是指系统开发人员在创建和管理模型过程中所使用的软件系统。建模工具能够部署一种或几种建模语言提供建模语言中各种元素的可视化功能,并根据建模语言的标准赋予各种元素语义。
- 3)MBSE方法论
- MBSE方法论是定义了设计团队如何利用系统建模语言的各种图形来建立系统模型,也就是工作流程。目前主要的方法包括:IBM提出的Harmony SE、INCOSE的Object-Oriented Systems Engineering Method (OOSEM)、Dori提出的Object-Process Methodology(OPM)、Vitech公司的系统工程方法论、喷气推进实验室的State Analysis方法、No Magic公司(现已被达索公司收购)提出的MagiGrid方法论、泰雷兹提出的Arcadia方法论等等。
5、MBSE相对于TBSE优势
MBSE使用更接易于人的理解和认识的模型作为主要工具,尤其是可视化模型,有利于设计者将精力集中在和业务逻辑相关的工作上,而不用过多地考虑与平台相关的具体实现细节。在面对不同应用领域时,MBSE强调使用功能强大而灵活的领域相关建模语言创建系统的模型,基于领域知识实现领域专家、设计人员、系统工程师以及架构师等不同人员之间的良好沟通。
具体来说,MBSE相对于TSE具有如下优势:
- 1)可以清晰地刻画复杂系统的初期结构、功能和行为等多方面的需求,具有无二义性
- 在传统的系统工程工作过程中,系统的初期需求是以文档为主的方式获取的,但文字描述具有语义模糊性及理解的差异性,初期需求阶段中不精确的需求说明会导致系统设计或实现阶段产生巨大的偏差,而这种偏差往往会造成巨大的经济损失及时间损失。
- 2)系统设计的一体化。
- 由于系统模型的建立是涵盖系统的整个生命周期过程的,包括系统的需求、设计、分析、验证和确认等活动,是一个统一整体的过程,可以提供一个完整的、一致的并可追溯的系统设计,从而可以保证系统设计的一体化,避免各组成部分间的设计冲突,降低风险。
- 3)增强知识的获取和再利用。
- 系统生命周期中包含着许多信息的传递和转换过程,如设计人员需要提取需求分析人员产生的需求信息进行系统的设计。由于模型具有的模块化特点,使得信息的获取、转换以及再利用都更加方便和有效。
- 4)模型具有可重用性,提高工作效率。
- 对比传统以文档为中心的系统工程设计方案,基于模型的系统设计具有更强的模块化特征,特别是在“面向对象的系统设计”中,同层次模型间耦合度较低,封装性好。因此,模型的后期结果可在未来相关领域研究中被重用或修改后重用。
- 5)基于模型的系统设计方法可以更好的支撑需求的跟踪与管理。
- 验证系统设计方案是否满足各方用户的不同需求是系统工程工作过程中非常重要的一环,基于模型的系统工程方法可建立需求、功能、系统间的映射关系矩阵对系统需求进行跟踪与管理。设计方可根据关系矩阵来确认方案与预期结果的差异,明确未达成的需求,并分析需求、功能及系统结构设计的的改变对系统整体的影响。
6、总结
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Go语言工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Go语言全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Golang知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Go)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**