到底什么是体系、体系架构、体系架构框架、体系工程?
1、什么是体系(System of Systems,SoS)
我们知道,系统(System)是相互关联的元素或部分组合在一起构成的整体。那什么是体系呢?体系是更高层次的系统,是系统的系统,由多个在功能上相对独立的系统构成,通过一定方式的协调组合,共同实现单个系统不具备且多个系统简单叠加也无法实现的综合能力和整体效能。由此可见,相对于系统来说,体系具有更高的复杂性。
体系与系统的比较如下表所示。
比较点 | 体系 | 系统 |
能力需求 | 功能和能力需求多样化 | 功能和能力需求比较单一 |
构成 | 多个复杂系统集成 | 由系统的组成部分构成 |
规模 | 规模庞大,全局的,地理分布范围广泛 | 规模较小,区域的,分布比较集中 |
边界 | 边界不明确,体系间有较强交互 | 边界明确,系统间较少交互 |
组件关系 | 系统间松耦合,协同工作,相互补充 | 组件间紧耦合,相互依赖,缺一不可 |
复杂性 | 层次结构和组件关联方式复杂 | 层次结构和组件关联方式简单 |
生命周期 | 不确定,无限长的生命周期 | 比较确定,固定的生命周期 |
优化 | 很复杂,较难优化 | 在公认的指标上优化 |
信息流 | 潜在改变的信息流和普遍的信息共享 | 很好理解的信息流 |
演化性 | 随需求和技术的变化不断演化发展 | 较少改进,注重系统自身功能的提高 |
采办开发 | 由多个权力机构控制开发 | 单个权力机构开发 |
典型的武器装备体系如下图所示。
2、什么体系架构(System of Systems Architecture,SoSA)
要理解体系架构的概念,首先需要搞清楚什么是架构(Architecture)。通俗地讲,架构是经过系统性地思考,权衡利弊之后在现有资源约束下的最合理决策,最终明确的系统骨架。架构包括子系统、模块、组件,以及他们之间协作关系、约束规范、指导原则。
那什么体系架构呢?计算机领域也有体系架构的概念,我们这里只在系统科学范畴讨论体系架构。体系架构通常也称为体系结构,它是系统各组分的结构、它们之间的关系以及指导其设计和随时间演化的原则与指南。体系架构表现了体系组成及其相互关系,明确了系统之间的边界、接口和约束关系,科学地勾画了体系的建设蓝图。利用体系架构可以指导体系的顶层规划、设计、论证和实现,实现各种系统的综合集成,提高系统之间的互操作,同时也可以指导体系的运行。
3、什么是体系架构框架(System of Systems Architecture Framework,SoSAF)
我们还是先来理解一下框架(Framework)的概念。在软件领域,框架是组件实现的规范,例如:MVC、MVP、MVVM等框架,是提供基础功能的产品,例如开源框架:Ruby on Rails、Spring、Laravel、Django等,这是可以拿来直接使用或者在此基础上二次开发。由此可见,框架为了实现某个业界标准或完成特定基本任务的软件组件规范,按照规范提供所要求基础功能的软件产品。
体系架构框架是用于体系结构描述的方法、过程、视角、模型的集合。体系结构框架为体系结构描述提供一个统一框架,在这个框架下,建模人员从不同视角和关注点来收集获取体系结构数据,为分类、组织体系结构数据提供依据,并为体系结构模型的开发提供过程指导以及原则指南,确保对体系结构的理解、比较和集成有一个统一的标准。目前知名的体系架构框架有:The Open Group提出的TOGAF、美国国防部提出的DoDAF、英国国防部提出的MoDAF、北约的NAF、对象管理组织提出的统一体系架构框架UAF等。
4、什么是体系工程(System of Systems Engineering,SoSE)
为了应对“体系”在规划设计、分析、组织、集成过程中出现的一系列新问题,如|互联、互通、互操作、复杂性、导向涌现性、发展演化性等问题,研究人员在系统工程的理论基础上,提出了体系工程的概念。与系统工程相比,体系工程更注重研究复杂大系统的体系结构、各组分之问的相互协调与相互操作问题、与环境的关系以及体系的发展和演化问题,更注重体系整体能力的提升。由此可见,体系工程是通过设计、开发和集成复杂大系统来完成特定任务并获得期望的效果,实现能力、使命或期望结果的理论、方法和技术。