在實際工作中,我們經(jīng)常會遇到這樣的問題:與設(shè)計開發(fā)相關(guān)的模型、標(biāo)準(zhǔn)、方法有那么多,選擇哪一個呢?或者在汽車嵌入式軟件開發(fā)時,我們希望應(yīng)用Automotive SPICE,也希望使用Agile(Agile的好處很誘人:輕量化、快速響應(yīng)、擁抱變化等),那么如何解決Automotive SPICE和Agile的沖突呢?

過程模型或能力度模型(如:CMMI, Automotive SPICE):是明確定義“需要做什么(What)”以及“做的目的(Why)”。

標(biāo)準(zhǔn):滿足某種條件情況下必須要滿足的要求,比如當(dāng)車載E/E系統(tǒng)是與功能安全相關(guān)時,則適用于ISO26262標(biāo)準(zhǔn),其中就有比如“單元測試覆蓋度”的要求。
方法論:是在特定場景下應(yīng)用的特定方法,比如在開發(fā)車載嵌入式軟件時,其應(yīng)用層軟件可以采用基于模型開發(fā)(MBD)的方法。

如上圖所示:
過程模型或能力度模型定義的是“What”和“Why”,比如:需要射中靶心
方法論是采取的具體方式,是“How”,比如:
1)在旅游的時候(左圖),我們可以用那樣一種弓箭來射中靶心;
2)在正式比賽時(右圖),我們需要用專業(yè)弓箭來射中靶心
我們能把處于“What”層面的過程模型或能力度模型與處于“How”層面的方法論進(jìn)行比較嗎?


1)模型:人需要穿衣服(what),以保暖(Why)
2/3)在冬季沈陽(場景),穿一件羽絨服(方法)
4)通過”Why”來衡量解決方案(How)的有效性:在冬季的沈陽,穿羽絨服可以達(dá)到保暖的目的嗎?
舉個Automotive SPICE中的具體例子:
1)ASPICE MAN.3 BP10:評審和報告項目進(jìn)展(What:評審和報告;Why:監(jiān)控項目進(jìn)展)
2/3)需求穩(wěn)定明確時(場景),采用傳統(tǒng)開發(fā)方法,進(jìn)行周監(jiān)控和里程碑監(jiān)控(方法)
4)通過”Why”來衡量解決方案(How)的有效性:在需求穩(wěn)定明確的場合,采用傳統(tǒng)開發(fā)方法用周監(jiān)控和里程碑監(jiān)控的方式,可否達(dá)到監(jiān)控項目進(jìn)展的目的呢?

繼續(xù)上一個例子:
1)ASPICE MAN.3 BP10:評審和報告項目進(jìn)展(What:評審和報告;Why:監(jiān)控項目進(jìn)展)
2/3)需求不穩(wěn)定不明確時(場景),采用Scrum方式:每日站例會、Sprint評審會議和Sprint回顧會議方式(方法)
4)通過”Why”來衡量解決方案(How)的有效性:在需求不穩(wěn)定不明確的場合,采用Scrum的每日站例會、Sprint評審會議和Sprint回顧會議方式,可否達(dá)到監(jiān)控項目進(jìn)展的目的呢?

經(jīng)常有人問我如下的類似問題:
比如1:為了滿足ASPICE要求,在使用Scrum方法時,是否需要開周會,形成周會議記錄?
ASPICE有要求要開周會嗎?
比如2:為了滿足ASPICE要求,在基于模型開發(fā)時,在Matlab/Simulink中的模型設(shè)計內(nèi)容需要拷貝到Word中,形成一份Word版本的詳細(xì)設(shè)計嗎?
ASPICE有要求Word版本的詳細(xì)設(shè)計嗎?
提出這樣的問題,是將模型在某場景下應(yīng)用的方法論,當(dāng)成了模型的要求。
