Android軟件質量管理:臺灣硬件廠如何提升軟件能力
照顧程序代碼質量就像照顧身體,要常常檢查,隨時注意異狀。Android的開發工作如果要確保可用(Usable)與穩定(Stability),就要做好Code Review的工作。根據過去與許多廠商的合作經驗發現,許多關鍵的軟件開發觀念經常被忽略。主要的原因為,大部份的技術開發思惟,都比較偏向硬件與驅動程序方面,或是功能性的實作。
本文引用地址:http://www.j9360.com/article/184492.htm軟件的開發本身就是一項大工程,由Android所創造出來的手機操作系統,可能有近90%的比例是透過軟件工程的技術與觀念所開發,其它10%才是考慮硬件層面,或是驅動程序層面。換個角度來看,以臺灣硬件廠商的技術水平,如果把軟件工程的技術養成,一定能具備產品開發的實力。以下提供個人的一點建議:臺灣硬件廠該如何提升軟件開發能力。
第一、先做再說、確實可行。單獨以Android的框架與軟硬整合的角度來看,先設計后實作(Design & Implementation)的方法論可能不適用于臺灣的產業環境,因此導入傳統的軟件工程方法論,或許也沒有絕對的必要性;原因是,Android已經把這些基礎建設都做到一定程度了。在理論與實際間取舍的話,「先實作、后檢視」可能是一種方式。
目前在業界所見的程序代碼實作,大多偏重硬件與功能面,在理論面著墨不深,不過這卻是個很好的契機。過去自已的經驗發現,先實作,得到初步可用的程序代碼實作后,再考慮理論面,進行程序代碼調整,其實是可行、有效率的做法。因此,自已也希望能將這個觀念與方法論,提供給客戶參考,甚或協助導入「先實作、后檢視」的作業流程。
第二、實施Code Review就對了。軟件的開發工作,都會有Code Review的流程。這里所提的「檢視」即Code Review。Code Review是一個很久的觀念了,它在軟件管理(Software Management)的領域里被詳細討論。
Code Review是一個系統化的檢查過程,目的是確定程序代碼的質量;檢查的過程,是為了找出錯誤、并且修正錯誤,這些錯誤在初階的開發階段(Initial Development Phase)可能不會被發現。這里的「錯誤」也包含「觀念上的錯誤」、「理論的誤用」等等,因此,能動作(Workable)的程序代碼,不見得是正確的程序代碼。
第三、搭配教育訓練。Code Review還有另外一個很重要的目的,卻不常被提及,就是「提升開發人員的技能」。Code Review等于Improve Software Quality + Improve Developer's Skills。軟件的質量,影響軟件的穩定性;人員的素質,影響軟件的質量。在初階開發階段,可以不必發現理論上的問題,而是下一階段,由資深開發人員協助Code Review,再進行程序代碼調整,以提升軟件質量。這就是「先實作、后檢視」的精神。
最后、其實是一個例子。以Android Framework與Linux驅動程序為例,主要影響系統穩定性的關鍵在于「Android框架與Linux驅動程序的數據傳遞方式」,即「儲存數據」并「傳遞內存」的方式。「內存的使用」是影響 Android 與 Linux 整合穩定性的主要因素。Android底層可能需要以MemoryHeap來儲存并傳遞大量數據,而非以C語言指針(Pointer)的方式進行。
從事硬件發展的研發人員,可以在初階開發階段以malloc搭配C語言指針,來傳遞硬件數據給Android操作系統。但是,必須有Code Review人員,協助將初階的實作,修改為Memory Heap方式,并以對象觀念傳遞。重構后的程序代碼,可以協助該硬件開發人員提升軟件技能。這種「先開發、后檢視」的作法,就是Code Review的精神,也是臺灣硬件業提升Android程序代碼穩定性,以及提升開發人員技能的一個方法。
本文由 CTIMES 同意轉載,原文鏈接: http://www.ctimes.com.tw/DispCols/cn/Android/1109081155L0.shtml
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
c語言相關文章:c語言教程
linux相關文章:linux教程
評論