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