打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
软件架构设计的颗粒度

引子

最近给某客户咨询时,与架构工程师讨论了软件架构设计的颗粒度问题。

软件架构工程师纠结的问题是:

  • 功能安全ISO26262标准,以及某OEM要求中,都提到了软件架构设计时需要识别SW Unit。

  • 从软件架构设计活动的目的、项目人员分工等方面考虑的话,由架构设计工程师将软件分解到SW Unit级别,有点过细了。

这个问题比较有代表性,因此将讨论内容进行整理,分享如下:

说明:由于某OEM的要求是受限使用的,故本文仅基于ISO26262中的相关条款进行讨论。

术语及ISO26262标准要求

software unit (Reference from ISO26262:2018)

  • atomic level software component of the software architecture that can be subjected to stand-alone testing.

  • 软件架构中的最低层级(原子级别)的且可被孤立测试的软件组件。

SW Unit是最低层级的,原子级别的可被孤立测试的对象,SW Unit封装了数据和语句。SW Unit可以是函数(C语言场合)、方法(面向对象的C++, JAVA语言场合)。

ISO 26262:2018 Part 6-7 Software architectural design

  • 7.4.4 The software architectural design shall be developed down to the level where the software units are identified.

  • 软件架构设计应被开发到能够识别出软件单元的程度。

ISO 26262:2018 Part 6-8 Software unit design and implementation

  • 8.1 Objectives: to develop a software unit design in accordance with the software architectural design, the design criteria and the allocated software requirements which supports the implementation.

  • 8.1 目标: 根据软件架构设计、设计准则以及分配的软件需求,开发软件单元设计,来支持软件单元的实现。

从以上ISO26262条款,可以了解到:

  • ISO26262 Part6-7: 软件架构设计时,识别SW Unit

  • ISO26262 Part6-8: 软件单元设计时,设计SW Unit

软件设计

从”软件需求”到”软件实现(如:Coding)”之间的活动,可以统称为”软件设计”。

软件设计是基于软件需求,设计软件内的各个层级的逻辑单元,最终设计所有的软件单元。

如下,举一个简化的例子进行说明:

① 识别软件需求

② 进行软件设计,识别软件组件,确定软件组件层面的需求 

③ 继续进行软件设计,识别软件单元,定义软件单元层面的需求

④ 设计软件单元

ISO26262:2018 Part6的对应

上述的活动步骤,与ISO26262:2018 Part6条款的对应关系如下:

与项目工程活动的对应

如果按照如下方式,对应到项目工程活动,是否可以呢?

说明:如下所定义的软件工程活动仅是示例

ISO26262的各个条款都有被做到,当然可以了。

(为什么不可以呢?

结论:

项目工程活动的划分,依赖于项目场景和需要。而可以和ISO26262的条款,不一一对齐。

(说明:如上示例中的项目工程活动划分仅为示例


( -- 完 -- )



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ISO26262软件部分的测试: (2) 软件集成测试
软件过程管理(一)
汽车ASPICE流程详解(一):为什么汽车软件开发项目都长一样?
车载SOA软件架构设计
数人云|读完这19本经典,成为优秀架构师其实也不难
从功能安全视角看软件架构设计
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服