我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。
老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:
简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身边有这样灵性的人,一定要好好珍惜他们眼中有神有光,干净,给人感觉很舒服,有超强的感知能力有形的无形的感知力很强,能感知人的内心变化喜欢独处,好静,清静,享受孤独,不打扰别人不喜欢被别人打扰,在自己人世界里做着自己喜欢的事。
时间不知不觉中,快要来到新的一年。2024结束,2025开始新的忙碌。成年人的我也不知道去哪里渡自己的灵魂,独自敲击一些文字算是对这段时间做一个记录。
一、背景信息
随着汽车智能化、网联化、电动化需求的日益增长,传统的分布式电子电气架构已经难以满足现代汽车对于高效、灵活和多功能性的要求。因此,向中央集成式架构的转变成为了一种必然趋势。
在分布式架构中,每个电子控制单元(ECU)通常负责特定的功能。随着汽车功能的不断增加,ECU的数量也随之增多,这不仅导致了整车电气系统的复杂性增加,还带来了高昂的成本。更重要的是,分布式架构难以实现多域融合功能,限制了智能驾驶和智能座舱等高级功能的实现。此外,每次增加新特性都需要增加新的ECU,这不仅增加了开发周期,还降低了系统的互操作性。
为了克服分布式架构的局限性,越来越多的汽车制造商(OEM)开始开发新一代Central&Zone架构。这种架构将车辆的高层级复杂功能集中在中央计算单元进行处理,而区域控制器则负责区域电源分配、网络路由、传感/执行控制等任务。这种分工使得系统更加高效、灵活,并且易于扩展。
SOA设计思想的引入
此外,汽车行业还借鉴了IT行业的经验,引入了面向服务架构(SOA)的设计思想。SOA将整车的功能服务化,通过定义标准接口来形成统一的交互语言。这种设计思想增强了软件的复用性和快速迭代能力,使得汽车制造商能够更快地响应市场需求,推出新的功能和服务。
汽车电子电气架构向中央集成式转变是汽车智能化、网联化、电动化需求推动的必然结果。通过引入Central&Zone架构和SOA设计思想,汽车制造商能够构建更加高效、灵活、易于扩展的电子电气系统,从而满足现代汽车对于多功能性和高性能的要求。随着技术的不断进步和创新,我们有理由相信未来的汽车电子电气架构将更加智能化、集成化和服务化。
二、SOA架构服务设计方法
在面向服务架构(SOA)开发过程中,确实存在对服务设计、降低服务耦合度、服务抽象、增强服务自治和重用等关键技术的挑战。针对这些问题,采用基于模型的系统工程(MBSE)方法论可以提供一个有效的指导框架,特别是在汽车行业服务设计工作中。以下是对MBSE方法论在SOA开发过程中的应用,结合您提出的四个阶段进行详细说明:
1、功能定义阶段
任务:根据企划、对标及客户需求整理Feature list(车辆特性清单),并对Feature的工程可行性进行评估。决定引入后,由产品经理分配给功能开发工程师。
MBSE应用:
使用系统工程工具和方法来明确和定义功能需求。
通过模型来展示功能之间的关联和依赖关系。
评估功能的工程可行性,确保在引入新功能时考虑到整个系统的兼容性和稳定性。
在SOA(面向服务的架构)汽车软件设计过程中,清晰的模型、有效的流程、方法和工具是至关重要的,以确保能够充分发挥SOA的优势。相对于传统汽车软件开发中常用的基于功能分解的面向过程分析方法,SOA软件架构开发更侧重于“用例驱动的开发方法”和“面向服务的架构设计方法”。
用例驱动的开发方法
用例(Use Case)作为捕获潜在需求的关键技术,在SOA软件架构设计中扮演着核心角色。它不仅能够产生功能型需求,还能为后续的系统功能设计提供结构化设计和行为设计的重要素材。Use Case分析具备将用户需求转化为系统化语言的能力,是连接业务过程分析和系统设计的桥梁。
功能定义阶段的主要工作
-> 详细用户使用场景定义:根据产品经理输入的用户功能,开展详细用户使用场景的定义。这包括理解用户在实际使用汽车时可能遇到的各种情况,以及他们对氛围灯等功能的期望和需求。
-> 创建Use Case:基于详细用户使用场景,创建具体的Use Case。每个Use Case都代表了一个用户与系统的交互场景。
-> 定义前置条件、后置条件:前置条件描述了触发Use Case之前必须满足的条件;后置条件则描述了Use Case执行完毕后系统应达到的状态。
-> 基本路径、异常路径、替代路径分析:基本路径是用户正常完成任务的流程;异常路径是用户可能遇到的错误或异常情况;替代路径则是用户可能采取的不同于基本路径的其他合法路径。
-> 功能需求及非功能需求分析:通过对Use Case的深入分析,提取出具体的功能需求(如打开氛围灯的具体操作)和非功能需求(如响应时间、系统稳定性等)。
示例:氛围灯功能用例图及表格
图3:氛围灯功能用例图
通过这样详细的用例分析和设计,可以确保SOA汽车软件架构在功能定义阶段就具备清晰、准确的需求基础,为后续的开发工作提供有力的支持。同时,这也体现了用例驱动的开发方法在SOA软件架构开发中的重要性。
2、功能设计阶段
任务:功能开发工程师或系统架构工程师针对每一个用例进行功能实现逻辑的设计,运用UML行为图(序列图、活动图、状态图)分析功能实现的方案及模块交互的内容。
MBSE应用:
利用UML图来详细描绘功能实现的逻辑和模块之间的交互。
通过模型来验证和模拟功能实现方案,确保设计的正确性和可行性。
识别潜在的问题和风险,为后续的模块架构设计提供输入。
功能逻辑分析在软件开发过程中起着至关重要的作用,它基于前期需求分析阶段所确认的用例,将这些用例转化为可执行模型。在定义用例模型的行为时,UML(统一建模语言)行为图被广泛采用,其中包括序列图、活动图和状态图。此外,静态图如功能和产品能力PC映射图也被用来创建功能、用例与产品能力PC之间的映射关系。
序列图(Sequence Diagram)
序列图主要用于展示一系列按交互顺序发生的信息,特别是在产品能力PC之间的交互。它清晰地表示了用例的行为顺序。当执行一个用例时,序列图中的每条消息都对应着PC的一个具体操作(operation)。
序列图的元素组成
-> 生命线(Lifeline):
在序列图中,所有的PC元素都带有生命线,这代表了它们在交互过程中的存在时间。
-> 消息(Message):
消息被定义为PC的操作(operation)。为了可读性,序列图中的第一个消息通常从顶端开始,并位于图的左侧。后续的消息被添加到图中,稍微低于前面的消息。如果一个PC需要调用另一个PC的能力或传递信息,则画一条线指向另一个PC,消息/方法的名字放在带箭头的线上方。同步调用操作使用实心箭头表示,而异步操作则使用棍型箭头。
-> 组合片段(Combined Fragment):
组合片段反映了由交互操作符控制的交互的一个或多个方面。相应的布尔条件称为交互约束。Fragment显示为一个透明的窗口,由每个操作数的水平线分割。
-> 交互操作符(Interaction Operators):
在创建组合片段时,必须应用适当的交互操作符来表征片段。这些操作符包括alt(替代)、opt(可选)、par(并行)、loop(循环)、critical(关键区域)、neg(否定)、assert(断言)、strict(严格顺序)、seq(序列)、ignore(忽略)、consider(考虑)和ref(引用)等。通过序列图,开发团队可以清晰地看到系统各个部分之间的交互顺序和消息传递,这对于理解系统的动态行为至关重要。此外,序列图还有助于发现潜在的交互问题和设计缺陷,从而在开发早期就进行修正,降低后期修改的成本和风险。
3、模块架构设计阶段
任务:按照OEM组织架构、职责,划分Domain、模块,初步规划模块所具有的能力PC以及实现模块能力需要的组件(包括软件组件SWC、硬件组件)。
MBSE应用:
使用系统工程模型来展示模块之间的关联和依赖关系。
通过模型来优化模块划分和组件选择,确保系统的整体性能和稳定性。
考虑到SOA的核心理念,如服务解耦、服务重用等,在模块架构设计中融入这些原则。
4、模块详细设计阶段
任务:在模块架构的基础上,每个模块的负责人(子系统工程师)根据功能设计分配的PC输入,明确模块设计需实现的功能,详细设计实现PC的SWC,以及SWC实现的ServiceInterface。定义服务接口的详细内容(Method/Field/Event)以及DataType。
MBSE应用:
使用模型来详细描述服务接口的内容和数据类型。
通过模型来验证服务接口的正确性和一致性。
确保服务接口的设计符合SOA的原则和要求,如松耦合、可重用性等。
关键技术应对策略
降低服务之间的耦合度:
使用标准化的接口和协议进行服务之间的通信。通过服务注册和发现机制来动态地管理和调用服务。采用消息传递机制(如Web服务和消息队列)来实现服务之间的异步通信。
服务抽象:
隐藏服务的底层实现细节,只暴露必要的信息给外界。使用抽象层来隔离服务的变化和更新对系统其他部分的影响。
增强服务的自治:
确保每个服务都有自己独立的数据存储和业务逻辑。通过服务注册和发现机制来允许服务独立地部署和升级。
增强服务的重用:
设计通用的服务接口和数据类型,以便在不同的上下文中重复使用。建立服务库来存储和管理可重用的服务组件。
MBSE方法论为SOA开发过程中的服务设计、降低服务耦合度、服务抽象、增强服务自治和重用等关键技术提供了有效的指导。通过四个阶段(功能定义、功能设计、模块架构设计、模块详细设计)的逐步实施和关键技术的应对策略的应用,可以构建出高效、灵活、可扩展的SOA系统。
搁笔分享完毕!
愿你我相信时间的力量
做一个长期主义者