
使用Third Party SW及FOSS的一些事情
编者按:项目交付的软件中,很多时候使用了第三方软件(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. 如何使用第三方软件?
首先:软件架构设计中,将第三方软件识别为软件元素,并记录其来源,如:提供方、类型、版本等信息。
其次:建议对第三方软件进行封装,只向外提供需要的接口和功能。通过封装能够有效隔离并获得例如降低耦合性,提高可维护性等好处。
第三:建议完整使用”第三方软件”,不对其进行修改。原因如下:
- 有些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中的如下说明:
5. 项目软件交付
项目软件交付给客户时,通常需要明确罗列出项目软件中包括的第三方软件。例如:软件交付时需要提供FOSS Report、基于工具的FOSS分析报告等。
推荐阅读:
开源软件不等于免费软件(弄清开放源代码许可证很重要)
Automotive SPICE和Automotive SPICE评估的那些事
如何达到并维持Automotive SPICE能力度级别
引入Automotive SPICE,企业要知道的二三事
引入Automotive SPICE,企业要知道的二三事(续)
欢迎访问公众号菜单,2020及2021文章合集下载
文章转载自公众号:仨人谈起
