“軟(ruan)(ruan)件定(ding)義汽(qi)(qi)車(che)(che)(che)”逐(zhu)(zhu)漸(jian)在(zai)汽(qi)(qi)車(che)(che)(che)行(xing)業達成共識(shi)(shi),大家紛(fen)紛(fen)意(yi)識(shi)(shi)到軟(ruan)(ruan)件相(xiang)比(bi)于(yu)硬件,對(dui)于(yu)汽(qi)(qi)車(che)(che)(che)行(xing)業重要性(xing)的(de)(de)(de)比(bi)重逐(zhu)(zhu)漸(jian)提升。我(wo)們(men)看到傳統的(de)(de)(de)主機廠紛(fen)紛(fen)轉型,也(ye)涌入了越來越多的(de)(de)(de)造車(che)(che)(che)新勢力,出(chu)現了越來越多的(de)(de)(de)汽(qi)(qi)車(che)(che)(che)軟(ruan)(ruan)件供應商(shang)。不管是有(you)(you)造車(che)(che)(che)經(jing)(jing)驗,還是沒有(you)(you)造車(che)(che)(che)經(jing)(jing)驗的(de)(de)(de),開(kai)(kai)(kai)始造車(che)(che)(che)之后,首先都需(xu)要問(wen)一(yi)個(ge)(ge)問(wen)題(ti):汽(qi)(qi)車(che)(che)(che)行(xing)業的(de)(de)(de)軟(ruan)(ruan)件開(kai)(kai)(kai)發是什么樣的(de)(de)(de)?比(bi)如說小(xiao)米來造車(che)(che)(che),是否(fou)能夠按照小(xiao)米之前開(kai)(kai)(kai)發手機軟(ruan)(ruan)件的(de)(de)(de)流程和步驟來直接開(kai)(kai)(kai)發車(che)(che)(che)載軟(ruan)(ruan)件?面對(dui)這個(ge)(ge)問(wen)題(ti),我(wo)們(men)去(qu)尋找(zhao)這個(ge)(ge)問(wen)題(ti)的(de)(de)(de)答案。就(jiu)會發現在(zai)汽(qi)(qi)車(che)(che)(che)行(xing)業有(you)(you)兩個(ge)(ge)比(bi)較重要的(de)(de)(de)軟(ruan)(ruan)件開(kai)(kai)(kai)發標(biao)準,一(yi)個(ge)(ge)叫 ASPICE, 一(yi)個(ge)(ge)叫功(gong)能安全ISO26262。這兩個(ge)(ge)標(biao)準都是基于(yu) V 字型的(de)(de)(de)開(kai)(kai)(kai)發模式(shi)。
ASPICE誕生的時間、背景和目的
那么(me)ASPICE標準誕生的(de)(de)(de)(de)(de)背景是什(shen)么(me)呢?在05 年(nian)(nian)的(de)(de)(de)(de)(de)時(shi)候——注意這(zhe)個(ge)時(shi)間是 05年(nian)(nian), 現(xian)在已經(jing)是 17 年(nian)(nian)之后(hou)了——德國(guo)的(de)(de)(de)(de)(de)十幾家(jia)主(zhu)機廠和比(bi)較(jiao)強勢的(de)(de)(de)(de)(de)供應(ying)(ying)商(shang)一起制定(ding)了一個(ge)汽車(che)(che)軟(ruan)(ruan)(ruan)(ruan)件流(liu)(liu)程(cheng)的(de)(de)(de)(de)(de)評價(jia)框(kuang)架,后(hou)來(lai)他們(men)背靠VDA(德國(guo)汽車(che)(che)工(gong)業協會)發(fa)(fa)布了這(zhe)套框(kuang)架。制定(ding)這(zhe)套框(kuang)架的(de)(de)(de)(de)(de)目的(de)(de)(de)(de)(de)是什(shen)么(me)呢?因為(wei)他們(men)的(de)(de)(de)(de)(de)軟(ruan)(ruan)(ruan)(ruan)件供應(ying)(ying)商(shang),不(bu)可能把軟(ruan)(ruan)(ruan)(ruan)件以(yi)白盒(he)形式交付給他們(men)。這(zhe)時(shi)候他們(men)想到了一個(ge)招:雖然我不(bu)能看你(ni)的(de)(de)(de)(de)(de)代碼(ma),但是我要求你(ni)的(de)(de)(de)(de)(de)整個(ge)軟(ruan)(ruan)(ruan)(ruan)件或者(zhe)系(xi)統的(de)(de)(de)(de)(de)研(yan)發(fa)(fa)流(liu)(liu)程(cheng)是按(an)照(zhao)特定(ding)的(de)(de)(de)(de)(de)流(liu)(liu)程(cheng)。這(zhe)個(ge)流(liu)(liu)程(cheng)就(jiu)是汽車(che)(che)行業非(fei)常有名的(de)(de)(de)(de)(de) V字型(xing)開發(fa)(fa)流(liu)(liu)程(cheng)。它的(de)(de)(de)(de)(de)主(zhu)體(ti)部分(fen),是系(xi)統工(gong)程(cheng)和軟(ruan)(ruan)(ruan)(ruan)件工(gong)程(cheng)部分(fen)。具(ju)體(ti)來(lai)說,就(jiu)是針對一個(ge)系(xi)統的(de)(de)(de)(de)(de)開發(fa)(fa)需(xu)要包括:系(xi)統需(xu)求分(fen)析、系(xi)統架構(gou)設計(ji)、軟(ruan)(ruan)(ruan)(ruan)件需(xu)求分(fen)析、軟(ruan)(ruan)(ruan)(ruan)件架構(gou)設計(ji)、軟(ruan)(ruan)(ruan)(ruan)件詳細設計(ji),這(zhe)是V字型(xing)的(de)(de)(de)(de)(de)左邊,以(yi)及對應(ying)(ying)的(de)(de)(de)(de)(de)右邊驗(yan)證測試的(de)(de)(de)(de)(de)過(guo)程(cheng)。
這(zhe)(zhe)十(shi)幾(ji)家(jia)主(zhu)機(ji)廠和供(gong)應(ying)(ying)商的(de)邏(luo)輯是(shi)這(zhe)(zhe)樣的(de):雖然我(wo)看不(bu)到你(ni)的(de)詳細(xi)代(dai)(dai)碼,但(dan)是(shi)假(jia)如你(ni)的(de)整個開發是(shi)流(liu)程是(shi)基于(yu)(yu)這(zhe)(zhe)個我(wo)定義(yi)的(de)這(zhe)(zhe)個流(liu)程來(lai)開發的(de),那么我(wo)就(jiu)(jiu)認為你(ni)的(de)質量(liang)是(shi)基本(ben)達標的(de)。但(dan)這(zhe)(zhe)其實只(zhi)是(shi)進入(ru)主(zhu)機(ji)廠和強勢供(gong)應(ying)(ying)商的(de)供(gong)應(ying)(ying)鏈體系的(de)敲門磚。只(zhi)是(shi)代(dai)(dai)表(biao)你(ni)遵循了(le)這(zhe)(zhe)樣一(yi)個流(liu)程,并不(bu)代(dai)(dai)表(biao)你(ni)的(de)產品好壞。至于(yu)(yu)最終是(shi)否能進入(ru)供(gong)應(ying)(ying)鏈體系,產品優劣、價(jia)格、交付(fu)速度(du)、售后,其實更加重要。所(suo)以如果我(wo)們深入(ru)理解這(zhe)(zhe)個邏(luo)輯的(de)話,我(wo)們就(jiu)(jiu)會發現(xian),它是(shi)強勢的(de)甲方(fang),對于(yu)(yu)乙方(fang)的(de)要求(qiu)。這(zhe)(zhe)個框架(jia)的(de)要求(qiu)和細(xi)節,是(shi)非常繁雜的(de)。
具體來說,ASPICE對兩(liang)塊地方的(de)(de)(de)(de)要求特別高,一塊叫(jiao)做追(zhui)(zhui)溯(su)(su)性,一塊叫(jiao)做合(he)規性。所(suo)謂的(de)(de)(de)(de)追(zhui)(zhui)溯(su)(su)性,簡(jian)單的(de)(de)(de)(de)理解就是,從(cong)任(ren)何(he)一個細節,比(bi)如說一個 bug,我可以追(zhui)(zhui)溯(su)(su)到它(ta)的(de)(de)(de)(de)測試(shi)用(yong)例,追(zhui)(zhui)溯(su)(su)到它(ta)的(de)(de)(de)(de)測試(shi)計劃,追(zhui)(zhui)溯(su)(su)到它(ta)的(de)(de)(de)(de)軟件需(xu)求,追(zhui)(zhui)溯(su)(su)到它(ta)的(de)(de)(de)(de)軟件架構,追(zhui)(zhui)溯(su)(su)到它(ta)的(de)(de)(de)(de)系統架構、系統需(xu)求等等。
另外(wai)一(yi)塊是(shi)叫做合(he)文檔(dang)的(de)合(he)規性。比如(ru)說我(wo)要做一(yi)個(ge)測試(shi)(shi),測試(shi)(shi)的(de)時(shi)候(hou)首(shou)先需要制定一(yi)個(ge)測試(shi)(shi)計劃,我(wo)的(de)測試(shi)(shi)策略是(shi)什(shen)么(me)?我(wo)的(de)測試(shi)(shi)目標是(shi)什(shen)么(me)?我(wo)這次測試(shi)(shi)是(shi)針對(dui)什(shen)么(me)東西的(de)測試(shi)(shi),然后(hou)有哪些(xie)人參(can)與,然后(hou)測試(shi)(shi)的(de)過程(cheng)怎么(me)進行(xing)結果的(de)記錄,bug如(ru)何進行(xing)追蹤(zong),以(yi)及 bug 的(de)解決過程(cheng),bug 的(de)原因分析(xi),它的(de)影響分析(xi)等(deng)等(deng)。
那么(me)具(ju)體(ti)追溯(su)性和合(he)規性如何實現呢?這(zhe)(zhe)套評(ping)(ping)價(jia)(jia)框架(jia)是(shi)沒講的(de)(de),主(zhu)機廠也(ye)不(bu)(bu)關(guan)心,或者就算他(ta)想(xiang)關(guan)心,他(ta)那些(xie)供應商也(ye)不(bu)(bu)可能完(wan)全按照他(ta)的(de)(de)要求來(lai)做(zuo)(zuo)(zuo)。那么(me)既然主(zhu)機廠不(bu)(bu)關(guan)心,那么(me)他(ta)們(men)怎么(me)來(lai)把控他(ta)們(men)的(de)(de)供應商真的(de)(de)能滿足這(zhe)(zhe)套評(ping)(ping)價(jia)(jia)框架(jia)呢?這(zhe)(zhe)時候就出現了(le)叫做(zuo)(zuo)(zuo) ASPICE評(ping)(ping)審(shen)的(de)(de)活動,是(shi)由(you)對ASPICE標(biao)(biao)準(zhun)比較(jiao)熟悉的(de)(de)評(ping)(ping)審(shen)師,來(lai)針對某家公司(si)的(de)(de)流程來(lai)做(zuo)(zuo)(zuo)評(ping)(ping)價(jia)(jia)的(de)(de)。你通過(guo)了(le),就能給你發個(ge)(ge)證。有(you)些(xie)評(ping)(ping)審(shen)師非常有(you)經驗,他(ta)不(bu)(bu)僅知道(dao)怎么(me)評(ping)(ping)價(jia)(jia),還(huan)知道(dao)你通過(guo)什么(me)方式(shi)、什么(me)工具(ju)能快速通過(guo)評(ping)(ping)價(jia)(jia);還(huan)有(you)一些(xie)評(ping)(ping)審(shen)師,他(ta)只知道(dao)標(biao)(biao)準(zhun)的(de)(de)要求是(shi)什么(me),至于“怎么(me)做(zuo)(zuo)(zuo)”才能通過(guo)標(biao)(biao)準(zhun),“怎么(me)做(zuo)(zuo)(zuo)”才能高效地(di)通過(guo)這(zhe)(zhe)個(ge)(ge)標(biao)(biao)準(zhun),提供不(bu)(bu)了(le)什么(me)幫助。
那(nei)么這塊(kuai)就(jiu)出現(xian)了一(yi)個(ge)問(wen)題(ti),既然標準都是(shi)一(yi)樣(yang)的(de)(de),但是(shi)具體(ti)的(de)(de)實(shi)(shi)現(xian)過(guo)程不一(yi)樣(yang),我(wo)們就(jiu)會(hui)發現(xian)有(you)(you)(you)些公司(si)實(shi)(shi)現(xian)追溯(su)(su)性(xing)的(de)(de)過(guo)程非(fei)(fei)常高效,還有(you)(you)(you)一(yi)些公司(si)就(jiu)非(fei)(fei)常繁(fan)雜。舉個(ge)例子(zi),有(you)(you)(you)些公司(si)基(ji)本上(shang)全部是(shi)用(yong)(yong) word 的(de)(de)方(fang)式來(lai)(lai)管理他(ta)所有(you)(you)(you)的(de)(de)文檔。有(you)(you)(you)一(yi)份需(xu)(xu)求用(yong)(yong) word 來(lai)(lai)書(shu)寫有(you)(you)(you) 20 頁(ye),有(you)(you)(you)一(yi)份軟(ruan)件(jian)架(jia)(jia)構(gou)(gou)用(yong)(yong) word 來(lai)(lai)書(shu)寫有(you)(you)(you) 50 頁(ye)。你(ni)可以看到(dao)有(you)(you)(you)一(yi)個(ge)需(xu)(xu)求,比(bi)如叫需(xu)(xu)求1,我(wo)問(wen)你(ni)它的(de)(de)架(jia)(jia)構(gou)(gou)是(shi)什(shen)么,你(ni)就(jiu)會(hui)發現(xian)需(xu)(xu)求 1 下面寫了是(shi)架(jia)(jia)構(gou)(gou)3.2,然后(hou)(hou)你(ni)就(jiu)去架(jia)(jia)構(gou)(gou)的(de)(de)word文檔里面翻到(dao)架(jia)(jia)構(gou)(gou)3.2。那(nei)么到(dao)了架(jia)(jia)構(gou)(gou)的(de)(de)時候,我(wo)問(wen)你(ni)架(jia)(jia)構(gou)(gou)有(you)(you)(you)沒有(you)(you)(you)測(ce)試(shi)用(yong)(yong)例,然后(hou)(hou)你(ni)就(jiu)會(hui)在架(jia)(jia)構(gou)(gou)那(nei)看到(dao),對應的(de)(de)測(ce)試(shi)用(yong)(yong)例是(shi)5.3,然后(hou)(hou)你(ni)就(jiu)去翻到(dao)對應的(de)(de)測(ce)試(shi)用(yong)(yong)例word里面,有(you)(you)(you)一(yi)條5.3。你(ni)說這家公司(si)有(you)(you)(you)沒有(you)(you)(you)建立追溯(su)(su)性(xing)呢?它確實(shi)(shi)建立了追溯(su)(su)性(xing)。但是(shi)我(wo)們剛(gang)剛(gang)舉的(de)(de)這個(ge)例子(zi)非(fei)(fei)常簡(jian)單(dan),它只涉及到(dao)三(san)步,我(wo)們確實(shi)(shi)可以通(tong)過(guo)翻閱文檔的(de)(de)方(fang)式來(lai)(lai)進行(xing)追溯(su)(su)。
但(dan)是大家想象一(yi)下,一(yi)般來(lai)說(shuo)在一(yi)家公司里(li)面(mian),需(xu)(xu)求、軟(ruan)件(jian)架(jia)構(gou)、測試用例都是由不(bu)(bu)同(tong)的(de)工(gong)程師(shi)來(lai)完成的(de)。那么不(bu)(bu)同(tong)的(de)工(gong)程師(shi)可能把這(zhe)些文(wen)檔(dang)放在不(bu)(bu)同(tong)的(de)地方,不(bu)(bu)同(tong)的(de)工(gong)程師(shi)也(ye)會實時地更(geng)新它(ta)的(de)文(wen)檔(dang)。比如說(shuo)我們(men)剛剛把軟(ruan)件(jian)需(xu)(xu)求和軟(ruan)件(jian)架(jia)構(gou)聯系起來(lai)了,這(zhe)時候(hou),軟(ruan)件(jian)架(jia)構(gou)word更(geng)新了一(yi)點(dian)東西(xi),它(ta)能否通知到(dao)軟(ruan)件(jian)需(xu)(xu)求,這(zhe)里(li)有一(yi)處(chu)更(geng)新呢?以及(ji)架(jia)構(gou)師(shi)是否知道(dao)去通知誰呢?
假如(ru)我(wo)的(de)系統中有 30 份軟件需求文檔(dang),50份軟件架構文檔(dang),100 份測(ce)試(shi)用例文檔(dang),這(zhe)個時(shi)候你(ni)再去尋找它,這(zhe)個尋找過(guo)(guo)程的(de)復雜(za)程度,就是(shi)指(zhi)數級(ji)增長了(le)。可以看到(dao),確實建立(li)了(le)追(zhui)溯(su)(su)性(xing),但是(shi)這(zhe)個追(zhui)溯(su)(su)性(xing)的(de)實用性(xing)很(hen)差。這(zhe)也(ye)是(shi)為什么很(hen)多團(tuan)隊在ASPICE評(ping)(ping)審(shen)的(de)過(guo)(guo)程中怨(yuan)聲載道,一旦評(ping)(ping)審(shen)通過(guo)(guo),立(li)刻拋棄這(zhe)套“追(zhui)溯(su)(su)性(xing)”和“合規性(xing)”過(guo)(guo)程。
總結:ASPICE誕生的(de)(de)(de)(de)背景是(shi)強(qiang)勢的(de)(de)(de)(de)主(zhu)機廠和供應商(shang),對(dui)于它下(xia)級供應商(shang)的(de)(de)(de)(de)要求,誕生的(de)(de)(de)(de)原因是(shi)甲(jia)方看(kan)不到乙方的(de)(de)(de)(de)白盒(he)交付,所以至(zhi)少要保(bao)證你的(de)(de)(de)(de)流程是(shi)按照我定義的(de)(de)(de)(de)標準(zhun)流程來實施的(de)(de)(de)(de)。乙方通(tong)過這種(zhong)方式拿到甲(jia)方供應鏈體系的(de)(de)(de)(de)敲門(men)磚。但(dan)并(bing)不代表通(tong)過了這個標準(zhun),就(jiu)能開發出好的(de)(de)(de)(de)產品,這兩者(zhe)之間是(shi)沒有根本(ben)性的(de)(de)(de)(de)聯(lian)系的(de)(de)(de)(de)。
|