1.條款要求
8.5.1條款是生產(chǎn)和服務(wù)提供的控制,該條款全部要求如下:組織應(yīng)在受控條件下進(jìn)行生產(chǎn)和服務(wù)提供。a)可獲得成文信息,以規(guī)定以下內(nèi)容:擬生產(chǎn)的產(chǎn)品、提供的服務(wù)或進(jìn)行的活動(dòng)的特性;b)可獲得和使用適宜的監(jiān)視和測(cè)量資源;c)在適當(dāng)階段實(shí)施監(jiān)視和測(cè)量活動(dòng),以驗(yàn)證是否符合過(guò)程或輸出的控制準(zhǔn)則以及產(chǎn)品和服務(wù)的接收準(zhǔn)則;d)為過(guò)程的運(yùn)行使用適宜的基礎(chǔ)設(shè)施,并保持適宜的環(huán)境;f)若輸出結(jié)果不能由后續(xù)的監(jiān)視或測(cè)量加以驗(yàn)證,應(yīng)對(duì)生產(chǎn)和服務(wù)提供過(guò)程實(shí)現(xiàn)策劃結(jié)果的能力進(jìn)行確認(rèn),并定期再確認(rèn);h)實(shí)施放行、交付和交付后的活動(dòng)。與2008版標(biāo)準(zhǔn)相比,2016版標(biāo)準(zhǔn)8.5.1條款合并了原標(biāo)準(zhǔn)7.5.1和7.5.2條款的內(nèi)容,同時(shí)還進(jìn)行了適當(dāng)擴(kuò)展。關(guān)于此條款,對(duì)以下幾點(diǎn)內(nèi)容進(jìn)行詳細(xì)分析:所謂受控條件,一般是一組在組織控制下的環(huán)境、人員、資源、設(shè)施等,通常包括“人、機(jī)、料、法、環(huán)、測(cè)”幾個(gè)部分;除此之外,標(biāo)準(zhǔn)還強(qiáng)調(diào)了對(duì)過(guò)程確認(rèn)的要求(f)以及對(duì)放行的要求(h)。標(biāo)準(zhǔn)的所謂適用,不是自己認(rèn)為可做可不做,而是產(chǎn)品生產(chǎn)過(guò)程客觀是否存在標(biāo)準(zhǔn)規(guī)定的這樣的要求。如果存在,必須滿足標(biāo)準(zhǔn)要求;如果不存在,無(wú)法提供證據(jù)滿足標(biāo)準(zhǔn)這個(gè)要求,于是標(biāo)準(zhǔn)這條要求就不適用。比如,某一生產(chǎn)過(guò)程全部采用機(jī)器自動(dòng)化完成,不可能產(chǎn)生人為錯(cuò)誤,那么標(biāo)準(zhǔn)條款中關(guān)于“采取措施防止人為錯(cuò)誤”就不適用于這一生產(chǎn)過(guò)程。同樣關(guān)于f)條,過(guò)程確認(rèn),如果生產(chǎn)過(guò)程沒(méi)有需要確認(rèn)的過(guò)程,那么f)條款就不適用。成文信息一般有兩類:文件和記錄。8.5.1條款規(guī)定的成文信息主要是指文件,包括兩類文件:其一,“擬生產(chǎn)的產(chǎn)品、提供的服務(wù)或進(jìn)行的活動(dòng)的特性”,主要是指產(chǎn)品特性指標(biāo)、技術(shù)要求等,包括設(shè)計(jì)輸出的圖紙、設(shè)計(jì)文件、接口文件等,都屬于此類成文信息;其二,“擬獲得的結(jié)果”,主要是指產(chǎn)品的接受準(zhǔn)則和過(guò)程的控制準(zhǔn)則,實(shí)際上是生產(chǎn)產(chǎn)品的驗(yàn)收依據(jù)和審查過(guò)程的控制要求,比如過(guò)程的CPI指標(biāo),這些屬于過(guò)程控制要求。適用時(shí),也要形成成文信息,明確下來(lái)。c)條,“在適當(dāng)階段實(shí)施監(jiān)視和測(cè)量活動(dòng),以驗(yàn)證是否符合過(guò)程或輸出的控制準(zhǔn)則以及產(chǎn)品和服務(wù)的接收準(zhǔn)則”,這實(shí)際上說(shuō)了兩件事:首先是對(duì)過(guò)程進(jìn)行監(jiān)視和測(cè)量,確保過(guò)程或輸出符合控制準(zhǔn)則;其次是對(duì)產(chǎn)品進(jìn)行監(jiān)視和測(cè)量,符合產(chǎn)品的接收準(zhǔn)則。其中控制要求和產(chǎn)品接收準(zhǔn)則在a)條以成文信息的形式明確,而本條則是要求實(shí)施適當(dāng)?shù)谋O(jiān)視和測(cè)量活動(dòng)滿足a)條要求。e)關(guān)于f)條過(guò)程的確認(rèn)這是新版8.5.1的新增條款,合并了2008版中7.5.2條款的要求。按照GJB1405定義,對(duì)形成的產(chǎn)品是否合格不易或不能經(jīng)濟(jì)地進(jìn)行驗(yàn)證的過(guò)程,通常稱之為特殊過(guò)程。實(shí)際上需要確認(rèn)的過(guò)程不完全是特殊過(guò)程。比如汽車行業(yè),按照ISO/TS 16949標(biāo)準(zhǔn),為了增加安全性、可靠性,對(duì)于一些后續(xù)可以驗(yàn)證的過(guò)程也要求做過(guò)程確認(rèn),但這顯然超出了GB19001要求。對(duì)比以上三種情況,可以很明顯看出,GB 19001規(guī)定的需要確認(rèn)的過(guò)程外延最小,其次是GJB 1405定義的特殊過(guò)程,外延最大的是ISO/TS 16949。組織可以根據(jù)需要選擇即使后續(xù)能驗(yàn)證的過(guò)程進(jìn)行確認(rèn),但這屬于加嚴(yán)要求,標(biāo)準(zhǔn)并不要求一點(diǎn)。注意該條款與8.5.5條“交付后的活動(dòng)”以及8.6條“產(chǎn)品和服務(wù)的放行”的區(qū)別。8.5.1強(qiáng)調(diào)的是受控條件,意思是關(guān)于“實(shí)施放行、交付和交付后的活動(dòng)”必須在受控條件下實(shí)施,這種受控條件包括但不限于“放行、交付測(cè)試、環(huán)境要求、人員要求、成文信息要求等”,而8.5.5說(shuō)的是在8.5.1的受控條件下實(shí)施“交付后的活動(dòng)”,8.6說(shuō)的是在8.5.1的受控條件下實(shí)施“放行的活動(dòng)”。8.5.1是給他們策劃條件,8.5.5和8.6分別說(shuō)的是實(shí)施這些活動(dòng)。
條款在軟件組織中的實(shí)施
1.軟件組織關(guān)于8.5.1條款的幾個(gè)相關(guān)概念
a)關(guān)于軟件生產(chǎn)過(guò)程什么是軟件的生產(chǎn)過(guò)程?軟件編碼是否屬于軟件的生產(chǎn)過(guò)程?軟件生產(chǎn)階段始于哪一個(gè)環(huán)節(jié)?為了弄清這個(gè)問(wèn)題,我們需要看看軟件的生存周期模型。一般認(rèn)為,瀑布模型是最基本也是最常用的軟件生存周期模型,其他大部分模型可以認(rèn)為是瀑布模型的延伸和變形。瀑布模型定義的軟件生存周期如下圖所示:
按照瀑布模型,與硬件生產(chǎn)過(guò)程進(jìn)行對(duì)比,會(huì)發(fā)現(xiàn)軟件的生產(chǎn)階段始于編碼有一定道理,因?yàn)榫幋a階段就是在產(chǎn)生實(shí)際的軟件產(chǎn)品,編碼完成后實(shí)際上就形成了交付給用戶的產(chǎn)品,后面就是對(duì)該產(chǎn)品的檢驗(yàn)測(cè)試階段。但是,如果按照生產(chǎn)的定義和要求,軟件的編碼階段納入生產(chǎn)環(huán)節(jié)是有待商榷的。生產(chǎn)強(qiáng)調(diào)的是可重復(fù)、一致性。將一份設(shè)計(jì)文件交給程序員去編碼,不同的程序員編出來(lái)的代碼會(huì)有很大區(qū)別,但都符合設(shè)計(jì)要求。那么將軟件的復(fù)制環(huán)節(jié)開(kāi)始作為軟件的生產(chǎn)階段是否合適呢?顯然也不合適。因?yàn)樵趶?fù)制前,實(shí)際上軟件必然經(jīng)過(guò)各類測(cè)試,而軟件的測(cè)試是屬于典型的生產(chǎn)過(guò)程中的檢驗(yàn)環(huán)節(jié)。實(shí)際上,問(wèn)題出在瀑布模型,上述瀑布模型并沒(méi)有完整地將軟件研制流程展現(xiàn)出來(lái),實(shí)際的軟件在編碼完成后,還有編譯、鏈接、發(fā)布、安裝等過(guò)程,我們將瀑布模型的編碼與測(cè)試階段進(jìn)一步細(xì)分,如下圖所示。
由上圖可以看出,在瀑布模型的編碼和測(cè)試之間至少還應(yīng)該有編譯、鏈接及發(fā)布等環(huán)節(jié)。通過(guò)這些環(huán)節(jié)將源代碼生產(chǎn)成目標(biāo)代碼,而這些環(huán)節(jié)是可重復(fù)進(jìn)行的,基于一定的規(guī)則,不同的人,對(duì)同一段代碼編譯連接出來(lái)的結(jié)果也應(yīng)該是一致的,這個(gè)過(guò)程其實(shí)就是一個(gè)軟件生產(chǎn)過(guò)程。這樣看來(lái),軟件的生產(chǎn)過(guò)程實(shí)際上是將源代碼經(jīng)過(guò)編譯鏈接發(fā)布等環(huán)節(jié)生產(chǎn)目標(biāo)代碼的過(guò)程。將軟件的生產(chǎn)階段定義為從編譯環(huán)節(jié)開(kāi)始,包括編譯、鏈接、發(fā)布、以及后續(xù)的安裝、復(fù)制等環(huán)節(jié),其中復(fù)制環(huán)節(jié)屬于批量生產(chǎn)。b)關(guān)于f)條軟件生產(chǎn)過(guò)程的確認(rèn)明確了軟件生產(chǎn)過(guò)程,我們?cè)賮?lái)對(duì)照f(shuō))條要求審查軟件生產(chǎn)過(guò)程是否有需要確認(rèn)的過(guò)程,即是否有特殊過(guò)程。一般情況下,軟件的編譯、鏈接以及發(fā)布均是工具軟件自動(dòng)完成,基于一定的編譯鏈接規(guī)則,對(duì)源代碼進(jìn)行編譯鏈接形成目標(biāo)碼,在此過(guò)程中,一般不需要人為干預(yù)。那么編譯后的軟件是否可以測(cè)試驗(yàn)證呢?顯然是可以的。在瀑布模型中,后續(xù)的單元測(cè)試、集成測(cè)試以及配置項(xiàng)測(cè)試都是基于目標(biāo)代碼進(jìn)行測(cè)試,因此此過(guò)程的輸出結(jié)果是可以由后續(xù)的監(jiān)視或測(cè)量加以驗(yàn)證,顯然不屬于特殊過(guò)程,不需要確認(rèn)。同樣,關(guān)于軟件的復(fù)制過(guò)程,更是有多種手段進(jìn)行驗(yàn)證復(fù)制的準(zhǔn)確性,也是可以驗(yàn)證的,因此軟件的復(fù)制過(guò)程也無(wú)需確認(rèn)。綜上,對(duì)于軟件的生產(chǎn)過(guò)程,過(guò)程的確認(rèn)條款f)一般是不適用的。c)關(guān)于g)條款,防止人為錯(cuò)誤如前所述,對(duì)于編譯鏈接發(fā)布等環(huán)節(jié)一般自動(dòng)完成,很少人工干預(yù),這些環(huán)節(jié)此條基本不適用,但對(duì)于軟件的復(fù)制過(guò)程,很容易發(fā)生人為錯(cuò)誤,例如版本錯(cuò)誤、復(fù)制不完整等,對(duì)于該環(huán)節(jié)應(yīng)該制定并采取措施防止人為錯(cuò)誤。8.5.1其余條款,包括a)、b)、c)、d)、e)、h)條,對(duì)于軟件組織都是適用的。
2.軟件組織實(shí)施8.5.1條款建議
綜上分析,對(duì)于8.5.1,軟件組織適用的條款,包括8.5.1中的a)、b)、c)、d)、e)、g)、h)條。a)軟件的生產(chǎn)環(huán)節(jié)控制過(guò)程控制活動(dòng),例如程序的編譯(含鏈接)準(zhǔn)則、編譯(含鏈接)環(huán)境、編譯(含鏈接)約束、編譯(含鏈接)工具等;發(fā)布活動(dòng),例如生成、發(fā)布準(zhǔn)則、發(fā)布環(huán)境控制、發(fā)布約束等;交付后活動(dòng),例如操作、維護(hù)和客戶支持、技術(shù)升級(jí)等。建立軟件的生成、發(fā)布、修改和復(fù)制流程,以及生成和發(fā)布活動(dòng)的配置管理:標(biāo)識(shí)構(gòu)成每個(gè)版本的軟件項(xiàng),包括相關(guān)的說(shuō)明;根據(jù)用戶使用的頻率和(或)影響,識(shí)別發(fā)布的類型(或類);制定決策標(biāo)準(zhǔn),以確定在哪里可以合并本地化的 “補(bǔ)丁”,或在哪里發(fā)布完整更新的軟件產(chǎn)品副本的。每個(gè)軟件項(xiàng)目和相關(guān)標(biāo)簽的媒介類型;規(guī)定所需的文件,如手冊(cè)、用戶指南、許可證和發(fā)布說(shuō)明,包括標(biāo)識(shí)和包裝;控制復(fù)制的可重復(fù)性環(huán)境;確保產(chǎn)品副本的正確性和完整性的規(guī)定,防止人為錯(cuò)誤。交付的形式,例如是通過(guò)媒介的物理轉(zhuǎn)移還是通過(guò)電子傳輸來(lái)實(shí)現(xiàn)。交付活動(dòng),例如交付和安裝規(guī)則、安裝指南等 ;如果是客戶或第三方進(jìn)行安裝,組織應(yīng)給出客戶執(zhí)行安裝所需采取的步驟。如果安裝是由組織進(jìn)行的,可適用以下規(guī)定:組織和用戶應(yīng)明確各自的角色、責(zé)任;應(yīng)明確每個(gè)安裝中版本中驗(yàn)證的需求和范圍;應(yīng)明確執(zhí)行備份和恢復(fù)的要求。
軟件組織中的審核要點(diǎn)
綜上分析,對(duì)于軟件組織,在8.5.1條款審核時(shí)應(yīng)重點(diǎn)關(guān)注以下要點(diǎn):a)是否形成了有關(guān)成文信息,包括但不限于:b)軟件測(cè)試條件是否受控,審核要點(diǎn)包括:軟件的各級(jí)測(cè)試測(cè)試說(shuō)明(單元/集成/配置項(xiàng)/系統(tǒng)測(cè)試等);實(shí)施測(cè)試的測(cè)試環(huán)境是否受控;c)是否實(shí)施了測(cè)試,審核要點(diǎn)包括:是否實(shí)施了軟件各級(jí)測(cè)試測(cè)試(單元/集成/配置項(xiàng)/系統(tǒng)測(cè)試等);d)關(guān)于軟件生產(chǎn)過(guò)程的基礎(chǔ)設(shè)施,審核要點(diǎn)包括:是否識(shí)別了軟件編譯鏈接發(fā)布以及復(fù)制測(cè)試等過(guò)程的基礎(chǔ)設(shè)施,包括工具、平臺(tái)、環(huán)境要求等;基礎(chǔ)設(shè)施的維護(hù)是否合理(可結(jié)合7.1.3進(jìn)行審核)。是否識(shí)別了軟件生產(chǎn)過(guò)程(含測(cè)試過(guò)程)的人員資格要求(可結(jié)合7.2進(jìn)行審核);軟件生產(chǎn)過(guò)程的人員是否符合以上要求。對(duì)于容易發(fā)生人為錯(cuò)誤的軟件生產(chǎn)環(huán)節(jié)是否進(jìn)行了識(shí)別;對(duì)于識(shí)別處內(nèi)的會(huì)出現(xiàn)人為錯(cuò)誤的軟件生產(chǎn)環(huán)節(jié)是否制定并采取了措施。g)實(shí)施放行、交付和交付后的活動(dòng),包括:是否策劃了放行、交付和交付后的活動(dòng)的受控條件,包括人員、資源等;放行、交付和交付后的活動(dòng)是否在受控條件下執(zhí)行(結(jié)合8.5.5,8.6條款審核)。
濟(jì)南ISO9001認(rèn)證,GB/T 19001-2016標(biāo)準(zhǔn)8.5.1條款在軟件研制過(guò)程中的實(shí)施和審核具有一定的難點(diǎn),如何合理界定軟件的生產(chǎn)過(guò)程是重點(diǎn)。本文基于8.5.1條款要求,結(jié)合軟件研制過(guò)程的瀑布模型,剖析了軟件生產(chǎn)過(guò)程的主要環(huán)節(jié),在此基礎(chǔ)上,給出了軟件組織在8.5.1條款的實(shí)施建議并給出了審核要點(diǎn),對(duì)于軟件組織有效實(shí)施該條款要求具有一定的指導(dǎo)作用。