ckyk44apjst64088526347.gif
% r+ q6 ]9 Y8 M. O+ O% M
点击上方蓝色字体,关注我们
% \/ ?& T( A5 r7 d
. @" \) ^1 e) h# Q1. 是否做对了
* \' q) M1 P) Q2 T6 }! Q9 i2 b这一部分涉及对软件开发过程的整体把控,从需求分析、开发、编译、集成到测试的各个环节都要确保执行正确。
# ~! I) t8 _$ E+ v! b$ u
, F$ N5 I: F$ a% E" p然而,是否“做对了”的最终判断并不是在交付环节做出的,而是在整个开发过程中判断的。
1 l! q# L0 X+ H( A; N( n
" H& `8 B7 w3 M* m$ U( C交付环节的作用更多是作为最终的把关,确保软件最终交付的版本符合预期和标准。7 p/ Z% F: |- R
% y' o7 _% d% a# D& B) {
2. 是否交对了& h' R7 r# {0 I( o% s* _# I
最直观的检查就是版本是否正确,这与前期的软件分支管理、代码管理、集成管理等密切相关。
' Y4 @ L) o; K" i n: c' I' z" m/ @" o( z6 e7 D, U: o+ G6 S
同时,还需要确认关键参数的正确性,例如,交付的软件中读取版本号或其他关键参数后,与需求方确认其是否正确。
5 x; i( y. N4 T& ?1 O4 W8 o* J/ H. Y6 c& \" y4 o/ J
当然,实际操作中,细心和谨慎也是不可忽视的因素。
3 r' z% X$ Q* h5 C
( X7 L4 f. t& C% k3. 是否交全了# @ e8 I }& a& G" K
“全不全”由客户定义,不同客户的需求差异可能很大。. z" v7 \( m9 ^
* K2 l3 m! c8 j7 H1 p8 T" s/ \1 m/ [例如,有的客户仅需要一个可烧录的HEX文件,而有的客户则可能需要一整套测试报告、过程记录、OTA刷新包等。1 @* ~( J! m9 j' a
' N& I& o% s& j3 S
通常,业内会使用SW Release Notes(版本说明)来汇总该版本软件的状态。# I3 c6 N/ O2 y S
1 b' s/ W. d# O1 k$ [0 j一个好的版本说明能够清晰展示软件的全貌,通常包括但不限于以下内容:
2 ^2 N6 v+ }. Q0 A软件版本号:基础版本号,视开放程度可包括标定、底层、芯片、操作系统等版本信息。软件用途:说明软件的应用领域和功能。使用环境:如仿真环境、台架测试、路试车、产线等。软件成熟度级别:根据软件的稳定性和开发阶段进行标注。软件释放履历:记录软件的发布历史。需求基线:与需求的对应关系。变更点:相较上一版本的新增功能、修改的模块、修复的bug等。测试汇总:包括测试范围、结果、问题等。软件局限:如未解决的bug、已知的风险等。匹配硬件信息:确保软件与硬件的兼容性。
, W! k% K. a4 A总的来说,这三个关注点定义了交付过程中的“要做好的”范围。为了确保交付的质量和完整性,我们必须对这些环节进行严格把控。( Q/ L' [! w8 H& R6 T3 ~- P, H4 i
2( [ T* S- U% t
样件交付成熟度的划分——ABCD样件5 g* n$ I' l5 j2 i4 `7 A
软件的交付除了直接交付软件版本外,还有一种方式是将软件刷写到硬件中,直接交付硬件。
6 ^6 ^! W& t4 N) A E5 H q+ N3 Q2 @& q/ E8 @4 `( Z
这种方式是汽车电子软件行业中较为常见的黑盒交付模式,汽车行业通常将零部件样件视为商品进行交付,且其开发流程的主线往往围绕交付样件展开(量产交样内容不在此讨论)。* P3 k: z1 x k* `9 X
* Z. s3 O* D, R6 \
然而,随着软硬件解耦的程度不断提高以及OTA(远程升级)的普及,交付模式逐渐更多聚焦于软件交付。 |$ l8 _0 P& N6 v, s& A) R4 O$ D
* g+ `3 m$ _. C% j) E/ D
在这里,我们将举一个样件成熟度划分的例子,涉及到机械和软硬件状态的描述,这有助于加深大家对项目流程的理解。( q P+ x2 j) K' W
+ R4 h. ^3 y( d
总体而言,研发样件的划分通常是根据其设计和验证的成熟度来定义的。
$ T+ J& ] j/ W4 i' l M& I- h& G5 Y8 C1 T8 r! S0 k
不同公司基于各自的开发流程和产品特点,可能会有不同的定义和习惯,同一公司不同人员在细节理解上也可能存在差异。2 W1 u& t2 Z7 m
& z/ U1 ~9 b1 m: A
为了便于理解,这里我们给出一种常见的样件成熟度划分方式,即按照ABCD样件来划分成熟度,具体见下表。
8 j L# U. C; }3 }+ \8 G! u6 F" ?# p2 C0 ~' m+ a
ddyaxmppmr064088526447.png
' N) R1 z1 ~0 u, x4 I' ~1 C
# `* N0 p% W- _6 B$ E# y1. A样件
+ {. V/ B5 q& ~, A* D, y( W* @9 FA样件通常是非常早期且不成熟的产品。% A5 j4 M) N2 S3 [* p0 p2 c
/ a" n$ f& a5 u, f3 l3 d
其制作方式可能不规范,例如使用手工制作、3D打印、现有样件修改或其他样件代替等。" K: l. R0 R) o$ p6 H! @
/ U- w: m' j4 h+ |2 h
这类样件一般只用于非常基础的功能验证,如外观确认、结构匹配、包装开发、硬件在环(HIL)测试、台架测试或其他基本的工作原理确认等,不能用于耐久类环境测试。7 I# ?( Q- _1 _( V
# G9 v. Q# y# e, p: K$ y( hA样件的软件开发可能未完成,或仅做了简单的基本功能和接口测试。6 C8 \! T1 a7 `$ I7 s4 f6 M& a
2 ]$ p1 _! V6 w+ U" h7 {2. B样件1 G5 ~4 L5 U% n% N
B样件的成熟度比A样件稍高,通常被视为过渡阶段。由于该阶段的定义相对模糊,很难与A样件划定清晰的界限。) C1 H# v3 g, G1 M- X+ U
1 z+ ^/ H3 m: u5 g: [7 W. e# a
B样件的制作方式、功能状态和测试完成度等关键部分通常已接近满足要求,但仍有一些非关键问题,如非配合尺寸不良、非正式产线出件等。6 b3 f' s) c0 @% P% r* |# v
. o( R, W% a7 c2 G5 X6 D j
B样件可以用于车载测试或受限的路试验证。
4 d/ p6 ~4 T. r. v/ ~
7 q6 F6 M/ H9 N5 m- R2 F. V此外,常说的DV(设计验证)阶段就是在这一阶段进行验证。2 t9 c9 Z0 I/ I$ n- T& e5 t
* x" J- G7 ?9 f* r" M0 v
B样件的软件可能仍有部分非关键模块未开发完成,或者存在一些bug,标定可能还在调整阶段,但至少满足了可测试的条件,核心功能已经能正常运行,剩下的是工程化的打磨工作。
7 u9 n" ` ?7 u, z& E2 e; l* [
( m. ?! ^: i; S( B2 ~可以说,大多数开发阶段的模块处于B样件状态。
4 l9 v _' ?1 X3 N6 n' [( s* b. Q& O/ Q" T* R0 J }9 h0 _
3. C样件6 S% O6 O( z8 k; [" {( \6 `
C样件代表了设计完成并验证合格的样件状态,所有功能需求已满足,硬件或机械件已经是正式模具或产线生产出的零件。5 J: o* H- P% q q7 ~$ G. P
9 Y! I# j3 d: g* _9 ^1 w
尽管如此,C样件还不能用于销售,因为此时只证明了可以通过非量产方式生产出单件或少量合格品。
# w& q# l v |: U3 e: ~
* j9 U# ^- M8 r) r对于软件开发团队而言,需求已经完成,所有子功能都已验证,即使仍然存在已知的bug(实际上没有完美无bug的软件),这些bug通常不影响核心功能,而且相关方已达成偏差许可。
& [ o0 Y; M; h) s
5 V' P9 [1 s8 |9 `开发工作基本完成,只剩下最后一步——客户确认(例如整车或产线确认)。. h7 y# H. a( x
! ]# v) C e( j" P! o: Q如果在这一阶段发现问题,可能需要迭代优化。简单来说,C样件的技术层面没有问题(包括产品和生产)。
' s8 K5 i% G' z2 ^$ `; _0 m4 _: c3 s; n8 K; {. D4 f+ V1 e0 G
4. D样件
2 t1 f/ {7 Z% N# B% Q% J尽管C样件在技术层面已无明显问题,但汽车行业强调程序“正义”和量产稳定性,因此引出了D样件的概念。. {9 d6 J1 k1 S$ l# a# t5 H$ j: \1 J9 ^
( ?9 _/ l3 Z% D& m$ H5 q) |2 aD样件是指经过小批量试生产(量产工艺)并获得必要认可(如PPAP)的样件,证明设计、工艺、组织及流程都已被认可,且组织具备批量生产合格产品的能力。4 K: ~' h2 }7 J! j( u/ t8 _
此时,软件也已完成全部确认工作,D样件标志着开发阶段的结束,进入量产供货阶段。
9 G/ J- w9 p/ }$ g9 t3 ^# {, z
sypfpngbps064088526547.jpg
( l7 R4 c h; b, V6 x8 i
nbx0zfy5wc164088526647.gif
$ O7 }" Y4 e; j1 V5 p
点击阅读原文,更精彩~ |