1.3.1 综合系统
术语
综合系统(System of Systems):多异构,被嵌入在多层次多领域解决相互关联的大型跨学科共同问题和目的的网络上的分布式系统。
综合系统(也称为集成化系统)是由一组关联的组件(包括硬件、独立软件应用和通信)集成的、彼此互连以实现共同目标、没有唯一的管理结构的系统。对综合系统进行定义是一件很困难的事情。虽然综合系统这个名词已经被使用了至少10年的时间,但是对于综合系统的定义目前并没有一个统一的标准。Mo Jamshidi 在“System-of-Systems Engineering - a Definition”一文中就总结了六种不同的定义。传统意义上讲,当一个系统的属性超出了通常的规范或标准的范围时,就会认为这个系统相对于其他系统是复杂的。随着人类技术的不断进步,在航空航天和国防领域出现了越来越多的复杂的系统。针对这些比传统意义更复杂的系统,业界出现了“综合系统”这个名词来描述这些复杂的系统。下面介绍一个综合系统的例子。
☆示例:未来作战系统
未来作战系统(Future Combat Systems,下面简写为FCS)将士兵和各种武器、传感器和信息系统通过网络连接起来,以提高整个军队的战斗力。FCS能够使部队的活动更加灵活多变,以满足各种战斗的需要。美国国防部于2003年5月批准了FCS的开发计划。目前,FCS项目处于系统开发和演示阶段,整个项目将会在2014年完成。美国军队将于2015年正式使用FCS。FCS主开发计划如图1-6所示。
图1-6 FCS主开发计划
FCS利用先进的通信技术将士兵和各种海陆空平台(包括无人驾驶和有人驾驶)以及各种传感器联系起来以建立一个完全集成的“未来军队”,如图1-7所示。FCS是一个典型的综合系统,它由18个独立的子系统以及通信网络和士兵(包括士兵身上的所有装备)共同组成,其中包括导弹发射系统、智能军需品系统、无人航空器等所有作战要用到的系统。这些子系统可以单独运行,例如导弹发射系统可以在不需要其他系统配合的情况单独运作。但是为了提高整个军队在未来的作战能力,将这些独立的子系统以及通信网络和士兵连接起来,形成更加复杂、强大的综合作战系统。
图1-7 未来作战系统
综合系统作为一种大规模的复杂的分布式系统,它具有如下特征:
● 不断地向系统中集成独立组件以避免整个系统研发从头开始,例如:在FCS项目中,整个综合系统不可能是一次集成完成,整个项目跨度超过10年,涉及很多独立的系统,期间会不断地有新的技术或产品应用在综合系统中。
● 技术和组织上的复杂性大大增加了管理的难度。各个团队的设计技术、开发过程和团队文化等都各不相同。总体上来说,对综合系统的管理必须要应对不同的团队集成所带来内在的技术复杂性,同时还需要处理多种组织问题(如外包和离岸开发)。 例如:在FCS项目中,一共涉及559个供应商,其中包括波音、IBM、Computer Sciences Corp、iRobot和Lockheed Martin等。如此多的项目参与者,如此复杂的系统,无论是技术上还是组织上都是一个极大的挑战。为此,FCS 项目专门成立了一个集成团队(Lead Systems Integrator Team)负责项目的管理工作。
● 对相关业务信息的保密和保护。不同组织和用户(如政府和私营企业)之间的接口以及法规符合性(如反垄断法案)等都意味着综合系统非常复杂。例如:FCS项目由于涉及美国未来的作战系统,必然牵涉到很多国家机密,但是整个项目的供应商为数众多,如何保证国家机密不被泄露是个很复杂的问题;同时每个供应商本身也有很多自己公司的保密信息,在参加项目的过程中,既要保证能够按照要求完成项目,又要保证自己公司的机密信息不被竞争对手获得。
● 由于综合系统内在特性相比独立系统来说缺乏稳定性,某一个子系统的缺陷都将影响到整个综合系统,例如:在FCS项目中,整个综合系统都是围绕未来的战争进行,而且各个系统之间是紧密联系的,当智能传感器发生问题的时候,会直接影响作战士兵的行动;导弹发射系统的缺陷也可能直接影响地面部队的作战。
● 技术和功能互用性的高要求使得综合系统中对独立组件的集成测试的要求也非常严格,同时需要设计出高认可度的接口。例如:在FCS项目中,在保证每个独立系统质量的同时,对系统间的接口也有严格的要求,设计良好的接口有助于整个综合系统的稳定和升级维护。
从上面的分析可以看到,综合系统通常意味着其项目管理和组件配置管理的高复杂性,这对质量保证、过程规范定义等工作提出了更高的要求。相对普通系统的测试而言,综合系统的测试具有如下额外的特征:
● 多层次的集成和版本管理。例如:在FCS项目中,每个独立子系统本身就要进行各个级别的测试,而在把各个独立子系统集成到FCS的时候,由于系统的复杂性,不可能采用一次集成的方式,必然也是多层次逐步进行集成。综合系统的开发通常都是采用增量迭代开发模型,在每个子系统完成部分功能后,就开始将这些子系统集成到综合系统中去。
● 测试的持续周期长。例如:在FCS项目中,整个项目持续时间超过10年,而测试工作必将伴随这个项目开发过程,这就对测试人员的技能要求、测试团队的稳定、测试环境的搭建、测试过程的规范化和系统化提出了更高的要求。
● 项目成员之间的正式的信息传递。在复杂而庞大的系统开发过程中,口头的信息传递将带来极大的风险,由于每条信息涉及的成员范围都很广,非正式的信息传递很可能导致信息丢失或被错误理解。
● 各个组件的开发不同步以及大量回归测试需求。不断地有新的组件集成到系统中来,同时已经集成到系统中的组件还会进行更新,这就带来了大量的回归测试的需求。
● 由于更换或更新个别过时的组件而需要进行维护测试。综合系统的整体使用寿命通常都比较长,以FCS为例,它在交付之后,至少要能够使用10年以上,在使用的过程中,必然会有一些过时的组件被淘汰,或被新组件所替代,这时候就需要进行相关的维护测试。
● 某一层次的测试必须考虑到本层次的测试细节以及与上一层次测试的整合,例如:对某一组件的系统测试可以看成是其所属的更高层次组件的集成测试。
综合系统管理相关的内容参见3.11.2节。