太多人在講V模型了,但越是司空見慣的概念,似乎越讓人難以達(dá)成共識(shí)。這篇文章給出我的觀點(diǎn)。 ?
開發(fā)模型其實(shí)有很多,比如,增量式、原型式、螺旋式、噴泉式、W模型等。限于篇幅且必要性不大,我們不講那么多。
其實(shí),能夠反映最基本工程邏輯的模型就是瀑布,包括V模型在內(nèi)的其他模型大多是以瀑布為基礎(chǔ)來衍生的,或多或少也都能看到它的影子。
我們先從瀑布說起。
1 瀑布模型是一種認(rèn)知邏輯 ? ? 瀑布模型是大家聽得最多的,也是具備最樸素的認(rèn)知邏輯的一種模型。
瀑布模型,顧名思義,就是像瀑布的水流一樣逐層推進(jìn)。
簡(jiǎn)單來說,就是在需求、設(shè)計(jì)、測(cè)試3大基礎(chǔ)板塊上的擴(kuò)展,各項(xiàng)工程活動(dòng)就像多米諾骨牌一樣按次序排布,并逐層驅(qū)動(dòng)直至最后一塊骨牌倒下。
這種方式雖然簡(jiǎn)單,但非常易于理解,所以也便于管理。對(duì)于標(biāo)準(zhǔn)化、規(guī)范化要求比較高的領(lǐng)域,更是極具友好性,就像汽車制造,就是非常典型的瀑布。

一個(gè)簡(jiǎn)單的、單一的軟件模塊的開發(fā),如果需求描述清晰、設(shè)計(jì)方式確定、測(cè)試用例明確,最佳的辦法也就是一波流的瀑布。
當(dāng)然,不是像一串珠子一樣的單向、單通道、串行模式才是瀑布。即使是最簡(jiǎn)單的一個(gè)機(jī)械件開發(fā),也會(huì)有并行、來回反復(fù)修正的過程。
總體的,我們可以總結(jié)瀑布在廣義上的兩個(gè)特點(diǎn):
在時(shí)間線上線性串行。
后序輸入需要依賴前序輸出。
這樣,我們會(huì)發(fā)現(xiàn),瀑布不單是一種開發(fā)模型,也是一種無法跳脫的思考方式。
2 V模型的本質(zhì) ? ?
然而,世間規(guī)律并非總是完美如12345這樣的次序。當(dāng)我們面臨具備一定復(fù)雜性的系統(tǒng)和合作環(huán)境時(shí),最基礎(chǔ)的瀑布模型就不便于我們參考了。
身處冗長(zhǎng)供應(yīng)鏈和擁有復(fù)雜機(jī)電軟硬一體系統(tǒng)的汽車,就面臨了這樣的問題,基于瀑布而演變的V模型就逐漸成為汽車行業(yè)應(yīng)用最廣的模型。
諸如ASPICE、26262、21434等行業(yè)內(nèi)各種體系標(biāo)準(zhǔn)也都是基于V模型搭的架構(gòu)。

2.1?層層嵌套的汽車V模型 ? ?
V模型習(xí)慣被認(rèn)為是軟件開發(fā)的一種模型,但對(duì)于汽車軟件,顯然無法獨(dú)立談軟件。
我們不妨按照系統(tǒng)工程的方式理解一下,當(dāng)俯瞰整個(gè)汽車的設(shè)計(jì)開發(fā)時(shí),會(huì)發(fā)現(xiàn)就是一個(gè)個(gè)大V模型套小V模型的架構(gòu)。
首先,多個(gè)整車V模型會(huì)作為背景板來支撐汽車整體開發(fā)架構(gòu),并進(jìn)而支持整車屬性定義、造型設(shè)計(jì)、架構(gòu)設(shè)計(jì)、需求拆分、子系統(tǒng)實(shí)現(xiàn)、樣件交付、整車集成、整車驗(yàn)證等整車?yán)锍瘫繕?biāo)的達(dá)成。
接下來,一個(gè)個(gè)ECU子系統(tǒng)的開發(fā)再通過多個(gè)小的ECU V模型來不斷推進(jìn)。

進(jìn)一步地,每一個(gè)ECU子系統(tǒng)還能劃分為機(jī)械、軟件、算法、標(biāo)定、硬件、子系統(tǒng)集成等學(xué)科領(lǐng)域,而它們也是通過更下一級(jí)的小小V模型來運(yùn)轉(zhuǎn)。

伴隨著不斷的V模型的迭代,零部件、子總成、功能域系統(tǒng)、整車逐漸成熟,直至整車SOP。
2.2?V模型的內(nèi)核 ? ?
那么,V模型的內(nèi)核到底在哪里?有4個(gè)點(diǎn)值得關(guān)注。
2.2.1 分層分塊細(xì)化
我們對(duì)于不太好搞懂的東西,要掰開了、揉碎了看。就像我們認(rèn)識(shí)物質(zhì),一直從分子、原子、原子核、質(zhì)子、夸克深挖下去才算是多少弄明白點(diǎn)。
2.2.2 高度關(guān)注驗(yàn)證確認(rèn)
汽車及汽車軟件的開發(fā)涉及大量的各層級(jí)的驗(yàn)證。狹義上,就是工程上的測(cè)試;廣義上,所有的評(píng)審、走查、里程碑、審計(jì)、試駕都是驗(yàn)證確認(rèn)的一部分。
2.2.3 分工合作
第一條的可分層細(xì)化也是分工合作的前提,反過來,分工合作的模式也影響了系統(tǒng)的層次和架構(gòu),這是相互的。就像康威定律所指出的,“產(chǎn)品必然是其組織溝通結(jié)構(gòu)的縮影”。
2.2.4 開始“混沌”
現(xiàn)在的問題在于,劃分為不同“層”和“塊”的V模型并不是終極解決方案。
汽車行業(yè)開發(fā)生態(tài)與V模型相互成就,V模型在汽車業(yè)的蓬勃中也成為骨架。
但隨著軟件的進(jìn)入、域化、集中化的演變,系統(tǒng)到組件的層級(jí)關(guān)系越來越弱化,組件之間的學(xué)科界限越來越模糊。
現(xiàn)實(shí)工作中,我們經(jīng)常會(huì)矛盾于這是系統(tǒng)需求還是軟件需求,糾結(jié)于這是軟件測(cè)試還是硬件測(cè)試抑或是集成測(cè)試。
分層分塊概念的混沌正在變得明顯。
于是,解決這種混沌就成為當(dāng)下的重點(diǎn),或許還需要一定的時(shí)間,再次由亂到治,但這個(gè)過程中,并不用太急著去質(zhì)疑V模型本身的存在意義。
3 全文小結(jié) ? 總結(jié)下來,本文給出了3個(gè)關(guān)鍵信息或觀點(diǎn): ?
瀑布是一種基礎(chǔ)的認(rèn)知與工程邏輯。
復(fù)雜的汽車是通過層層嵌套的V模型逐漸走向SOP的。
V模型的特點(diǎn)在于分層分塊細(xì)化、高度關(guān)注驗(yàn)證確認(rèn)、分工合作,但目前遇到了分層分塊混沌的問題。
4 寫在最后 ? 混亂之下,我們最容易被概念蒙蔽,大家都喜歡標(biāo)新立異。 ? 實(shí)際上,無論如何,我們走不出工程最本源——瀑布,也離不開V模型的內(nèi)核思路,至少在目前,它依然是我們認(rèn)識(shí)、理解汽車軟件的基礎(chǔ)。
審核編輯:黃飛
?
電子發(fā)燒友App
















評(píng)論