使用Third Party SW及FOSS的一些事情

发布于 2023-6-14 11:11
浏览
0收藏

编者按:项目交付的软件中,很多时候使用了第三方软件(Third Party Software),甚至是自由开源软件(FOSS, Free and Open Source Software)。在这种情况下,需要从哪些方面考虑呢?

0. 第三方软件是什么?包括哪些类型?

第三方软件是指由第三方(非项目团队)开发的软件,该软件集成在交付给客户的项目软件中。[说明:为表述简便,后续描述中使用”项目软件”来代表:集成了第三方软件的、交付给客户的软件]


第三方软件包括:

  • 自由开源软件(FOSS, Free and Open Source Software)。[说明:为表述简便,后续描述中使用FOSS缩写]
  • 商业现货(COTS, Commercial Off-The-Shelf )软件,如:AUTOSAR OS, AUTOSAR BSW。[说明:为表述简便,后续描述中使用COTS缩写]
  • 由分包商根据项目需求,进行定制开发的软件。分包商可以是供应链中下一个级别的供应商、公司内其它部门,甚至是客户。[说明:为表述简便,后续描述中使用ACQ-SW缩写]

1. 是否使用第三方软件?

首先:判断第三方软件是否满足分配的功能性需求和非功能性需求。非功能性需求例如包括:编码规约、代码指标、性能要求、功能安全等级(ASIL)等。

  • COTS或FOSS类型的第三方软件,可以通过软件附带的相关文档来判断需求的满足程度,并通过Acceptance Test来验证。
  • ACQ-SW类型的第三方软件,需要把需求传递给分包商并明确Acceptance Criteria,最后通过Acceptance Test等手段来验证。


其次:软件许可证、知识产权等方面是否合适。例如:

  • 从软件许可证和知识产权等方面考虑,使用的第三方软件,是否违背了与客户的合同条款?第三方软件是否可以使用在量产的商业软件中?
  • 第三方软件的使用,是否会对项目软件中已经使用的一些知识产权、专利等产生影响?
  • FOSS的软件许可证是什么,是否是Copyleft类型的,是否会对项目软件产生Copyleft影响。[说明:可以参考”​​开源软件不等于免费软件(弄清开放源代码许可证很重要)​​”文章,了解Copyleft类型的软件许可证。]

 

第三:相关的职责。例如:

  • 谁是第三方软件的Owner,谁对第三方软件负责?
  • 当存在技术故障或其它问题时,谁来负责维护?

[说明:FOSS类型的第三方软件,需要由项目来负责。]


最后:使用的第三方软件,通常需要告知客户并取得客户同意。

2. 如何使用第三方软件?

首先:软件架构设计中,将第三方软件识别为软件元素,并记录其来源,如:提供方、类型、版本等信息。

使用Third Party SW及FOSS的一些事情 -汽车开发者社区

其次:建议对第三方软件进行封装,只向外提供需要的接口和功能。通过封装能够有效隔离并获得例如降低耦合性,提高可维护性等好处。

使用Third Party SW及FOSS的一些事情 -汽车开发者社区

第三:建议完整使用”第三方软件”,不对其进行修改。原因如下:

  • 有些FOSS的软件许可证,不允许修改。
  • 第三方软件是一个整体,对其进行修改可能会破坏其完整性,进而存在质量风险。
  • 项目对第三方软件的修改,会对第三方软件相关的责任关系产生影响。
  • 方便软件的维护,例如:COTS和FOSS的软件版本更新后,可以方便的将项目软件中的FOSS或COTS软件替换为新版本。 

3. 集成和验收第三方软件

第三方软件集成到项目软件时,需要对其进行验证:

  • 确保其满足“集成条件”或“Acceptance Criteria”。
  • 确保其实现了分配的功能性需求和非功能性需求。


为此,通常需要:

  • 对第三方软件进行Acceptance Test。
  • 在项目的软件测试中,测试第三方软件相关的功能性需求和非功能性需求。


项目的集成策略测试策略中,需要对上述的各项内容进行考虑。

4.如何保证第三方软件,能符合项目的质量、安全等的相关要求呢?

ACQ-SW类型的第三方软件,可以通过把项目的质量、安全等要求传递给分包商,并通过遵守一些行业标准中的最佳实践来监控供应商。例如:ASPICE ACQ.4 Supplier Monitoring、ISO26262 Part 8-5 Interfaces within distributed developments, ISO/SAE 21434 Clause 7  Distributed cybersecurity activities


COTS类型的第三方软件,可以让卖方来保证软件满足相关的质量及安全要求,并提供相关证据。


FOSS类型的第三方软件,如何来做呢?

可以借鉴ISO26262 Part 8-12 Qualification of software components中的如下说明:

使用Third Party SW及FOSS的一些事情 -汽车开发者社区

5. 项目软件交付

项目软件交付给客户时,通常需要明确罗列出项目软件中包括的第三方软件。例如:软件交付时需要提供FOSS Report、基于工具的FOSS分析报告等。


推荐阅读:

​开源软件不等于免费软件(弄清开放源代码许可证很重要)​

​Automotive SPICE和Automotive SPICE评估的那些事​

​如何达到并维持Automotive SPICE能力度级别​

​引入Automotive SPICE,企业要知道的二三事​

​引入Automotive SPICE,企业要知道的二三事(续)​

欢迎访问公众号菜单,2020及2021文章合集下载


文章转载自公众号:仨人谈起

分类
收藏
回复
举报
回复
相关推荐