ASPICE总结——1

为了应对外部A客户的迎审,最近包括去年都做了比较久的ASPICE准备工作,作为一个软件研发,我的任务主要集中在软件详细设计,软件单元测试,软件集成测试,也涉及了一点软件合格性测试。但是前几天得知迎审取消了,有喜有忧,喜的是终于迎来一个双休,不用每天听英语听力了;忧的是这些工作要搁置了。所以,整理一下我在做ASPICE与准备迎审过程中的一些总结和感悟吧。
ASPICE,全称“Automotive Software Process Improvement and Capacity Determination” ,汽车软件过程改进及能力评定。听起来很抽象,解释起来也挺难,我之前看过一个讲解敏捷开发与ASPICE开发之间的关系的视频,**讲到ASPICE是告诉你做什么,敏捷(Agile)则是告诉你怎么做!**感觉颇有道理,ASPICE主要就是对诸如项目管理、供应商管理、系统域、软件域等共15个过程域进行了结果上的要求,比如说在软件详细设计过程中,必须要定义接口函数,描述动态行为,进行详细设计评估等等,比如下图就是详细设计过程SWE3要求的BP和Outcomes。
在这里插入图片描述

  1. 有一个好的模板
    成熟的文档模板是做好ASPICE的重要一环,这会让工作变得简单,变成填鸭式的,而且能保证各项要求不被遗漏。但是有一个好的模板并不容易,因为这通常是一个公司的核心资产。一般的ASPICE咨询公司会卖模板,但是通常只能提供一个基础版本,需要经过QA在迭代开发中,在迎审准备中,在专家辅导中不断改进。
  2. 讲究真凭实据
    “真凭实据”在我认为有两个方面。一个是要“真”,在ASPICE实施过程中,只靠作假,通过编文档、撒谎等方式是绝不可能通过迎审的,我们在迭代一的开发过程中,由于一开始对流程不熟悉,对有的环节不重视,导致后补了不少文档,就遭到了辅导专家的质疑。但是这个真当然也有一个度,有的不重要的适当地使用话术来解释也并非不可。
    第二个就是“据”,ASPICE的世界里非常讲求证据。换言之,你说的话别人都有不信的可能。你说我们每次上库都会进行静态扫描,那就要展示每次扫描的记录;你说我们每次文档基线都会评审,那就展示评审的记录,“什么?参与评审的总共8个人,只有一个人提了意见?”可以看到,证据是用来佐证“真”的。不管实施什么流程,务必保存有效的证据。
  3. ASPICE有没有用?
    先说结论,由于我现在还在项目开发初期,所以我的体会是:不仅没用,还费劲。看过别人专家的说法,ASPICE在项目早期甚至是单个项目中确实成本大于收获,但是当项目变得庞大的时候会带来帮助。正是因为这样,我觉得ASPICE在实施的时候必然会导致下面搬砖员工的积极性很低,动辄上百页的文档让人写得想吐。所以,ASPICE也必须是一个自上而下的推行,项目经理+QA施压和审查,才能保证流程的完整和质量。
  4. 双向可追溯
    双向可追溯,听起来就很厉害的词,其实是ASPICE中最常用到的词之一。它指的是两个过程的元素之间能够互相关联。比如下图中蓝色线指向的双方就需要可追溯,举例,软件详细设计与软件单元测试涉及的双向可追溯体现在:
  • 每个测试用例都能对应到软件详细设计中的函数;
  • 每个单元测试用例都能对应到单元测试用例执行结果。
    要实现双向可追溯并不难,最简单的方法就是通过Excel管理,更好的方式则是通过专用的软件来建立(我司自研了管理工具)。
    除了上述的追溯,还有系统需求与软件需求追溯、软件详细设计与软件架构之间的追溯、软件架构与软件集成测试的追溯、软件需求与软件合格性测试的追溯等等,这些都是每个过程域审查的重中之重!
    在这里插入图片描述
    这一篇就先写到这儿吧,ASPICE是一个方法论,指导OEM或者Tier One的供应商怎么把软件开发做得规范、质量可保证,说难也难,说不难也简单。
### 关于 ASPICE SWE.4 BP8 的要求及实现指南 #### 基本概念 ASPICE(Automotive Software Process Improvement and Capability Determination)是一种用于评估汽车行业中软件开发过程成熟度的标准框架。其中,SWE.4 是指 **软件架构设计** 过程,而其下的基本实践之一——BP8,则专注于确保软件架构的一致性以及其他系统组件之间的兼容性。 --- #### SWE.4 BP8 的具体要求 SWE.4 BP8 的核心目标在于 **验证并确认软件架构的设计满足所有已定义的需求,并系统的其他部分保持一致性**。以下是该基本实践的具体要求: 1. **验证软件架构的内部一致性** - 确保软件架构中的各个模块之间不存在冲突或冗余。 - 使用工具或方法来检测潜在的设计缺陷[^1]。 2. **验证软件架构对外部接口的要求** - 检查软件架构是否能够正确地硬件或其他外部系统交互。 - 确认所有的接口需求已被充分考虑并纳入设计中[^2]。 3. **确保软件架构系统需求的一致性** - 将软件架构的设计回溯到最初的需求文档,以证明每项需求都得到了适当的支持。 - 实现双向可追溯性,以便在后续阶段可以轻松追踪任何更改的影响[^3]。 4. **评审和批准软件架构** - 组织跨职能团队对软件架构进行正式评审,记录发现的问题并采取纠正措施。 - 所有相关方需签署最终版本的软件架构文件,表明对其的认可和支持[^4]。 --- #### 实现指南 为了有效实施 SWE.4 BP8,建议遵循以下最佳实践: 1. **采用建模工具辅助设计** - 利用 UML 或 SysML 等标准化建模语言描述软件架构。 - 自动化生成文档并需求管理工具集成,减少手动错误的发生率。 2. **引入静态代码分析技术** - 应用静态分析工具扫描源代码,提前发现问题区域。 - 特别关注那些可能影响性能、安全性的高风险模块。 3. **执行同行审查会议** - 定期召开由不同背景专家组成的小组讨论会,共同审视当前进展状况。 - 收集反馈意见并对初步方案做出相应调整优化。 4. **维护详尽的历史记录档案** - 记录每次迭代过程中所做的修改决定及其理由说明。 - 方便未来项目借鉴经验教训的同时也便于审计核查之用。 ```python # 示例:Python脚本可用于自动化检查某些特定条件下的依赖关系 def check_dependency_conflicts(dependencies): conflicts = [] for dep in dependencies: if not is_compatible(dep['version'], system_requirements): conflicts.append(dep) return conflicts def resolve_conflict(conflict_list): resolved = True for conflict in conflict_list: try: update_version(conflict['name']) except Exception as e: print(f"Failed to resolve {conflict['name']}: {e}") resolved = False return resolved ``` 上述代码片段展示了如何通过编程手段帮助识别和解决依赖冲突问题,这正是贯彻执行 SWE.4 BP8 中有关验证环节的一部分体现形式。 --- #### 总结 综上所述,成功达成 SWE.4 BP8 的关键是建立起一套完善的机制来保障软件架构在整个开发生命周期内的稳定可靠运作状态。它不仅涉及到技术层面的操作细节把控,还需要注重沟通协作方面的软实力培养提升。 ---
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值