2006年5月29日 星期一

提高嵌入式軟體品質的4大訣竅

工商時報/工商經營報/經營知識/D3版 WolfgangHuhnMarcusSchaper◎譯/李宛蓉 2006/5/29
習慣管理硬體開發的製造業,現在面對嵌入式軟體的趨勢,需要學習管理軟體開發的新程序和新標準,以設計出更可靠的軟體並提高生產力。
不論消費產品或工業產品,軟體開發越來越主宰製造業的工程程序,小自手機、洗衣機,大到汽車、農業機具、礦務工具和飛機,沒有一項現代化產品少得了內建的軟體功能,也難怪製造業大廠西門子雇用的軟體工程師人數居然超過微軟、甲骨文這些大型軟體公司。
軟體重要性越來越高
相對於過去把生產主力都放在硬體機械上,如今製造業的公司最主要的挑戰是如何開發高品質、可靠的嵌入式軟體,應用在他們的產品上。
最新出版的麥肯錫資訊特刊指出,製造業者過去習慣管理硬體開發,現在面對嵌入式軟體的趨勢,需要學習管理軟體開發的新程序和新標準,如此方能提高生產力,並設計出更可靠的軟體。
當企業的價值從硬體轉移到軟體,需要進行各方面的調整。舉例說,硬體的穩定性高,一套系統的各個元件如何連結有一定的方法,但軟體開發就不同了,曖昧不清的灰色地帶不少,因為涉及更多層面的連結,也必須和其他系統進行更多整合,此外軟體測試階段通常也很難發現全部的副作用。
麥肯錫季刊以汽車業為例,說明嵌入式軟體開發的重要性與挑戰。
根據麥肯錫和PTW HAWK機構聯合進行的調查,嵌入式軟體已經成為汽車業主要的創新和價值所在,2003年時,嵌入式軟體對全球汽車業的營收貢獻比例只有4%,預估到 2015年將升為15%。嵌入式軟體系統控制多種車用產品,也應付許多與過去截然不同的挑戰,例如懸吊控制和衛星導航。來自德國和日本車廠的一些高價車款採用65個到1 00個電子控制單元(ECU),使每一輛汽車變成即時運算網絡,因此必須極為可靠才行。然而目前的車用嵌入式軟體仍不夠可靠,系統出錯被車廠召回的消息時有所聞。
改善嵌入式軟體的可靠性
想要改善嵌入式軟體的可靠性,確保汽車品牌的良好口碑,汽車公司與其供應商必須設法提高軟體的品質,效法航空業與手機業的經驗,採用更成熟的軟體架構,並改善軟體設計、開發、測試的程序。他們可以循以下4項作法達成這樣的目標:
1.降低性能複雜程度
如今出廠的新車都配備一本厚達500頁的使用手冊,而且年年都有新加入的性能,其實汽車業者應該審慎檢討他們加入的每一項性能的價值,因為性能的複雜程度攸關品質評鑑和保固成本。研究顯示,擁有300項性能的低複雜度、小規模專案計畫,比擁有3000項性能以上的高複雜度大規模計畫,生產力足足多3倍。
因此汽車業者應該分析消費者和評鑑組織評估性能的方法,然後設計符合這些標準的軟體,避免增加額外的複雜性。舉例說,新車評鑑計畫(汽車安全與品質的全球標準)以給星星的方式評比防撞氣囊的優劣,所以汽車製造商應該把開發重點放在能夠明顯提高這項測試結果的軟體上,便能將軟體開發的範疇縮小,同時贏得競爭,避免不必要的複雜性能。
2.採用更成熟的軟體架構
好的軟體架構(軟體設計的基本模式或架構)應該是模組化、擁有組織良好的階層系統(system of layers)和程式碼資料庫,讓軟體開發師能重複使用元件;實務上卻有太多嵌入式軟體開發師依賴過度膨脹的軟體架構,導致設計出來的程式碼雜亂無章,事實上,軟體架構是汽車業嵌入式軟體的開發過程中最脆弱的環節之一,落後傳統軟體甚多。
由於軟體架構的成熟度大幅影響生產力,汽車業必須克服這項缺失,改採更成熟、更模組化、更標準化的架構,容許重複使用元件,點對點界面也比較少。其實大多數廠商只要放棄現有平台,採用開發程度更先進的軟體架構作為公司標準,就可以達成相當改善,加上利用標準作業系統、硬體、整合平台等進一步的改善,開發完成的嵌入式軟體水準將能大幅提高。
舉例來說,有一家電訊設備廠商把原本獨家專用的系統換成嵌入式 Linux架構,結果開發新性能的速度竟然提高了6倍;一家引擎控制器供應商斥資購買一套具有彈性的多階層軟體架構,如今產品從開發到上市時間從原先的4個月縮短到3個星期。
3.了解經濟所在
成本壓力有時會讓汽車製造商禁不起誘惑,選用比較便宜的零件,然而這種作法往往招致保固成本增加的反效果。在硬體方面,便宜的零件可能壞得快,在嵌入式軟體方面,廉價品質意謂設計不良或測試不周全,結果可能造成產品瑕疵,如果供應商和代工廠依據這種節省成本至上的設計去生產,就會從教訓中學到更廣義的成本標準,也就是納入複雜軟體和廉價硬體的壽命成本。
汽車製造商在追求降低零件成本時,必須通盤分析這麼做有沒有意義,因為選擇廉價品需要開發額外的軟體,而且可能導致更多瑕疵,所以應該把額外複雜程度極可能造成的保固成本暴增因素一併列入考慮。有一家汽車製造商原本計畫改採較便宜的零件,經過計算發現必須生產26萬套才會損益兩平,但是採用價格較貴的硬體,就能把損益點降低到12萬套,兩者優缺立現。
4.改善開發過程
許多採用嵌入式軟體的公司擁有很強的工程傳統,不論是汽車業、電訊設備業或消費電子業都一樣,因此以生產零件為重心的硬體導向方式往往主宰他們的心態,他們也傾向以機械角度去看待不同片段應如何組合,這類公司需要改善他們開發與整合軟體系統的技巧。
過去20年來,資訊軟體業者採用全球品質評估系統(例如能力成熟度模型(CMM)),在軟體開發上甚為專精,但是嵌入式系統的軟體開發則落後許多,一來可用的軟體開發工具較少,而僅有的工具又偏重設計周期的部分而非整體。由於嵌入式軟體的開發需要軟體和硬體工程專家共同參與,因此開發小組中必須編制跨部門專才以致力不同性能的開發,也需採納應用共同模式和模擬工具的開發方法,並且給予開發人員特定的完成時間框限(time-boxing)。
其實嵌入式軟體的問題普遍存在許多製造業,如何融合軟、硬體功能,發展附加價值更高的產品,應是各行各業都亟需學習的課題。
本文取材自McKinsey on IT, Spring 2006,《Getting better sof tware into manufactured products》一文

沒有留言: