上一次我们了解了架构设计的简单原则和适用性原则,今天我们了解下第三个原则,就是演进原则。
演进原则
架构设计的工作不但要着眼当前,更要放眼未来。架构设计团队成员需要理解项目的现状、范围、特征,以及企业的愿景,需要了解在架构关注的范围内,哪些因素是硬性限制条件,哪些因素是可变限制条件,哪些因素是项目当前需要解决的问题。
架构设计工作本质上属于项目开发,在管理上一般也是按照项目管理的方式开展的,譬如目标的设定、时间计划、资源的使用等。
多数架构设计工作是在已有系统上开展的,原有系统架构可能不再适应当前的情况,而这正是新架构需要解决的问题。原有的架构或许总体依然可用,只是局部需要调整。
总之,充分了解原有架构是减少开发工作量与风险的保证。一般来说,环境决定了系统可扩展的范围,而且限制了架构设计。影响架构的环境因素包括架构所支持的商务环境、技术限制等。
架构的开发一定要有边界,也就是限制条件,这些边界的集合被称为架构的带宽。不可能有一种架构满足所有的功能或性能的需求,架构师必须明确哪些属性最重要。然而,许多因素是互相矛盾的。比如,让电子电气系统具备高性能的同时还要实现较低的成本就很困难。在进行架构设计的同时,要处理好各个因素之间不可避免的冲突。
无论如何,软件比重的迅速增加还是为电子电气系统与架构的演进提供了想象空间。面向软件的电子电气架构的演进方式是通过软件更新来实现新功能或者优化现有功能。目前普遍采用的方式是适当预留硬件的处理、存储能力,在不更新硬件的情况下,实现车辆量产之后的持续更新。
演进是一个过程,实现演进需要建立一个能在不断变化的环境中持续运行的系统。电子电气系统的演进能力是衡量一个架构设计优劣的重要指标。
所谓系统的演进能力,指的是当一个系统在交付之后仍然能够以较低的成本(开发成本、时间等)进行扩展,从而支持新需求的能力。
架构作为一个抽象的系统,其本身也是需要演进的。因为架构所包含的是结构和原则,而结构和原则也必然需要随着时间和环境的变化不断地演进来适应新的需求。
电子电气系统开发流程大概如下:
需求定义→架构设计→系统设计→部件设计→部件实现(车企、供应商)→部件测试与验证→系统集成与测试→系统功能确认→整车性能测试
对于汽车来说,很多基本的需求在过去的几十年中并未发生太大的变化,由于各种非基本的功能性需求不断增加,导致零部件层级发生了翻天覆地的变化,而且这种变化趋势随着竞争者不断加入而愈演愈烈。
支持持续的演进(迭代升级)已经成为对电子电气系统的基本要求。随着电子电气系统的复杂性不断增加,如何保证电子电气系统的演进能力成为一个极富挑战的问题。
当今的电子电气系统中,软件已经是重中之重。电子电气系统的设计原则中不得不考虑如何让软件的开发、维护更有效率。在设计原则的演化历程中,软件相关原则的比重在逐渐增加已经是不争的事实。
现在电子电气系统的新增功能中大部分依赖软件,而软件的演进速度远远超过硬件。在电子电气架构层面,如何支持软件的演进已经成为架构设计的最大难题。已经有人尝试进行硬件的预埋和芯片算力的储备,而良好的软件架构设计才是让整个电子电气架构能够平滑演进的基础。
良好的架构设计至少包含两个方面:技术与管理。技术层面要根据当前的技术现状和组织的愿景来设计合适的软件架构,同时也需要管理层通过匹配合适的方法论来不断优化流程和组织架构以及资源保障。
在架构设计的过程中可以通过最小投入最大收益的原则来增加电子电气系统的可维护性与降低开发成本,并保证各个利益相关者的需求得到一定程度的满足,而如何保证这些原则的有效落实则让管理者压力巨大。
整车的电子电气系统过于复杂,甚至复杂到没有人可以全面理解,这导致有很多事情是无法通过广泛听取意见找到最优解决方案的,只有通过系统化的思维,从电子电气系统的顶层设计入手,才可能设计良好的架构。